Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 9 из 9
  1. #1
    Аватар для Айболит
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±

    Проблема с вызовом PayDay

    Почему не срабатывает PayDay, вернее он работает но проверка не происходит, для теста сделал

    print("\n *Произошел PAYDAY"); , Т.е, паблик срабатывается а проверки не работают.. Подскажите что не так.


    PHP код:
    //Система PayDay//
    forward PayDay();   forward UpdateTime(); 
    PHP код:
    //Система PayDay//
    SetTimer("UpdateTime",1000*60,1);//Таймер.//Система PayDay// 
    PHP код:
    public UpdateTime()
    {
        new 
    hour,minute,second;
        
    gettime(hour,minute,second);
        if(
    minute >= 1
        {
            
    PayDay(); //Вызываем паблик с зарплатой.
        
    }
        return 
    1;

    PHP код:
    public PayDay()
    {
        print(
    "\n *Произошел PAYDAY");
        for(new 
    GetMaxPlayers(); != -1i--)
        {
            switch(
    Player[i][pOrganization])
            {
            case 
    0:
                {
                    print(
    "\n Работает 0");
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    SM(i,0xDCDCDCFF," STATE BANK:");
                    
    SM(i,-1,"Вы не получили зарплату,у вас нет банковской карточки,её можно завести в банке");
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    return 1;
                }
            case 
    1:
                {
                    print(
    "\n Работает 1");
                    switch(
    Player[i][pRank]){
                    case 
    1:Player[i][pBankMoney] += 100;    case 2:Player[i][pBankMoney] += 150; case 3:Player[i][pBankMoney] += 200;
                    case 
    4:Player[i][pBankMoney] += 250;    case 5:Player[i][pBankMoney] += 300; case 6:Player[i][pBankMoney] += 350;
                    case 
    7:Player[i][pBankMoney] += 400;    case 8:Player[i][pBankMoney] += 450; case 9:Player[i][pBankMoney] += 500;
                    case 
    10:Player[i][pBankMoney] += 600;   case 11:Player[i][pBankMoney] += 650; case 12:Player[i][pBankMoney] += 700;}
                    
    //Player[playerid][pBankMoney] += 100;
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    SM(i,0xDCDCDCFF," STATE BANK:");
                    switch(
    Player[i][pRank])
                    {
                    case 
    1:SM(i,0x00FFBEFF,"  Государственная зарплата: 100$");    case 2:SM(i,0x00FFBEFF,"  Государственная зарплата: 150$");
                    case 
    3:SM(i,0x00FFBEFF,"  Государственная зарплата: 200$");    case 4:SM(i,0x00FFBEFF,"  Государственная зарплата: 250$");
                    case 
    5:SM(i,0x00FFBEFF,"  Государственная зарплата: 300$");    case 6:SM(i,0x00FFBEFF,"  Государственная зарплата: 350$");
                    case 
    7:SM(i,0x00FFBEFF,"  Государственная зарплата: 400$");    case 8:SM(i,0x00FFBEFF,"  Государственная зарплата: 450$");
                    case 
    9:SM(i,0x00FFBEFF,"  Государственная зарплата: 500$");    case 10:SM(i,0x00FFBEFF,"  Государственная зарплата: 550$");
                    case 
    11:SM(i,0x00FFBEFF,"  Государственная зарплата: 600$");   case 12:SM(i,0x00FFBEFF,"  Государственная зарплата: 700$");
                    }
                    new 
    bankshetid[256];
                    
    format(bankshetid256"{FFFFFF}Баланс на счету {FF0000}%d {FFFFFF}$."Player[i][pBankMoney]);
                    
    SendClientMessage(i, -1bankshetid);
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                
    }
            case 
    2:
                {
                    print(
    "\n Работает 2");
                    switch(
    Player[i][pRank]){
                    case 
    1:Player[i][pBankMoney] += 350;    case 2:Player[i][pBankMoney] += 400; case 3:Player[i][pBankMoney] += 450;
                    case 
    4:Player[i][pBankMoney] += 500;    case 5:Player[i][pBankMoney] += 550; }
                    
    //Player[playerid][pBankMoney] += 100;
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    SM(i,0xDCDCDCFF," STATE BANK:");
                    switch(
    Player[i][pRank])
                    {
                    case 
    1:SM(i,0x00FFBEFF,"  Государственная зарплата: 350$");    case 2:SM(i,0x00FFBEFF,"  Государственная зарплата: 400$");
                    case 
    3:SM(i,0x00FFBEFF,"  Государственная зарплата: 450$");    case 4:SM(i,0x00FFBEFF,"  Государственная зарплата: 500$");
                    case 
    5:SM(i,0x00FFBEFF,"  Государственная зарплата: 550$");
                    }
                    new 
    bankshetid[256];
                    
    format(bankshetid256"{FFFFFF}Баланс на счету {FF0000}%d {FFFFFF}$."Player[i][pBankMoney]);
                    
    SendClientMessage(i, -1bankshetid);
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                
    }
            }
        }
        return 
    1;

    - - - Добавлено - - -

    Логи, если надо..

    [18:31:22] Number of vehicle models: 7
    [18:31:22] Incoming connection: 127.0.0.1:1632
    [18:31:22] [npc:join] [BOT]CJ has joined the server (0:127.0.0.1)
    [18:31:41] Incoming connection: 188.247.114.13:1633
    [18:31:41] [join] Test_T has joined the server (1:188.247.114.13)
    [18:31:41] Time taken to execute OnPlayerConnect: 0
    [18:32:33]
    *Произошел PAYDAY
    [18:32:42] --- Server Shutting Down.
    [18:32:42] [npc:part] [BOT]CJ has left the server (0:0)
    [18:32:42] [part] Test_T has left the server (1:0)
    [18:32:42]
    Последний раз редактировалось DeimoS; 16.09.2014 в 21:10. Причина: Изменено название

  2. #2
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,282
    Репутация:
    417 ±
    ОПФ 10.
    (Общие правила форума)

  3. Пользователь сказал cпасибо:
    Айболит (16.09.2014)
  4. #3
    Аватар для Айболит
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±
    Цитата Сообщение от Salvador Посмотреть сообщение
    ОПФ 10.
    (Общие правила форума)
    Редактировать нельзя название темы, увы, не продумали.... (Изменил бы)

  5. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Название отредактировано. Автору устное предупреждение.
    Подключите crashdetect, перекомпилируйте мод с параметром -d3 и после вызова PayDay скиньте логи
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. Пользователь сказал cпасибо:
    Айболит (16.09.2014)
  7. #5
    Аватар для Айболит
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Название отредактировано. Автору устное предупреждение.
    Подключите crashdetect, перекомпилируйте мод с параметром -d3 и после вызова PayDay скиньте логи
    Установил плагин тот что сказали. в лог выдает работает 0, но сообщение не выводиться на экран.. (Не работает можно сказать)

    PHP код:
    [19:21:08
    *********************************
    [
    19:21:08] *         Сервер запущен        *
    [
    19:21:08] *         И готов к работе!     *
    [
    19:21:08] *********************************

    [
    19:21:08
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    [
    19:21:08] * [1]            Сервер полностью загружен за 0 (ms).    
    [
    19:21:08] * [2]            Было загружено 28 машин на сервере.    
    [
    19:21:08] * [3]            Было загружено 2467 объектов.
    [
    19:21:08
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    [
    19:21:08Number of vehicle models7
    [19:22:11Incoming connection188.247.114.13:4713
    [19:22:11] [joinTest_Playerr has joined the server (1:188.247.114.13)
    [
    19:22:11Time taken to execute OnPlayerConnect0
    [19:22:18
    *
    Произошел PAYDAY
    [19:22:18
    Работает 0
    [19:23:31
    *
    Произошел PAYDAY
    [19:23:31
    Работает 0
    [19:23:37] [partTest_Playerr has left the server (1:1)
    [
    19:23:40] --- Server Shutting Down.
    [
    19:23:40] [debugRun time error 4"Array index out of bounds"
    [19:23:40] [debug]  Accessing element at index 65535 past array upper bound 999
    [19:23:40] [debugAMX backtrace:
    [
    19:23:40] [debug#0 0005af1c in public OnGameModeExit () from new.amx
    [19:23:40] [npc:part] [BOT]CJ has left the server (0:0)
    [
    19:23:40

    *** 
    Streamer Plugin v2.7 by Incognito unloaded *** 

  8. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Вам стоит научиться работать с циклами и массивами...
    PHP код:
    public PayDay()
    {
        new 
    bankshetid[37+11];
        print(
    "\n *Произошел PAYDAY");
        for(new 
    GetMaxPlayers(); != -1i--)
        {
            if(!
    IsPlayerConnected(i)) continue;
            switch(
    Player[i][pOrganization])
            {
                case 
    0:
                {
                    print(
    "\n Работает 0");
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    SM(i,0xDCDCDCFF," STATE BANK:");
                    
    SM(i,-1,"Вы не получили зарплату,у вас нет банковской карточки,её можно завести в банке");
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    continue;
                }
                case 
    1:
                {
                    print(
    "\n Работает 1");
                    switch(
    Player[i][pRank])
                    {
                        case 
    1:Player[i][pBankMoney] += 100;
                        case 
    2:Player[i][pBankMoney] += 150;
                        case 
    3:Player[i][pBankMoney] += 200;
                        case 
    4:Player[i][pBankMoney] += 250;
                        case 
    5:Player[i][pBankMoney] += 300;
                        case 
    6:Player[i][pBankMoney] += 350;
                        case 
    7:Player[i][pBankMoney] += 400;
                        case 
    8:Player[i][pBankMoney] += 450;
                        case 
    9:Player[i][pBankMoney] += 500;
                        case 
    10:Player[i][pBankMoney] += 600;
                        case 
    11:Player[i][pBankMoney] += 650;
                        case 
    12:Player[i][pBankMoney] += 700;
                    }
                    
    //Player[playerid][pBankMoney] += 100;
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    SM(i,0xDCDCDCFF," STATE BANK:");
                    switch(
    Player[i][pRank])
                    {
                        case 
    1:SM(i,0x00FFBEFF,"  Государственная зарплата: 100$");
                        case 
    2:SM(i,0x00FFBEFF,"  Государственная зарплата: 150$");
                        case 
    3:SM(i,0x00FFBEFF,"  Государственная зарплата: 200$");
                        case 
    4:SM(i,0x00FFBEFF,"  Государственная зарплата: 250$");
                        case 
    5:SM(i,0x00FFBEFF,"  Государственная зарплата: 300$");
                        case 
    6:SM(i,0x00FFBEFF,"  Государственная зарплата: 350$");
                        case 
    7:SM(i,0x00FFBEFF,"  Государственная зарплата: 400$");
                        case 
    8:SM(i,0x00FFBEFF,"  Государственная зарплата: 450$");
                        case 
    9:SM(i,0x00FFBEFF,"  Государственная зарплата: 500$");
                        case 
    10:SM(i,0x00FFBEFF,"  Государственная зарплата: 550$");
                        case 
    11:SM(i,0x00FFBEFF,"  Государственная зарплата: 600$");
                        case 
    12:SM(i,0x00FFBEFF,"  Государственная зарплата: 700$");
                    }
                    
    format(bankshetidsizeof(bankshetid), "Баланс на счету {FF0000}%d {FFFFFF}$."Player[i][pBankMoney]);
                    
    SendClientMessage(i0xFFFFFFFFbankshetid);
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                
    }
                case 
    2:
                {
                    print(
    "\n Работает 2");
                    switch(
    Player[i][pRank])
                    {
                        case 
    1:Player[i][pBankMoney] += 350;
                        case 
    2:Player[i][pBankMoney] += 400;
                        case 
    3:Player[i][pBankMoney] += 450;
                        case 
    4:Player[i][pBankMoney] += 500;
                        case 
    5:Player[i][pBankMoney] += 550;
                    }
                    
    //Player[playerid][pBankMoney] += 100;
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    SM(i,0xDCDCDCFF," STATE BANK:");
                    switch(
    Player[i][pRank])
                    {
                        case 
    1:SM(i,0x00FFBEFF,"  Государственная зарплата: 350$");
                        case 
    2:SM(i,0x00FFBEFF,"  Государственная зарплата: 400$");
                        case 
    3:SM(i,0x00FFBEFF,"  Государственная зарплата: 450$");
                        case 
    4:SM(i,0x00FFBEFF,"  Государственная зарплата: 500$");
                        case 
    5:SM(i,0x00FFBEFF,"  Государственная зарплата: 550$");
                    }
                    
    format(bankshetidsizeof(bankshetid), "Баланс на счету {FF0000}%d {FFFFFF}$."Player[i][pBankMoney]);
                    
    SendClientMessage(i0xFFFFFFFFbankshetid);
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                
    }
            }
        }
        return 
    1;

    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. Пользователь сказал cпасибо:
    Айболит (16.09.2014)
  10. #7
    Аватар для Айболит
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Вам стоит научиться работать с циклами и массивами...
    PHP код:
    public PayDay()
    {
        new 
    bankshetid[37+11];
        print(
    "\n *Произошел PAYDAY");
        for(new 
    GetMaxPlayers(); != -1i--)
        {
            if(!
    IsPlayerConnected(i)) continue;
            switch(
    Player[i][pOrganization])
            {
                case 
    0:
                {
                    print(
    "\n Работает 0");
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    SM(i,0xDCDCDCFF," STATE BANK:");
                    
    SM(i,-1,"Вы не получили зарплату,у вас нет банковской карточки,её можно завести в банке");
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    continue;
                }
                case 
    1:
                {
                    print(
    "\n Работает 1");
                    switch(
    Player[i][pRank])
                    {
                        case 
    1:Player[i][pBankMoney] += 100;
                        case 
    2:Player[i][pBankMoney] += 150;
                        case 
    3:Player[i][pBankMoney] += 200;
                        case 
    4:Player[i][pBankMoney] += 250;
                        case 
    5:Player[i][pBankMoney] += 300;
                        case 
    6:Player[i][pBankMoney] += 350;
                        case 
    7:Player[i][pBankMoney] += 400;
                        case 
    8:Player[i][pBankMoney] += 450;
                        case 
    9:Player[i][pBankMoney] += 500;
                        case 
    10:Player[i][pBankMoney] += 600;
                        case 
    11:Player[i][pBankMoney] += 650;
                        case 
    12:Player[i][pBankMoney] += 700;
                    }
                    
    //Player[playerid][pBankMoney] += 100;
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    SM(i,0xDCDCDCFF," STATE BANK:");
                    switch(
    Player[i][pRank])
                    {
                        case 
    1:SM(i,0x00FFBEFF,"  Государственная зарплата: 100$");
                        case 
    2:SM(i,0x00FFBEFF,"  Государственная зарплата: 150$");
                        case 
    3:SM(i,0x00FFBEFF,"  Государственная зарплата: 200$");
                        case 
    4:SM(i,0x00FFBEFF,"  Государственная зарплата: 250$");
                        case 
    5:SM(i,0x00FFBEFF,"  Государственная зарплата: 300$");
                        case 
    6:SM(i,0x00FFBEFF,"  Государственная зарплата: 350$");
                        case 
    7:SM(i,0x00FFBEFF,"  Государственная зарплата: 400$");
                        case 
    8:SM(i,0x00FFBEFF,"  Государственная зарплата: 450$");
                        case 
    9:SM(i,0x00FFBEFF,"  Государственная зарплата: 500$");
                        case 
    10:SM(i,0x00FFBEFF,"  Государственная зарплата: 550$");
                        case 
    11:SM(i,0x00FFBEFF,"  Государственная зарплата: 600$");
                        case 
    12:SM(i,0x00FFBEFF,"  Государственная зарплата: 700$");
                    }
                    
    format(bankshetidsizeof(bankshetid), "Баланс на счету {FF0000}%d {FFFFFF}$."Player[i][pBankMoney]);
                    
    SendClientMessage(i0xFFFFFFFFbankshetid);
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                
    }
                case 
    2:
                {
                    print(
    "\n Работает 2");
                    switch(
    Player[i][pRank])
                    {
                        case 
    1:Player[i][pBankMoney] += 350;
                        case 
    2:Player[i][pBankMoney] += 400;
                        case 
    3:Player[i][pBankMoney] += 450;
                        case 
    4:Player[i][pBankMoney] += 500;
                        case 
    5:Player[i][pBankMoney] += 550;
                    }
                    
    //Player[playerid][pBankMoney] += 100;
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                    
    SM(i,0xDCDCDCFF," STATE BANK:");
                    switch(
    Player[i][pRank])
                    {
                        case 
    1:SM(i,0x00FFBEFF,"  Государственная зарплата: 350$");
                        case 
    2:SM(i,0x00FFBEFF,"  Государственная зарплата: 400$");
                        case 
    3:SM(i,0x00FFBEFF,"  Государственная зарплата: 450$");
                        case 
    4:SM(i,0x00FFBEFF,"  Государственная зарплата: 500$");
                        case 
    5:SM(i,0x00FFBEFF,"  Государственная зарплата: 550$");
                    }
                    
    format(bankshetidsizeof(bankshetid), "Баланс на счету {FF0000}%d {FFFFFF}$."Player[i][pBankMoney]);
                    
    SendClientMessage(i0xFFFFFFFFbankshetid);
                    
    SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
                
    }
            }
        }
        return 
    1;


    Спасибо работает, а можно вопрос, почему вы сделали так? new bankshetid[37+11]; а не просто : new bankshetid[48];

  11. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от Айболит Посмотреть сообщение
    Спасибо работает, а можно вопрос, почему вы сделали так? new bankshetid[37+11]; а не просто : new bankshetid[48];
    37 - длина текста в format.
    11 - максимально возможная длина, которую можно будет вставить вместо заполнителя "%d" (для денег 11 символов будет вполне достаточно, ибо стандартный юзербар не поместит больше)
    Если, например, нужно изменить сообщение в format, достаточно по новой рассчитать длину сообщения и изменить "37" на новое значение. Если же записать "48", то придётся к полученному новому числу прибавлять длину всех вставляемых строк. В общем, просто так удобнее.
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  12. 2 пользователя(ей) сказали cпасибо:
    Salvacore (16.09.2014)Айболит (16.09.2014)
  13. #9
    Аватар для Айболит
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    37 - длина текста в format.
    11 - максимально возможная длина, которую можно будет вставить вместо заполнителя "%d" (для денег 11 символов будет вполне достаточно, ибо стандартный юзербар не поместит больше)
    Если, например, нужно изменить сообщение в format, достаточно по новой рассчитать длину сообщения и изменить "37" на новое значение. Если же записать "48", то придётся к полученному новому числу прибавлять длину всех вставляемых строк. В общем, просто так удобнее.
    Понял, еще раз спасибо огромное!

    //DeimoS: Closed
    Последний раз редактировалось DeimoS; 16.09.2014 в 22:02.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •