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
Modyfikacja

Przerobienie pluginu head splash

Modyfikacja

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

#1 sNNNajpersoNNN

    Pomocny

  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:50
  • Lokalizacja:się biorą dzieci?
Offline

Napisano 20.12.2009 19:48

Przerobil by mi ktos plugin i najlepiej dal gotowa paczke do wgrania na serwer ??


Chce aby bylo ze gdy sie na kogos skoczy odejmuje mu 80hp

i stanie na nim 13 hp


#include <amxmodx>
#include <fakemeta>
#include <cstrike>

#define PLUGIN_VERSION "1.4"

// JUMPING
#define MINIMUM_FALL_SPEED 240
#define MAXIMUM_DAMAGE_FROM_JUMP 75.0

//STANDING
#define DAMAGE 15.0
#define DELAY 0.5

new amx_headsplash;
new Float:falling_speed[33];
new Float:damage_after[33][33];
new sprite_blood;
new sprite_bloodspray;

public plugin_init()
{
	register_plugin("Head Splash", PLUGIN_VERSION, "potatis_invalido"); // Register the plugin.
	amx_headsplash = register_cvar("amx_headsplash", "1"); // Register the on/off cvar.
	register_forward(FM_Touch, "forward_touch"); // Register the "touch" forward.
	register_forward(FM_PlayerPreThink, "forward_PlayerPreThink"); // TY Alka!
}

public plugin_precache()
{
	sprite_blood = precache_model("sprites/blood.spr");
	sprite_bloodspray = precache_model("sprites/bloodspray.spr");
}

public forward_touch(toucher, touched) // This function is called every time a player touches another player.
{
	// NOTE: The toucher is the player standing/falling on top of the other (touched) player's head.
	if(!is_user_alive(toucher) || !is_user_alive(touched)) // The touching players can't be dead.
		return;
	
	if(!get_pcvar_num(amx_headsplash)) // If the plugin is disabled, stop messing with things.
		return;
	
	if(falling_speed[touched]) // Check if the touched player is falling. If he/she is, don't continue.
		return;
	
	if(get_user_team(toucher) == get_user_team(touched) && !get_cvar_num("mp_friendlyfire")) // If the touchers are in the same team and friendly fire is off, don't continue.
		return;
	
	new touched_origin[3], toucher_origin[3];
	get_user_origin(touched, touched_origin); // Get the origins of the players so it's possible to check if the toucher is standing on the touched's head.
	get_user_origin(toucher, toucher_origin);
	
	new Float:toucher_minsize[3], Float:touched_minsize[3];
	pev(toucher,pev_mins,toucher_minsize);
	pev(touched,pev_mins,touched_minsize); // If touche*_minsize is equal to -18.0, touche* is crouching.
	
	if(touched_minsize[2] != -18.0) // If the touched player IS NOT crouching, check if the toucher is on his/her head.
	{
		if(!(toucher_origin[2] == touched_origin[2]+72 && toucher_minsize[2] != -18.0) && !(toucher_origin[2] == touched_origin[2]+54 && toucher_minsize[2] == -18.0))
		{
			return;
		}
	}
	else // If the touched player is crouching, check if the toucher is on his/her head
	{
		if(!(toucher_origin[2] == touched_origin[2]+68 && toucher_minsize[2] != -18.0) && !(toucher_origin[2] == touched_origin[2]+50 && toucher_minsize[2] == -18.0))
		{
			return;
		}
	}
	
	if(falling_speed[toucher] >= MINIMUM_FALL_SPEED) // If the toucher is falling in the required speed or faster, then landing on top of the touched's head, do some damage to the touched. MUHAHAHAHAHA!!!
	{
		new Float:damage = ((falling_speed[toucher] - MINIMUM_FALL_SPEED + 30) * (falling_speed[toucher] - MINIMUM_FALL_SPEED + 30)) / 1300;
		if(damage > MAXIMUM_DAMAGE_FROM_JUMP) // Make shure that the touched player don't take too much damage.
			damage = MAXIMUM_DAMAGE_FROM_JUMP;
		damage_player(touched, toucher, damage); // Damage or kill the touched player.
		damage_after[toucher][touched] = 0.0; // Reset.
	}
	if(is_user_alive(touched) && damage_after[toucher][touched] <= get_gametime()) // This makes shure that you won't get damaged every frame you have some one on your head. It also makes shure that players won't get damaged faster on fast servers than laggy servers.
	{
		damage_after[toucher][touched] = get_gametime() + DELAY;
		damage_player(touched, toucher, DAMAGE); // Damage or kill the touched player.
	}
}

public forward_PlayerPreThink(id) // This is called every time before a player "thinks". A player thinks many times per second.
{
	//falling_speed[id] = entity_get_float(id, EV_FL_flFallVelocity); // Store the falling speed of the soon to be "thinking" player.
	pev(id, pev_flFallVelocity, falling_speed[id])
}

public damage_player(pwned, pwnzor, Float:damage) // Damages or kills a player. Home made HAX
{
	new health = get_user_health(pwned);
	if(get_user_team(pwned) == get_user_team(pwnzor)) // If both players are in the same team, reduce the damage.
		damage /= 1.4;
	new CsArmorType:armortype;
	cs_get_user_armor(pwned, armortype);
	if(armortype == CS_ARMOR_VESTHELM)
		damage *= 0.7;
	if(health >  damage)
	{
		new pwned_origin[3];
		get_user_origin(pwned, pwned_origin);
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY); // BLOOOOOOOOOOOD!!
		write_byte(TE_BLOODSPRITE);
		write_coord(pwned_origin[0]+8);
		write_coord(pwned_origin[1]);
		write_coord(pwned_origin[2]+26);
		write_short(sprite_bloodspray);
		write_short(sprite_blood);
		write_byte(248);
		write_byte(4);
		message_end();
		
		new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "trigger_hurt"));
		if(!ent)
			return;
		new value[16];
		float_to_str(damage * 2, value, sizeof value - 1);
		set_kvd(0, KV_ClassName, "trigger_hurt");
		set_kvd(0, KV_KeyName, "dmg");
		set_kvd(0, KV_Value, value);
		set_kvd(0, KV_fHandled, 0);
		dllfunc(DLLFunc_KeyValue, ent, 0);
		num_to_str(DMG_GENERIC, value, sizeof value - 1);
		set_kvd(0, KV_ClassName, "trigger_hurt");
		set_kvd(0, KV_KeyName, "damagetype");
		set_kvd(0, KV_Value, value);
		set_kvd(0, KV_fHandled, 0);
		dllfunc(DLLFunc_KeyValue, ent, 0);
		set_kvd(0, KV_ClassName, "trigger_hurt");
		set_kvd(0, KV_KeyName, "origin");
		set_kvd(0, KV_Value, "8192 8192 8192");
		set_kvd(0, KV_fHandled, 0);
		dllfunc(DLLFunc_KeyValue, ent, 0);
		dllfunc(DLLFunc_Spawn, ent);
		set_pev(ent, pev_classname, "head_splash");
		dllfunc(DLLFunc_Touch, ent, pwned);
		engfunc(EngFunc_RemoveEntity, ent);
	}
	else
	{
		new pwned_origin[3];
		get_user_origin(pwned, pwned_origin);
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY); // BLOOOOOOOOOOOD!!
		write_byte(TE_BLOODSPRITE);
		write_coord(pwned_origin[0]+8);
		write_coord(pwned_origin[1]);
		write_coord(pwned_origin[2]+26);
		write_short(sprite_bloodspray);
		write_short(sprite_blood);
		write_byte(248);
		write_byte(12);
		message_end();
		
		set_pev(pwned, pev_frags, float(get_user_frags(pwned) + 1));
		user_silentkill(pwned);
		make_deathmsg(pwnzor, pwned, 1, "his/her feet :)");
		if(get_user_team(pwnzor) != get_user_team(pwned)) // If it was a team kill, the pwnzor's money should get reduced instead of increased.
		{
			set_pev(pwnzor, pev_frags, float(get_user_frags(pwnzor) + 1));
			cs_set_user_money(pwnzor, cs_get_user_money(pwnzor) + 300);
		}
		else
		{
			set_pev(pwnzor, pev_frags, float(get_user_frags(pwnzor) - 1));
			cs_set_user_money(pwnzor, cs_get_user_money(pwnzor) - 300);
		}
		
		message_begin(MSG_ALL, get_user_msgid("ScoreInfo")); // Fixes the scoreboard.
		write_byte(pwnzor);
		write_short(get_user_frags(pwnzor));
		write_short(cs_get_user_deaths(pwnzor));
		write_short(0);
		write_short(get_user_team(pwnzor));
		message_end();
		
		message_begin(MSG_ALL, get_user_msgid("ScoreInfo"));
		write_byte(pwned);
		write_short(get_user_frags(pwned));
		write_short(cs_get_user_deaths(pwned));
		write_short(0);
		write_short(get_user_team(pwned));
		message_end();
		set_pev(pwned, pev_frags, float(get_user_frags(pwned) - 1));
	}
}

  • +
  • -
  • 0

#2 baku

    [M]anchester[U]nited

  • Przyjaciel

Reputacja: 455
Wszechobecny

  • Postów:1 054
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Polska
Offline

Napisano 21.12.2009 16:41

// JUMPING
#define MAXIMUM_DAMAGE_FROM_JUMP 75.0

//STANDING
#define DAMAGE 15.0
na
// JUMPING
#define MAXIMUM_DAMAGE_FROM_JUMP 80.0

//STANDING
#define DAMAGE 13.0

A jak nie działa to napisz mi ile aktualnie zabiera HP ;]
  • +
  • -
  • 0

#3 sNNNajpersoNNN

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:50
  • Lokalizacja:się biorą dzieci?
Offline

Napisano 23.12.2009 10:14

No widzisz ze to juz probowalem... po skoku zabiera 30hp a jak stoje na kims to nadal po 2hp bierze.. :( moglbys mi to jakos spakowac? To zobaczylbym wtedy czy moze ja nie cos zle robie...
  • +
  • -
  • 0

#4 sNNNajpersoNNN

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:50
  • Lokalizacja:się biorą dzieci?
Offline

Napisano 24.12.2009 10:35

Odswiezam gdyz czekam na pomoc.. :)


Po skokuy zabiera x hp (roznie).. a gdzy sie stoi na kims najpierw 10 a sekunde po tym idzie juz po 7hp... a ustawione jest na 15.. -.-
  • +
  • -
  • 0

#5 baku

    [M]anchester[U]nited

  • Przyjaciel

Reputacja: 455
Wszechobecny

  • Postów:1 054
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Polska
Offline

Napisano 24.12.2009 10:58

Bo wartość musi być podwójna czyli np. nie 13 tylko 26 . Razmasz ?
  • +
  • -
  • 0

#6 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 24.12.2009 11:23

new Float:damage = ((falling_speed[toucher] - MINIMUM_FALL_SPEED + 30) * (falling_speed[toucher] - MINIMUM_FALL_SPEED + 30)) / 1300;

if(armortype == CS_ARMOR_VESTHELM)
damage *= 0.7;

if(get_user_team(pwned) == get_user_team(pwnzor)) // If both players are in the same team, reduce the damage.
damage /= 1.4;
  • +
  • -
  • 1

#7 sNNNajpersoNNN

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:50
  • Lokalizacja:się biorą dzieci?
Offline

Napisano 27.12.2009 21:29

Ok dziala dzięki bardzo ! :*
  • +
  • -
  • 0

#8 Adminek AMXX.PL

    Admin :)

  • Bot

Reputacja: 156
Profesjonalista

  • Postów:7 489
  • Lokalizacja:AMXX.PL
Offline

Napisano 27.12.2009 21:58

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Wyjaśnione

Jeśli się z tym nie zgadzasz, zgłoś ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL





Również z jednym lub większą ilością słów kluczowych: Modyfikacja

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

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