PDA

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



Dimon_Fanat
05.10.2018, 17:38
Добрый день, можно ли как-то изменить данный код, чтоб он не был таким большим но чтобы сохранить функционал.


case DIALOG_MASK:
{
if(response)
{
if(Player[playerid][pMaskuse] == 0 || Player[playerid][pMaskuse] == 1)
{
switch(listitem)
{
case 0:
{
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
ShowPlayerNameTagForPlayer(i,playerid,0);
}
}
if(Player[playerid][pSex] == 1 || Player[playerid][pSex] == 0) SetPlayerSkin(playerid,29);
else SetPlayerSkin(playerid,93);
if(Player[playerid][pMaskuse] == 0)
{
f(string,"* %s одевает маскировку.",Player[playerid][pName]);
ProxDetector(15.0,playerid,string,COLOR_PURPLE);
SetPlayerColor(playerid,0xFFFFFF00);
Player[playerid][pMaskuse] = 1;
}
}
case 1:
{
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
ShowPlayerNameTagForPlayer(i,playerid,0);
}
}
if(Player[playerid][pSex] == 1 || Player[playerid][pSex] == 0) SetPlayerSkin(playerid,33);
else SetPlayerSkin(playerid,93);
if(Player[playerid][pMaskuse] == 0)
{
f(string,"* %s одевает маскировку.",Player[playerid][pName]);
ProxDetector(15.0,playerid,string,COLOR_PURPLE);
SetPlayerColor(playerid,0xFFFFFF00);
Player[playerid][pMaskuse] = 1;
}
}
case 2:
{
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
ShowPlayerNameTagForPlayer(i,playerid,0);
}
}
if(Player[playerid][pSex] == 1 || Player[playerid][pSex] == 0) SetPlayerSkin(playerid,101);
else SetPlayerSkin(playerid,93);
if(Player[playerid][pMaskuse] == 0)
{
f(string,"* %s одевает маскировку.",Player[playerid][pName]);
ProxDetector(15.0,playerid,string,COLOR_PURPLE);
SetPlayerColor(playerid,0xFFFFFF00);
Player[playerid][pMaskuse] = 1;
}
}
case 3:
{
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
ShowPlayerNameTagForPlayer(i,playerid,0);
}
}
if(Player[playerid][pSex] == 1 || Player[playerid][pSex] == 0) SetPlayerSkin(playerid,230);
else SetPlayerSkin(playerid,93);
if(Player[playerid][pMaskuse] == 0)
{
f(string,"* %s одевает маскировку.",Player[playerid][pName]);
ProxDetector(15.0,playerid,string,COLOR_PURPLE);
SetPlayerColor(playerid,0xFFFFFF00);
Player[playerid][pMaskuse] = 1;
}
}
case 4:
{
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
ShowPlayerNameTagForPlayer(i,playerid,0);
}
}
if(Player[playerid][pSex] == 1 || Player[playerid][pSex] == 0) SetPlayerSkin(playerid,93);
else SetPlayerSkin(playerid,93);
if(Player[playerid][pMaskuse] == 0)
{
f(string,"* %s одевает маскировку.",Player[playerid][pName]);
ProxDetector(15.0,playerid,string,COLOR_PURPLE);
SetPlayerColor(playerid,0xFFFFFF00);
Player[playerid][pMaskuse] = 1;
}
}
case 5:
{
if(Player[playerid][pMaskuse] == 0)
{
switch(Player[playerid][pSex])
{
case 1:send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Ты не одевал маскировку.");
case 2:send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Ты не одевала маскировку.");
}
return 1;
}
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
ShowPlayerNameTagForPlayer(i,playerid,1);
}
}
if(Player[playerid][pMember] == 0) SetPlayerSkin(playerid,Player[playerid][pChar]);
else SetPlayerSkin(playerid,Player[playerid][pChar]);
Player[playerid][pMaskuse] = 0;
f(string,"* %s снимает маскировку.",Player[playerid][pName]);
ProxDetector(15.0,playerid,string,COLOR_PURPLE);
SetPlayerColor(playerid,0xFFFFFF20);
}
}
}
}
return 1;
}

DeimoS
06.10.2018, 00:35
Можно. Как минимум, убрать проверку на онлайн внутри foreach. Так же можно весь идентичный код внутри case вынести за пределы switch