Help adding weapon
Hi, can someone please help me add so that you also get the M3 Shotgun when you buy this "Explosive M3 shotgun" in the "Upgrades Mod" itemshop.
Code:
#include <amxmodx>
#include <umitem>
#include <engine>
#include <fun>
new PLUGIN_NAME[] = "UM Item: Super Pump"
new PLUGIN_AUTHOR[] = "Cheap_Suit"
new PLUGIN_VERSION[] = "1.0"
#define SHOTGUN_AIMING 32
#define MAX_KB_DISTANCE 900
#define SHOTGUN_PUSH 580.0
new fire
new g_OldAmmo[33]
new g_LastWeapon[33]
new bool:g_SuperPump[33]
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_item("Super Pump", "Explosive M3 shotgun", 4000)
register_event("CurWeapon","Event_CurWeapon", "be", "1=1")
}
public plugin_precache() {
fire = precache_model("sprites/mushroom.spr")
}
public client_connect(id) {
g_SuperPump[id] = false
}
public Enable_Item(id) {
g_SuperPump[id] = true
}
public Disable_Item(id) {
g_SuperPump[id] = false
}
public Event_CurWeapon(id)
{
if(!is_user_connected(id) || !is_user_alive(id)) {
return PLUGIN_CONTINUE
}
if(!g_SuperPump[id]) {
return PLUGIN_CONTINUE
}
new Weapon_Id = read_data(2)
new Weapon_Clip = read_data(3)
if(Weapon_Id == CSW_M3)
{
if(g_OldAmmo[id] > Weapon_Clip && Weapon_Clip >= 0)
{
if(g_LastWeapon[id] != Weapon_Id)
{
g_LastWeapon[id] = Weapon_Id
return PLUGIN_CONTINUE
}
new iVec1[3], iVec2[3], iVec3[3]
get_user_origin(id, iVec1, 1)
get_user_origin(id, iVec2, 4)
get_user_origin(id, iVec3, 3)
draw_tracers(iVec1, iVec2)
iVec2[0] += SHOTGUN_AIMING
draw_tracers(iVec1, iVec2)
iVec2[1] += SHOTGUN_AIMING
draw_tracers(iVec1, iVec2)
iVec2[2] += SHOTGUN_AIMING
draw_tracers(iVec1, iVec2)
iVec2[0] -= SHOTGUN_AIMING
iVec2[0] -= SHOTGUN_AIMING
draw_tracers(iVec1, iVec2)
iVec2[1] -= SHOTGUN_AIMING
iVec2[1] -= SHOTGUN_AIMING
draw_tracers(iVec1, iVec2)
iVec2[2] -= SHOTGUN_AIMING
iVec2[2] -= SHOTGUN_AIMING
draw_tracers(iVec1, iVec2)
create_explosion(iVec3)
new Players[32], iNum
get_players(Players, iNum, "a")
for(new i = 0; i < iNum; ++i)
{
new target = Players[i]
new tOrigin[3]
get_user_origin(target, tOrigin)
if(get_distance(iVec3, tOrigin) <= MAX_KB_DISTANCE)
{
new Float:flOrigin[3]
new Friendlyfire = get_cvar_num("mp_friendlyfire")
switch(Friendlyfire)
{
case 0:
{
new ateam = get_user_team(id)
new bteam = get_user_team(target)
if(ateam != bteam)
{
IVecFVec(iVec3, flOrigin)
set_velocity_from_origin(target, flOrigin, SHOTGUN_PUSH)
}
}
case 1:
{
IVecFVec(iVec3, flOrigin)
set_velocity_from_origin(target, flOrigin, SHOTGUN_PUSH)
}
}
}
}
}
g_OldAmmo[id] = Weapon_Clip
g_LastWeapon[id] = Weapon_Id
}
return PLUGIN_CONTINUE
}
draw_tracers(vec1[3], vec2[3])
{
message_begin(MSG_PAS, SVC_TEMPENTITY, vec1)
write_byte(6)
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_coord(vec2[0])
write_coord(vec2[1])
write_coord(vec2[2])
message_end()
}
create_explosion(Origin[3])
{
message_begin(MSG_ALL, SVC_TEMPENTITY)
write_byte(3)
write_coord(Origin[0])
write_coord(Origin[1])
write_coord(Origin[2] + 22)
write_short(fire)
write_byte(10)
write_byte(12)
write_byte(0)
message_end()
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(116)
write_coord(Origin[0])
write_coord(Origin[1])
write_coord(Origin[2])
write_byte(47)
message_end()
}
get_velocity_from_origin(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3])
{
new Float:fEntOrigin[3]
entity_get_vector(ent, EV_VEC_origin, fEntOrigin)
new Float:fDistance[3]
fDistance[0] = fEntOrigin[0] - fOrigin[0]
fDistance[1] = fEntOrigin[1] - fOrigin[1]
fDistance[2] = fEntOrigin[2] - fOrigin[2]
new Float:fTime = (vector_distance(fEntOrigin,fOrigin ) / fSpeed)
fVelocity[0] = fDistance[0] / fTime
fVelocity[1] = fDistance[1] / fTime
fVelocity[2] = fDistance[2] / fTime
return(fVelocity[0] && fVelocity[1] && fVelocity[2])
}
set_velocity_from_origin(ent, Float:fOrigin[3], Float:fSpeed)
{
new Float:fVelocity[3]
get_velocity_from_origin( ent, fOrigin, fSpeed, fVelocity )
entity_set_vector( ent, EV_VEC_velocity, fVelocity )
return(1)
}
|