Item nie dla każdego
FreZZy
10.03.2011
Witam,
wiele już osób mnie pytało jak zrobić, żeby taki a taki item nie działał na takiej a takiej klasie. Ja wam zaprezentuje jak to zrobić. Do tego celu zablokujemy klasie Ninja itemków Fireshield, Arch Angel Wings oraz Small Angel Wings, a klasie Hunter (Łowca) itemka Stalkers Ring.
Zaczynamy zabawę:
* na samym początku tworzymy funkcję, która powoduje wywalenie i losowanie nowego itemku dla danej klasy
w public award_item(id, itemnum), pod ostatnim case swoich itemów, zamiast:
daj:
dlaczego tam są takie liczby jak 10, 11, 30, 17? Ponieważ są to case itemów o które nam chodzi.
Pamiętaj! Jak zmieniasz itemy w diablo to upewnij się że pod case które podałem masz na pewno te same itemy!
Użytkownik FreZZy edytował ten post 10.03.2011 18:51
wiele już osób mnie pytało jak zrobić, żeby taki a taki item nie działał na takiej a takiej klasie. Ja wam zaprezentuje jak to zrobić. Do tego celu zablokujemy klasie Ninja itemków Fireshield, Arch Angel Wings oraz Small Angel Wings, a klasie Hunter (Łowca) itemka Stalkers Ring.
Zaczynamy zabawę:
* na samym początku tworzymy funkcję, która powoduje wywalenie i losowanie nowego itemku dla danej klasy
w public award_item(id, itemnum), pod ostatnim case swoich itemów, zamiast:
}
BoostRing(id)
return PLUGIN_CONTINUE
}
daj:
}
wywal_item(id)
BoostRing(id)
return PLUGIN_CONTINUE
}
public wywal_item(id)
{
if(player_class[id] == Ninja) //dlatego że nie chcemy tych itemków na ninjy
{
if(player_item_id[id]==10) //smalle
{
dropitem(id)
award_item(id,0)
}
else if(player_item_id[id]==11) //archy
{
dropitem(id)
award_item(id,0)
}
else if(player_item_id[id]==30) //fireshield
{
dropitem(id)
award_item(id,0)
}
}
else if(player_class[id] == Hunter)
{
if(player_item_id[id]==17) //stalker
{
dropitem(id)
award_item(id,0)
}
}
}
dlaczego tam są takie liczby jak 10, 11, 30, 17? Ponieważ są to case itemów o które nam chodzi.
Pamiętaj! Jak zmieniasz itemy w diablo to upewnij się że pod case które podałem masz na pewno te same itemy!
Użytkownik FreZZy edytował ten post 10.03.2011 18:51
dRaq
10.03.2011
można to na jednym if'ie zrobić, zamiast mieszać tyle
i tak dalej "||" to nic innego jak "lub"
i nie wiem czy on nie wywołuje najpierw award item, a później go wyrzuca? nie logiczne dropitem zamienić miejscami z award
Użytkownik dRaq edytował ten post 10.03.2011 18:43
if(player_item_id[id]==10 || player_item_id[id]==XX)
i tak dalej "||" to nic innego jak "lub"
i nie wiem czy on nie wywołuje najpierw award item, a później go wyrzuca? nie logiczne dropitem zamienić miejscami z award
Użytkownik dRaq edytował ten post 10.03.2011 18:43
FreZZy
10.03.2011
poprawiłem dzięki 
tak, ale chciałem żeby to było widocznie i czytelnie, a używając else if nie traci się dużo więcej na wydajności niż przy ||
tak, ale chciałem żeby to było widocznie i czytelnie, a używając else if nie traci się dużo więcej na wydajności niż przy ||
dRaq
10.03.2011
Teraz mogę + dać ;]
aczkolwiek jest jeszcze jedna możliwość dania tego bezpośrednio w case itemu
Użytkownik dRaq edytował ten post 10.03.2011 23:01
aczkolwiek jest jeszcze jedna możliwość dania tego bezpośrednio w case itemu
Użytkownik dRaq edytował ten post 10.03.2011 23:01
KariiO
11.03.2011
Według mnie raczej zbędny poradnik...
Poszukali by troszkę to by znaleźli...
Blokada itemu dla klasy. - AMXX.pl: Support AMX Mod X
Poszukali by troszkę to by znaleźli...
Blokada itemu dla klasy. - AMXX.pl: Support AMX Mod X
FreZZy
11.03.2011
KariiO
po pierwsze ten twoj kod nie działa
losuje itemek w itemku
po drugie w tutkach specjalnie umieściłem żeby było wiadomo który kod śmiga
po pierwsze ten twoj kod nie działa
po drugie w tutkach specjalnie umieściłem żeby było wiadomo który kod śmiga
KariiO
11.03.2011
Jak by nie działał to bym go nie dawał chyba logiczne...
A działa bo sam mam na serwerze...
Edit1@
Użytkownik KariiO edytował ten post 12.03.2011 11:09
A działa bo sam mam na serwerze...
Edit1@
public wywal_item(id)
{
switch(player_class[id])
{
case Ninja:
{
if(player_item_id[id]==10) //smalle
{
dropitem(id)
award_item(id,0)
}
else if(player_item_id[id]==11) //archy
{
dropitem(id)
award_item(id,0)
}
else if(player_item_id[id]==30) //fireshield
{
dropitem(id)
award_item(id,0)
}
}
case Hunter:
{
if(player_item_id[id]==17) //stalker
{
dropitem(id)
award_item(id,0)
}
}
}
}
Użytkownik KariiO edytował ten post 12.03.2011 11:09
FreZZy
08.04.2011
public wywal_item(id)
{
if(player_class[id] != Klasa1 || player_class[id] != Klasa2 || player_class[id] != Klasa3)
{
if(player_item_id[id]== XX )
{
dropitem(id)
award_item(id,0)
}
}
}
Klasa1, Klasa2, Klasa3 - twoje 3 klasy, dla których ma być ten itemek dostępny
XX - numer case itemka




