Existing user? Sign in
Sign up
Games
Servers
Useful
User
Pass
2FA
Modificare plugin katana
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Fixed issues
Author
Message
836
AnAcKiNNN12345
[Mentally Stable]
Status: Offline
(since 30-01-2017 13:00)
Joined: 22 Feb 2015
Posts: 230
,
Topics: 42
Location:
Romania
Reputation:
104
Votes
: 4
Posted: 08-11-2015, 12:14:25
| Translate post to:
... (
Click for more languages
)
Cine imi modifica si mie acest plugin astfel in cat atunci cand il cumpara sa ii dea gravitatioe mai mare?
Spoiler:
#include <amxmodx>
#include <zombieplague>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zmvip>
/* [ZP] Extra Item : Katana Samurai! By xLeoNNN. (san antonio,chile)
this is my first plugin, katana is a sword that kills at one stroke, with effects,
skin etc.
Credits :
meTaLiCroSS : for its "chainsaw" to guide me in some events
S34Qu4K3 : to solve the bug that had the skin of the katana
Mr.Death : how to create the effects and use the "Temp Entity"
DJ HD : to optimize and organize the plugin
*/
new g_iBuy
new V_KATANA[] = "models/v_katana.mdl"
new P_KATANA[] = "models/p_katana.mdl"
new W_KATANA[] = "models/w_katana.mdl"
new bool:g_katana[33]
new g_currentweapon[33]
new g_iMaxPlayers
new g_mgcur
// Cvar pointer
new cvar_katanasounds, cvar_oneround, cvar_explobody, cvar_katanaenabled
new const katana_sounds[][] =
{
"katana/katana_deploy.wav",
"katana/katana_hit1.wav",
"katana/katana_hit2.wav",
"katana/katana_stab.wav",
"katana/katana_hitwall.wav",
"katana/katana_slash1.wav",
"katana/katana_slash2.wav"
}
new const old_knifeSounds[][] =
{
"weapons/knife_deploy1.wav",
"weapons/knife_hit1.wav",
"weapons/knife_hit2.wav",
"weapons/knife_hit3.wav",
"weapons/knife_hit4.wav",
"weapons/knife_hitwall.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
}
public plugin_init()
{
register_plugin("[ZP] Extra Item: Katana Samurai!", "1.0", "x[L]eoNNN")
g_iBuy = zv_register_extra_item("Katana Samurai!","Katana Samurai", 50, ZV_TEAM_HUMAN)
// Event
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
// Forwards
register_forward(FM_SetModel, "fw_SetModel")
register_forward(FM_EmitSound, "fw_EmitSound")
// Ham
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn", 1)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
// Cvars
cvar_katanaenabled = register_cvar("zp_katana_enabled", "1")
cvar_katanasounds = register_cvar("zp_katana_sounds", "1")
cvar_oneround = register_cvar("zp_katana_oneround", "0")
cvar_explobody = register_cvar("zp_katana_explobody", "1")
// Others
register_clcmd("drop_katana", "drop_weaponKatana")
register_touch("katana", "player", "PlayerTouchKatana")
g_mgcur = get_user_msgid("CurWeapon")
}
public plugin_precache()
{
precache_model(V_KATANA)
precache_model(P_KATANA)
precache_model(W_KATANA)
for(new i = 0; i < sizeof katana_sounds; i++)
precache_sound(katana_sounds[i])
}
// Item Selected forward
public zv_extra_item_selected(id, itemid)
{
if (get_pcvar_num(cvar_katanaenabled))
{
if (itemid == g_iBuy)
g_katana[id] = true
strip_user_weapons(id)
give_item (id, "weapon_knife")
set_user_armor(id, 100)
set_user_health(id, 300)
client_print(id, print_chat, "[ZP] Katana Samurai! Destrosed Your Enemy'S!")
}
}
public event_round_start()
{
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if (!is_user_connected(i))
continue
if (g_katana[i])
{
g_katana[i] = false
}
give_item(i, "weapon_knife")
remove_entity_name("katana")
}
}
public Event_CurWeapon(id)
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE
g_currentweapon[id] = read_data(2)
if(!g_katana[id] || g_currentweapon[id] != CSW_KNIFE)
return PLUGIN_CONTINUE
entity_set_string(id, EV_SZ_viewmodel, V_KATANA)
entity_set_string(id, EV_SZ_weaponmodel, P_KATANA)
return PLUGIN_CONTINUE
}
public fw_SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED
if(!equali(model, "models/w_knife.mdl"))
return FMRES_IGNORED;
new className[33]
entity_get_string(entity, EV_SZ_classname, className, 32)
if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
{
entity_set_model(entity, W_KATANA)
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_katana[attacker] && g_currentweapon[attacker] == CSW_KNIFE)
{
static Float:originF[3]
pev(victim, pev_origin, originF)
new plrWeapId, plrClip, plrAmmo
plrWeapId = get_user_weapon(attacker, plrClip, plrAmmo)
if (plrWeapId == CSW_KNIFE)
SetHamParamFloat(4, damage += get_user_health(victim))
client_print(attacker, print_center, "Enemy Scraf!")
}
if(zp_get_user_nemesis(victim) || zp_get_user_first_zombie(victim) || zp_get_user_last_zombie(victim))
{
client_print(attacker, print_center, "The Nemesis, First Zombie And Last Zombie Inmunes")
}
return PLUGIN_HANDLED;
}
public fw_PlayerKilled(victim, attacker, shouldgib)
{
if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !attacker)
return HAM_IGNORED
if(g_katana[attacker] && g_currentweapon[attacker] == CSW_KNIFE && get_pcvar_num(cvar_explobody))
{
SetHamParamInteger(3, 2)
static iOrigin[3]
get_user_origin(victim, iOrigin)
implosion_efect(iOrigin)
}
if(g_katana[victim])
{
g_katana[victim] = false
}
return HAM_IGNORED
}
implosion_efect(iOrigin[3])
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_IMPLOSION)
write_coord(iOrigin[0])
write_coord(iOrigin[1])
write_coord(iOrigin[2])
write_byte(200)
write_byte(40)
write_byte(45)
message_end()
}
public zp_user_infected_post(infected, infector)
{
if (g_katana[infected])
{
g_katana[infected] = false
}
}
public client_putinserver(id)
{
g_katana[id] = false
}
public client_disconnect(id)
{
g_katana[id] = false
}
public fw_PlayerSpawn(id)
{
if(get_pcvar_num(cvar_oneround))
{
g_katana[id] = false
strip_oneWeapon(id, "weapon_knife")
give_item(id, "weapon_knife")
}
}
stock strip_oneWeapon(id, weapon[])
{
if (!equal(weapon, "weapon_", 7))
return 0
new idd = get_weaponid(weapon)
if (!idd) return 0
new iEnty
while((iEnty = find_ent_by_class(iEnty, weapon)) && entity_get_edict(iEnty, EV_ENT_owner) != id) {}
if (!iEnty) return 0
if (get_user_weapon(id) == idd)
ExecuteHamB(Ham_Weapon_RetireWeapon,iEnty);
if(!ExecuteHamB(Ham_RemovePlayerItem,id,iEnty))
return 0
ExecuteHamB(Ham_Item_Kill, iEnty)
entity_set_int(id, EV_INT_weapons, entity_get_int(id, EV_INT_weapons) & ~(1<<idd))
return 1
}
public fw_EmitSound(id, channel, const sound[])
{
if(!is_user_connected(id))
return FMRES_IGNORED
if(!is_user_alive(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id) || !g_katana[id] || !get_pcvar_num(cvar_katanasounds))
return FMRES_IGNORED
for(new i = 0; i < sizeof katana_sounds; i++)
{
if(equal(sound, old_knifeSounds[i]))
{
emit_sound(id, channel, katana_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public drop_weaponKatana(id)
{
if(g_katana[id] && g_currentweapon[id] == CSW_KNIFE)
{
katana_playerDrop(id)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public katana_playerDrop(id)
{
static Float:flAim[3], Float:flOrigin[3]
VelocityByAim(id, 64, flAim)
entity_get_vector(id, EV_VEC_origin, flOrigin)
flOrigin[0] += flAim[0]
flOrigin[1] += flAim[1]
new iEnt = create_entity("info_target")
new Float:katana_iMin[3] = { -2.0, -2.0, -2.0 }
new Float:katana_iMax[3] = { 2.0, 2.0, 2.0 }
entity_set_string(iEnt, EV_SZ_classname, "katana")
entity_set_origin(iEnt, flOrigin)
entity_set_model(iEnt, W_KATANA)
set_size(iEnt, katana_iMin, katana_iMax)
entity_set_vector(iEnt, EV_VEC_mins, katana_iMin)
entity_set_vector(iEnt, EV_VEC_maxs, katana_iMax)
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER)
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS)
g_katana[id] = false
reset_knifeModel(id)
}
public reset_knifeModel(id)
{
if(user_has_weapon(id, CSW_KNIFE))
ExecuteHamB(Ham_Item_Deploy, find_ent_by_owner(-1, "weapon_knife", id))
engclient_cmd(id, "weapon_knife")
emessage_begin(MSG_ONE, g_mgcur, _, id)
ewrite_byte(1)
ewrite_byte(CSW_KNIFE)
ewrite_byte(-1)
emessage_end()
}
public PlayerTouchKatana(Has, player)
{
if(!is_valid_ent(Has) || !is_valid_ent(player))
return PLUGIN_CONTINUE
if(!is_user_connected(player))
return PLUGIN_CONTINUE
if(!is_user_alive(player) || zp_get_user_zombie(player) || zp_get_user_survivor(player) || g_katana[player])
return PLUGIN_CONTINUE
g_katana[player] = true
reset_knifeModel(player)
remove_entity(Has)
return PLUGIN_CONTINUE
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/
0
0
Back to top
destroi112
[DEV]
Status: Offline
(since 12-03-2020 22:13)
Joined: 24 May 2014
Posts: 4042
,
Topics: 119
Location:
---------
Reputation:
515.9
Votes
: 118
Posted: 08-11-2015, 13:48:27
| Translate post to:
... (
Click for more languages
)
Spoiler:
#include <amxmodx>
#include <zombieplague>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zmvip>
/* [ZP] Extra Item : Katana Samurai! By xLeoNNN. (san antonio,chile)
this is my first plugin, katana is a sword that kills at one stroke, with effects,
skin etc.
Credits :
meTaLiCroSS : for its "chainsaw" to guide me in some events
S34Qu4K3 : to solve the bug that had the skin of the katana
Mr.Death : how to create the effects and use the "Temp Entity"
DJ HD : to optimize and organize the plugin
*/
new g_iBuy,gravitatie_katana;
new V_KATANA[] = "models/v_katana.mdl"
new P_KATANA[] = "models/p_katana.mdl"
new W_KATANA[] = "models/w_katana.mdl"
new bool:g_katana[33]
new g_currentweapon[33]
new g_iMaxPlayers
new g_mgcur
// Cvar pointer
new cvar_katanasounds, cvar_oneround, cvar_explobody, cvar_katanaenabled
new const katana_sounds[][] =
{
"katana/katana_deploy.wav",
"katana/katana_hit1.wav",
"katana/katana_hit2.wav",
"katana/katana_stab.wav",
"katana/katana_hitwall.wav",
"katana/katana_slash1.wav",
"katana/katana_slash2.wav"
}
new const old_knifeSounds[][] =
{
"weapons/knife_deploy1.wav",
"weapons/knife_hit1.wav",
"weapons/knife_hit2.wav",
"weapons/knife_hit3.wav",
"weapons/knife_hit4.wav",
"weapons/knife_hitwall.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
}
public plugin_init()
{
register_plugin("[ZP] Extra Item: Katana Samurai!", "1.0", "x[L]eoNNN")
g_iBuy = zv_register_extra_item("Katana Samurai!","Katana Samurai", 50, ZV_TEAM_HUMAN)
// Event
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
// Forwards
register_forward(FM_SetModel, "fw_SetModel")
register_forward(FM_EmitSound, "fw_EmitSound")
// Ham
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn", 1)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
// Cvars
gravitatie_katana = register_cvar("zp_katana_gravity","0.3");
cvar_katanaenabled = register_cvar("zp_katana_enabled", "1")
cvar_katanasounds = register_cvar("zp_katana_sounds", "1")
cvar_oneround = register_cvar("zp_katana_oneround", "0")
cvar_explobody = register_cvar("zp_katana_explobody", "1")
// Others
register_clcmd("drop_katana", "drop_weaponKatana")
register_touch("katana", "player", "PlayerTouchKatana")
g_mgcur = get_user_msgid("CurWeapon")
}
public plugin_precache()
{
precache_model(V_KATANA)
precache_model(P_KATANA)
precache_model(W_KATANA)
for(new i = 0; i < sizeof katana_sounds; i++)
precache_sound(katana_sounds[i])
}
// Item Selected forward
public zv_extra_item_selected(id, itemid)
{
if (get_pcvar_num(cvar_katanaenabled))
{
if (itemid == g_iBuy)
g_katana[id] = true
strip_user_weapons(id)
give_item (id, "weapon_knife")
set_user_armor(id, 100)
set_user_health(id, 300)
set_user_gravity(id,get_pcvar_float(gravitatie_katana));
client_print(id, print_chat, "[ZP] Katana Samurai! Destrosed Your Enemy'S!")
}
}
public event_round_start()
{
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if (!is_user_connected(i))
continue
if (g_katana[i])
{
g_katana[i] = false
}
give_item(i, "weapon_knife")
remove_entity_name("katana")
}
}
public Event_CurWeapon(id)
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE
g_currentweapon[id] = read_data(2)
if(!g_katana[id] || g_currentweapon[id] != CSW_KNIFE)
return PLUGIN_CONTINUE
entity_set_string(id, EV_SZ_viewmodel, V_KATANA)
entity_set_string(id, EV_SZ_weaponmodel, P_KATANA)
return PLUGIN_CONTINUE
}
public fw_SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED
if(!equali(model, "models/w_knife.mdl"))
return FMRES_IGNORED;
new className[33]
entity_get_string(entity, EV_SZ_classname, className, 32)
if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
{
entity_set_model(entity, W_KATANA)
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_katana[attacker] && g_currentweapon[attacker] == CSW_KNIFE)
{
static Float:originF[3]
pev(victim, pev_origin, originF)
new plrWeapId, plrClip, plrAmmo
plrWeapId = get_user_weapon(attacker, plrClip, plrAmmo)
if (plrWeapId == CSW_KNIFE)
SetHamParamFloat(4, damage += get_user_health(victim))
client_print(attacker, print_center, "Enemy Scraf!")
}
if(zp_get_user_nemesis(victim) || zp_get_user_first_zombie(victim) || zp_get_user_last_zombie(victim))
{
client_print(attacker, print_center, "The Nemesis, First Zombie And Last Zombie Inmunes")
}
return PLUGIN_HANDLED;
}
public fw_PlayerKilled(victim, attacker, shouldgib)
{
if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !attacker)
return HAM_IGNORED
if(g_katana[attacker] && g_currentweapon[attacker] == CSW_KNIFE && get_pcvar_num(cvar_explobody))
{
SetHamParamInteger(3, 2)
static iOrigin[3]
get_user_origin(victim, iOrigin)
implosion_efect(iOrigin)
}
if(g_katana[victim])
{
g_katana[victim] = false
}
return HAM_IGNORED
}
implosion_efect(iOrigin[3])
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_IMPLOSION)
write_coord(iOrigin[0])
write_coord(iOrigin[1])
write_coord(iOrigin[2])
write_byte(200)
write_byte(40)
write_byte(45)
message_end()
}
public zp_user_infected_post(infected, infector)
{
if (g_katana[infected])
{
g_katana[infected] = false
}
}
public client_putinserver(id)
{
g_katana[id] = false
}
public client_disconnect(id)
{
g_katana[id] = false
}
public fw_PlayerSpawn(id)
{
if(get_pcvar_num(cvar_oneround))
{
g_katana[id] = false
strip_oneWeapon(id, "weapon_knife")
give_item(id, "weapon_knife")
}
}
stock strip_oneWeapon(id, weapon[])
{
if (!equal(weapon, "weapon_", 7))
return 0
new idd = get_weaponid(weapon)
if (!idd) return 0
new iEnty
while((iEnty = find_ent_by_class(iEnty, weapon)) && entity_get_edict(iEnty, EV_ENT_owner) != id) {}
if (!iEnty) return 0
if (get_user_weapon(id) == idd)
ExecuteHamB(Ham_Weapon_RetireWeapon,iEnty);
if(!ExecuteHamB(Ham_RemovePlayerItem,id,iEnty))
return 0
ExecuteHamB(Ham_Item_Kill, iEnty)
entity_set_int(id, EV_INT_weapons, entity_get_int(id, EV_INT_weapons) & ~(1<<idd))
return 1
}
public fw_EmitSound(id, channel, const sound[])
{
if(!is_user_connected(id))
return FMRES_IGNORED
if(!is_user_alive(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id) || !g_katana[id] || !get_pcvar_num(cvar_katanasounds))
return FMRES_IGNORED
for(new i = 0; i < sizeof katana_sounds; i++)
{
if(equal(sound, old_knifeSounds[i]))
{
emit_sound(id, channel, katana_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public drop_weaponKatana(id)
{
if(g_katana[id] && g_currentweapon[id] == CSW_KNIFE)
{
katana_playerDrop(id)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public katana_playerDrop(id)
{
static Float:flAim[3], Float:flOrigin[3]
VelocityByAim(id, 64, flAim)
entity_get_vector(id, EV_VEC_origin, flOrigin)
flOrigin[0] += flAim[0]
flOrigin[1] += flAim[1]
new iEnt = create_entity("info_target")
new Float:katana_iMin[3] = { -2.0, -2.0, -2.0 }
new Float:katana_iMax[3] = { 2.0, 2.0, 2.0 }
entity_set_string(iEnt, EV_SZ_classname, "katana")
entity_set_origin(iEnt, flOrigin)
entity_set_model(iEnt, W_KATANA)
set_size(iEnt, katana_iMin, katana_iMax)
entity_set_vector(iEnt, EV_VEC_mins, katana_iMin)
entity_set_vector(iEnt, EV_VEC_maxs, katana_iMax)
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER)
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS)
g_katana[id] = false
reset_knifeModel(id)
}
public reset_knifeModel(id)
{
if(user_has_weapon(id, CSW_KNIFE))
ExecuteHamB(Ham_Item_Deploy, find_ent_by_owner(-1, "weapon_knife", id))
engclient_cmd(id, "weapon_knife")
emessage_begin(MSG_ONE, g_mgcur, _, id)
ewrite_byte(1)
ewrite_byte(CSW_KNIFE)
ewrite_byte(-1)
emessage_end()
}
public PlayerTouchKatana(Has, player)
{
if(!is_valid_ent(Has) || !is_valid_ent(player))
return PLUGIN_CONTINUE
if(!is_user_connected(player))
return PLUGIN_CONTINUE
if(!is_user_alive(player) || zp_get_user_zombie(player) || zp_get_user_survivor(player) || g_katana[player])
return PLUGIN_CONTINUE
g_katana[player] = true
reset_knifeModel(player)
remove_entity(Has)
return PLUGIN_CONTINUE
}
Retired from Amxmodx
0
0
Back to top
AnAcKiNNN12345
[Mentally Stable]
Status: Offline
(since 30-01-2017 13:00)
Joined: 22 Feb 2015
Posts: 230
,
Topics: 42
Location:
Romania
Reputation:
104
Votes
: 4
Posted: 08-11-2015, 15:40:41
| Translate post to:
... (
Click for more languages
)
Multumesc Destroi.
Ca sa nu mai fac alt topic poti sa imi spui ce trb sa adaug la un plugin de la o arma ca sa fie doar pentru o runda?
0
0
Back to top
destroi112
[DEV]
Status: Offline
(since 12-03-2020 22:13)
Joined: 24 May 2014
Posts: 4042
,
Topics: 119
Location:
---------
Reputation:
515.9
Votes
: 118
Posted: 08-11-2015, 15:57:45
| Translate post to:
... (
Click for more languages
)
Pui constana aia care e true cand iti da arma pe false la round start ->
exemplu pe pluginu tau
Code:
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
public event_round_start()
{
for(new i = 1; i <= get_maxplayers(); i++)
{
if (!is_user_connected(i))
continue
if (g_katana[i])
g_katana[i] = false
}
}
Retired from Amxmodx
0
0
Back to top
AnAcKiNNN12345
[Mentally Stable]
Status: Offline
(since 30-01-2017 13:00)
Joined: 22 Feb 2015
Posts: 230
,
Topics: 42
Location:
Romania
Reputation:
104
Votes
: 4
Posted: 08-11-2015, 19:22:48
| Translate post to:
... (
Click for more languages
)
Adica de aici? >
Code:
if(entity_get_int(plasmagun, EV_INT_WEAPONKEY) == plasmagun_WEAPONKEY)
{
g_has_plasmagun[id] = true
0
0
Back to top
destroi112
[DEV]
Status: Offline
(since 12-03-2020 22:13)
Joined: 24 May 2014
Posts: 4042
,
Topics: 119
Location:
---------
Reputation:
515.9
Votes
: 118
Posted: 09-11-2015, 16:24:07
| Translate post to:
... (
Click for more languages
)
Pune tot codul sau dami-l pe private.
Retired from Amxmodx
0
0
Back to top
AnAcKiNNN12345
[Mentally Stable]
Status: Offline
(since 30-01-2017 13:00)
Joined: 22 Feb 2015
Posts: 230
,
Topics: 42
Location:
Romania
Reputation:
104
Votes
: 4
Posted: 09-11-2015, 16:48:40
| Translate post to:
... (
Click for more languages
)
Spoiler:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>
#include <zombieplague>
#include <zmvip>
#define ENG_NULLENT -1
#define EV_INT_WEAPONKEY EV_INT_impulse
#define plasmagun_WEAPONKEY 8774
#define MAX_PLAYERS 32
#define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
const USE_STOPPED = 0
const OFFSET_ACTIVE_ITEM = 373
const OFFSET_WEAPONOWNER = 41
const OFFSET_LINUX = 5
const OFFSET_LINUX_WEAPONS = 4
#define WEAP_LINUX_XTRA_OFF 4
#define m_fKnown 44
#define m_flNextPrimaryAttack 46
#define m_flTimeWeaponIdle 48
#define m_iClip 51
#define m_fInReload 54
#define PLAYER_LINUX_XTRA_OFF 5
#define m_flNextAttack 83
#define plasmagun_RELOAD_TIME 3.5
#define plasmagun_RELOAD 1
#define plasmagun_DRAW 2
#define plasmagun_SHOOT1 3
#define plasmagun_SHOOT2 4
#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
new const Fire_Sounds[][] = {"weapons/plasmagun-1.wav"}
new plasmagun_V_MODEL[64] = "models/v_plasmagun.mdl"
new plasmagun_P_MODEL[64] = "models/p_plasmagun.mdl"
new plasmagun_W_MODEL[64] = "models/w_plasmagun.mdl"
new const Sound_Zoom[] = { "weapons/zoom.wav" }
new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
new cvar_dmg_plasmagun, cvar_recoil_plasmagun, g_itemid_plasmagun, cvar_clip_plasmagun, cvar_spd_plasmagun, cvar_plasmagun_ammo
new g_MaxPlayers, g_orig_event_plasmagun, g_IsInPrimaryAttack
new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]
new g_has_plasmagun[33], g_clip_ammo[33], g_plasmagun_TmpClip[33], oldweap[33], g_hasZoom[33], Float:g_flNextUseTime[33], g_Reload[33]
new gmsgWeaponList, sprexp, g_beamSpr
const PRIMARY_WEAPONS_BIT_SUM =
(1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
"weapon_ak47", "weapon_knife", "weapon_p90" }
public plugin_init()
{
register_plugin("[ZP] Extra: plasmagun", "1.0", "Crock")
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
register_event("CurWeapon","CurrentWeapon","be","1=1")
RegisterHam(Ham_Item_AddToPlayer, "weapon_mac10", "fw_plasmagun_AddToPlayer")
RegisterHam(Ham_Use, "func_tank", "fw_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tankmortar", "fw_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tankrocket", "fw_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tanklaser", "fw_UseStationary_Post", 1)
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mac10", "fw_plasmagun_PrimaryAttack")
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mac10", "fw_m4a1drag_PrimaryAttack_Post", 1)
RegisterHam(Ham_Item_PostFrame, "weapon_mac10", "plasmagun_ItemPostFrame")
RegisterHam(Ham_Weapon_Reload, "weapon_mac10", "plasmagun_Reload")
RegisterHam(Ham_Weapon_Reload, "weapon_mac10", "plasmagun_Reload_Post", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
register_forward(FM_SetModel, "fw_SetModel")
RegisterHam(Ham_Item_Holster, "weapon_mac10", "fw_plasmagun_Holster_Post", 1)
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
register_forward(FM_CmdStart, "fw_CmdStart")
RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_wall", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_door", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_door_rotating", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_plat", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_rotating", "fw_TraceAttack", 1)
cvar_dmg_plasmagun = register_cvar("zp_plasmagun_dmg", "99")
cvar_recoil_plasmagun = register_cvar("zp_plasmagun_recoil", "0.1")
cvar_clip_plasmagun = register_cvar("zp_plasmagun_clip", "45")
cvar_spd_plasmagun = register_cvar("zp_plasmagun_spd", "2.0")
cvar_plasmagun_ammo = register_cvar("zp_plasmagun_ammo", "200")
g_itemid_plasmagun = zv_register_extra_item("Spec. PlazmaGun", "Plasma gun", 50, ZV_TEAM_HUMAN)
g_MaxPlayers = get_maxplayers()
gmsgWeaponList = get_user_msgid("WeaponList")
}
public plugin_precache()
{
precache_model(plasmagun_V_MODEL)
precache_model(plasmagun_P_MODEL)
precache_model(plasmagun_W_MODEL)
sprexp=precache_model("sprites/plasmabomb.spr")
g_beamSpr=precache_model("sprites/xenobeam.spr")
for(new i = 0; i < sizeof Fire_Sounds; i++)
precache_sound(Fire_Sounds[i])
precache_sound("weapons/plasmagun_clipin1.wav")
precache_sound("weapons/plasmagun_clipin2.wav")
precache_sound("weapons/plasmagun_clipout.wav")
precache_sound("weapons/plasmagun_draw.wav")
precache_sound("weapons/plasmagun_idle.wav")
precache_sound(Sound_Zoom)
m_iBlood[0] = precache_model("sprites/blood.spr")
m_iBlood[1] = precache_model("sprites/bloodspray.spr")
precache_generic("sprites/weapon_plasmagun.txt")
precache_generic("sprites/640hud91.spr")
precache_generic("sprites/640hud3.spr")
register_clcmd("weapon_plasmagun", "weapon_hook")
register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
}
public weapon_hook(id)
{
engclient_cmd(id, "weapon_mac10")
return PLUGIN_HANDLED
}
public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
{
if(!is_user_alive(iAttacker))
return
new g_currentweapon = get_user_weapon(iAttacker)
if(g_currentweapon != CSW_MAC10) return
if(!g_has_plasmagun[iAttacker]) return
static Float:flEnd[3]
get_tr2(ptr, TR_vecEndPos, flEnd)
if(iEnt)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_DECAL)
engfunc(EngFunc_WriteCoord, flEnd[0])
engfunc(EngFunc_WriteCoord, flEnd[1])
engfunc(EngFunc_WriteCoord, flEnd[2])
write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
write_short(iEnt)
message_end()
}
else
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_SPRITE)
engfunc(EngFunc_WriteCoord, flEnd[0])
engfunc(EngFunc_WriteCoord, flEnd[1])
engfunc(EngFunc_WriteCoord, flEnd[2])
write_short(sprexp)
write_byte(10)
write_byte(200)
message_end()
}
message_begin(MSG_BROADCAST, SVC_TEMPENTITY )
write_byte(TE_BEAMENTPOINT)
write_short(iAttacker | 0x1000)
engfunc(EngFunc_WriteCoord, flEnd[0])
engfunc(EngFunc_WriteCoord, flEnd[1])
engfunc(EngFunc_WriteCoord, flEnd[2])
write_short(g_beamSpr)
write_byte(0) // framerate
write_byte(0) // framerate
write_byte(1) // life
write_byte(20) // width
write_byte(0)// noise
write_byte(110)// r, g, b
write_byte(251)// r, g, b
write_byte(110)// r, g, b
write_byte(200) // brightness
write_byte(5) // speed
message_end()
}
public zp_user_humanized_post(id)
{
g_has_plasmagun[id] = false
}
public plugin_natives ()
{
register_native("give_weapon_plasma", "native_give_weapon_add", 1)
}
public native_give_weapon_add(id)
{
give_plasma(id)
}
public fwPrecacheEvent_Post(type, const name[])
{
if (equal("events/mac10.sc", name))
{
g_orig_event_plasmagun = get_orig_retval()
return FMRES_HANDLED
}
return FMRES_IGNORED
}
public fw_CmdStart(id, uc_handle, seed)
{
if (!is_user_alive(id) || g_Reload[id] || !g_has_plasmagun[id])
return FMRES_IGNORED
if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
{
new szClip, szAmmo
new szWeapID = get_user_weapon(id, szClip, szAmmo)
if(szWeapID == CSW_MAC10 && g_has_plasmagun[id] && !g_hasZoom[id] == true)
{
g_hasZoom[id] = true
cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 0)
emit_sound(id, CHAN_ITEM, Sound_Zoom, 0.20, 2.40, 0, 100)
}
else if(szWeapID == CSW_MAC10 && g_has_plasmagun[id] && g_hasZoom[id])
{
g_hasZoom[id] = false
cs_set_user_zoom(id, CS_RESET_ZOOM, 0)
}
}
return FMRES_IGNORED
}
public client_connect(id)
{
g_has_plasmagun[id] = false
}
public client_disconnect(id)
{
g_has_plasmagun[id] = false
}
public zp_user_infected_post(id)
{
if (zp_get_user_zombie(id))
{
g_has_plasmagun[id] = false
}
}
public fw_SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED
static szClassName[33]
entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED
static iOwner
iOwner = entity_get_edict(entity, EV_ENT_owner)
if(equal(model, "models/w_mac10.mdl"))
{
static iStoredAugID
iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_mac10", entity)
if(!is_valid_ent(iStoredAugID))
return FMRES_IGNORED
if(g_has_plasmagun[iOwner])
{
entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, plasmagun_WEAPONKEY)
g_has_plasmagun[iOwner] = false
entity_set_model(entity, plasmagun_W_MODEL)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public give_plasma(id)
{
drop_weapons(id, 1)
new iWep2 = give_item(id,"weapon_mac10")
if( iWep2 > 0 )
{
cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_plasmagun))
cs_set_user_bpammo (id, CSW_MAC10, get_pcvar_num(cvar_plasmagun_ammo))
set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_plasmagun")
write_byte(6)
write_byte(100)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(13)
write_byte(CSW_MAC10)
message_end()
}
g_has_plasmagun[id] = true
g_Reload[id] = false
}
public zv_extra_item_selected(id, itemid)
{
if(itemid != g_itemid_plasmagun)
return
give_plasma(id)
}
public fw_plasmagun_AddToPlayer(plasmagun, id)
{
if(!is_valid_ent(plasmagun) || !is_user_connected(id))
return HAM_IGNORED
if(entity_get_int(plasmagun, EV_INT_WEAPONKEY) == plasmagun_WEAPONKEY)
{
g_has_plasmagun[id] = true
entity_set_int(plasmagun, EV_INT_WEAPONKEY, 0)
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_plasmagun")
write_byte(6)
write_byte(100)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(13)
write_byte(CSW_MAC10)
message_end()
return HAM_HANDLED
}
else
{
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_mac10")
write_byte(6)
write_byte(100)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(13)
write_byte(CSW_MAC10)
message_end()
}
return HAM_IGNORED
}
public fw_UseStationary_Post(entity, caller, activator, use_type)
{
if (use_type == USE_STOPPED && is_user_connected(caller))
replace_weapon_models(caller, get_user_weapon(caller))
}
public fw_Item_Deploy_Post(weapon_ent)
{
static owner
owner = fm_cs_get_weapon_ent_owner(weapon_ent)
static weaponid
weaponid = cs_get_weapon_id(weapon_ent)
replace_weapon_models(owner, weaponid)
}
public CurrentWeapon(id)
{
replace_weapon_models(id, read_data(2))
if(read_data(2) != CSW_MAC10 || !g_has_plasmagun[id])
return
static Float:iSpeed
if(g_has_plasmagun[id])
iSpeed = get_pcvar_float(cvar_spd_plasmagun)
static weapon[32],Ent
get_weaponname(read_data(2),weapon,31)
Ent = find_ent_by_owner(-1,weapon,id)
if(Ent)
{
static Float:Delay
Delay = get_pdata_float( Ent, 46, 4) * iSpeed
if (Delay > 0.0)
{
set_pdata_float(Ent, 46, Delay, 4)
}
}
}
replace_weapon_models(id, weaponid)
{
switch (weaponid)
{
case CSW_MAC10:
{
if (zp_get_user_zombie(id) || zp_get_user_survivor(id))
return
if(g_has_plasmagun[id])
{
set_pev(id, pev_viewmodel2, plasmagun_V_MODEL)
set_pev(id, pev_weaponmodel2, plasmagun_P_MODEL)
if(oldweap[id] != CSW_MAC10)
{
set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_plasmagun")
write_byte(6)
write_byte(100)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(13)
write_byte(CSW_MAC10)
message_end()
}
}
}
}
oldweap[id] = weaponid
}
public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)
{
if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_MAC10 || !g_has_plasmagun[Player]))
return FMRES_IGNORED
set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
return FMRES_HANDLED
}
public fw_plasmagun_PrimaryAttack(Weapon)
{
new Player = get_pdata_cbase(Weapon, 41, 4)
if (!g_has_plasmagun[Player])
return
g_IsInPrimaryAttack = 1
pev(Player,pev_punchangle,cl_pushangle[Player])
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}
public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
if ((eventid != g_orig_event_plasmagun) || !g_IsInPrimaryAttack)
return FMRES_IGNORED
if (!(1 <= invoker <= g_MaxPlayers))
return FMRES_IGNORED
playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
return FMRES_SUPERCEDE
}
public fw_m4a1drag_PrimaryAttack_Post(Weapon)
{
g_IsInPrimaryAttack = 0
new Player = get_pdata_cbase(Weapon, 41, 4)
new szClip, szAmmo
get_user_weapon(Player, szClip, szAmmo)
if(!is_user_alive(Player))
return
if(g_has_plasmagun[Player])
{
if (!g_clip_ammo[Player])
return
new Float:push[3]
pev(Player,pev_punchangle,push)
xs_vec_sub(push,cl_pushangle[Player],push)
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_plasmagun),push)
xs_vec_add(push,cl_pushangle[Player],push)
set_pev(Player,pev_punchangle,push)
emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
UTIL_PlayWeaponAnimation(Player, random_num(plasmagun_SHOOT1, plasmagun_SHOOT2))
}
}
public fw_TakeDamage(victim, inflictor, attacker)
{
if (victim != attacker && is_user_connected(attacker))
{
if(get_user_weapon(attacker) == CSW_MAC10)
{
if(g_has_plasmagun[attacker])
SetHamParamFloat(4, get_pcvar_float(cvar_dmg_plasmagun))
}
}
}
public message_DeathMsg(msg_id, msg_dest, id)
{
static szTruncatedWeapon[33], iAttacker, iVictim
get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
iAttacker = get_msg_arg_int(1)
iVictim = get_msg_arg_int(2)
if(!is_user_connected(iAttacker) || iAttacker == iVictim)
return PLUGIN_CONTINUE
if(equal(szTruncatedWeapon, "mac10") && get_user_weapon(iAttacker) == CSW_MAC10)
{
if(g_has_plasmagun[iAttacker])
set_msg_arg_string(4, "mac10")
}
return PLUGIN_CONTINUE
}
stock fm_cs_get_current_weapon_ent(id)
{
return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)
}
stock fm_cs_get_weapon_ent_owner(ent)
{
return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
}
stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
write_byte(Sequence)
write_byte(pev(Player, pev_body))
message_end()
}
public plasmagun_ItemPostFrame(weapon_entity)
{
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has_plasmagun[id])
return HAM_IGNORED
static iClipExtra
iClipExtra = get_pcvar_num(cvar_clip_plasmagun)
new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
new iBpAmmo = cs_get_user_bpammo(id, CSW_MAC10)
new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
if( fInReload && flNextAttack <= 0.0 )
{
new j = min(iClipExtra - iClip, iBpAmmo)
set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
cs_set_user_bpammo(id, CSW_MAC10, iBpAmmo-j)
set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
fInReload = 0
g_Reload[id] = 0
}
return HAM_IGNORED
}
public plasmagun_Reload(weapon_entity)
{
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has_plasmagun[id])
return HAM_IGNORED
static iClipExtra
if(g_has_plasmagun[id])
iClipExtra = get_pcvar_num(cvar_clip_plasmagun)
g_plasmagun_TmpClip[id] = -1
new iBpAmmo = cs_get_user_bpammo(id, CSW_MAC10)
new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
if (iBpAmmo <= 0)
return HAM_SUPERCEDE
if (iClip >= iClipExtra)
return HAM_SUPERCEDE
g_plasmagun_TmpClip[id] = iClip
return HAM_IGNORED
}
public plasmagun_Reload_Post(weapon_entity)
{
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has_plasmagun[id])
return HAM_IGNORED
if (g_plasmagun_TmpClip[id] == -1)
return HAM_IGNORED
set_pdata_int(weapon_entity, m_iClip, g_plasmagun_TmpClip[id], WEAP_LINUX_XTRA_OFF)
cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
set_pdata_float(weapon_entity, m_flTimeWeaponIdle, plasmagun_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
set_pdata_float(id, m_flNextAttack, plasmagun_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
UTIL_PlayWeaponAnimation(id, plasmagun_RELOAD)
g_Reload[id] = 1
return HAM_IGNORED
}
public fw_plasmagun_Holster_Post(weapon_entity)
{
static Player
Player = get_pdata_cbase(weapon_entity, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
g_flNextUseTime[Player] = 0.0
if(g_has_plasmagun[Player])
{
cs_set_user_zoom(Player, CS_RESET_ZOOM, 1)
}
}
stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
{
static wname[32]
get_weaponname(weaponid, wname, sizeof wname - 1)
engclient_cmd(id, "drop", wname)
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
Uite aici sursa.
0
0
Back to top
destroi112
[DEV]
Status: Offline
(since 12-03-2020 22:13)
Joined: 24 May 2014
Posts: 4042
,
Topics: 119
Location:
---------
Reputation:
515.9
Votes
: 118
Posted: 10-11-2015, 19:45:18
| Translate post to:
... (
Click for more languages
)
Spoiler:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>
#include <zombieplague>
#include <zmvip>
#define ENG_NULLENT -1
#define EV_INT_WEAPONKEY EV_INT_impulse
#define plasmagun_WEAPONKEY 8774
#define MAX_PLAYERS 32
#define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
const USE_STOPPED = 0
const OFFSET_ACTIVE_ITEM = 373
const OFFSET_WEAPONOWNER = 41
const OFFSET_LINUX = 5
const OFFSET_LINUX_WEAPONS = 4
#define WEAP_LINUX_XTRA_OFF 4
#define m_fKnown 44
#define m_flNextPrimaryAttack 46
#define m_flTimeWeaponIdle 48
#define m_iClip 51
#define m_fInReload 54
#define PLAYER_LINUX_XTRA_OFF 5
#define m_flNextAttack 83
#define plasmagun_RELOAD_TIME 3.5
#define plasmagun_RELOAD 1
#define plasmagun_DRAW 2
#define plasmagun_SHOOT1 3
#define plasmagun_SHOOT2 4
#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
new const Fire_Sounds[][] = {"weapons/plasmagun-1.wav"}
new plasmagun_V_MODEL[64] = "models/v_plasmagun.mdl"
new plasmagun_P_MODEL[64] = "models/p_plasmagun.mdl"
new plasmagun_W_MODEL[64] = "models/w_plasmagun.mdl"
new const Sound_Zoom[] = { "weapons/zoom.wav" }
new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
new cvar_dmg_plasmagun, cvar_recoil_plasmagun, g_itemid_plasmagun, cvar_clip_plasmagun, cvar_spd_plasmagun, cvar_plasmagun_ammo
new g_MaxPlayers, g_orig_event_plasmagun, g_IsInPrimaryAttack
new Float:cl_pushangle[MAX_PLAYERS + 1][3], m_iBlood[2]
new g_has_plasmagun[33], g_clip_ammo[33], g_plasmagun_TmpClip[33], oldweap[33], g_hasZoom[33], Float:g_flNextUseTime[33], g_Reload[33]
new gmsgWeaponList, sprexp, g_beamSpr
const PRIMARY_WEAPONS_BIT_SUM =
(1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
"weapon_ak47", "weapon_knife", "weapon_p90" }
public plugin_init()
{
register_plugin("[ZP] Extra: plasmagun", "1.0", "Crock")
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
register_event("CurWeapon","CurrentWeapon","be","1=1")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
RegisterHam(Ham_Item_AddToPlayer, "weapon_mac10", "fw_plasmagun_AddToPlayer")
RegisterHam(Ham_Use, "func_tank", "fw_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tankmortar", "fw_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tankrocket", "fw_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tanklaser", "fw_UseStationary_Post", 1)
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mac10", "fw_plasmagun_PrimaryAttack")
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mac10", "fw_m4a1drag_PrimaryAttack_Post", 1)
RegisterHam(Ham_Item_PostFrame, "weapon_mac10", "plasmagun_ItemPostFrame")
RegisterHam(Ham_Weapon_Reload, "weapon_mac10", "plasmagun_Reload")
RegisterHam(Ham_Weapon_Reload, "weapon_mac10", "plasmagun_Reload_Post", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
register_forward(FM_SetModel, "fw_SetModel")
RegisterHam(Ham_Item_Holster, "weapon_mac10", "fw_plasmagun_Holster_Post", 1)
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
register_forward(FM_CmdStart, "fw_CmdStart")
RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_wall", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_door", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_door_rotating", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_plat", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_rotating", "fw_TraceAttack", 1)
cvar_dmg_plasmagun = register_cvar("zp_plasmagun_dmg", "99")
cvar_recoil_plasmagun = register_cvar("zp_plasmagun_recoil", "0.1")
cvar_clip_plasmagun = register_cvar("zp_plasmagun_clip", "45")
cvar_spd_plasmagun = register_cvar("zp_plasmagun_spd", "2.0")
cvar_plasmagun_ammo = register_cvar("zp_plasmagun_ammo", "200")
g_itemid_plasmagun = zv_register_extra_item("Spec. PlazmaGun", "Plasma gun", 50, ZV_TEAM_HUMAN)
g_MaxPlayers = get_maxplayers()
gmsgWeaponList = get_user_msgid("WeaponList")
}
public plugin_precache()
{
precache_model(plasmagun_V_MODEL)
precache_model(plasmagun_P_MODEL)
precache_model(plasmagun_W_MODEL)
sprexp=precache_model("sprites/plasmabomb.spr")
g_beamSpr=precache_model("sprites/xenobeam.spr")
for(new i = 0; i < sizeof Fire_Sounds; i++)
precache_sound(Fire_Sounds[i])
precache_sound("weapons/plasmagun_clipin1.wav")
precache_sound("weapons/plasmagun_clipin2.wav")
precache_sound("weapons/plasmagun_clipout.wav")
precache_sound("weapons/plasmagun_draw.wav")
precache_sound("weapons/plasmagun_idle.wav")
precache_sound(Sound_Zoom)
m_iBlood[0] = precache_model("sprites/blood.spr")
m_iBlood[1] = precache_model("sprites/bloodspray.spr")
precache_generic("sprites/weapon_plasmagun.txt")
precache_generic("sprites/640hud91.spr")
precache_generic("sprites/640hud3.spr")
register_clcmd("weapon_plasmagun", "weapon_hook")
register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
}
public weapon_hook(id)
{
engclient_cmd(id, "weapon_mac10")
return PLUGIN_HANDLED
}
public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
{
if(!is_user_alive(iAttacker))
return
new g_currentweapon = get_user_weapon(iAttacker)
if(g_currentweapon != CSW_MAC10) return
if(!g_has_plasmagun[iAttacker]) return
static Float:flEnd[3]
get_tr2(ptr, TR_vecEndPos, flEnd)
if(iEnt)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_DECAL)
engfunc(EngFunc_WriteCoord, flEnd[0])
engfunc(EngFunc_WriteCoord, flEnd[1])
engfunc(EngFunc_WriteCoord, flEnd[2])
write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
write_short(iEnt)
message_end()
}
else
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_SPRITE)
engfunc(EngFunc_WriteCoord, flEnd[0])
engfunc(EngFunc_WriteCoord, flEnd[1])
engfunc(EngFunc_WriteCoord, flEnd[2])
write_short(sprexp)
write_byte(10)
write_byte(200)
message_end()
}
message_begin(MSG_BROADCAST, SVC_TEMPENTITY )
write_byte(TE_BEAMENTPOINT)
write_short(iAttacker | 0x1000)
engfunc(EngFunc_WriteCoord, flEnd[0])
engfunc(EngFunc_WriteCoord, flEnd[1])
engfunc(EngFunc_WriteCoord, flEnd[2])
write_short(g_beamSpr)
write_byte(0) // framerate
write_byte(0) // framerate
write_byte(1) // life
write_byte(20) // width
write_byte(0)// noise
write_byte(110)// r, g, b
write_byte(251)// r, g, b
write_byte(110)// r, g, b
write_byte(200) // brightness
write_byte(5) // speed
message_end()
}
public zp_user_humanized_post(id)
{
g_has_plasmagun[id] = false
}
public plugin_natives ()
{
register_native("give_weapon_plasma", "give_plasma", 1)
}
public event_round_start()
{
for(new i = 1; i <= get_maxplayers(); i++)
{
if (!is_user_connected(i))
continue
if (g_has_plasmagun[i])
{
g_has_plasmagun[i] = true
g_Reload[i] = false
}
}
}
public fwPrecacheEvent_Post(type, const name[])
{
if (equal("events/mac10.sc", name))
{
g_orig_event_plasmagun = get_orig_retval()
return FMRES_HANDLED
}
return FMRES_IGNORED
}
public fw_CmdStart(id, uc_handle, seed)
{
if (!is_user_alive(id) || g_Reload[id] || !g_has_plasmagun[id])
return FMRES_IGNORED
if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
{
new szClip, szAmmo
new szWeapID = get_user_weapon(id, szClip, szAmmo)
if(szWeapID == CSW_MAC10 && g_has_plasmagun[id] && !g_hasZoom[id] == true)
{
g_hasZoom[id] = true
cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 0)
emit_sound(id, CHAN_ITEM, Sound_Zoom, 0.20, 2.40, 0, 100)
}
else if(szWeapID == CSW_MAC10 && g_has_plasmagun[id] && g_hasZoom[id])
{
g_hasZoom[id] = false
cs_set_user_zoom(id, CS_RESET_ZOOM, 0)
}
}
return FMRES_IGNORED
}
public client_connect(id)
{
g_has_plasmagun[id] = false
}
public client_disconnect(id)
{
g_has_plasmagun[id] = false
}
public zp_user_infected_post(id)
{
if (zp_get_user_zombie(id))
{
g_has_plasmagun[id] = false
}
}
public fw_SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED
static szClassName[33]
entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED
static iOwner
iOwner = entity_get_edict(entity, EV_ENT_owner)
if(equal(model, "models/w_mac10.mdl"))
{
static iStoredAugID
iStoredAugID = find_ent_by_owner(ENG_NULLENT, "weapon_mac10", entity)
if(!is_valid_ent(iStoredAugID))
return FMRES_IGNORED
if(g_has_plasmagun[iOwner])
{
entity_set_int(iStoredAugID, EV_INT_WEAPONKEY, plasmagun_WEAPONKEY)
g_has_plasmagun[iOwner] = false
entity_set_model(entity, plasmagun_W_MODEL)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public give_plasma(id)
{
drop_weapons(id, 1)
new iWep2 = give_item(id,"weapon_mac10")
if( iWep2 > 0 )
{
cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_plasmagun))
cs_set_user_bpammo (id, CSW_MAC10, get_pcvar_num(cvar_plasmagun_ammo))
set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_plasmagun")
write_byte(6)
write_byte(100)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(13)
write_byte(CSW_MAC10)
message_end()
}
g_has_plasmagun[id] = true
g_Reload[id] = false
}
public zv_extra_item_selected(id, itemid)
{
if(itemid != g_itemid_plasmagun)
return
give_plasma(id)
}
public fw_plasmagun_AddToPlayer(plasmagun, id)
{
if(!is_valid_ent(plasmagun) || !is_user_connected(id))
return HAM_IGNORED
if(entity_get_int(plasmagun, EV_INT_WEAPONKEY) == plasmagun_WEAPONKEY)
{
g_has_plasmagun[id] = true
entity_set_int(plasmagun, EV_INT_WEAPONKEY, 0)
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_plasmagun")
write_byte(6)
write_byte(100)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(13)
write_byte(CSW_MAC10)
message_end()
return HAM_HANDLED
}
else
{
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_mac10")
write_byte(6)
write_byte(100)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(13)
write_byte(CSW_MAC10)
message_end()
}
return HAM_IGNORED
}
public fw_UseStationary_Post(entity, caller, activator, use_type)
{
if (use_type == USE_STOPPED && is_user_connected(caller))
replace_weapon_models(caller, get_user_weapon(caller))
}
public fw_Item_Deploy_Post(weapon_ent)
{
static owner
owner = fm_cs_get_weapon_ent_owner(weapon_ent)
static weaponid
weaponid = cs_get_weapon_id(weapon_ent)
replace_weapon_models(owner, weaponid)
}
public CurrentWeapon(id)
{
replace_weapon_models(id, read_data(2))
if(read_data(2) != CSW_MAC10 || !g_has_plasmagun[id])
return
static Float:iSpeed
if(g_has_plasmagun[id])
iSpeed = get_pcvar_float(cvar_spd_plasmagun)
static weapon[32],Ent
get_weaponname(read_data(2),weapon,31)
Ent = find_ent_by_owner(-1,weapon,id)
if(Ent)
{
static Float:Delay
Delay = get_pdata_float( Ent, 46, 4) * iSpeed
if (Delay > 0.0)
{
set_pdata_float(Ent, 46, Delay, 4)
}
}
}
replace_weapon_models(id, weaponid)
{
switch (weaponid)
{
case CSW_MAC10:
{
if (zp_get_user_zombie(id) || zp_get_user_survivor(id))
return
if(g_has_plasmagun[id])
{
set_pev(id, pev_viewmodel2, plasmagun_V_MODEL)
set_pev(id, pev_weaponmodel2, plasmagun_P_MODEL)
if(oldweap[id] != CSW_MAC10)
{
set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_plasmagun")
write_byte(6)
write_byte(100)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(13)
write_byte(CSW_MAC10)
message_end()
}
}
}
}
oldweap[id] = weaponid
}
public fw_UpdateClientData_Post(Player, SendWeapons, CD_Handle)
{
if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_MAC10 || !g_has_plasmagun[Player]))
return FMRES_IGNORED
set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
return FMRES_HANDLED
}
public fw_plasmagun_PrimaryAttack(Weapon)
{
new Player = get_pdata_cbase(Weapon, 41, 4)
if (!g_has_plasmagun[Player])
return
g_IsInPrimaryAttack = 1
pev(Player,pev_punchangle,cl_pushangle[Player])
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}
public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
if ((eventid != g_orig_event_plasmagun) || !g_IsInPrimaryAttack)
return FMRES_IGNORED
if (!(1 <= invoker <= g_MaxPlayers))
return FMRES_IGNORED
playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
return FMRES_SUPERCEDE
}
public fw_m4a1drag_PrimaryAttack_Post(Weapon)
{
g_IsInPrimaryAttack = 0
new Player = get_pdata_cbase(Weapon, 41, 4)
new szClip, szAmmo
get_user_weapon(Player, szClip, szAmmo)
if(!is_user_alive(Player))
return
if(g_has_plasmagun[Player])
{
if (!g_clip_ammo[Player])
return
new Float:push[3]
pev(Player,pev_punchangle,push)
xs_vec_sub(push,cl_pushangle[Player],push)
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_plasmagun),push)
xs_vec_add(push,cl_pushangle[Player],push)
set_pev(Player,pev_punchangle,push)
emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
UTIL_PlayWeaponAnimation(Player, random_num(plasmagun_SHOOT1, plasmagun_SHOOT2))
}
}
public fw_TakeDamage(victim, inflictor, attacker)
{
if (victim != attacker && is_user_connected(attacker))
{
if(get_user_weapon(attacker) == CSW_MAC10)
{
if(g_has_plasmagun[attacker])
SetHamParamFloat(4, get_pcvar_float(cvar_dmg_plasmagun))
}
}
}
public message_DeathMsg(msg_id, msg_dest, id)
{
static szTruncatedWeapon[33], iAttacker, iVictim
get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
iAttacker = get_msg_arg_int(1)
iVictim = get_msg_arg_int(2)
if(!is_user_connected(iAttacker) || iAttacker == iVictim)
return PLUGIN_CONTINUE
if(equal(szTruncatedWeapon, "mac10") && get_user_weapon(iAttacker) == CSW_MAC10)
{
if(g_has_plasmagun[iAttacker])
set_msg_arg_string(4, "mac10")
}
return PLUGIN_CONTINUE
}
stock fm_cs_get_current_weapon_ent(id)
{
return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)
}
stock fm_cs_get_weapon_ent_owner(ent)
{
return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
}
stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
write_byte(Sequence)
write_byte(pev(Player, pev_body))
message_end()
}
public plasmagun_ItemPostFrame(weapon_entity)
{
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has_plasmagun[id])
return HAM_IGNORED
static iClipExtra
iClipExtra = get_pcvar_num(cvar_clip_plasmagun)
new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
new iBpAmmo = cs_get_user_bpammo(id, CSW_MAC10)
new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
if( fInReload && flNextAttack <= 0.0 )
{
new j = min(iClipExtra - iClip, iBpAmmo)
set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
cs_set_user_bpammo(id, CSW_MAC10, iBpAmmo-j)
set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
fInReload = 0
g_Reload[id] = 0
}
return HAM_IGNORED
}
public plasmagun_Reload(weapon_entity)
{
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has_plasmagun[id])
return HAM_IGNORED
static iClipExtra
if(g_has_plasmagun[id])
iClipExtra = get_pcvar_num(cvar_clip_plasmagun)
g_plasmagun_TmpClip[id] = -1
new iBpAmmo = cs_get_user_bpammo(id, CSW_MAC10)
new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
if (iBpAmmo <= 0)
return HAM_SUPERCEDE
if (iClip >= iClipExtra)
return HAM_SUPERCEDE
g_plasmagun_TmpClip[id] = iClip
return HAM_IGNORED
}
public plasmagun_Reload_Post(weapon_entity)
{
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has_plasmagun[id])
return HAM_IGNORED
if (g_plasmagun_TmpClip[id] == -1)
return HAM_IGNORED
set_pdata_int(weapon_entity, m_iClip, g_plasmagun_TmpClip[id], WEAP_LINUX_XTRA_OFF)
cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
set_pdata_float(weapon_entity, m_flTimeWeaponIdle, plasmagun_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
set_pdata_float(id, m_flNextAttack, plasmagun_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
UTIL_PlayWeaponAnimation(id, plasmagun_RELOAD)
g_Reload[id] = 1
return HAM_IGNORED
}
public fw_plasmagun_Holster_Post(weapon_entity)
{
static Player
Player = get_pdata_cbase(weapon_entity, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
g_flNextUseTime[Player] = 0.0
if(g_has_plasmagun[Player])
{
cs_set_user_zoom(Player, CS_RESET_ZOOM, 1)
}
}
stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
{
static wname[32]
get_weaponname(weaponid, wname, sizeof wname - 1)
engclient_cmd(id, "drop", wname)
}
}
}
Spor.
Retired from Amxmodx
0
0
Back to top
Topic locked
Topic is closed, you cannot post any messages in it anymore
Locked by
destroi112
, 02 December 2015 17:32
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Fixed issues
The time now is 16-12-2024, 20:53:25
Copyright info
Based on phpBB
ro
/
com
B
Login
I forgot my password
World of Warcraft
Login for more...
Download WoW 7.3.5
Misc
eSports
Achievements
Buy reputation with votes
Reputation trades
Forum rules
Ban list
Members list
User guide (FAQ)
World of Warcraft
View details