PDA

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



Unknown
13.09.2014, 11:39
Можно ли как нить по проще сделать ?)

пробывал вызывать 1 диалог и там делать case но если я выбирал 2 пункт из списка то все равно выполнялся 1й пункт..


if(dialogid == 5467)
{
new nark = PlayerInfo[playerid][pSNark];
if(response)
{
switch(listitem)
{
case 0:
{
format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark);
Dialog(playerid,5468,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
}
case 1:
{
format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark);
Dialog(playerid,5469,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
}
}
}
}
if(dialogid == 5468)
{
new kolvo1 = strval(inputtext);
if(strlen(inputtext))
{
if(kolvo1 < 1) return error(playerid, "Невозможное действие.");
if(kolvo1 > PlayerInfo[playerid][pDrugs]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас нет при себе столько наркотиков.");
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[playerid][pDrugs] -= kolvo1;
PlayerInfo[playerid][pSNark] += kolvo1;
format(string,sizeof(string), "Вы положили %d грамм наркотиков в сейф.",kolvo1);
SendClientMessage(playerid,COLOR_LIGHTBLUE, string);
OnPlayerSave(playerid);
return Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
}
}
if(dialogid == 5469)
{
new kolvo1 = strval(inputtext);
if(strlen(inputtext))
{
if(kolvo1 < 1) return error(playerid, "Невозможное действие.");
if(kolvo1 > PlayerInfo[playerid][pSNark]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас в сейфе нет столько наркотиков.");
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string,sizeof(string), "Вы забрали %d грамм наркотиков с сейфа.",kolvo1);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
PlayerInfo[playerid][pSNark] -= kolvo1;
PlayerInfo[playerid][pDrugs] += kolvo1;
OnPlayerSave(playerid);
return Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
}
}

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


if(dialogid == 5467)
{
new nark = PlayerInfo[playerid][pSNark];
if(response)
{
switch(listitem)
{
case 0:
{
format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark);
Dialog(playerid,5468,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
}
case 1:
{
format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark);
Dialog(playerid,5469,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
}
}
}
}
if(dialogid == 5468)
{
new kolvo1 = strval(inputtext);
if(strlen(inputtext))
{
if(kolvo1 < 1) return error(playerid, "Невозможное действие.");
if(kolvo1 > PlayerInfo[playerid][pDrugs]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас нет при себе столько наркотиков.");
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[playerid][pDrugs] -= kolvo1;
PlayerInfo[playerid][pSNark] += kolvo1;
format(string,sizeof(string), "Вы положили %d грамм наркотиков в сейф.",kolvo1);
SendClientMessage(playerid,COLOR_LIGHTBLUE, string);
OnPlayerSave(playerid);
return Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
}
}
if(dialogid == 5469)
{
new kolvo1 = strval(inputtext);
if(strlen(inputtext))
{
if(kolvo1 < 1) return error(playerid, "Невозможное действие.");
if(kolvo1 > PlayerInfo[playerid][pSNark]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас в сейфе нет столько наркотиков.");
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string,sizeof(string), "Вы забрали %d грамм наркотиков с сейфа.",kolvo1);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
PlayerInfo[playerid][pSNark] -= kolvo1;
PlayerInfo[playerid][pDrugs] += kolvo1;
OnPlayerSave(playerid);
return Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
}
}

#Vito
13.09.2014, 12:31
Если я правильно понял..

if(dialogid == 5467)
{
new nark = PlayerInfo[playerid][pSNark];
if(!response) return 1;
if(listitem == 0) SetPVarInt(playerid,"SAFE",1);
else SetPVarInt(playerid,"SAFE",2);
format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark);
Dialog(playerid,5468,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
}

if(dialogid == 5468)
{
if(GetPVarInt(playerid,"SAFE") == 1)
{
new kolvo1 = strval(inputtext);
if(strlen(inputtext))
{
if(kolvo1 < 1) return error(playerid, "Невозможное действие.");
if(kolvo1 > PlayerInfo[playerid][pDrugs]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас нет при себе столько наркотиков.");
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[playerid][pDrugs] -= kolvo1;
PlayerInfo[playerid][pSNark] += kolvo1;
format(string,sizeof(string), "Вы положили %d грамм наркотиков в сейф.",kolvo1);
SendClientMessage(playerid,COLOR_LIGHTBLUE, string);
OnPlayerSave(playerid);
DeletePVar(playerid,"SAFE");
return Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
}
}
else if(GetPVarInt(playerid,"SAFE") == 2)
{
new kolvo1 = strval(inputtext);
if(strlen(inputtext))
{
if(kolvo1 < 1) return error(playerid, "Невозможное действие.");
if(kolvo1 > PlayerInfo[playerid][pSNark]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас в сейфе нет столько наркотиков.");
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string,sizeof(string), "Вы забрали %d грамм наркотиков с сейфа.",kolvo1);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
PlayerInfo[playerid][pSNark] -= kolvo1;
PlayerInfo[playerid][pDrugs] += kolvo1;
OnPlayerSave(playerid);
DeletePVar(playerid,"SAFE");
return Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
}
}
}

Valera_Trefilov
13.09.2014, 13:12
#define PutDrugsNark(%0,%1) PlayerInfo[%0][pSNark] += %1 && PlayerInfo[%0][pDrugs] -= %1 && GetPlayerName(%0, sendername, sizeof(sendername)) && OnPlayerSave(%0)
#define GetDrugsNark(%0,%1) PlayerInfo[%0][pSNark] -= %1 && PlayerInfo[%0][pDrugs] += %1 && GetPlayerName(%0, sendername, sizeof(sendername)) && OnPlayerSave(%0)
#define SendClientMessageEx(%0,%1,%2,%3) format(string5, sizeof(string5),%2,%3) && SendClientMessage(%0, %1, string5)
#define DialogNark(playerid) Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть")

if(dialogid == 5467)
{
if(!response) return true;
format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",PlayerInfo[playerid][pSNark]);
switch(listitem)
{
case 0: Dialog(playerid,5468,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
case 1: Dialog(playerid,5469,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
}
}
if(dialogid == 5468)
{

if(!response || !strlen(inputtext) || strval(inputtext) < 1 || strval(inputtext) > PlayerInfo[playerid][pDrugs]) return true;
PutDrugsNark(playerid, strval(inputtext);
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Вы положили %d грамм наркотиков с сейфа.", strval(inputtext));
return DialogNark(playerid);
}
if(dialogid == 5469)
{
if(!response || !strlen(inputtext) || strval(inputtext) < 1 || strval(inputtext) > PlayerInfo[playerid][pDrugs]) return true;
SendClientMessageEx(playerid,COLOR_LIGHTBLUE,"Вы забрали %d грамм наркотиков с сейфа.",strval(inputtext));
GetDrugsNark(playerid, strval(inputtext));
return DialogNark(playerid);
}

DeimoS
13.09.2014, 14:13
if(dialogid == 5467)
{
if(!response || !(0 <= listitem <= 1)) return 1;
format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков", PlayerInfo[playerid][pSNark]);
Dialog(playerid, 5468, DIALOG_STYLE_INPUT, "Введите кол-во", string5, "Ок", "Назад");
SetPVarInt(playerid, "Safe_ID", listitem+1);
return 1;
}
else if(dialogid == 5468)
{
new kolvo1 = strval(inputtext);
if(strlen(inputtext))
{
if(kolvo1 < 1) return error(playerid, "Невозможное действие.");
switch(GetPVarInt(playerid, "Safe_ID"))
{
case 1:
{
if(kolvo1 > PlayerInfo[playerid][pDrugs]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас нет при себе столько наркотиков.");
PlayerInfo[playerid][pDrugs] -= kolvo1;
PlayerInfo[playerid][pSNark] += kolvo1;
format(string,sizeof(string), "Вы положили %d грамм наркотиков в сейф.", kolvo1);
}
case 2:
{
if(kolvo1 > PlayerInfo[playerid][pSNark]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас в сейфе нет столько наркотиков.");
PlayerInfo[playerid][pSNark] -= kolvo1;
PlayerInfo[playerid][pDrugs] += kolvo1;
format(string,sizeof(string), "Вы забрали %d грамм наркотиков с сейфа.", kolvo1);
}
}
DeletePVar(playerid, "Safe_ID");
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
OnPlayerSave(playerid);
Dialog(playerid, 5467, DIALOG_STYLE_LIST, "Сейф", string5, "Выбрать", "Закрыть");
}
return 1;
}