/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <fun> #include <zombieplague> #define MAX_HEALTH 1100 #define INTERVAL 5.0 new ZM_HEALTH_ADD new ZM_HEALTH_MAX new const zclass_name[] = { "Biohazard Zombie" } new const zclass_info[] = { "HP-- HP REGENERATION++ SPEED-" } new const zclass_model[] = { "zombie_source" } new const zclass_clawmodel[] = { "v_knife_zombie.mdl" } const zclass_health = 1100 const zclass_speed = 190 const Float:zclass_gravity = 0.8 const Float:zclass_knockback = 1.0 new g_zclass_biohazard public plugin_precache() { g_zclass_biohazard = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) } public plugin_init() { register_plugin("[ZP] Class: Biohazard Zombie", "1.0", "Ortega") ZM_HEALTH_ADD = register_cvar("zp_bio_addhealth", "100") ZM_HEALTH_MAX = register_cvar("zp_bio_maxhealth", "1100") set_task(INTERVAL, "healing", 123, "", 0, "b") } public healing(id) { new addhealth = get_pcvar_num(ZM_HEALTH_ADD) if (!addhealth) return PLUGIN_CONTINUE new maxhealth = get_pcvar_num(ZM_HEALTH_MAX) if (maxhealth > MAX_HEALTH) { set_pcvar_num(ZM_HEALTH_MAX, MAX_HEALTH) maxhealth = MAX_HEALTH } new health = get_user_health(id) if (is_user_alive(id) || !zp_get_user_zombie(id)) return PLUGIN_CONTINUE if (zp_get_user_zombie_class(id) != g_zclass_biohazard) return PLUGIN_CONTINUE if (is_user_alive(id) && (health < maxhealth)) { set_user_health(id, health + addhealth) } else if(remove_task(123)) return PLUGIN_HANDLED }
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.
|
Guest Message by DevFuse
Biohazard Zombie
Temat rozp. Ortega, 10.11.2009 20:13
9 odpowiedzi w tym temacie
#1
Napisano 10.11.2009 20:13
Witam. Ostatnio mi się nudziło, więc postanowiłem napisać pluga. Mianowicie klasę zombie która ma mało hp ale je sobie szybko regeneruje. Tylko coś nie wyszło z tą szybką regeneracją. Coś przekombinowałem ale nie wiem jeszcze co, liczę na pomoc
#2
Napisano 10.11.2009 20:16
Powiem tak czuje sie w nastroju :F
Z jakiej magicznej krainy wzieles id w healing(id). Jako ze healing jest funkcja wywolana taskiem, to zmienna w nawiasie to id_tasku, a ze go nie podales to id_tasku==0. Idac dalej, to is_user_alive(0) da nam falsz, wiec tu pada.
Z jakiej magicznej krainy wzieles id w healing(id). Jako ze healing jest funkcja wywolana taskiem, to zmienna w nawiasie to id_tasku, a ze go nie podales to id_tasku==0. Idac dalej, to is_user_alive(0) da nam falsz, wiec tu pada.
#3
Napisano 10.11.2009 20:26
Ujmę to tak nie pomogło czyli przyczyna leży głębiej aczkolwiek nie wpadłbym na ten task
#4
Napisano 10.11.2009 21:59
Daj "poprawiony" kod bo nie ufam, ze zrobiles petle pobierajaca i sprawdzajaca kazdego gracza z osobna...
#5
Napisano 10.11.2009 22:15
Cóż no bo nie zrobiłem ;>
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <fun> #include <zombieplague> #define MAX_HEALTH 1100 #define INTERVAL 5.0 new ZM_HEALTH_ADD new ZM_HEALTH_MAX new const zclass_name[] = { "Biohazard Zombie" } new const zclass_info[] = { "HP-- HP REGENERATION++ SPEED-" } new const zclass_model[] = { "zombie_source" } new const zclass_clawmodel[] = { "v_knife_zombie.mdl" } const zclass_health = 1100 const zclass_speed = 190 const Float:zclass_gravity = 0.8 const Float:zclass_knockback = 1.0 new g_zclass_biohazard public plugin_precache() { g_zclass_biohazard = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) } public plugin_init() { register_plugin("[ZP] Class: Biohazard Zombie", "1.0", "Ortega") ZM_HEALTH_ADD = register_cvar("zp_bio_addhealth", "100") ZM_HEALTH_MAX = register_cvar("zp_bio_maxhealth", "1100") set_task(INTERVAL, "healing", 0, _, _, "b") } public healing(id) { new addhealth = get_pcvar_num(ZM_HEALTH_ADD) if (!addhealth) return PLUGIN_CONTINUE new maxhealth = get_pcvar_num(ZM_HEALTH_MAX) if (maxhealth > MAX_HEALTH) { set_pcvar_num(ZM_HEALTH_MAX, MAX_HEALTH) maxhealth = MAX_HEALTH } new health = get_user_health(id) if (is_user_alive(id) || !zp_get_user_zombie(id)) return PLUGIN_CONTINUE if (zp_get_user_zombie_class(id) != g_zclass_biohazard) return PLUGIN_CONTINUE if (is_user_alive(id) && (health < maxhealth)) { set_user_health(id, health + addhealth) } else if(is_user_alive(id) && (health > maxhealth)){ (remove_task(id)) } return PLUGIN_HANDLED }
#6
Napisano 10.11.2009 22:40
Sorry nie chce mi sie koncentrowac nad tym zbyt dlugo, ale nie widze istotnych roznic.
Robione w tym okienku na dole wiec spodziewal bym sie literowki, ale poza tym powinno byc calkiem dobrze.
public healing() { new addhealth = get_pcvar_num(ZM_HEALTH_ADD) new maxhealth = get_pcvar_num(ZM_HEALTH_MAX) if (!addhealth) return PLUGIN_CONTINUE if (maxhealth > MAX_HEALTH) { set_pcvar_num(ZM_HEALTH_MAX, MAX_HEALTH) maxhealth = MAX_HEALTH } for(new id=1;id<33;id++) { if(!is_user_alive(id)) continue if (!zp_get_user_zombie(id)) continue if (zp_get_user_zombie_class(id) != g_zclass_biohazard) continue new health = get_user_health(id) if (health+addhealth < maxhealth) set_user_health(id, health + addhealth) else set_user_health(id, maxhealth) } return PLUGIN_HANDLED }
Robione w tym okienku na dole wiec spodziewal bym sie literowki, ale poza tym powinno byc calkiem dobrze.
#7
Napisano 11.11.2009 10:51
Leci pomógł. Ładna robota
#8
Napisano 11.11.2009 15:24
Ortega, zastanawia mnie tylko jeszcze po co ci cvar do maksymalnego hp tego zombie skoro nie mozna go zwiekszyc ponad MAX_HEALTH 1100 - po co wiec cvar?
#9
Napisano 14.11.2009 13:54
teraz was OPIERD***
1 ZP to nie biohazard !!
po co wy grzebiecie w głównym pluginie skoro od tego jest bh_zombieclass.ini
1 ZP to nie biohazard !!
po co wy grzebiecie w głównym pluginie skoro od tego jest bh_zombieclass.ini
; [class] - Classname ; DESC - Short description ; PMODEL - Player model (Note: No spaces allowed!) ; WMODEL - Weapon model (Note: No spaces allowed!) ; HEALTH - Health value ; SPEED - Speed value ; GRAVITY - Gravity multiplier ; ATTACK - Zombie damage multiplier ; DEFENCE - Bullet damage multiplier ; HEDEFENCE - HE damage multiplier ; HITSPEED - Pain speed multiplier ; HITDELAY - Pain speed delay value ; REGENDLY - Regeneration delay value ; HITREGENDLY - Pain regeneration delay value ; KNOCKBACK - Knockback multiplier [Facet] //<< STANDARDOWA 1-sza DESC=MAN PMODEL=zombi/Modele/zombi/zombi/zombi.mdl WMODEL=zombi/Modele/zombi/zombi_kosa.mdl HEALTH=170.0 SPEED=280.0 GRAVITY=1.0 ATTACK=2.0 DEFENCE=0.087 HEDEFENCE=1.0 HITSPEED=0.89 HITDELAY=0.28 REGENDLY=0.18 HITREGENDLY=2.0 KNOCKBACK=1.0 [laka] //<< 2-ga można zmienić all DESC=WOMAN PMODEL=zombi/Modele/zombi/zombi/ttzombi.mdl WMODEL=zombi/Modele/zombi/zombi_kosa.mdl HEALTH=170.0 //ŻYCIE SPEED=280.0 //szybkość GRAVITY=1.0 //grawitacja ATTACK=2.0 //mnożnik ataku !! DEFENCE=0.087 // obrażenia z broni HEDEFENCE=1.0 //obrażenia z HE HITSPEED=0.89 //szbybkość ataku HITDELAY=0.28 //oczekiwanie po ataku REGENDLY=0.18 // chyba czas regeneracji ale nie wiem dokładnie !! HITREGENDLY=2.0 //ilość hp regenerowanego KNOCKBACK=1.0 //odrzut
#10
Napisano 14.11.2009 19:34
Po pierwsze , tą klasę zrobiłem na Zombie Plague. Po drugie pisałem to sam w oparciu na podstawową dodatkową klasę zombie z zombie_plague, dostępną w zp_extraclass_example. Po trzecie chciałem sobie sam napisać i udoskonalić własne umiejętności w PAWN , więc jak jeszcze masz coś do skomentowania to pisz, chętnie odpowiem.
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych