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

Połączenie dwóch pluginów


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

#1 Plax

    Zaawansowany

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:75
  • Lokalizacja:Złotów
Offline

Napisano 21.01.2009 22:34

Witam, otóż na moim serwie korzystam z modu zombie plague i znalazlem plugin dodający nową klasę Climber. Chciałbym ustawić mu odpowiednią ilość HP za zarażenie człowieka, ale do tego trzeba też częsci pluginu z klasy Vampira.
W pliku zp_zclasses40 (z początkowymi klasami) udało mi się dodać efekt wampira do wszystkich klas, ale przy próbie dodania tego do Climbera coś robię źlę.
W załączniku daje dwa pliki .sma - i moja prośba jest następująca:
Zmienić tak plik z climberem, abym mógł ustawić mu dodatkową ilosc HP za zarazenie człowieka i aby oczywiscie wszysto dzialalo

Z góry dziękuję! :)

Pozdrawiam,
Plax

Załączone pliki


  • +
  • -
  • 0

#2 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 22.01.2009 11:00

Konfiguracja:
const zclass_infecthp = 1000

SMA:
/*
Wallclimb v1.0f by Python1320
Plagued Version 0.22 by Dabbi

Allows Poison Zombie to Climb Walls in Zombie Plague [3.62]

CVARS:	zp_wallclimb 0 = Off / 1 = Hold USE / 2 = Hold JUMP and DUCK  (Default 1)
	zp_wallclimb_nemesis 0 = Disable wallclimb during nemesis round. / 1 = Enable (Default 1)
	zp_wallclimb_survivor 0 = Disable wallclimb during survivor round. / 1 = Enable (Default 0)
	
Changes:
	0.22
		Made the function wallclimb return a value.
		Put plugin version to a cvar.
	0.21
		Added cvars to enable disable wallclimb durin survivor/nemesis round
	0.2
		Added cvar to enable / disable Walllclimb Plugin
	0.1
		First release.
*/

#include <amxmodx>
#include <engine>
#include <fakemeta>

#include <cstrike>
#include <zombieplague.inc>

//#include <fakemeta_util>
#define STR_T           33

// Stuff taken from fakemeta_util
#define fm_get_user_button(%1) pev(%1, pev_button)	
/* stock fm_get_user_button(index)
	return pev(index, pev_button) */

#define fm_get_entity_flags(%1) pev(%1, pev_flags)
/* stock fm_get_entity_flags(index)
	return pev(index, pev_flags) */

stock fm_set_user_velocity(entity, const Float:vector[3]) {
	set_pev(entity, pev_velocity, vector);

	return 1;
}
//End of stuff from fakemeta_util
//new STR_T[32]
new bool:g_WallClimb[33]
new Float:g_wallorigin[32][3]
new cvar_zp_wallclimb, cvar_zp_wallclimb_nemesis, cvar_zp_wallclimb_survivor
new g_zclass_climb

// Climb Zombie Atributes
new const zclass_name[] = { "Assassin" } // name
new const zclass_info[] = { "HP-- Knock- Spd+ Wallclimb+" } // description
new const zclass_model[] = { "zombie_source" } // model
new const zclass_clawmodel[] = { "v_knife_zombie.mdl" } // claw model
const zclass_health = 500 // health
const zclass_speed = 270 // speed
const Float:zclass_gravity = 0.75 // gravity
const Float:zclass_knockback = 2.0 // knockback
const zclass_infecthp = 1000

public plugin_init() 
{
	register_plugin("[ZP] Wallclimb ", "1.0", "WallClimb by Python1320/Cheap_Suit, Plagued by Dabbi")
	register_forward(FM_Touch, 		"fwd_touch")
	register_forward(FM_PlayerPreThink, 	"fwd_playerprethink")
	//register_forward(FM_PlayerPostThink, 	"fwd_playerpostthink")
	register_event("DeathMsg","EventDeathMsg","a")
	//register_cvar("zp_wallclimb_version", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
	cvar_zp_wallclimb = register_cvar("zp_wallclimb", "1")
	cvar_zp_wallclimb_survivor = register_cvar("zp_wallclimb_survivor", "0")
	cvar_zp_wallclimb_nemesis = register_cvar("zp_wallclimb_nemesis", "1")
	
}

public plugin_precache()
{
	g_zclass_climb = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
}

public EventDeathMsg()	
{
	new id = read_data(2)
	g_WallClimb[id] = true
	return PLUGIN_HANDLED
}

public client_connect(id) {
	g_WallClimb[id] = true	
}

public fwd_touch(id, world)
{
	if(!is_user_alive(id) || !g_WallClimb[id] || !pev_valid(id))
		return FMRES_IGNORED

	new player = STR_T
	if (!player)
		return FMRES_IGNORED
		
	new classname[STR_T]
	pev(world, pev_classname, classname, (STR_T))
	
	if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable"))
		pev(id, pev_origin, g_wallorigin[id])

	return FMRES_IGNORED
}

public wallclimb(id, button)
{
	static Float:origin[3]
	pev(id, pev_origin, origin)

	if(get_distance_f(origin, g_wallorigin[id]) > 25.0)
		return FMRES_IGNORED  // if not near wall
	
	if(fm_get_entity_flags(id) & FL_ONGROUND)
		return FMRES_IGNORED
		
	if(button & IN_FORWARD)
	{
		static Float:velocity[3]
		velocity_by_aim(id, 120, velocity)
		fm_set_user_velocity(id, velocity)
	}
	else if(button & IN_BACK)
	{
		static Float:velocity[3]
		velocity_by_aim(id, -120, velocity)
		fm_set_user_velocity(id, velocity)
	}
	return FMRES_IGNORED
}	

public fwd_playerprethink(id) 
{
	if(!g_WallClimb[id] || !zp_get_user_zombie(id)) 
		return FMRES_IGNORED
		
	if(zp_is_survivor_round() && get_pcvar_num(cvar_zp_wallclimb_survivor) == 0)
		return FMRES_IGNORED
		
	if(zp_is_nemesis_round() && get_pcvar_num(cvar_zp_wallclimb_nemesis) == 0)
		return FMRES_IGNORED
	
	new button = fm_get_user_button(id)
	
	if((get_pcvar_num(cvar_zp_wallclimb) == 1) && (button & IN_USE) && (zp_get_user_zombie_class(id) == g_zclass_climb)) //Use button = climb
	wallclimb(id, button)
	else if((get_pcvar_num(cvar_zp_wallclimb) == 2) && (button & IN_JUMP) && button & IN_DUCK && (zp_get_user_zombie_class(id) == g_zclass_climb)) //Jump + Duck = climb
	wallclimb(id, button)

	return FMRES_IGNORED
}

// Zainfekowanie
public zp_user_infected_post(id, infector)
{
	// Jesli gracz kogos zarazi to zakazda infekcje dostaje dodatekowe hp(konfiguracja: const zclass_infecthp = 1000)
	if (zp_get_user_zombie_class(infector) == g_zclass_climb)
		set_pev(infector, pev_health, float(pev(infector, pev_health) + zclass_infecthp))
}

  • +
  • -
  • 0

#3 Plax

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:75
  • Lokalizacja:Złotów
Offline

Napisano 22.01.2009 11:46

Dzięki :) +pomógł
  • +
  • -
  • 0




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

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