Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Tutorial

Item nie dla każdego

Tutorial

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
9 odpowiedzi w tym temacie

#1 FreZZy

    Guru

  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 10.03.2011 17:05

*
Popularny

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:

}
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


#2 dRaq

    Pomocny

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:69
  • Lokalizacja:Wawa
Offline

Napisano 10.03.2011 18:41

można to na jednym if'ie zrobić, zamiast mieszać tyle

 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

  • +
  • -
  • 2

#3 FreZZy

    Guru

  • Autor tematu
  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 10.03.2011 18:52

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

#4 dRaq

    Pomocny

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:69
  • Lokalizacja:Wawa
Offline

Napisano 10.03.2011 23:00

Teraz mogę + dać ;]
aczkolwiek jest jeszcze jedna możliwość dania tego bezpośrednio w case itemu :D

Użytkownik dRaq edytował ten post 10.03.2011 23:01

  • +
  • -
  • 1

#5 KariiO

    Super Hero

  • Power User

Reputacja: 395
Wszechpomocny

  • Postów:1133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 11.03.2011 11:01

Według mnie raczej zbędny poradnik...
Poszukali by troszkę to by znaleźli...
Blokada itemu dla klasy. - AMXX.pl: Support AMX Mod X
  • +
  • -
  • 0

#6 FreZZy

    Guru

  • Autor tematu
  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 11.03.2011 14:56

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

#7 KariiO

    Super Hero

  • Power User

Reputacja: 395
Wszechpomocny

  • Postów:1133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 11.03.2011 16:35

Jak by nie działał to bym go nie dawał chyba logiczne...
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

  • +
  • -
  • 0

#8 FreZZy

    Guru

  • Autor tematu
  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 13.03.2011 21:49

bez sensu jak jest jedna, 2 klasy - dobre jak są wszystkie

#9 Karmi1

    Pomocny

  • Użytkownik

Reputacja: 0
zer0.

  • Postów:61
  • Lokalizacja:Gdańsk
Offline

Napisano 08.04.2011 00:31

A jak zrobić aby item był tylko dla trzech klas? (Zablokować 17 innym)
  • +
  • -
  • 0

#10 FreZZy

    Guru

  • Autor tematu
  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 08.04.2011 16:47

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





Również z jednym lub większą ilością słów kluczowych: Tutorial

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych