Thunder Carabine para a TecTec
Sma:
Código:
#include <amxmodx>
#include <engine>
#include <zombieplague>
#include <hamsandwich>
#define PLUGIN "Thunder Carabine G3SG1"
#define VERSION "2.5"
#define AUTHOR " lucas_7_94"
#define is_valid_player(%1) (1 <= %1 <= 32)
new v_stix_g3sg1[]="models/zombie_plague/thv/zphc_thunders/v_g3sg1_thunder.mdl"
new const p_stix_g3sg1[] = "models/zombie_plague/thv/zphc_thunders/p_g3sg1_thunder.mdl"
new bool:g_bHasStixg3sg1[33]
new g_Smoke,g_Lightning
new const sound_thunder[] = "ambience/thunder_clap.wav"
new cvar_dmgmultiplier
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
cvar_dmgmultiplier = register_cvar("zp_thunderdmg_g3sg1", "0.5")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("DeathMsg", "DeathMsg", "a")
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
RegisterHam(Ham_TakeDamage, "player", "fwHamTakeDamage")
register_event("CurWeapon", "event_CurWeapon", "be", "1=1")
}
public fwHamTakeDamage(victim, inflictor, attacker, Float:damage)
{
if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_G3SG1 && g_bHasStixg3sg1[attacker] )
{
SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
}
}
public plugin_precache()
{
precache_model(v_stix_g3sg1)
precache_model(p_stix_g3sg1)
precache_sound(sound_thunder)
g_Lightning = precache_model("sprites/lgtning.spr");
g_Smoke = precache_model("sprites/steam1.spr");
}
public client_connect(id)
{
g_bHasStixg3sg1[id] = false
}
public client_disconnect(id)
{
g_bHasStixg3sg1[id] = false
}
public zp_user_infected_post(infected, infector)
{
if (g_bHasStixg3sg1[infected])
{
g_bHasStixg3sg1[infected] = false
}
}
public fw_PlayerKilled(victim, attacker, shouldgib)
{
g_bHasStixg3sg1[victim] = false
}
public ham_PlayerSpawn_Post(id)
{
g_bHasStixg3sg1[id] = false
return PLUGIN_CONTINUE
}
public event_round_start()
{
for (new i = 1; i <= 32; i++)
{
g_bHasStixg3sg1[i] = false
}
}
public DeathMsg()
{
new Killer = read_data(1) // Assassin
new vOrigin[3],coord[3];
new victim = read_data(2);
get_user_origin(victim,vOrigin);
vOrigin[2] -= 26
coord[0] = vOrigin[0] + 150;
coord[1] = vOrigin[1] + 150;
coord[2] = vOrigin[2] + 800;
if(get_user_weapon(Killer) == CSW_G3SG1) // If use the g3sg1 weapon
{
create_thunder(coord,vOrigin);
emit_sound(victim,CHAN_ITEM, sound_thunder, 1.0, ATTN_NORM, 0, PITCH_NORM);
emit_sound(Killer,CHAN_ITEM, sound_thunder, 1.0, ATTN_NORM, 0, PITCH_NORM);
set_model(Killer)
}
}
create_thunder(vec1[3],vec2[3])
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(0);
write_coord(vec1[0]);
write_coord(vec1[1]);
write_coord(vec1[2]);
write_coord(vec2[0]);
write_coord(vec2[1]);
write_coord(vec2[2]);
write_short(g_Lightning);
write_byte(1);
write_byte(5);
write_byte(2);
write_byte(20);
write_byte(30);
write_byte(200);
write_byte(200);
write_byte(200);
write_byte(200);
write_byte(200);
message_end();
message_begin( MSG_PVS, SVC_TEMPENTITY,vec2);
write_byte(TE_SPARKS);
write_coord(vec2[0]);
write_coord(vec2[1]);
write_coord(vec2[2]);
message_end();
message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec2);
write_byte(TE_SMOKE);
write_coord(vec2[0]);
write_coord(vec2[1]);
write_coord(vec2[2]);
write_short(g_Smoke);
write_byte(10);
write_byte(10)
message_end();
}
public set_model(id)
{
g_bHasStixg3sg1[id] = true
}
public event_CurWeapon(id)
{
new weapid = read_data(2)
if(!is_user_alive(id))
return;
if(g_bHasStixg3sg1[id] && weapid == CSW_G3SG1)
{
entity_set_string(id, EV_SZ_viewmodel, v_stix_g3sg1)
entity_set_string(id, EV_SZ_weaponmodel, p_stix_g3sg1)
}
}
Última edição por MasterUnltd em 28/12/2013, 7:31 pm, editado 2 vez(es)