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

Biohazard Zombie


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

#1 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

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

/* 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
}

  • +
  • -
  • 0

#2 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

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.
  • +
  • -
  • 0

#3 Ortega

    mów mi Orti

  • Autor tematu
  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

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 xD
  • +
  • -
  • 0

#4 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 10.11.2009 21:59

Daj "poprawiony" kod bo nie ufam, ze zrobiles petle pobierajaca i sprawdzajaca kazdego gracza z osobna...
  • +
  • -
  • 0

#5 Ortega

    mów mi Orti

  • Autor tematu
  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

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
}

  • +
  • -
  • 0

#6 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 10.11.2009 22:40

Sorry nie chce mi sie koncentrowac nad tym zbyt dlugo, ale nie widze istotnych roznic.

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.
  • +
  • -
  • 0

#7 Ortega

    mów mi Orti

  • Autor tematu
  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 11.11.2009 10:51

Leci pomógł. Ładna robota ;P
  • +
  • -
  • 0

#8 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

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?
  • +
  • -
  • 0

#9 Daku

    Zaawansowany

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:96
  • Lokalizacja:Żory
Offline

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




  • +
  • -
  • 0

#10 Ortega

    mów mi Orti

  • Autor tematu
  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

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.
  • +
  • -
  • 0




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

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