PDA

Просмотр полной версии : [Вопрос] Warning



vovandolg
31.12.2015, 00:05
Заметил что у меня на сервере иногда в логах бывает по одному вот такому сообщению:

Warning: PlayerDialogResponse PlayerId: 0 dialog ID doesn't match last sent dialog ID
Warning: PlayerDialogResponse PlayerId: 7 dialog ID doesn't match last sent dialog ID
Warning: PlayerDialogResponse PlayerId: 2 dialog ID doesn't match last sent dialog ID
В гугле толком так и не решил не кто такую проблему, да и вообще что это, пробовал по этим диалогам пройтись и не чего не выбросило мне.
То ли атака на сервер то ли код написан коряво, вот иды диалогов которые лезут в варнинги(нулевого у меня нету вообще..):


case 2:
{
if(!strlen(inputtext))
{
format(stringer, sizeof(stringer),"{FFFFFF}_____________________\n\n Äîáðî ïîæàëîâàòü íà ñåðâåð {FFFF00}Role Play{FFFFFF}\n Ýòîò àêêàóíò çàðåãåñòðèðîâàí\n\nËîãèí: {FFFF00}%s{FFFFFF}\nÂâåäèòå ïàðîëü:\n_______________________________________", PlayerInfo[playerid][pNames]);
SPD(playerid,2,DIALOG_STYLE_PASSWORD,"Àâòîðèçàöèÿ",stringer,"Âõîä","Îòìåíà");
PlayerPlaySound(playerid, 17803, 0.0, 0.0, 0.0);
return true;
}
OnPlayerLogin(playerid,inputtext);
return true;
}


case 7:
{
if(response)
{
if(strlen(inputtext) < 1 || strlen(inputtext) > 21) return SPD(playerid,7,DIALOG_STYLE_INPUT,"Íèê äðóãà íà ñåðâåðå","Ââåäèòå íèê âàøåãî äðóãà íà ñåðâåðå.\n\t{FF0000}Îøèáêà","Îê","Ïðîïóñòèòü");
format(mysql_query, sizeof(mysql_query), "UPDATE `Accounts` SET `pDrug` = '%s' WHERE `Name` = '%s'",inputtext,PlayerInfo[playerid][pNames]);
mysql_function_query(connects, mysql_query, false, "", "");
format(stringer, sizeof(stringer),"{FFFFFF}_____________________\n\n Äîáðî ïîæàëîâàòü íà ñåðâåð {FFFF00}Role Play{FFFFFF}\n Ýòîò àêêàóíò çàðåãåñòðèðîâàí\n\nËîãèí: {FFFF00}%s\n{FFFFFF}Ââåäèòå ïàðîëü:\n", PlayerInfo[playerid][pNames]);
SPD(playerid,2,DIALOG_STYLE_PASSWORD,"Àâòîðèçàöèÿ",stringer,"Âõîä","Îòìåíà");
PlayerPlaySound(playerid, 17803, 0.0, 0.0, 0.0);
}
else
{
format(stringer, sizeof(stringer),"{FFFFFF}_____________________\n\n Äîáðî ïîæàëîâàòü íà ñåðâåð {FFFF00}ULTIMATUM Role Play{FFFFFF}\n Ýòîò àêêàóíò çàðåãåñòðèðîâàí\n\nËîãèí: {FFFF00}%s\n{FFFFFF}Ââåäèòå ïàðîëü:\n_______________________________________", PlayerInfo[playerid][pNames]);
SPD(playerid,2,DIALOG_STYLE_PASSWORD,"Àâòîðèçàöèÿ",stringer,"Âõîä","Îòìåíà");
PlayerPlaySound(playerid, 17803, 0.0, 0.0, 0.0);
}
}

VVWVV
31.12.2015, 10:57
Используйте библиотеку fixes.inc (https://github.com/ziggi/sa-mp-fixes), в данной библиотеке данный баг пофикшен.


А фикс данного бага, вот (автор: simonepri):

for(new i = -1, j = GetPlayerPoolSize(); ++i != j;)
{
ShowPlayerDialog(playerid, -1, 0, " ", " ", " ", " ");
}

Daniel_Cortez
31.12.2015, 12:59
Заметил что у меня на сервере иногда в логах бывает по одному вот такому сообщению:

Warning: PlayerDialogResponse PlayerId: 0 dialog ID doesn't match last sent dialog ID
Warning: PlayerDialogResponse PlayerId: 7 dialog ID doesn't match last sent dialog ID
Warning: PlayerDialogResponse PlayerId: 2 dialog ID doesn't match last sent dialog ID

Обычно такие сообщения отображаются, если кто-то из игроков не успел ответить на диалог перед рестартом.
Непосредственно перед рестартом следует показывать всем подключенным игрокам пустой диалог с ID = -1. VVWVV как раз предоставил код в посте выше (хотя, если честно, подход с MAX_PLAYERS ужасен, и есть куда более эффективные решения).

vovandolg
01.01.2016, 00:31
Обычно такие сообщения отображаются, если кто-то из игроков не успел ответить на диалог перед рестартом.
Суть в том что рестарты в том время и не были, сервере бесперебойно работал.

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


Используйте библиотеку fixes.inc (https://github.com/ziggi/sa-mp-fixes), в данной библиотеке данный баг пофикшен.


А фикс данного бага, вот (автор: simonepri):

for(new i = -1, j = GetPlayerPoolSize(); ++i != j;)
{
ShowPlayerDialog(playerid, -1, 0, " ", " ", " ", " ");
}

Насколько я понял этот фикс только для 0.3.7, а для 0.3е как поступить?
(GetPlayerPoolSize(); Wiki - This function was added in SA-MP 0.3.7 and will not work in earlier versions!)

Daniel_Cortez
01.01.2016, 01:23
Суть в том что рестарты в том время и не были, сервере бесперебойно работал.
Сообщения возникали в какой-то конкретный момент или по отдельности?


Насколько я понял этот фикс только для 0.3.7, а для 0.3е как поступить?
(GetPlayerPoolSize(); Wiki - This function was added in SA-MP 0.3.7 and will not work in earlier versions!)
Use foreach, Luke.

vovandolg
01.01.2016, 02:38
Сообщения возникали в какой-то конкретный момент или по отдельности?
Как бы так сказать, меня не было в том время на сервере, вот так примерно при коннекте бывает:


[01:22:51] [part] Ilya_Thompson has left the server (1:1)
[01:22:51] > Игрок Ilya_Thompson был кикнут с сервера(KickEx). [ID: 1][IP: ]
[01:23:08] Incoming connection: 92.113.39.154:49871
[01:23:10] Incoming connection: 92.113.39.154:49872
[01:23:46] Incoming connection: 92.113.39.154:49878
[01:23:47] [join] Ilya_Thompson has joined the server (1:92.113.39.154)
[01:23:47] > Игрок Ilya_Thompson подключился к серверу. [ID: 1][IP: 92.113.39.154]
[01:24:12] [join] [15]_Ilya_Thompson has joined the server (1:92.113.39.154)
[01:24:12] > Игрок [15]_Ilya_Thompson подключился к серверу. [ID: 1][IP: 92.113.39.154]
[01:24:12] Warning: PlayerDialogResponse PlayerId: 1 dialog ID doesn't match last sent dialog ID
[01:24:12] Warning: PlayerDialogResponse PlayerId: 1 dialog ID doesn't match last sent dialog ID
[01:24:12] [join] [03]_Ilya_Thompson has joined the server (1:92.113.39.154)
[01:24:12] > Игрок [03]_Ilya_Thompson подключился к серверу. [ID: 1][IP: 92.113.39.154]
[01:24:12] Ошибка сохранения.
[01:24:12] Ошибка сохранения.
[01:24:12] [part] [03]_Ilya_Thompson has left the server (1:2)

Только айди диалогов разные