Çok teşekkür ederim istediğim plugine kavuştum ellerine sağlık konuyu çözüldü bölümüne taşıyabilirsin :)
Printable View
Çok teşekkür ederim istediğim plugine kavuştum ellerine sağlık konuyu çözüldü bölümüne taşıyabilirsin :)
Rica ederim. Konu Çözülmüş İsteklere taşındı.
Şöyle ki küçük bir sorun var awp kullanıldıktan ve limiti dolup kaybolduktansonra tekrar alıyorum tek kurşunda kayboluyor, diğer round alıyorum aynı şekilde tek kurşunda silah kayboluyor.
Unutmusum orayı buyur.PHP- Kodu:
#include <amxmodx>
#include <zombieplague>
#include <fun>
#include <cstrike>
#include <engine>
#include <hamsandwich>
#include <fakemeta>
/* [ZP] Extra Item : Sniper Laser Gun [SLG] ! By xLeoNNN. (san antonio,chile)
this is my second plugin, the Sniper Laser Gun [SLG] is a weapon awp with efects,laser,
Credits :
meTaLiCroSS : for code of damage of "gauss"
Mr.Death : how to create the effects and use the "Temp Entity"
*/
new g_ibuy
new cvar_limit,cvar_damage;
new used[33];
new bullets[33]
new hotflarex, laserb, thunder
new bool:g_lasergun[33]
new g_iMaxPlayers
const q_pPlayer = 41
new Shakes
const Second = ( 1<<10 )
new cvar_particles_dead, cvar_bullet_efect, cvar_thunder, cvar_oneround,cvar_zpammo;
new g_currentweapon[33]
new V_LASERGUN[] = "models/zombie_plague/v_sniper_laser_gun.mdl"
new P_LASERGUN[] = "models/zombie_plague/p_sniper_laser_gun.mdl"
new W_LASERGUN[] = "models/zombie_plague/w_sniper_laser_gun.mdl"
new const LaserSound[] = "weapons/electro4.wav"
public plugin_init()
{
register_plugin("[ZP] Extra Item: Sniper Laser Gun", "1.0", "x[L]eoNNN")
Shakes = get_user_msgid( "ScreenShake" )
register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_awp", "fw_AWP_PrimaryAttack_Post", 1)
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
register_forward(FM_SetModel, "fw_SetModel")
cvar_particles_dead = register_cvar("zp_slg_particles", "1")
cvar_bullet_efect = register_cvar("zp_slg_bullet", "1")
cvar_thunder = register_cvar("zp_slg_thunder", "1")
cvar_oneround = register_cvar("zp_slg_oneround", "1")
cvar_damage = register_cvar("zp_slg_damage","1000.0")
cvar_limit = register_cvar("zp_slg_limit","8")
cvar_zpammo = register_cvar("zp_slg_ammo","40")
g_ibuy = zp_register_extra_item("Sniper Laser Gun", get_pcvar_num(cvar_zpammo), ZP_TEAM_HUMAN)
}
public plugin_precache()
{
hotflarex = precache_model("sprites/flare6.spr")
laserb = precache_model("sprites/laserbeam.spr")
thunder = precache_model("sprites/zbeam1.spr")
precache_model(V_LASERGUN)
precache_model(P_LASERGUN)
precache_model(W_LASERGUN)
precache_sound(LaserSound)
}
public zp_extra_item_selected(id, itemid)
{
if (itemid ==g_ibuy)
{
if(g_lasergun[id] && user_has_weapon(id, CSW_AWP))
{
client_print(id, print_chat, "/g[ZP]/y You Already Have Sniper Laser Gun!")
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + 40)
}
else {
g_lasergun[id] = true
give_item (id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 20)
client_print(id, print_center, "[ZP] Sniper Laser Gun ON! Killed All Zombies!")
}
}
}
public zp_user_infected_post(infected, infector)
{
if (g_lasergun[infected])
{
g_lasergun[infected] = false
}
}
public event_round_start()
{
for (new i = 1; i <= g_iMaxPlayers; i++)
{
if (!is_user_connected(i))
continue
if (g_lasergun[i])
{
g_lasergun[i] = false
}
used[i] = 0;
}
}
public client_putinserver(id)
{
used[id] = 0;
g_lasergun[id] = false
}
public client_disconnect(id)
{
g_lasergun[id] = false
}
public make_tracer(id)
{
if(get_pcvar_num(cvar_bullet_efect))
{
if(g_lasergun[id] && g_currentweapon[id])
{
new clip,ammo
new wpnid = get_user_weapon(id,clip,ammo)
new pteam[16]
get_user_team(id, pteam, 15)
if ((bullets[id] > clip) && (wpnid == CSW_AWP))
{
new laser1[3], laser2[3]
get_user_origin(id, laser1, 1)
get_user_origin(id, laser2, 4)
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (1)
write_short(id | 0x1000)
write_coord (laser2[0])
write_coord (laser2[1])
write_coord (laser2[2])
write_short( laserb )
write_byte(1)
write_byte(5)
write_byte(1)
write_byte(80)
write_byte(20)
write_byte(0)
write_byte(52)
write_byte(255)
write_byte(255)
write_byte(150)
message_end()
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_DLIGHT)
write_coord(laser1[0])
write_coord(laser1[1])
write_coord(laser1[2])
write_byte(13)
write_byte(254)
write_byte(0)
write_byte(0)
write_byte(100)
write_byte(10)
message_end()
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_SPRITETRAIL)
write_coord(laser1[0])
write_coord(laser1[1])
write_coord(laser1[2])
write_coord(laser1[0])
write_coord(laser1[1])
write_coord(laser1[2])
write_short(hotflarex)
write_byte(5)
write_byte(1)
write_byte(3)
write_byte(34)
write_byte(43)
message_end()
emit_sound(id, CHAN_AUTO, LaserSound, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
bullets[id] = clip
}
}
}
public Event_CurWeapon(id)
{
g_currentweapon[id] = read_data(2)
if(!g_lasergun[id] || g_currentweapon[id] != CSW_AWP)
return PLUGIN_CONTINUE
entity_set_string(id, EV_SZ_viewmodel, V_LASERGUN)
entity_set_string(id, EV_SZ_weaponmodel, P_LASERGUN)
return PLUGIN_CONTINUE
}
public fw_SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED
if(!equali(model, "models/w_awp.mdl"))
return FMRES_IGNORED;
new ads = entity_get_edict(entity, EV_ENT_owner)
new className[33]
entity_get_string(entity, EV_SZ_classname, className, 32)
if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
{
if(g_lasergun[ads])
{
entity_set_model(entity, W_LASERGUN)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
{
if(!is_user_connected(attacker) || !is_user_connected(victim) || zp_get_user_nemesis(victim) || attacker == victim || !attacker)
return HAM_IGNORED
if (g_lasergun[attacker] && g_currentweapon[attacker] == CSW_AWP)
{
static Float:originF[3]
pev(victim, pev_origin, originF)
new plrWeapId, plrClip, plrAmmo
plrWeapId = get_user_weapon(attacker, plrClip, plrAmmo)
if (plrWeapId == CSW_AWP)
SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage))
client_print(attacker, print_center, "Enemy Electrocuted!")
if(get_pcvar_num(cvar_particles_dead))
dead_efect(originF)
}
if(zp_get_user_nemesis(victim))
{
client_print(attacker, print_center, "Nemesis is Inmune")
}
return PLUGIN_HANDLED;
}
dead_efect(const Float:originF[3])
{
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_PARTICLEBURST)
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2]+10)
write_short(250)
write_byte(70)
write_byte(55)
message_end()
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_PARTICLEBURST)
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2]+10)
write_short(250)
write_byte(70)
write_byte(55)
message_end()
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_PARTICLEBURST)
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2]+10)
write_short(250)
write_byte(83)
write_byte(55)
message_end()
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_IMPLOSION)
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2]+10)
write_byte(random_num(100, 300))
write_byte(20)
write_byte(3)
message_end()
}
public fw_AWP_PrimaryAttack_Post(awp)
{
static id
id = get_pdata_cbase(awp, q_pPlayer, 4)
if(used[id] >= get_pcvar_num(cvar_limit)) {
client_print(id,print_chat,"Bu Silahi Kullanma Limitiniz Doldu !")
g_lasergun[id] = false
ham_strip_weapon(id, "weapon_awp")
used[id] = 0;
return HAM_IGNORED
}
used[id]++;
if(get_pcvar_num(cvar_thunder))
{
if(is_user_connected(id) && g_lasergun[id])
{
new iEndOrigin[3]
get_user_origin(id, iEndOrigin, 3)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, iEndOrigin)
write_byte(TE_EXPLOSION)
write_coord(iEndOrigin[0])
write_coord(iEndOrigin[1])
write_coord(iEndOrigin[2] +10)
write_short(thunder)
write_byte(90)
write_byte(60)
write_byte(TE_EXPLFLAG_NONE)
message_end()
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, iEndOrigin)
write_byte(TE_EXPLOSION)
write_coord(iEndOrigin[0])
write_coord(iEndOrigin[1])
write_coord(iEndOrigin[2]+20)
write_short(thunder)
write_byte(60)
write_byte(20)
write_byte(TE_EXPLFLAG_NONE)
message_end()
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, iEndOrigin)
write_byte(TE_EXPLOSION)
write_coord(iEndOrigin[0])
write_coord(iEndOrigin[1])
write_coord(iEndOrigin[2] +30)
write_short(thunder)
write_byte(60)
write_byte(20)
write_byte(TE_EXPLFLAG_NONE)
message_end()
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, iEndOrigin)
write_byte(TE_BEAMCYLINDER)
write_coord(iEndOrigin[0])
write_coord(iEndOrigin[1])
write_coord(iEndOrigin[2])
write_coord(iEndOrigin[0])
write_coord(iEndOrigin[1])
write_coord(iEndOrigin[2]+200)
write_short(hotflarex)
write_byte(0)
write_byte(1)
write_byte(6)
write_byte(8)
write_byte(1)
write_byte(255)
write_byte(255)
write_byte(192)
write_byte(128)
write_byte(5)
message_end()
message_begin( MSG_ONE_UNRELIABLE, Shakes, _, id )
write_short( Second*5 )
write_short( Second*5 )
write_short( Second*5 )
message_end( )
}
}
}
public fw_PlayerSpawn_Post(id)
{
if(get_pcvar_num(cvar_oneround))
{
if(g_lasergun[id])
{
g_lasergun[id] = false
ham_strip_weapon(id, "weapon_awp")
}
}
}
stock ham_strip_weapon(id, weapon[])
{
if(!equal(weapon,"weapon_",7))
return 0
new idd = get_weaponid(weapon)
if(!idd) return 0
new wEnt
while((wEnt = find_ent_by_class(wEnt, weapon)) && entity_get_edict(wEnt, EV_ENT_owner) != id) {}
if(!wEnt) return 0
if(get_user_weapon(id) == idd)
ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt))
return 0
ExecuteHamB(Ham_Item_Kill, wEnt)
entity_set_int(id, EV_INT_weapons, entity_get_int(id, EV_INT_weapons) & ~(1<<idd))
return 1
}