Вход

Просмотр полной версии : [Вопрос] Проблема с вызовом PayDay



Айболит
16.09.2014, 20:37
Почему не срабатывает PayDay, вернее он работает но проверка не происходит, для теста сделал

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



//Система PayDay//
forward PayDay(); forward UpdateTime();


//Система PayDay//
SetTimer("UpdateTime",1000*60,1);//Таймер.//Система PayDay//


public UpdateTime()
{
new hour,minute,second;
gettime(hour,minute,second);
if(minute >= 1)
{
PayDay(); //Вызываем паблик с зарплатой.
}
return 1;
}


public PayDay()
{
print("\n *Произошел PAYDAY");
for(new i = GetMaxPlayers(); i != -1; i--)
{
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(bankshetid, 256, "{FFFFFF}Баланс на счету {FF0000}%d {FFFFFF}$.", Player[i][pBankMoney]);
SendClientMessage(i, -1, bankshetid);
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(bankshetid, 256, "{FFFFFF}Баланс на счету {FF0000}%d {FFFFFF}$.", Player[i][pBankMoney]);
SendClientMessage(i, -1, bankshetid);
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]

Salvacore
16.09.2014, 20:38
ОПФ 10.
(Общие правила форума)

Айболит
16.09.2014, 20:40
ОПФ 10.
(Общие правила форума)

Редактировать нельзя название темы, увы, не продумали.... (Изменил бы)

DeimoS
16.09.2014, 21:11
Название отредактировано. Автору устное предупреждение.
Подключите crashdetect, перекомпилируйте мод с параметром -d3 и после вызова PayDay скиньте логи

Айболит
16.09.2014, 21:26
Название отредактировано. Автору устное предупреждение.
Подключите crashdetect, перекомпилируйте мод с параметром -d3 и после вызова PayDay скиньте логи

Установил плагин тот что сказали. в лог выдает работает 0, но сообщение не выводиться на экран.. (Не работает можно сказать)


[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:08] Number of vehicle models: 7
[19:22:11] Incoming connection: 188.247.114.13:4713
[19:22:11] [join] Test_Playerr has joined the server (1:188.247.114.13)
[19:22:11] Time taken to execute OnPlayerConnect: 0
[19:22:18]
*Произошел PAYDAY
[19:22:18]
Работает 0
[19:23:31]
*Произошел PAYDAY
[19:23:31]
Работает 0
[19:23:37] [part] Test_Playerr has left the server (1:1)
[19:23:40] --- Server Shutting Down.
[19:23:40] [debug] Run 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] [debug] AMX 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 ***

DeimoS
16.09.2014, 21:32
Вам стоит научиться работать с циклами и массивами...

public PayDay()
{
new bankshetid[37+11];
print("\n *Произошел PAYDAY");
for(new i = GetMaxPlayers(); i != -1; i--)
{
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(bankshetid, sizeof(bankshetid), "Баланс на счету {FF0000}%d {FFFFFF}$.", Player[i][pBankMoney]);
SendClientMessage(i, 0xFFFFFFFF, bankshetid);
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(bankshetid, sizeof(bankshetid), "Баланс на счету {FF0000}%d {FFFFFF}$.", Player[i][pBankMoney]);
SendClientMessage(i, 0xFFFFFFFF, bankshetid);
SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
}
}
}
return 1;
}

Айболит
16.09.2014, 21:41
Вам стоит научиться работать с циклами и массивами...

public PayDay()
{
new bankshetid[37+11];
print("\n *Произошел PAYDAY");
for(new i = GetMaxPlayers(); i != -1; i--)
{
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(bankshetid, sizeof(bankshetid), "Баланс на счету {FF0000}%d {FFFFFF}$.", Player[i][pBankMoney]);
SendClientMessage(i, 0xFFFFFFFF, bankshetid);
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(bankshetid, sizeof(bankshetid), "Баланс на счету {FF0000}%d {FFFFFF}$.", Player[i][pBankMoney]);
SendClientMessage(i, 0xFFFFFFFF, bankshetid);
SM(i,0xFF0005FF,"|*******************************************************************************************************************|");// Выводим игроку сообщение
}
}
}
return 1;
}


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

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

37 - длина текста в format.
11 - максимально возможная длина, которую можно будет вставить вместо заполнителя "%d" (для денег 11 символов будет вполне достаточно, ибо стандартный юзербар не поместит больше)
Если, например, нужно изменить сообщение в format, достаточно по новой рассчитать длину сообщения и изменить "37" на новое значение. Если же записать "48", то придётся к полученному новому числу прибавлять длину всех вставляемых строк. В общем, просто так удобнее.

Айболит
16.09.2014, 21:58
37 - длина текста в format.
11 - максимально возможная длина, которую можно будет вставить вместо заполнителя "%d" (для денег 11 символов будет вполне достаточно, ибо стандартный юзербар не поместит больше)
Если, например, нужно изменить сообщение в format, достаточно по новой рассчитать длину сообщения и изменить "37" на новое значение. Если же записать "48", то придётся к полученному новому числу прибавлять длину всех вставляемых строк. В общем, просто так удобнее.

Понял, еще раз спасибо огромное!

//DeimoS: Closed