Jump to content

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Posted Image Posted Image

Guest Message by DevFuse
 

Photo

Zrobienie funkcji (stocka) do kodu


  • This topic is locked This topic is locked
2 replies to this topic

#1 sebul

    Godlike

  • Przyjaciel

Reputacja: 2,035
Godlike

  • Postów:5,411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Posted 28.05.2011 16:12

Witam. Mam taki 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;
}
}

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#2 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2,013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Posted 28.05.2011 16:53

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;
}

  • +
  • -
  • 1

#3 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2,035
Godlike

  • Postów:5,411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Posted 28.05.2011 17:12

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:
Warning: Indeterminate array size in "sizeof" expression (symbol "") on line 1911
Hmmm... 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ąć.

Edited by sebul, 28.05.2011 18:00.

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users