Hey pessoal, eu tenho 1 bazooka e não sei tirar os modos a+ dela, Quero que só fique o modo NORMAL, código abaixo:
Se alguém me ajudar irei agradecer muito!
- Código:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <zombieplague>
#include < xs >
#define PLUGIN "[ZP] Bazooka + new modes"
#define VERSION "1.6"
#define AUTHOR "Vechta"
// Set " // " before custom models if you want to use standart Rpg models
#define CUSTOM_MODEL
// Set " // " before if you dont want that Admin get free Bazooka
#define ADMIN_BAZOOKA
#if defined ADMIN_BAZOOKA
#define BAZOOKA_ACCESS ADMIN_IMMUNITY
#endif
#define TASK_SEEK_CATCH 9000
#define fm_is_valid_ent(%1) pev_valid(%1)
#if defined CUSTOM_MODEL
static const mrocket[] = "models/zombie_plague/missel_bzk.mdl";
static const mrpg_w[] = "models/zombie_plague/w_bzk.mdl";
static const mrpg_v[] = "models/zombie_plague/v_bzk.mdl";
static const mrpg_p[] = "models/zombie_plague/p_bzk.mdl";
#else
static const mrocket[] = "models/rpgrocket.mdl";
static const mrpg_w[] = "models/w_rpg.mdl";
static const mrpg_v[] = "models/v_rpg.mdl";
static const mrpg_p[] = "models/p_rpg.mdl";
#endif
static const sfire[] = "weapons/rocketfire1.wav";
static const sfly[] = "weapons/nuke_fly.wav";
static const shit[] = "weapons/mortarhit.wav";
static const spickup[] = "items/gunpickup2.wav";
static const reload[] = "items/9mmclip2.wav";
// Time between can witch to next mode (Thanks to Nihilanth)
#define SWITCH_TIME 0.5
// Register the item
new g_itemid;
// Cvars
new pcvar_delay, pcvar_maxdmg, pcvar_radius, pcvar_map, pcvar_speed,
pcvar_dmgforpacks, pcvar_award, pcvar_count, pcvar_speed_homing,
pcvar_speed_camera
// Sprites
new rocketsmoke, white, explosion, bazsmoke
// Variables
new dmgcount[33], user_controll[33], mode[33]
// Bools
new bool:g_hasbazooka[33], Float:LastShoot[33]
// Floats
new Float:lastSwitchTime[33]
// Messages
new gmsg_screenshake, gmsg_death, gmsg_damage, gmsgBarTime
// Others
new Saytxt
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
// Cvars
pcvar_delay = register_cvar("zp_bazooka_delay", "10")
pcvar_maxdmg = register_cvar("zp_bazooka_damage", "550")
pcvar_radius = register_cvar("zp_bazooka_radius", "250")
pcvar_map = register_cvar("zp_bazooka_map", "0")
pcvar_dmgforpacks = get_cvar_pointer("zp_human_damage_reward")
pcvar_award = register_cvar("zp_bazooka_awardpacks", "1")
pcvar_speed = register_cvar("zp_bazooka_speed", "800")
pcvar_speed_homing = register_cvar("zp_bazooka_homing_speed", "350")
pcvar_speed_camera = register_cvar("zp_bazooka_camera_speed", "300")
pcvar_count = register_cvar("zp_bazooka_count", "4")
// Register the Extra Item
g_itemid = zp_register_extra_item("Bazooka", 45, ZP_TEAM_HUMAN)
// Events
register_event("CurWeapon","switch_to_knife","be");
register_event("HLTV", "event_HLTV", "a", "1=0", "2=0")
register_event("DeathMsg", "player_die", "a")
// Clcmd's
register_clcmd("drop", "drop_call");
register_concmd("zp_bazooka", "give_bazooka", ADMIN_IMMUNITY, "<name/@all> gives a bazooka to the spcified target")
// Forwards
register_forward(FM_PlayerPreThink, "client_PreThink");
register_forward(FM_Touch, "fw_touch");
register_forward(FM_CmdStart, "fw_CmdStart")
// Msgid >.<
gmsg_screenshake = get_user_msgid("ScreenShake");
gmsg_death = get_user_msgid("DeathMsg");
gmsg_damage = get_user_msgid("Damage");
Saytxt = get_user_msgid("SayText")
gmsgBarTime = get_user_msgid( "BarTime" )
// Check for Admin on ban
#if defined ADMIN_BAZOOKA
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn", 1)
#endif
}
public client_putinserver(id)
{
mode[id] = 1
g_hasbazooka[id] = false
LastShoot[id] = 0.0
}
public plugin_cfg()
{
new cfgdirecction[32]
get_configsdir(cfgdirecction, sizeof cfgdirecction - 1);
server_cmd("exec %s/zp_bazooka_modes.cfg", cfgdirecction)
}
public event_HLTV()
{
new rpg_temp = engfunc(EngFunc_FindEntityByString, -1, "classname", "rpg_temp");
while( rpg_temp > 0)
{
engfunc(EngFunc_RemoveEntity, rpg_temp);
rpg_temp = engfunc(EngFunc_FindEntityByString, -1, "classname", "rpg_temp");
}
if ( get_pcvar_num(pcvar_map) ) return;
for( new id = 1; id <= 32; id++ )
{
g_hasbazooka[id] = false;
#if defined ADMIN_BAZOOKA
set_task(1.0, "AdminBazooka", id)
#endif
}
}
public zp_extra_item_selected(player, itemid)
{
if (itemid == g_itemid)
{
if ( g_hasbazooka[player] )
{
bazooka_message(player, "> Voce ja tem uma bazooka");
return ZP_PLUGIN_HANDLED
}
else if (baz_count() > get_pcvar_num(pcvar_count))
{
bazooka_message(player, "> Desculpe, todas bazookas ja foram compradas");
return ZP_PLUGIN_HANDLED;
}
else
{
g_hasbazooka[player] = true;
LastShoot[player] = 0.0;
bazooka_message(player, "> Voce comprou uma bazooka", get_pcvar_float(pcvar_delay))
emit_sound(player, CHAN_WEAPON, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
}
return PLUGIN_CONTINUE
}
public give_bazooka(id,level,cid)
{
if (!cmd_access(id,level,cid,1))
{
console_print(id,"Voce nao tem acesso a este comando.");
return;
}
if (read_argc() > 2)
{
console_print(id,"Too many arguments supplied.");
return;
}
new arg1[32];
read_argv(1, arg1, sizeof(arg1) - 1);
new player = cmd_target(id, arg1, 10);
if ( !player )
{
if ( arg1[0] == '@' )
{
for ( new i = 1; i <= 32; i++ )
{
if ( is_user_connected(i) && !g_hasbazooka[i] && !zp_get_user_zombie(i) )
{
g_hasbazooka[id] = true
LastShoot[id] = 0.0
emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
bazooka_message(player, "> Voce tem uma Bazooka!", get_pcvar_float(pcvar_delay))
}
}
}
else
{
client_print(id, print_center, "SdK ZP 2013");
return;
}
}
else if ( !g_hasbazooka[player] && !zp_get_user_zombie(player) )
{
g_hasbazooka[id] = true
LastShoot[id] = 0.0
emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
bazooka_message(player, "> Voce comprou uma bazooka", get_pcvar_float(pcvar_delay))
}
}
public zp_user_infected_post(id, infector)
{
if ( g_hasbazooka[id] )
{
drop_rpg_temp(id);
}
}
public zp_user_humanized_post(id, survivor)
{
#if defined ADMIN_BAZOOKA
if (get_user_flags(id) & BAZOOKA_ACCESS)
{
g_hasbazooka[id] = true
LastShoot[id] = 0.0
}
#endif
}
public plugin_precache()
{
precache_model(mrocket);
precache_model(mrpg_w);
precache_model(mrpg_v);
precache_model(mrpg_p);
precache_sound(sfire);
precache_sound(sfly);
precache_sound(shit);
precache_sound(spickup);
precache_sound(reload);
rocketsmoke = precache_model("sprites/smoke.spr");
white = precache_model("sprites/white.spr");
explosion = precache_model("sprites/fexplo.spr");
bazsmoke = precache_model("sprites/steam1.spr");
}
public switch_to_knife(id)
{
if ( !is_user_alive(id) ) return;
if ( g_hasbazooka[id] )
{
if (get_user_weapon(id) == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2, mrpg_v);
set_pev(id, pev_weaponmodel2, mrpg_p);
}
}
}
fire_rocket(id)
{
if (!CanShoot(id) ) return;
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if (!pev_valid(ent) || !is_user_alive(id) )
return;
new data[1]
data[0] = id
LastShoot[id] = get_gametime();
set_task(0.0 + get_pcvar_num(pcvar_delay), "rpg_reload", id);
engclient_cmd(id, "weapon_knife");
new Float:StartOrigin[3], Float:Angle[3];
pev(id, pev_origin, StartOrigin);
pev(id, pev_angles, Angle);
set_pev(ent, pev_classname, "rpgrocket");
engfunc(EngFunc_SetModel, ent, mrocket);
set_pev(ent, pev_mins, {-1.0, -1.0, -1.0});
set_pev(ent, pev_maxs, {1.0, 1.0, 1.0});
engfunc(EngFunc_SetOrigin, ent, StartOrigin);
set_pev(ent, pev_angles, Angle);
set_pev(ent, pev_solid, 2);
set_pev(ent, pev_movetype, 5);
set_pev(ent, pev_owner, id);
new Float:fAim[3],Float:fAngles[3],Float:fOrigin[3]
velocity_by_aim(id,64,fAim)
vector_to_angle(fAim,fAngles)
pev(id,pev_origin,fOrigin)
fOrigin[0] += fAim[0]
fOrigin[1] += fAim[1]
fOrigin[2] += fAim[2]
new Float:nVelocity[3];
if (mode[id] == 1)
velocity_by_aim(id, get_pcvar_num(pcvar_speed), nVelocity);
else if (mode[id] == 2)
velocity_by_aim(id, get_pcvar_num(pcvar_speed_homing), nVelocity);
else if (mode[id] == 3)
velocity_by_aim(id, get_pcvar_num(pcvar_speed_camera), nVelocity);
set_pev(ent, pev_velocity, nVelocity);
entity_set_int(ent, EV_INT_effects, entity_get_int(ent, EV_INT_effects) | EF_BRIGHTLIGHT)
emit_sound(ent, CHAN_WEAPON, sfire, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
emit_sound(ent, CHAN_VOICE, sfly, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(22);
write_short(ent);
write_short(rocketsmoke);
write_byte(50);
write_byte(3);
write_byte(255);
write_byte(255);
write_byte(255);
write_byte(255);
message_end();
if (mode[id] == 2)
set_task(0.5, "rpg_seek_follow", ent + TASK_SEEK_CATCH, _, _, "b");
else if (mode[id] == 3)
{
if (is_user_alive(id))
{
entity_set_int(ent, EV_INT_rendermode, 1)
attach_view(id, ent)
user_controll[id] = ent
}
}
launch_push(id, 130)
Progress_status(id, get_pcvar_num(pcvar_delay))
}
public rpg_reload(id)
{
if (!g_hasbazooka[id]) return;
if ( get_user_weapon(id) == CSW_KNIFE ) switch_to_knife(id);
{
// CanShoot[id] = true
client_print(id, print_center, "Bazooka Carregada!")
emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
}
public fw_touch(ent, touched)
{
if ( !pev_valid(ent) ) return FMRES_IGNORED;
static entclass[32];
pev(ent, pev_classname, entclass, 31);
if ( equali(entclass, "rpg_temp") )
{
static touchclass[32];
pev(touched, pev_classname, touchclass, 31);
if ( !equali(touchclass, "player") ) return FMRES_IGNORED;
if( !is_user_alive(touched) || zp_get_user_zombie(touched) ) return FMRES_IGNORED;
emit_sound(touched, CHAN_VOICE, spickup, 1.0, ATTN_NORM, 0, PITCH_NORM);
g_hasbazooka[touched] = true;
engfunc(EngFunc_RemoveEntity, ent);
return FMRES_HANDLED;
}
else if ( equali(entclass, "rpgrocket") )
{
new Float:EndOrigin[3];
pev(ent, pev_origin, EndOrigin);
new NonFloatEndOrigin[3];
NonFloatEndOrigin[0] = floatround(EndOrigin[0]);
NonFloatEndOrigin[1] = floatround(EndOrigin[1]);
NonFloatEndOrigin[2] = floatround(EndOrigin[2]);
emit_sound(ent, CHAN_WEAPON, shit, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
emit_sound(ent, CHAN_VOICE, shit, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(17);
write_coord(NonFloatEndOrigin[0]);
write_coord(NonFloatEndOrigin[1]);
write_coord(NonFloatEndOrigin[2] + 128);
write_short(explosion);
write_byte(60);
write_byte(255);
message_end();
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(5);
write_coord(NonFloatEndOrigin[0]);
write_coord(NonFloatEndOrigin[1]);
write_coord(NonFloatEndOrigin[2] + 256);
write_short(bazsmoke);
write_byte(125);
write_byte(5);
message_end();
new maxdamage = get_pcvar_num(pcvar_maxdmg);
new damageradius = get_pcvar_num(pcvar_radius);
new PlayerPos[3], distance, damage;
for (new i = 1; i <= 32; i++)
{
if ( is_user_alive(i))
{
new id = pev(ent, pev_owner)
if ((zp_get_user_zombie(id)) || ((zp_get_user_nemesis(id))))
if ((zp_get_user_zombie(i)) || (zp_get_user_nemesis(i))) continue;
if ((!zp_get_user_zombie(id)) && (!zp_get_user_nemesis(id)))
if ((!zp_get_user_zombie(i)) && (!zp_get_user_nemesis(i))) continue;
get_user_origin(i, PlayerPos);
distance = get_distance(PlayerPos, NonFloatEndOrigin);
if (distance <= damageradius)
{
message_begin(MSG_ONE, gmsg_screenshake, {0,0,0}, i);
write_short(1<<14);
write_short(1<<14);
write_short(1<<14);
message_end();
damage = maxdamage - floatround(floatmul(float(maxdamage), floatdiv(float(distance), float(damageradius))));
new attacker = pev(ent, pev_owner);
baz_damage(i, attacker, damage, "bazooka");
}
}
}
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(21);
write_coord(NonFloatEndOrigin[0]);
write_coord(NonFloatEndOrigin[1]);
write_coord(NonFloatEndOrigin[2]);
write_coord(NonFloatEndOrigin[0]);
write_coord(NonFloatEndOrigin[1]);
write_coord(NonFloatEndOrigin[2] + 320);
write_short(white);
write_byte(0);
write_byte(0);
write_byte(16);
write_byte(128);
write_byte(0);
write_byte(255);
write_byte(255);
write_byte(192);
write_byte(128);
write_byte(0);
message_end();
attach_view(entity_get_edict(ent, EV_ENT_owner), entity_get_edict(ent, EV_ENT_owner))
user_controll[entity_get_edict(ent, EV_ENT_owner)] = 0
remove_entity(ent)
return FMRES_HANDLED;
}
return FMRES_IGNORED;
}
public drop_call(id)
{
if ( g_hasbazooka[id] && get_user_weapon(id) == CSW_KNIFE )
{
drop_rpg_temp(id);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
drop_rpg_temp(id)
{
new Float:fAim[3] , Float:fOrigin[3];
velocity_by_aim(id , 64 , fAim);
pev(id , pev_origin , fOrigin);
fOrigin[0] += fAim[0];
fOrigin[1] += fAim[1];
new rpg = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_pev(rpg, pev_classname, "rpg_temp");
engfunc(EngFunc_SetModel, rpg, mrpg_w);
set_pev(rpg, pev_mins, { -16.0, -16.0, -16.0 } );
set_pev(rpg, pev_maxs, { 16.0, 16.0, 16.0 } );
set_pev(rpg , pev_solid , 1);
set_pev(rpg , pev_movetype , 6);
engfunc(EngFunc_SetOrigin, rpg, fOrigin);
g_hasbazooka[id] = false;
}
baz_damage(id, attacker, damage, weaponDescription[])
{
if ( pev(id, pev_takedamage) == DAMAGE_NO ) return;
if ( damage <= 0 ) return;
new userHealth = get_user_health(id);
if (userHealth - damage <= 0 )
{
dmgcount[attacker] += userHealth - damage;
set_msg_block(gmsg_death, BLOCK_SET);
ExecuteHamB(Ham_Killed, id, attacker, 2);
set_msg_block(gmsg_death, BLOCK_NOT);
message_begin(MSG_BROADCAST, gmsg_death);
write_byte(attacker);
write_byte(id);
write_byte(0);
write_string(weaponDescription);
message_end();
set_pev(attacker, pev_frags, float(get_user_frags(attacker) + 1));
new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10];
get_user_name(attacker, kname, 31);
get_user_team(attacker, kteam, 9);
get_user_authid(attacker, kauthid, 31);
get_user_name(id, vname, 31);
get_user_team(id, vteam, 9);
get_user_authid(id, vauthid, 31);
log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
kname, get_user_userid(attacker), kauthid, kteam,
vname, get_user_userid(id), vauthid, vteam, weaponDescription);
}
else
{
dmgcount[attacker] += damage;
new origin[3];
get_user_origin(id, origin);
message_begin(MSG_ONE,gmsg_damage,{0,0,0},id);
write_byte(21);
write_byte(20);
write_long(DMG_BLAST);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]);
message_end();
set_pev(id, pev_health, pev(id, pev_health) - float(damage));
}
if ( !get_pcvar_num(pcvar_award) ) return;
new breaker = get_pcvar_num(pcvar_dmgforpacks);
if ( dmgcount[attacker] > breaker )
{
new temp = dmgcount[attacker] / breaker
if ( temp * breaker > dmgcount[attacker] ) return; //should never be possible
dmgcount[attacker] -= temp * breaker;
zp_set_user_ammo_packs( attacker, zp_get_user_ammo_packs(attacker) + temp );
}
}
public rpg_seek_follow(ent)
{
ent -= TASK_SEEK_CATCH
new Float: shortest_distance = 500.0;
new NearestPlayer = 0;
if (pev_valid(ent))
{
static entclass[32];
pev(ent, pev_classname, entclass, 31);
if ( equali(entclass, "rpgrocket") )
{
new id_owner = pev(ent, pev_owner)
new iClient[32], livePlayers, iNum;
get_players(iClient, livePlayers, "a");
for(iNum = 0; iNum < livePlayers; iNum++)
{
if ( is_user_alive(iClient[iNum]) && pev_valid(ent) )
{
if ( id_owner != iClient[iNum] && zp_get_user_zombie(iClient[iNum]) )
{
new Float:PlayerOrigin[3], Float:RocketOrigin[3]
pev(ent, pev_origin, RocketOrigin)
pev(iClient[iNum], pev_origin, PlayerOrigin)
new Float: distance = get_distance_f(PlayerOrigin, RocketOrigin)
if ( distance <= shortest_distance )
{
shortest_distance = distance;
NearestPlayer = iClient[iNum];
}
}
}
}
if (NearestPlayer > 0)
{
entity_set_follow(ent, NearestPlayer, 250.0)
}
}
}
}
stock entity_set_follow(entity, target, Float:speed)
{
if(!fm_is_valid_ent(entity) || !fm_is_valid_ent(target))
return 0
new Float:entity_origin[3], Float:target_origin[3]
pev(entity, pev_origin, entity_origin)
pev(target, pev_origin, target_origin)
new Float:diff[3]
diff[0] = target_origin[0] - entity_origin[0]
diff[1] = target_origin[1] - entity_origin[1]
diff[2] = target_origin[2] - entity_origin[2]
new Float:length = floatsqroot(floatpower(diff[0], 2.0) + floatpower(diff[1], 2.0) + floatpower(diff[2], 2.0))
new Float:velocity[3]
velocity[0] = diff[0] * (speed / length)
velocity[1] = diff[1] * (speed / length)
velocity[2] = diff[2] * (speed / length)
set_pev(entity, pev_velocity, velocity)
return 1
}
public fw_CmdStart(id, UC_Handle, Seed)
{
if(!is_user_alive(id) || !g_hasbazooka[id]) return
static Button, OldButton
OldButton = get_user_oldbutton(id)
Button = get_uc(UC_Handle, UC_Buttons)
if (Button & IN_ATTACK)
{
if (!CanShoot(id) || (OldButton & IN_ATTACK2)) return;
if ( get_user_weapon(id) == CSW_KNIFE )
fire_rocket(id);
}
else if (Button & IN_ATTACK2 && get_user_weapon(id) == CSW_KNIFE)
{
if ( get_gametime ( ) - lastSwitchTime [ id ] < SWITCH_TIME || (OldButton & IN_ATTACK2)) return
if (is_user_alive(id))
{
switch(mode[id])
{
case 1:
{
mode[id] = 2
emit_sound(id, CHAN_ITEM, "common/wpn_select.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
client_print(id, print_center, "Seguir os Zumbis")
}
case 2:
{
mode[id] = 3
emit_sound(id, CHAN_ITEM, "common/wpn_select.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
client_print(id, print_center, "Guiar o Missel")
}
case 3:
{
mode[id] = 1
emit_sound(id, CHAN_ITEM, "common/wpn_select.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
client_print(id, print_center, "Normal")
}
}
lastSwitchTime [ id ] = get_gametime ( )
}
}
else if (user_controll[id])
{
new RocketEnt = user_controll[id]
if (is_valid_ent(RocketEnt))
{
new Float:Velocity[3]
VelocityByAim(id, 500, Velocity)
entity_set_vector(RocketEnt, EV_VEC_velocity, Velocity)
new Float:NewAngle[3]
entity_get_vector(id, EV_VEC_v_angle, NewAngle)
entity_set_vector(RocketEnt, EV_VEC_angles, NewAngle)
}
else
{
attach_view(id, id)
}
}
}
public client_connect(id)
g_hasbazooka[id] = false
#if defined ADMIN_BAZOOKA
public fw_PlayerSpawn(id)
set_task(1.0, "AdminBazooka", id)
#endif
#if defined ADMIN_BAZOOKA
public AdminBazooka(id)
{
if (g_hasbazooka[id] || zp_get_user_nemesis(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id))
return;
if (is_user_alive(id) && (get_user_flags(id) & BAZOOKA_ACCESS))
{
g_hasbazooka[id] = true
LastShoot[id] = 0.0
emit_sound(id, CHAN_WEAPON, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
bazooka_message(id, "> Voce comprou uma Bazooka", get_pcvar_float(pcvar_delay))
}
}
#endif
stock launch_push(id, velamount)
{
static Float:flNewVelocity[3], Float:flCurrentVelocity[3]
velocity_by_aim(id, -velamount, flNewVelocity)
get_user_velocity(id, flCurrentVelocity)
xs_vec_add(flNewVelocity, flCurrentVelocity, flNewVelocity)
set_user_velocity(id, flNewVelocity)
}
baz_count()
{
new i, count = 0;
for(i = 1; i < 33; i++)
{
if(g_hasbazooka[i])
count++;
}
return count;
}
stock bazooka_message(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg,190,input,3)
replace_all(msg,190,"/g","^4")
replace_all(msg,190,"/y","^1")
replace_all(msg,190,"/ctr","^3")
if (id) players[0] = id; else get_players(players,count,"ch")
for (new i = 0; i < count; i++)
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, Saytxt, _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
public Progress_status( const id, const duration )
{
message_begin( MSG_ONE, gmsgBarTime, _, id )
write_short( duration )
message_end()
}
public player_die() {
new id = read_data(2)
if ( g_hasbazooka[id] )
drop_rpg_temp(id);
return PLUGIN_CONTINUE
}
public CanShoot(id)
{
return get_gametime() - LastShoot[id] >= get_pcvar_float(pcvar_delay)
}
Se alguém me ajudar irei agradecer muito!