In the first sma. file there is a register_clcmd("say /get", "Get_FGLauncher").
Jack fixed this and there is no more command /get.
Anyway, Jack I can buy that weapon now in menu, but after that nothing happens. Gun is not working
FG-LAUNCHER ( Cool Extra Item )
-
- Veteran Member
- Posts: 598
- Joined: 7 years ago
- Contact:
- Night Fury
- Mod Developer
- Posts: 677
- Joined: 7 years ago
- Contact:
I have updated the codeczirimbolo wrote: ↑5 years ago In the first sma. file there is a register_clcmd("say /get", "Get_FGLauncher").
Jack fixed this and there is no more command /get.
Anyway, Jack I can buy that weapon now in menu, but after that nothing happens. Gun is not working
Check: viewtopic.php?p=6997#p6997
-
- Veteran Member
- Posts: 598
- Joined: 7 years ago
- Contact:
Yes I saw this, and after that, nothing happens after buying the gun
- Night Fury
- Mod Developer
- Posts: 677
- Joined: 7 years ago
- Contact:
Try:
- /* Plugin generated by AMXX-Studio */
- #include <zombie_escape>
- #include <engine>
- #define PLUGIN "FG-Launcher"
- #define VERSION "1.0"
- #define AUTHOR "SexY DeviL CJ"
- #define bpammo 40
- #define clipammo 10
- #define damage 80
- #define fgl "weapon_mp5navy"
- #define CSW_FGLAUNCHER CSW_MP5NAVY
- #define v_model "models/v_fglauncher.mdl"
- #define p_model "models/p_fglauncher.mdl"
- #define w_model "models/w_fglauncher.mdl"
- #define s_model "models/s_fglauncher.mdl"
- #define spark_sprite1 "sprites/spark2.spr"
- #define spark_sprite2 "sprites/spark3.spr"
- #define shoot_sound "weapons/fglauncher-1.wav"
- /* natives */
- native give_item(index, const item[]);
- native cs_get_user_bpammo(index, weapon);
- native cs_set_user_bpammo(index, weapon, amount);
- native cs_get_weapon_ammo(index);
- native cs_set_weapon_ammo(index, newammo);
- /* --- */
- new id
- new bool:gHasFg[33], sTrail, sExplo, gmsgWeaponList, g_iItemID;
- public plugin_init() {
- register_plugin(PLUGIN, VERSION, AUTHOR);
- RegisterHam(Ham_Weapon_PrimaryAttack, fgl, "fgl_Pattack");
- RegisterHam(Ham_Item_AddToPlayer, fgl, "fgl_atp");
- register_forward(FM_SetModel, "fgl_setmodel");
- register_forward(FM_UpdateClientData, "client_data_post", 1);
- register_event("CurWeapon","CurrentWeapon","be","1=1")
- RegisterHam(Ham_Item_PostFrame, fgl, "fgl_PostFrame");
- RegisterHam(Ham_Weapon_Reload, fgl, "fgl_Reload");
- RegisterHam(Ham_Weapon_Reload, fgl, "fgl_Reload_Post", 1);
- register_clcmd("weapon_fglauncher_cso", "Hook_Select");
- register_touch("fgl_grenade", "*", "fgl_touch");
- gmsgWeaponList = get_user_msgid("WeaponList");
- g_iItemID = ze_register_item("FG-LAUNCHER", 140, 0);
- }
- public plugin_precache(){
- precache_model(v_model);
- precache_model(p_model);
- precache_model(w_model);
- precache_model(s_model);
- precache_generic( "sprites/weapon_fglauncher_cso.txt" );
- precache_generic( "sprites/cso/640hud86.spr" );
- precache_generic( "sprites/cso/640hud7x.spr" );
- precache_generic( "sprites/cso/scope_vip_grenade.spr" );
- sTrail = precache_model(spark_sprite2);
- sExplo = precache_model(spark_sprite1);
- precache_sound(shoot_sound);
- }
- public ze_select_item_pre(player, itemid)
- {
- // Return Available and we will block it in Post, So it dosen't affect other plugins
- if (itemid != g_iItemID)
- return ZE_ITEM_AVAILABLE
- // Available for Humans only, So don't show it for zombies
- if (ze_is_user_zombie(player))
- return ZE_ITEM_DONT_SHOW
- return ZE_ITEM_AVAILABLE
- }
- public ze_select_item_post(player, itemid)
- {
- if (itemid != g_iItemID)
- return
- fgl_Give(player)
- }
- public ze_user_infected(player)
- {
- if (!is_user_alive(player))
- return
- if (gHasFg[player])
- gHasFg[player] = false
- }
- public Hook_Select(id)
- {
- engclient_cmd(id, fgl);
- return PLUGIN_HANDLED;
- }
- public CurrentWeapon(id){
- static lastweapon[33];
- if(gHasFg[id] && get_user_weapon(id) == CSW_FGLAUNCHER){
- if(lastweapon[id] != CSW_FGLAUNCHER) set_pev(id, pev_weaponanim, 3);
- set_pev(id, pev_viewmodel2, v_model);
- set_pev(id, pev_weaponmodel2, p_model);
- }
- lastweapon[id] = get_user_weapon(id);
- }
- public fgl_Pattack(weapon){
- new owner = pev(weapon, pev_owner);
- if(gHasFg[owner] && cs_get_weapon_ammo(weapon)>0){
- fakeshoot(owner, weapon);
- return HAM_SUPERCEDE;
- }
- return HAM_IGNORED;
- }
- public fgl_atp(fg, id) {
- if(!is_valid_ent(fg) || !is_user_connected(id)) return HAM_IGNORED;
- if(entity_get_int(fg, EV_INT_impulse) == 1431)
- {
- gHasFg[id] = true;
- entity_set_int(fg, EV_INT_impulse, 0);
- Sprite(id);
- return HAM_HANDLED;
- }
- else Sprite(id,0);
- return HAM_IGNORED;
- }
- public fgl_setmodel(entity, model[])
- {
- if(!is_valid_ent(entity))
- return FMRES_IGNORED;
- new cn[33];
- pev(entity, pev_classname, cn, 32);
- if(equal(cn, "weaponbox")) {
- new owner = pev(entity, pev_owner);
- if(equal(model, "models/w_mp5.mdl"))
- {
- static iStoredFGID;
- iStoredFGID = find_ent_by_owner(-1, "weapon_mp5navy", entity);
- if(gHasFg[owner] && is_valid_ent(iStoredFGID))
- {
- entity_set_int(iStoredFGID, EV_INT_impulse, 1431);
- gHasFg[owner] = false;
- entity_set_model(entity, w_model);
- return FMRES_SUPERCEDE;
- }
- }
- }
- return FMRES_IGNORED;
- }
- public fakeshoot(id, weapon){
- new Float:f[3];
- cs_set_weapon_ammo(weapon, cs_get_weapon_ammo(weapon)-1);
- set_pev(id, pev_punchangle, Float:{ -10.0, 0.0, 0.0 });
- UTIL_PlayWeaponAnimation(id, 1);
- emit_sound(id, CHAN_WEAPON, shoot_sound, 1.0, ATTN_NORM, 0, PITCH_NORM);
- set_pdata_float(id, 83, 1.5);
- pev(id, pev_origin, f);
- f[2]+=3.0;
- set_pev(id, pev_origin, f);
- set_task(0.1, "check_stuck", id+121);
- create_grenade(id);
- }
- public create_grenade(id){
- new grenade = create_entity("info_target"), Float:fOrigin[3], Float:fVelocity[3], Float:fAngles[3];
- engfunc(EngFunc_GetAttachment, id, 1, fOrigin, fAngles);
- velocity_by_aim(id, 1000, fVelocity);
- fVelocity[2]+=100.0;
- pev(id, pev_v_angle, fAngles);
- set_pev(grenade, pev_classname, "fgl_grenade");
- set_pev(grenade, pev_origin, fOrigin);
- set_pev(grenade, pev_velocity, fVelocity);
- set_pev(grenade, pev_angles, fAngles);
- set_pev(grenade, pev_movetype, MOVETYPE_TOSS);
- set_pev(grenade, pev_solid, SOLID_BBOX);
- set_pev(grenade, pev_owner, id);
- entity_set_model(grenade, s_model);
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
- write_byte(TE_BEAMFOLLOW);
- write_short(grenade);
- write_short(sTrail);
- write_byte(10);
- write_byte(3);
- write_byte(255);
- write_byte(255);
- write_byte(255);
- write_byte(250);
- message_end();
- }
- public fgl_touch(ent){
- new Float:originF[3];
- pev(ent, pev_origin, originF);
- engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, originF, 0);
- write_byte(TE_WORLDDECAL);
- engfunc(EngFunc_WriteCoord, originF[0]);
- engfunc(EngFunc_WriteCoord, originF[1]);
- engfunc(EngFunc_WriteCoord, originF[2]);
- write_byte(engfunc(EngFunc_DecalIndex,"{scorch3"));
- message_end();
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
- write_byte(TE_EXPLOSION);
- engfunc(EngFunc_WriteCoord, originF[0]);
- engfunc(EngFunc_WriteCoord, originF[1]);
- engfunc(EngFunc_WriteCoord, originF[2]+60.0);
- write_short(sTrail);
- write_byte(10);
- write_byte(15);
- write_byte(0);
- message_end();
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
- write_byte(TE_SPRITE);
- engfunc(EngFunc_WriteCoord, originF[0]+random_float(-5.0, 5.0));
- engfunc(EngFunc_WriteCoord, originF[1]+random_float(-5.0, 5.0));
- engfunc(EngFunc_WriteCoord, originF[2]+200.0);
- write_short(sExplo);
- write_byte(15);
- write_byte(200);
- message_end();
- new owner = pev(ent, pev_owner);
- new a = FM_NULLENT;
- while((a = find_ent_in_sphere(a,originF,300.0)) != 0) {
- if(a!=owner && a!=ent && pev(a,pev_takedamage)!=DAMAGE_NO && is_user_connected(a) && ze_is_user_zombie(a)) {
- ExecuteHamB( Ham_TakeDamage, a ,owner,owner, (damage*60/entity_range(ent,a)), DMG_BULLET);
- }
- }
- remove_entity(ent);
- }
- public check_stuck(id){
- id-=121;
- new Float:f[3];
- if(is_player_stuck(id)){
- pev(id, pev_origin, f);
- f[2]-=3.0;
- set_pev(id, pev_origin, f);
- }
- }
- public client_data_post(id, SendWeapons, CD_Handle)
- {
- if(is_user_alive(id) && get_user_weapon(id) == CSW_FGLAUNCHER && gHasFg[id])
- set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.00001);
- }
- public fgl_PostFrame(weapon_entity) {
- new id = pev(weapon_entity, pev_owner);
- if (!is_user_connected(id) || !gHasFg[id])
- return HAM_IGNORED;
- new Float:flNextAttack = get_pdata_float(id, 83, 4);
- new iClip = get_pdata_int(weapon_entity, 51, 4);
- new fInReload = get_pdata_int(weapon_entity, 54, 4) ;
- if( fInReload && flNextAttack <= 0.0 )
- {
- new j = min(clipammo - iClip, cs_get_user_bpammo(id, CSW_FGLAUNCHER));
- set_pdata_int(weapon_entity, 51, iClip + j, 4);
- cs_set_user_bpammo(id, CSW_FGLAUNCHER, cs_get_user_bpammo(id, CSW_FGLAUNCHER)-j);
- set_pdata_int(weapon_entity, 54, 0, 4);
- fInReload = 0;
- }
- return HAM_IGNORED;
- }
- public fgl_Reload(weapon_entity) {
- new id = pev(weapon_entity, pev_owner);
- if (!is_user_connected(id) || !gHasFg[id])
- return HAM_IGNORED;
- new iBpAmmo = cs_get_user_bpammo(id, CSW_FGLAUNCHER);
- new iClip = get_pdata_int(weapon_entity, 51, 4);
- if (iBpAmmo <= 0 || iClip >= 10)
- return HAM_SUPERCEDE;
- return HAM_IGNORED;
- }
- public fgl_Reload_Post(weapon_entity) {
- new id = pev(weapon_entity, pev_owner);
- if (!is_user_connected(id))
- return HAM_IGNORED;
- if (!gHasFg[id])
- return HAM_IGNORED;
- set_pdata_float(weapon_entity, 48, 6.0, 4);
- set_pdata_float(id, 83, 6.0, 5);
- set_pdata_int(weapon_entity, 54, 1, 4);
- UTIL_PlayWeaponAnimation(id, 2);
- return HAM_IGNORED;
- }
- public fgl_Give(id){
- gHasFg[id] = true;
- new weapon = give_item(id, fgl);
- cs_set_user_bpammo(id, CSW_FGLAUNCHER, 40);
- cs_set_weapon_ammo(weapon, 10);
- ExecuteHamB(Ham_Item_Deploy, weapon);
- Sprite(id);
- }
- stock Sprite(id, type=1)
- {
- message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id);
- write_string(type?"weapon_fglauncher_cso":fgl);
- write_byte(10);
- write_byte(40);
- write_byte(-1);
- write_byte(-1);
- write_byte(0);
- write_byte(7);
- write_byte(19);
- write_byte(0);
- message_end();
- }
- stock is_player_stuck(id)
- {
- static Float:originF[3];
- pev(id, pev_origin, originF);
- engfunc(EngFunc_TraceHull, originF, originF, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0);
- if (get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
- return true;
- return false;
- }
- 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(2);
- message_end();
- }
-
- Veteran Member
- Posts: 598
- Joined: 7 years ago
- Contact:
Create an account or sign in to join the discussion
You need to be a member in order to post a reply
Create an account
Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute
Sign in
Who is online
Users browsing this forum: No registered users and 4 guests