Pytania dotyczące klas
Krejzol
07.02.2011
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ł.
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ł.
KariiO
07.02.2011
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ł
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...
Krejzol
08.02.2011
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)
Tak to wygląda.
Użytkownik Krejzol edytował ten post 08.02.2011 16:47
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
dRaq
08.02.2011
Jeżeli chodzi o frakcje i Premium to poszukaj
o ile to było robione według poradnika.
następnie w danym Case od premium dodaj
Skoki:
Na pewno nie dodałeś tego w posthinku
znajdź
zmień
na:
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)
sebul
08.02.2011
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
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
Krejzol
08.02.2011
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ść ?
dRaq
08.02.2011
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)
}
sebul
08.02.2011
A nie lepiej takGdy 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
(...)
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
Krejzol
08.02.2011
@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.
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.
sebul
08.02.2011
Znajdź w "set_renderchange"
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
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
Krejzol
08.02.2011
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
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
dRaq
08.02.2011
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
dRaq
08.02.2011
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ć
KariiO
08.02.2011
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...
Wygląda to mało skomplikowanie:
Warunek na 4 max skille + powpisywanie...
dRaq
08.02.2011
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:
Tu gdzie 250 to jest max premium, a tu gdzie 200 to zwykly
Użytkownik Skrzato edytował ten post 08.02.2011 21:53
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
Krejzol
09.02.2011
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")
}
?
Krejzol
09.02.2011
@up
Chcę tylko, do danej klasy.
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?
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?