Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 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,271
    Репутация:
    418 ±
    ОПФ 10.
    (Общие правила форума)

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

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

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

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

    Широко известно, что идеи стоят 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
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Вам стоит научиться работать с циклами и массивами...
    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;

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

    Широко известно, что идеи стоят 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
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Айболит Посмотреть сообщение
    Спасибо работает, а можно вопрос, почему вы сделали так? new bankshetid[37+11]; а не просто : new bankshetid[48];
    37 - длина текста в format.
    11 - максимально возможная длина, которую можно будет вставить вместо заполнителя "%d" (для денег 11 символов будет вполне достаточно, ибо стандартный юзербар не поместит больше)
    Если, например, нужно изменить сообщение в format, достаточно по новой рассчитать длину сообщения и изменить "37" на новое значение. Если же записать "48", то придётся к полученному новому числу прибавлять длину всех вставляемых строк. В общем, просто так удобнее.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 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)

Ваши права

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