Zrobienie funkcji (stocka) do kodu
sebul
28.05.2011
Witam. Mam taki kod
i nie bardzo wiem jak to napisać, żeby zrobić z tego stock, który będzie zwracał true, albo false. Oczywiście numerki w "disallowed" mają się zmieniać w zależności co wpiszemy do stocka. Może ktoś mógłby napisać taki stock? Albo może jest już coś podobnego?
Pseudo kod
new disallowed[] = { CSW_SCOUT, CSW_XM1014, CSW_MAC10 }
new weapons[32], num, bool:has = false;
get_user_weapons(id, weapons, num);
for(new i=0; i<num; i++) {
for(new o=0; o<sizeof(disallowed); o++) {
if(weapons[i] == disallowed[o]) {
has = true;
break;
}
}
if(has) break;
}
i nie bardzo wiem jak to napisać, żeby zrobić z tego stock, który będzie zwracał true, albo false. Oczywiście numerki w "disallowed" mają się zmieniać w zależności co wpiszemy do stocka. Może ktoś mógłby napisać taki stock? Albo może jest już coś podobnego?
Pseudo kod
stock bronie(id, id_wybranych_broni) {
new disallowed[] = { id_wybranych_broni }
new weapons[32], num, bool:has = false;
get_user_weapons(id, weapons, num);
for(new i=0; i<num; i++) {
for(new o=0; o<sizeof(disallowed); o++) {
if(weapons[i] == disallowed[o]) {
has = true;
break;
}
}
if(has) break;
}
}
Knopers
28.05.2011
o to ci chodzi ?
stock bool:bronie(id, disallowed[])
{
new weapons[32], num, bool:has = false;
get_user_weapons(id, weapons, num);
for(new i=0; i<num; i++)
{
for(new o = 0; o < sizeof(disallowed); o++)
{
if(weapons[i] == disallowed[o])
{
has = true;
break;
}
if(has) break;
}
}
return has;
}
sebul
28.05.2011
No mniej więcej, ale tutaj chyba najpierw będę musiał zrobić tablicę z id broni...? Nie da się tak, żeby od razu w funkcji "bronie" w miejsce "disallowed" wypisywało by się te id?
Dodano 28 maj 2011 - 18:45:
Dodano 28 maj 2011 - 19:00:
Zrobiłem tak
I błędów nie ma, sprawdza chyba też dobrze, szkoda tylko, że nie da się jeszcze tego ukrócić (chyba), ale tak też może być. Można zamknąć.
Użytkownik sebul edytował ten post 28.05.2011 18:00
Dodano 28 maj 2011 - 18:45:
Warning: Indeterminate array size in "sizeof" expression (symbol "") on line 1911Hmmm... Chyba trzeba to zrobić trochę inaczej, ale już wiem jak, tak jak w taskach powinno być dobrze, zaraz sprawdzę.
Dodano 28 maj 2011 - 19:00:
Zrobiłem tak
new disallowed[] = { CSW_SCOUT, CSW_XM1014, CSW_MAC10 }
new bool:mabronie = sprawdz_bronie(id, disallowed, sizeof(disallowed));
stock bool:sprawdz_bronie(id, disallowed[], ile) {
new weapons[32], num, bool:has = false;
get_user_weapons(id, weapons, num);
for(new i=0; i<num; i++) {
for(new o=0; o<ile; o++) {
if(weapons[i] == disallowed[o]) {
has = true;
break;
}
}
if(has) break;
}
return has;
}
I błędów nie ma, sprawdza chyba też dobrze, szkoda tylko, że nie da się jeszcze tego ukrócić (chyba), ale tak też może być. Można zamknąć.
Użytkownik sebul edytował ten post 28.05.2011 18:00