PDA

Просмотр полной версии : [Вопрос] Диалоги работает не так как надо...



Айболит
08.03.2015, 21:48
Работает не так как надо.. Должно работать так: пишу /fine 1 (Свой) ид дальше выходит диалог ввожу сумму , далее еще раз ид и прчину. И должно прийти 2 сообщение :

О том что сотрудник дал штраф..
И его нужно оплатить..

А если дать себе то только приходит о том что нужно его оплатить...


Если же пишу ид бота, или друга.. То как раз приходит все нормально только мне, пишу его ид а приходит мне, что нужно оплатить и сотрудник дал штраф..



case 83:
{
//else if(dialogid == 83)
if(!response) return 1;
if(strval(inputtext) < 1 || strval(inputtext) > 2000) return SendClientMessage(playerid, -1, "{FF1E00}(Подсказка){FFFFFF} {F0F0F0}Сумма должна быть от 1$ до 2000$!!! ");
//pdproverka[0] = 1;
if(pdproverka[0] == 1)
{
//ShowPlayerDialog(playerid,82,DIALOG_STYLE_INPUT, "Выписать штраф", "Введите сумму к штрафу от "R"1$-2000$", "Далее", "Закрыть");
SendClientMessage(playerid, -1, "{FF1E00}(Подсказка){FFFFFF} {F0F0F0}Сумма должна быть от 1$ до 2000$!!! ");
pdproverka[0] = 0;
}
if(pdproverka[0] == 0)
{
ShowPlayerDialog(playerid,82,DIALOG_STYLE_INPUT, "Выписать штраф", "Введите ID и причину в формате \"ID Причина\"", "Далее", "Закрыть");
Player[playerid][pFine] = strval(inputtext);
pdproverka[0] = 0;
}
}




case 82:
//else if(dialogid == 82)
{
if(!response) return 1;
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,82,DIALOG_STYLE_INPUT, "Выписать штраф", "Введите ID и причину в формате \"ID Причина\"", "Далее", "Закрыть");
new fine_reason[70], i_poss = strfind(inputtext, " ", true);
if(strlen(inputtext[i_poss+1]) >= sizeof(fine_reason)) return ShowPlayerDialog(playerid,82,DIALOG_STYLE_INPUT, "Выписать штраф", "Введите ID и причину в формате \"ID Причина\"", "Далее", "Закрыть");
strins(fine_reason, inputtext[i_poss+1], 0);
strdel(inputtext, i_poss, strlen(inputtext));
if(!IsPlayerConnected(strval(inputtext))) return SendClientMessage(playerid, 0xFF0000FF, "Игрок с таким ID не обнаружен на сервере");
new player_namee[2][MAX_PLAYER_NAME], string[244];
GetPlayerName(playerid, player_namee[0], MAX_PLAYER_NAME);
GetPlayerName(strval(inputtext), player_namee[1], MAX_PLAYER_NAME);
Player[strval(inputtext) ][pFine] = Player[playerid][pFine];
format(string, sizeof(string), "Сотрудник полиции : %s выписал штраф игроку : %s по причине : {D2D2D2}%s{FFFFFF} в размере : "W"( "Y"%i"G"$ "W")", player_namee[0], player_namee[1], fine_reason,Player[strval(inputtext)][pFine]);
SavePlayer(strval(inputtext));
//
SendClientMessage(strlen(inputtext), 0x00E1FFFF, string);
SM(strlen(inputtext),0x00E1FFFF,"Что бы оплатить штраф используйте : ''/afine'' ");
//
if(Player[playerid][pOrganization] == 4) //.
{
new i = GetMaxPlayers();
do { --i; if(IsPlayerConnected(i) && Player[i][pOrganization] != 0) SendClientMessage(i, 0x00E1FFFF, string); } while(i);
}
return 1;
}



CMD:fine(playerid, params[])
{
if(Player[playerid][pOrganization] != 4) return SendClientMessage(playerid, -1, "[INFO]: Нет доступа!!!");
if(Player[playerid][pOrganization] == 4)
{
if(Player[playerid][pRank] == 1)
{
SendClientMessage(playerid, -1, "[INFO]: Доступно с 2 ранга!!!");
}
}
if(Player[playerid][pOrganization] == 4)
{
if(Player[playerid][pRank] >= 2)
{
ShowPlayerDialog(playerid,83,DIALOG_STYLE_INPUT, "Выписать штраф", "Введите сумму к штрафу\n"R"1$ - 2000$", "Далее", "Закрыть");
return 1;
}

}
return 1;
}



Должно работать так : Тому кому дали штраф приходит 2 сообщение, а мне 1 о том что я дал штраф, всей организации приходит, там проверка стоит...


if(Player[playerid][pOrganization] == 4) //.
{
new i = GetMaxPlayers();
do { --i; if(IsPlayerConnected(i) && Player[i][pOrganization] != 0) SendClientMessage(i, 0x00E1FFFF, string); } while(i);
}

Айболит
09.03.2015, 09:03
Заметил теперь что : Если отправить на ид 0 приходит тебе 2 сообщение о том что надо оплатить, и выдали штраф.. А боту нечего.. И если ввести ид 1-2 то приходит тому кто написал /fine (кто выдал штраф) это только другое сообщение : о том что нужно оплатить.. А тому кому отправили нечего..


Бред.............

Айболит
09.03.2015, 11:34
Помогите пожалуйста..