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.
|
Pytania dotyczące klas
#1
Napisano 07.02.2011 21:20
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ł.
#2
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ł
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...
#3
Napisano 08.02.2011 16:21
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
#4
Napisano 08.02.2011 17:34
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)
#5
Napisano 08.02.2011 17:34
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
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#6
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ść ?
#7
Napisano 08.02.2011 18:31
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)
}
#8
Napisano 08.02.2011 18:34
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
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#9
Napisano 08.02.2011 18:36
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.
#10
Napisano 08.02.2011 18:37
#11
Napisano 08.02.2011 18:38
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
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#12
Napisano 08.02.2011 18:47
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
#13
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
#14
Napisano 08.02.2011 19:20
#15
Napisano 08.02.2011 20:04
#16
Napisano 08.02.2011 21:11
Wygląda to mało skomplikowanie:
Warunek na 4 max skille + powpisywanie...
#17
Napisano 08.02.2011 21:51
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
#18
Napisano 09.02.2011 18:54
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")
}
?
#19
Napisano 09.02.2011 19:39
#20
Napisano 09.02.2011 19:45
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?
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych