PDA

Просмотр полной версии : [Вопрос] Сократить функцию



DmX
29.05.2016, 04:51
Помогите сократить функцию.


Null3dKoikaSF(playerid)
{
switch(pTemp[playerid][pKoikasf])
{
case 0:
{
koika[0] = false;
}
case 1:
{
koika[1] = false;
}
case 1:
{
koika[2] = false;
}
}
Update3dKoikaSF(playerid);
}


Update3dKoikaSF(playerid)
{
new mes[64];
if(koika[0] == false)
{
Update3DTextLabelText(dkoika[0],0xFFFFFFFF,"Место для лечения\nИспользуйте: {00BFFF}F");
}
else
{
format(mes, sizeof(mes), "Пациент: {ffffff}%s\n{FFFF00}Ждёт приёма врача!",pData[playerid][pNickname]);
Update3DTextLabelText(dkoika[0],0xFFFF00FF,mes);
}
if(koika[1] == false)
{
Update3DTextLabelText(dkoika[1],0xFFFFFFFF,"Место для лечения\nИспользуйте: {00BFFF}F");
}
else
{
format(mes, sizeof(mes), "Пациент: {ffffff}%s\n{FFFF00}Ждёт приёма врача!",pData[playerid][pNickname]);
Update3DTextLabelText(dkoika[1],0xFFFF00FF,mes);
}
}

Jonick
29.05.2016, 09:58
Можно использовать цикл

for(new i=0;i<2;i++)
if(koika[i] == false)
И так далее)

Nash_Brigers
29.05.2016, 11:38
типа того:

Null3dKoikaSF(playerid)
{
koika[pTemp[playerid][pKoikasf]] = false;
Update3dKoikaSF(playerid, pTemp[playerid][pKoikasf]);
}

Update3dKoikaSF(playerid, pq)
{
new mes[64];
if(!koika[pq])
format(mes, sizeof mes, "Место для лечения\nИспользуйте: {00BFFF}F");
else
format(mes, sizeof mes, "Пациент: {ffffff}%s\n{FFFF00}Ждёт приёма врача!", pData[playerid][pNickname]);
Update3DTextLabelText(dkoika[pq], koika[pq] ? 0xFFFF00FF : 0xFFFFFFFF, mes);
}

L0ndl3m
29.05.2016, 14:02
Nash_Brigers, не стоит забывать, что тернарная инструкция это тот же оператор "if", но он расписывается короче (не более того).
Так что в вашем случае Update3DTextLabelText нужно поместить в каждую ветку условий.

Nash_Brigers
29.05.2016, 14:21
Nash_Brigers, не стоит забывать, что тернарная инструкция это тот же оператор "if", но он расписывается короче (не более того).
Так что в вашем случае Update3DTextLabelText нужно поместить в каждую ветку условий.
Я ни о чём не забывал.

Автору:

Null3dKoikaSF(playerid)
{
koika[pTemp[playerid][pKoikasf]] = false;
Update3dKoikaSF(playerid, pTemp[playerid][pKoikasf]);
}

Update3dKoikaSF(playerid, pq)
{
if(!koika[pq])
Update3DTextLabelText(dkoika[pq], 0xFFFFFFFF, "Место для лечения\nИспользуйте: {00BFFF}F");
else
{
new mes[64];
format(mes, sizeof mes, "Пациент: {ffffff}%s\n{FFFF00}Ждёт приёма врача!", pData[playerid][pNickname]);
Update3DTextLabelText(dkoika[pq], 0xFFFF00FF, mes);
}
}