Skocz do zawartości

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

Pytania dotyczące klas


  • Zamknięty Temat jest zamknięty
26 odpowiedzi w tym temacie

#1 Krejzol

    Wszechpomocny

  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:357
Offline

Napisano 07.02.2011 21:20

Witam, posiadam wersję diablo 5.9l.

Mam pytanie a mianowicie:
1. Jak zrobić żeby dana klasa miała na nożu moc za pomocą której odnawia sobie magazynek?

Za każdą pomocną odpowiedź będę nagradzał.
  • +
  • -
  • 0

#2 KariiO

    Super Hero

  • Power User

Reputacja: 396
Wszechpomocny

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

Napisano 07.02.2011 21:35

case Twoja_Klasa:
		{
			show_hudmessage(id, "Dostales naboje.") 
			fm_give_item(id, "ammo_357sig")
			fm_give_item(id, "ammo_762nato")
			fm_give_item(id, "ammo_45acp")
			fm_give_item(id, "ammo_556nato")
			fm_give_item(id, "ammo_9mm")
			fm_give_item(id, "ammo_57mm")
			fm_give_item(id, "ammo_45acp")
			fm_give_item(id, "ammo_556nato")
			fm_give_item(id, "ammo_338magnum")
			fm_give_item(id, "ammo_556natobox")
			fm_give_item(id, "ammo_50ae")
			fm_give_item(id, "ammo_357sig")
			fm_give_item(id, "ammo_762nato")
			fm_give_item(id, "ammo_45acp")
			fm_give_item(id, "ammo_556nato")
			fm_give_item(id, "ammo_9mm")
			fm_give_item(id, "ammo_57mm")
			fm_give_item(id, "ammo_45acp")
			fm_give_item(id, "ammo_556nato")
			fm_give_item(id, "ammo_338magnum")
			fm_give_item(id, "ammo_556natobox")
			fm_give_item(id, "ammo_50ae")
			fm_give_item(id, "ammo_357sig")
			fm_give_item(id, "ammo_762nato")
			fm_give_item(id, "ammo_45acp")
			fm_give_item(id, "ammo_556nato")
			fm_give_item(id, "ammo_9mm")
			fm_give_item(id, "ammo_57mm")
			fm_give_item(id, "ammo_45acp")
			fm_give_item(id, "ammo_556nato")
			fm_give_item(id, "ammo_338magnum")
			fm_give_item(id, "ammo_556natobox")
			fm_give_item(id, "ammo_50ae")
		}
Oczywiście można krócej ale mam tak w swoim i działa to nie bd. eksperymentował :D

Do call_cast jeżeli chcesz żeby od razu dawało skróć czas na 0.0 , jeśli chodziło Ci że np. masz nóż i naciśniesz E to dostajesz to powiedz , załatwimy to inaczej...
  • +
  • -
  • 1

#3 Krejzol

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:357
Offline

Napisano 08.02.2011 16:21

O to mi chodziło. Kolejne pytania.

Jak zrobić żeby klasa X miała Y niewidzialności?(chodzi o zmniejszenie widoczności tej klasy)
Posiadam frakcje i mam tam bogów (klasy premium). Jak zrobić żeby tylko do tego menu mogli wchodzić gracze z odpowiednią flagą, a jeśli ktoś nie posiada to pokazywał mu się dany tekst?
Robiłem według tego tutoriala [Tutorial] Dodawnie mocy do klasy. - AMXX.pl: Support AMX Mod X lecz nie mam dodatkowych skoków w klasie. (Posiadam frakcje)
public ShowKlasy(id,lx[]) {
new text2[512]
asked_klass[id]=0
format(text2, 511,"\yPotwory: ^n\w1. \yAdariel^t\wLevel: \r%i^n\w2. \yMefisto^t\wLevel: \r%i^n\w3. \yDiablo^t\wLevel: \r%i^n\w4. \yBaal^t\wLevel: \r%i^n\w5. \ySzaman^t\wLevel: \r%i^n\w6. \ySzkielet^t\wLevel: \r%i^n\w7. \yIzual^t\wLevel: \r%i^n\w8. \yDuriel^t\wLevel: \r%i^n^n\r9. \wWstecz",player_class_lvl[id][9],player_class_lvl[id][10],player_class_lvl[id][11],player_class_lvl[id][12],player_class_lvl[id][13],player_class_lvl[id][14],player_class_lvl[id][15],player_class_lvl[id][16])

new szosta
szosta = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)
show_menu(id, szosta,text2, -1, "Klasy")

}
public PressedKlasy(id, key) {
/* Menu:
* Wybierz klase:
* 1:klasa1
* 2:klasa2
* 3:klasa3
* 4:klasa4
* 5:klasa5
* 6:klasa6
* 7:klasa7
* 8:klasa8
* 9:Wstecz
*/
new lx[19] // <-- tutaj wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0
odrodzenie[id] = 0
c_jump[id] = 0

switch (key) {
case 0:
{
player_class[id] = Adariel
c_jump[id] = 1
LoadXP(id, player_class[id])
}
case 1:
{
player_class[id] = Mefisto
LoadXP(id, player_class[id])
}
case 2:
{
player_class[id] = Diablo
odrodzenie[id] = 3
LoadXP(id, player_class[id])
}
case 3:
{
player_class[id] = Baal
c_jump[id] = 3
LoadXP(id, player_class[id])
}
case 4:
{
player_class[id] = Szaman
player_c_fireball[id] = 300
LoadXP(id, player_class[id])
}
case 5:
{
player_class[id] = Szkielet
LoadXP(id, player_class[id])
}
case 6:
{
player_class[id] = Izual
LoadXP(id, player_class[id])
}
case 7:
{
player_class[id] = Duriel
LoadXP(id, player_class[id])
}
case 8:
{
select_class(id,lx)
}
}
CurWeapon(id)
give_knife(id)
changeskin(id,1)

return PLUGIN_HANDLED
}

Tak to wygląda.

Użytkownik Krejzol edytował ten post 08.02.2011 16:47

  • +
  • -
  • 0

#4 dRaq

    Pomocny

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:69
  • Lokalizacja:Wawa
Offline

Napisano 08.02.2011 17:34

Jeżeli chodzi o frakcje i Premium to poszukaj
public select_class_menu(id, key)

o ile to było robione według poradnika.
następnie w danym Case od premium dodaj

 case 2: 
{
if( get_user_flags(id) & ADMIN_LEVEL_A)
{
Funkcja_odwołująca_do_publica_premium(id,lx)
}
else
{
set_hudmessage(220, 30, 30, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
show_hudmessage(id, "Tylko dla Premium")
}
}



Skoki:
Na pewno nie dodałeś tego w posthinku
znajdź
public client_PostThink( id )

zmień
if (player_b_jumpx[id] > 0) Postthink_Doubeljump(id)

na:
if (player_b_jumpx[id] > 0 || c_jump[id] > 0) Postthink_Doubeljump(id)

  • +
  • -
  • 0

#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 08.02.2011 17:34

Co do skoków -> Problem - Tutorial - AMXX.pl: Support AMX Mod X

P.S. Po co w każdym "case" dodajesz "LoadXP(id, player_class[id])"?

Użytkownik sebul edytował ten post 08.02.2011 17:36

  • +
  • -
  • 1

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


#6 Krejzol

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:357
Offline

Napisano 08.02.2011 18:00

P.S. Po co w każdym "case" dodajesz "LoadXP(id, player_class[id])"?


Gdy posiadam na serwerze prawie 20 klas, serwer troche przymula załadowanie klas a gdy jest użyte w/w komenda to od razu załapuje :-)

P.S. Jak zrobić żeby klasa miała mniejszą widoczność ?
  • +
  • -
  • 0

#7 dRaq

    Pomocny

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:69
  • Lokalizacja:Wawa
Offline

Napisano 08.02.2011 18:31

W miejsce XXX!!! wstaw widoczność (max. 255 - normalnie)

else if (player_class[id] == TwojaKlasa
{
new inv_bonus = 255 - player_b_inv[id]
render = XXX!!!

if(player_b_inv[id]>0)
{
while(inv_bonus>0)
{
inv_bonus-=XXX!!!
render--
}
}

if(player_b_usingwind[id]==1)
{
render/=2
}

if(render<0) render=0

if(HasFlag(id,Flag_Moneyshield)||HasFlag(id,Flag_Rot)||HasFlag(id,Flag_Teamshield_Target)) render*=2

set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, render)
}

  • +
  • -
  • 1

#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 08.02.2011 18:34

Gdy posiadam na serwerze prawie 20 klas, serwer troche przymula załadowanie klas a gdy jest użyte w/w komenda to od razu załapuje :-)

A nie lepiej tak
(...)
case 6:
{
player_class[id] = Izual
}
case 7:
{
player_class[id] = Duriel
}
case 8:
{
select_class(id,lx)
return PLUGIN_HANDLED
}
}
LoadXP(id, player_class[id])
CurWeapon(id)
(...)

?? Wychodzi na to samo...

Użytkownik sebul edytował ten post 08.02.2011 18:34

  • +
  • -
  • 1

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


#9 Krejzol

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:357
Offline

Napisano 08.02.2011 18:36

@Skrzato
A do której funkcji to podpiąć?
@sebul
No wydaje się że to samo ale tak naprawdę nie jest to to samo, wychodzi w na serwerze że gdy jest przy każdej postaci to szybciej łapie.
  • +
  • -
  • 0

#10 dRaq

    Pomocny

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:69
  • Lokalizacja:Wawa
Offline

Napisano 08.02.2011 18:37

public set_renderchange(id)
  • +
  • -
  • 1

#11 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 08.02.2011 18:38

Znajdź w "set_renderchange"
if (player_class[id] == Ninja)

i tam niżej dodaj ten kod, a co do tego wczytywania, to u mnie nie ma z tym problemu.

Użytkownik sebul edytował ten post 08.02.2011 18:39

  • +
  • -
  • 1

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


#12 Krejzol

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:357
Offline

Napisano 08.02.2011 18:47

Dobra dziękuje, działa + lecą.

Jak zrobić żeby danej klasy nie było słychać kroków?
Jak zrobić żeby dana klasa mogła osiągnąć tylko określoną ilość danej statystyki? Np. maksymalnie może posiadać 50 inteligencji
  • +
  • -
  • 0

#13 dRaq

    Pomocny

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:69
  • Lokalizacja:Wawa
Offline

Napisano 08.02.2011 18:50


public client_PreThink ( id )

zmień

if (((player_b_silent[id] > 0) || (player_class[id] == Zabojca)) && is_user_alive(id))
entity_set_int(id, EV_INT_flTimeStepSound, 300)

na:

if (((player_b_silent[id] > 0) || (player_class[id] == Zabojca) || (player_class[id] == TwojaKlasa)) && is_user_alive(id))
entity_set_int(id, EV_INT_flTimeStepSound, 300)



Co do 2 to najprostszy sposób:

public skill_menu(id, key)

i zmieniasz każde:

if (player_intelligence[id]<200)

na:

if ((player_intelligence[id]<XXX && player_class[id]==TwojaKlasa) || (player_intelligence[id]<XXX && player_class[id]==TwojaKlasa2))

i tak dalej dla każdej klasy, to jest najprostszy, aczkolwiek upierdliwy sposób

Użytkownik Skrzato edytował ten post 08.02.2011 18:58

  • +
  • -
  • 1

#14 Krejzol

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:357
Offline

Napisano 08.02.2011 19:20

A jakiś inny sposób? Bo do 20 klas będzie troche długo się to robiło
  • +
  • -
  • 0

#15 dRaq

    Pomocny

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:69
  • Lokalizacja:Wawa
Offline

Napisano 08.02.2011 20:04

czy tu czy w jakimś publicu, i tak byś zapewne musiał zdefiniować to wszystko, więc nie mam co sobie głowy innymi rozwiązaniami zawracać :D
  • +
  • -
  • 1

#16 KariiO

    Super Hero

  • Power User

Reputacja: 396
Wszechpomocny

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

Napisano 08.02.2011 21:11

Daj warunek że jeżeli ma "tą" flagę ma inne max skille a jak nie to standardowe czy jakie tam chcesz...
Wygląda to mało skomplikowanie:
Warunek na 4 max skille + powpisywanie...
  • +
  • -
  • 1

#17 dRaq

    Pomocny

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:69
  • Lokalizacja:Wawa
Offline

Napisano 08.02.2011 21:51

O ile dobrze zrozumiałem to chodzi Ci o to że Premium moga mieć więcej statystyk.
Jeżeli tak to zastosuj takie rozwiązanie:

if( get_user_flags(id) & ADMIN_LEVEL_A)
{
if(player_intelligence[id]<250)
{
player_point[id]-=1
player_intelligence[id]+=1
}
else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety")
}
else if(player_intelligence[id]<200)
{
player_point[id]-=1
player_intelligence[id]+=1
}
else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety")
}


Tu gdzie 250 to jest max premium, a tu gdzie 200 to zwykly

Użytkownik Skrzato edytował ten post 08.02.2011 21:53

  • +
  • -
  • 0

#18 Krejzol

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:357
Offline

Napisano 09.02.2011 18:54

A jeśli chcę by dana klasa miała max. skilla to muszę tak
                if(player_class[id] == NazwaKlasy)
{
if(player_intelligence[id]<250)
{
player_point[id]-=1
player_intelligence[id]+=1
}
else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety")
}
else if(player_intelligence[id]<200)
{
player_point[id]-=1
player_intelligence[id]+=1
}
else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety")
}

?
  • +
  • -
  • 0

#19 dRaq

    Pomocny

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:69
  • Lokalizacja:Wawa
Offline

Napisano 09.02.2011 19:39

W zasadzie będzie działać, ale upierdliwy sposób, ten wyżej lepszy ;D
  • +
  • -
  • 1

#20 Krejzol

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:357
Offline

Napisano 09.02.2011 19:45

@up
Chcę tylko, do danej klasy.

Jak zrobić żeby dana klasa mogła osiągnąć tylko określoną ilość danej statystyki? Np. maksymalnie może posiadać 50 inteligencji


Dodatkowe pytania

Jak zrobić by dana klasa miała 1/x na oślepienie gracza? (ala b_blink)
Jak zrobić by dana klasa dostawała więcej kasy na start?
  • +
  • -
  • 0




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

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