Maxim_Silent
Умник
Дело такое. Есть система паролей на сундуках,ну тип ставишь сундук и на его пароль,если ввести неверный пароль,то напишет,что пароль не верный,а если нажать просто "Enter" или "Ввод",то пароля как буд-то нету,сундук открывает(все на диалоговых окнах).
Вот есть 2 таких кода.
Код:
stock BoxFunctions(playerid)
{
if(!GetPVarInt(playerid,"PlayerBox")) return true;
new i=GetPVarInt(playerid,"PlayerBox"),stringlogo[32],string[128]; f(stringlogo, "%s - [%d/%d]",BoxPack[dBoxData[i][BPack]][bpName], dBoxData[i][BSlots],BoxPack[dBoxData[i][BPack]][bpSlots]);
if(strlen(dBoxData[i][BoxPass]) >3 && dBoxData[i][BoxLock] == 0) return f(stringlogo, "%s",BoxPack[dBoxData[i][BPack]][bpName]),f(string,"{FFFFFF}Введите пароль от %sа!",BoxPack[dBoxData[i][BPack]][bpName]),ShowPlayerDialog(playerid,240+4,DIALOG_STYLE_INPUT,stringlogo,string,"Ввод","Отмена");
else if(strlen(dBoxData[i][BoxPass]) <4 && l[playerid][PlayerInv][40]<1) return ShowPlayerDialog(playerid,240+1,DIALOG_STYLE_LIST,stringlogo,"Взять предмет\nПоложить предмет","Далее","Закрыть");
else if(strlen(dBoxData[i][BoxPass]) >3 && l[playerid][PlayerInv][40]<1 && dBoxData[i][BoxLock] == 1) return f(string,"{FFFFFF}Взять предмет\nПоложить предмет\nИзменить пароль от %sа\nЗакрыть %s",BoxPack[dBoxData[i][BPack]][bpName],BoxPack[dBoxData[i][BPack]][bpName]),ShowPlayerDialog(playerid,240+5,DIALOG_STYLE_LIST,stringlogo,string,"Далее","Закрыть");
else if(strlen(dBoxData[i][BoxPass]) >3 && l[playerid][PlayerInv][40]>0 && dBoxData[i][BoxLock] == 1) return f(string,"{FFFFFF}Взять предмет\nПоложить предмет\nРазобрать %s\nИзменить пароль от %sа\nЗакрыть %s",BoxPack[dBoxData[i][BPack]][bpName],BoxPack[dBoxData[i][BPack]][bpName],BoxPack[dBoxData[i][BPack]][bpName]),ShowPlayerDialog(playerid,240+6,DIALOG_STYLE_LIST,stringlogo,string,"Далее","Закрыть");
else if(strlen(dBoxData[i][BoxPass]) <4 && l[playerid][PlayerInv][40]>0 && l[playerid][PlayerInv][108] == 0) return f(string,"Взять предмет\nПоложить предмет\nРазобрать %s",BoxPack[dBoxData[i][BPack]][bpName]),ShowPlayerDialog(playerid,240+2,DIALOG_STYLE_LIST,stringlogo,string,"Далее","Закрыть");
else if(strlen(dBoxData[i][BoxPass]) <4 && l[playerid][PlayerInv][40]>0 && l[playerid][PlayerInv][108] >= 1) return f(string,"Взять предмет\nПоложить предмет\nРазобрать %s\nУстановить Кодовый Замок",BoxPack[dBoxData[i][BPack]][bpName]),ShowPlayerDialog(playerid,240+3,DIALOG_STYLE_LIST,stringlogo,string,"Далее","Закрыть");
else SAssow(playerid,"Ошибка (#433) - сообщите администраторам!");
return 1;
}
Код:
if(dialogid == 240+4)
{
if(response)
{
new i = GetPVarInt(playerid,"PlayerBox");
if(!i) return true;
if(IsPlayerInRangeOfPoint(playerid, 3.0, dBoxData[i][bPos][0], dBoxData[i][bPos][1], dBoxData[i][bPos][2]))
{
if(GetString(dBoxData[i][BoxPass], inputtext)) return f(string, "Вы открыли %s!",BoxPack[dBoxData[i][BPack]][bpName]),SGood(playerid, string),dBoxData[i][BoxLock]=1,BoxFunctions(playerid),UpDateBox(i);
else
{
new stringz[32]; f(string, "{FF0000}Вы ввели неверно пароль от %sа!\n{FFFFFF}Попробуйте еще раз!",BoxPack[dBoxData[i][BPack]][bpName]);
return f(stringz, "%s",BoxPack[dBoxData[i][BPack]][bpName]),ShowPlayerDialog(playerid,240+4,DIALOG_STYLE_INPUT,stringz,string,"Ввод","Отмена");
}
}
}
else return SetPVarInt(playerid,"PlayerBox", 0);
}
