Jak napisać, by pokazało obok siebie?
Kukol 04.09.2011
Witam! Mam task który wykonuje się bez przerwy co 0.1 sekundę, a w nim mam pewną funkcję, a wniej chciałbym coś takiego:
Mam zmienne:
Teraz jak wykonać coś takiego:
Gdy gracz ma effects[index][1] oraz effects[index][2] > 0 to ma pokazać:
"Nazwa Efektu 1, Nazwa Efektu 2", a gdy ma tylko jedną zmienną ustawioną na jeden to ma pokazać jedną nazwę? Efektów mam około 15..
Mam zmienne:
enum _:effects_skill { Brak = 0,
EFEKT1
EFEKT2
};
new effects[33][effects_skill];
new name_effects[][] = {
"Nazwa Efektu 1",
"Nazwa Efektu 2"
};
Teraz jak wykonać coś takiego:
Gdy gracz ma effects[index][1] oraz effects[index][2] > 0 to ma pokazać:
"Nazwa Efektu 1, Nazwa Efektu 2", a gdy ma tylko jedną zmienną ustawioną na jeden to ma pokazać jedną nazwę? Efektów mam około 15..
DarkGL
04.09.2011
for(new i = 0;i<15;i++){ if(effects[id][i] == 1) client_print(id,3,name_effects[i]); }
Muzzi
04.09.2011
Jeżeli chodzi o to co dał dark to można prościej.
for(new i = 0;i<sizeof(effects);i++){
if(effects[id][i] == 1) client_print(id,3,name_effects[i]);
}
DarkGL
04.09.2011
lub jeszcze prościej
for(new i = 0;i<sizeof(effects);i++) if(effects[id][i]) client_print(id,3,name_effects[i]);
Kukol 04.09.2011
Sam sobie poradziłem, chodziło mi o takie coś:
public Pokaz_Effekt(id)
{
new nazwa_efektu[effects_skill][250], licz, message[512];
new len = formatex(message, 249, "");
for(new i = 1; i < effects_skill; i++)
{
if(effects[id][i] > 0)
{
formatex(nazwa_efektu[licz++], 511, "%s", name_effects[i])
}
}
if(licz > 0)
{
for(new x = 0; x <= licz; x++)
{
len += formatex(message[len], 511 - len, "%s%s", nazwa_efektu[x], x < (licz-1) ? ", ":"")
}
}
set_hudmessage(255, 0, 0, 0.12, 0.0, 0, 6.0, 3.0)
show_hudmessage(id, "%s", message);
}