PDA

Просмотр полной версии : [Вопрос] Помогите с реализацией.



kala4iks
20.11.2015, 09:34
вообщем сейчас у меня вот так.


if(newkeys & 512)
{
if(GetPlayerState(playerid) == 2 && !IsAVelo(GetPlayerVehicleID(playerid)))
{
new vid = GetPlayerVehicleID(playerid);
new string1[1028],string2[1028],chat1[20],chat2[20],chat3[20],chat4[20],chat5[20],chat6[20];
if(Doors[vid] == 1) chat1 = "{00CC00}Открыть";
if(Doors[vid] == 0) chat1 = "{FF0000}Закрыть";
if(Engine[vid] == 1) chat2 = "{FF0000}Заглушить";
if(Engine[vid] == 0) chat2 = "{00CC00}Завести";
if(Light[vid] == 1) chat3 = "{FF0000}Выключить";
if(Light[vid] == 0) chat3 = "{00CC00}Включить";
if(Bonnet[vid] == 1)chat4 = "{FF0000}Закрыть";
if(Bonnet[vid] == 0)chat4 = "{00CC00}Открыть";
if(Boot[vid] == 1) chat5 = "{FF0000}Закрыть";
if(Boot[vid] == 0) chat5 = "{00CC00}Окрыть";
if(Player[playerid][pJob] == 6 || Player[playerid][pJob] == 3 || Player[playerid][pJob] == 1 && IsATruckE(GetPlayerVehicleID(playerid))) chat6 = "{FF0000}Работа";
f(string1,"Двери\t\t\t{FFFF00} |%s\nДвигатель\t\t{FFFF00} |%s\nФары\t\t\t{FFFF00} |%s\nКапот\t\t\t{FFFF00} |%s\nБагажник\t\t{FFFF00} |%s",chat1,chat2,chat3,chat4,chat5);
ShowPlayerDialog(playerid,DIALOG_CONTROLAUTO,DIALOG_STYLE_LIST,"{33CCFF}Контроль транспорта",string1,"Выбрать","Закрыть");
if(Player[playerid][pJob] == 6 || Player[playerid][pJob] == 3 || Player[playerid][pJob] == 1 && IsATruckE(GetPlayerVehicleID(playerid)))
f(string2,"Двери\t\t\t{FFFF00} |%s\nДвигатель\t\t{FFFF00} |%s\nФары\t\t\t{FFFF00} |%s\nКапот\t\t\t{FFFF00} |%s\nБагажник\t\t{FFFF00} |%s\n\nОсобое\t\t{FFFF00} |%s",chat1,chat2,chat3,chat4,chat5,chat6);
ShowPlayerDialog(playerid,DIALOG_CONTROLAUTO,DIALOG_STYLE_LIST,"{33CCFF}Контроль транспорта",string2,"Выбрать","Закрыть");
return 1;
}
}

А как это все переделать вот в такой код?


(!Player[targetid][pMotoLic] ? ("Нету") : ("Есть"))

Я пробовал вот так но чет не чего.


if(newkeys & 512)
{
if(GetPlayerState(playerid) == 2 && !IsAVelo(GetPlayerVehicleID(playerid)))
{
new vid = GetPlayerVehicleID(playerid);
new string1[1028],string2[1028];
f(string1,"Двери\t\t\t{FFFF00} |%s\nДвигатель\t\t{FFFF00} |%s\nФары\t\t\t{FFFF00} |%s\nКапот\t\t\t{FFFF00} |%s\nБагажник\t\t{FFFF00} |%s",
(!Doors[vid] ? ("{00CC00}Открыть") : ("{FF0000}Закрыть")),
(!Engine[vid] ? ("{FF0000}Заглушить") : ("{00CC00}Завести")),
(!Light[vid] ? ("{FF0000}Выключить") : ("{00CC00}Включить")),
(!Bonnet[vid] ? ("{FF0000}Закрыть") : ("{00CC00}Открыть")),
(!Boot[vid] ? ("{FF0000}Закрыть") : ("{00CC00}Окрыть")));
ShowPlayerDialog(playerid,DIALOG_CONTROLAUTO,DIALOG_STYLE_LIST,"{33CCFF}Контроль транспорта",string1,"Выбрать","Закрыть");
f(string2,"Двери\t\t\t{FFFF00} |%s\nДвигатель\t\t{FFFF00} |%s\nФары\t\t\t{FFFF00} |%s\nКапот\t\t\t{FFFF00} |%s\nБагажник\t\t{FFFF00} |%s\n\nОсобое\t\t{FFFF00} |%s",
(!Doors[vid] ? ("{00CC00}Открыть") : ("{FF0000}Закрыть")),
(!Engine[vid] ? ("{FF0000}Заглушить") : ("{00CC00}Завести")),
(!Light[vid] ? ("{FF0000}Выключить") : ("{00CC00}Включить")),
(!Bonnet[vid] ? ("{FF0000}Закрыть") : ("{00CC00}Открыть")),
(!Boot[vid] ? ("{FF0000}Закрыть") : ("{00CC00}Окрыть")),
(Player[playerid][pJob] == 6 || Player[playerid][pJob] == 3 || Player[playerid][pJob] == 1 && IsATruckE(GetPlayerVehicleID(playerid) ? ("Нету") : ("{FF0000}Работа")));
ShowPlayerDialog(playerid,DIALOG_CONTROLAUTO,DIALOG_STYLE_LIST,"{33CCFF}Контроль транспорта",string2,"Выбрать","Закрыть");
return 1;
}
}

Daniel_Cortez
20.11.2015, 13:18
В ваше примере много кода, поэтому я объясню на чём-нибудь попроще.

Допустим, есть такой код:


new x = random(1000);
new string[22];
new tmp[9];
if(x % 2 != 0)
tmp = "нечётное";
else
tmp = "чётное";
format(string, sizeof(string), "Выпало %s число", tmp);
SendClientMessage(playerid, -1, string);


Шаг 1: меняем ветвление (if) на тернарное выражение.


new x = random(1000);
new string[22];
new tmp[9];
tmp = (x % 2 != 0) ? ("нечётное") : ("чётное");
format(string, sizeof(string), "Выпало %s число", tmp);
SendClientMessage(playerid, -1, string);


Шаг 2: избавляемся от лишнего массива (tmp), выносим выражение внутрь вызова функции format.


new x = random(1000);
new string[22];
format(string, sizeof(string), "Выпало %s число", (x % 2 != 0) ? ("нечётное") : ("чётное"));
SendClientMessage(playerid, -1, string);


Шаг 3: PROFIT.

kala4iks
20.11.2015, 19:42
Вообщем вот как у меня сейчас.

Вот если я не устроин на работу.

http://rghost.ru/7FTCyzy5z/image.png (http://rghost.ru/7FTCyzy5z.view)

А вот я устроин на работу

http://rghost.ru/8fgThpYdL/image.png (http://rghost.ru/8fgThpYdL.view)

Так как реализовать именно в такой системе.

Вот эту строку


if(Player[playerid][pJob] == 6 || Player[playerid][pJob] == 3 || Player[playerid][pJob] == 1 && IsATruckE(GetPlayerVehicleID(playerid))) chat6 = "{FF0000}Работа";


(!Player[targetid][pMotoLic] ? ("Нету") : ("Есть"))