CS-bg.info - форумът на CS-bg :: Counter-Strike фен сайт

Gunxpmod unlock Fix Help Please

Желаете модифициране на даден плъгин? Всичко това, както и още за езика Pawn само в този раздел!

Gunxpmod unlock Fix Help Please

Мнениеот Infamous2018 » 10 Юли 2019, 15:49

Hello i am using gunxpmod + umbrella swarm. I get an Problem, the upgrade works, but when u respawned or next round starts then you lost the design of the model and get the original XM014 back. I hope anyone can help me to fix this problem. I dont use zombie plague... here is the code and then gxm_shop inc file what i am using.


Код: Избери целия код
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <gxm_shop>

#define PLUGIN "Balrog-XI"
#define VERSION "1.0"
#define AUTHOR "KaimyneliS"

#define V_MODEL "models/gunxp/v_balrog11_2.mdl"
#define P_MODEL "models/gunxp/p_balrog11.mdl"
#define W_MODEL "models/gunxp/w_balrog11.mdl"

#define CSW_BALROG11 CSW_XM1014
#define weapon_balrog11 "weapon_xm1014"

#define OLD_W_MODEL "models/w_xm1014.mdl"
#define OLD_EVENT "events/xm1014.sc"
#define WEAPON_SECRETCODE 1982

#define DRAW_TIME 1.0
#define DAMAGE 52
#define FIRE_DAMAGE 500
#define BPAMMO 56

#define CHARGE_COND_AMMO 4
#define MAX_SPECIAL_AMMO 7
#define SPECIALSHOOT_DELAY 0.35
#define FIRE_SPEED 750
#define FIRE_CLASSNAME "balrog11_fire"
#define SYSTEM_CLASSNAME "balrog11_firesystem"

// OFFSET
const PDATA_SAFE = 2
const OFFSET_LINUX_WEAPONS = 4
const OFFSET_WEAPONOWNER = 41
const m_flNextAttack = 83
const m_flNextPrimaryAttack   = 46
const m_flNextSecondaryAttack   = 47

// Weapon bitsums
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)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
      
new const WeaponSounds[5][] =
{
   "weapons/balrog11-1.wav",
   "weapons/balrog11-2.wav",
   "weapons/balrog11_draw.wav",
   "weapons/balrog11_insert.wav",
   "weapons/balrog11_charge.wav"
}

new const WeaponResources[4][] =
{
   "sprites/flame_puff01.spr",
   "sprites/weapon_balrog11.txt",
   "sprites/640hud3_2.spr",
   "sprites/640hud89_2.spr"
}

enum
{
   B11_ANIM_IDLE = 0,
   B11_ANIM_SHOOT,
   B11_ANIM_SHOOT_SPECIAL,
   B11_ANIM_INSERT,
   B11_ANIM_AFTER_RELOAD,
   B11_ANIM_START_RELOAD,
   B11_ANIM_DRAW
}

new g_balrog11
new g_had_balrog11[33], g_holding_attack[33], g_Shoot_Count[33], g_SpecialAmmo[33]
new g_old_weapon[33], g_event_balrog11, g_Msg_StatusIcon, g_smokepuff_id, g_ham_bot, g_MaxPlayers
new ItemIndex;

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   
   register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")
   
   register_forward(FM_Think, "fw_Think")
   register_forward(FM_Touch, "fw_Touch")
   register_forward(FM_CmdStart, "fw_CmdStart")
   register_forward(FM_SetModel, "fw_SetModel")
   register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)   
   register_forward(FM_PlaybackEvent, "fw_PlaybackEvent")   
   
   RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack")
   RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack")   
   
   RegisterHam(Ham_Item_AddToPlayer, weapon_balrog11, "fw_Item_AddToPlayer_Post", 1)
   RegisterHam(Ham_Item_PostFrame, weapon_balrog11, "fw_Item_PostFrame")
   RegisterHam(Ham_Item_Deploy, weapon_balrog11, "fw_Item_Deploy_Post", 1)
   
   g_Msg_StatusIcon = get_user_msgid("StatusIcon")
   g_MaxPlayers = get_maxplayers()
   
   
   ItemIndex = gxm_register_gun("Balrog-XI (XM1014)", 4200, 40, 0, 0, "CSW_XM1014")
   
   
}

public gxm_gun_selected(id, itemid) {
   if(ItemIndex == itemid)
   {
   g_had_balrog11[id] = true;
}
}

public plugin_precache()
{
   engfunc(EngFunc_PrecacheModel, V_MODEL)
   engfunc(EngFunc_PrecacheModel, P_MODEL)
   engfunc(EngFunc_PrecacheModel, W_MODEL)
   
   new i
   for(i = 0; i < sizeof(WeaponSounds); i++)
      engfunc(EngFunc_PrecacheSound, WeaponSounds[i])
   for(i = 0; i < sizeof(WeaponResources); i++)
   {
      if(i == 1) engfunc(EngFunc_PrecacheGeneric, WeaponResources[i])
      else engfunc(EngFunc_PrecacheModel, WeaponResources[i])
   }
   
   register_forward(FM_PrecacheEvent, "fw_PrecacheEvent_Post", 1)   
   g_smokepuff_id = engfunc(EngFunc_PrecacheModel, "sprites/wall_puff1.spr")
   

}

public client_putinserver(id)
{
   if(!g_ham_bot && is_user_bot(id))
   {
      g_ham_bot = 1
      set_task(0.1, "do_register", id)
   }
}

public do_register(id)
{
   RegisterHamFromEntity(Ham_TraceAttack, id, "fw_TraceAttack")
}

public fw_PrecacheEvent_Post(type, const name[])
{
   if(equal(OLD_EVENT, name))
      g_event_balrog11 = get_orig_retval()
}

public zp_extra_item_selected(id, itemid)
{
   if(itemid == g_balrog11) Get_Balrog11(id)
}

public zp_user_infected_post(id) Remove_Balrog11(id)
public zp_round_ended()
{
   for(new i = 0; i < g_MaxPlayers; i++)
      Remove_Balrog11(i)
}

public Get_Balrog11(id)
{
   if(!is_user_alive(id))
      return
      
   drop_weapons(id, 1)
   Remove_Balrog11(id)
      
   g_had_balrog11[id] = 1
   g_old_weapon[id] = 0
   g_holding_attack[id] = 0
   g_Shoot_Count[id] = 0
   g_SpecialAmmo[id] = 0
   
   fm_give_item(id, weapon_balrog11)
   cs_set_user_bpammo(id, CSW_BALROG11, BPAMMO)
   
   update_ammo(id)
   update_specialammo(id, g_SpecialAmmo[id], g_SpecialAmmo[id] > 0 ? 1 : 0)
}

public Remove_Balrog11(id)
{
   if(!is_user_connected(id))
      return
      
   update_specialammo(id, g_SpecialAmmo[id], 0)
      
   g_had_balrog11[id] = 0
   g_old_weapon[id] = 0
   g_holding_attack[id] = 0
   g_Shoot_Count[id] = 0
   g_SpecialAmmo[id] = 0   
}

public hook_weapon(id)
{
   engclient_cmd(id, weapon_balrog11)
   return PLUGIN_HANDLED
}

public Event_CurWeapon(id)
{
   if(!is_user_alive(id))
      return   
   
   if(g_had_balrog11[id] && (get_user_weapon(id) == CSW_BALROG11 && g_old_weapon[id] != CSW_BALROG11))
   { // Balrog Draw
      set_weapon_anim(id, B11_ANIM_DRAW)
      set_player_nextattack(id, DRAW_TIME)
      
      update_specialammo(id, g_SpecialAmmo[id], g_SpecialAmmo[id] > 0 ? 1 : 0)
   } else if(get_user_weapon(id) != CSW_BALROG11 && g_old_weapon[id] == CSW_BALROG11) {
      update_specialammo(id, g_SpecialAmmo[id], 0)
   }
   
   g_old_weapon[id] = get_user_weapon(id)
}

public fw_CmdStart(id, uc_handle, seed)
{
   if(!is_user_alive(id))
      return
   if(get_user_weapon(id) != CSW_BALROG11 || !g_had_balrog11[id])
      return
      
   static NewButton; NewButton = get_uc(uc_handle, UC_Buttons)
   static OldButton; OldButton = pev(id, pev_oldbuttons)
   
   if(NewButton & IN_ATTACK)
   {
      if(!g_holding_attack[id]) g_holding_attack[id] = 1
   } else if(NewButton & IN_ATTACK2) {
      SpecialShoot_Handle(id)
   } else {
      if(OldButton & IN_ATTACK)
      {
         if(g_holding_attack[id])
         {
            g_holding_attack[id] = 0
            g_Shoot_Count[id] = 0
         }
      }
   }
}

public fw_SetModel(entity, model[])
{
   if(!pev_valid(entity))
      return FMRES_IGNORED
   
   static Classname[64]
   pev(entity, pev_classname, Classname, sizeof(Classname))
   
   if(!equal(Classname, "weaponbox"))
      return FMRES_IGNORED
   
   static id
   id = pev(entity, pev_owner)
   
   if(equal(model, OLD_W_MODEL))
   {
      static weapon
      weapon = fm_get_user_weapon_entity(entity, CSW_BALROG11)
      
      if(!pev_valid(weapon))
         return FMRES_IGNORED
      
      if(g_had_balrog11[id])
      {
         set_pev(weapon, pev_impulse, WEAPON_SECRETCODE)
         set_pev(weapon, pev_iuser4, g_SpecialAmmo[id])
         engfunc(EngFunc_SetModel, entity, W_MODEL)
         
         Remove_Balrog11(id)
         
         return FMRES_SUPERCEDE
      }
   }

   return FMRES_IGNORED;
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
   if(!is_user_alive(id) || !is_user_connected(id))
      return FMRES_IGNORED   
   if(get_user_weapon(id) == CSW_BALROG11 && g_had_balrog11[id])
      set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001)
   
   return FMRES_HANDLED
}

public fw_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
   if (!is_user_connected(invoker))
      return FMRES_IGNORED      
   if(get_user_weapon(invoker) == CSW_BALROG11 && g_had_balrog11[invoker] && eventid == g_event_balrog11)
   {
      engfunc(EngFunc_PlaybackEvent, flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)   

      if(g_holding_attack[invoker]) g_Shoot_Count[invoker]++
      else g_Shoot_Count[invoker] = 0
      
      if(g_Shoot_Count[invoker] >= CHARGE_COND_AMMO)
      {
         g_Shoot_Count[invoker] = 0
         
         if(g_SpecialAmmo[invoker] < MAX_SPECIAL_AMMO)
         {
            update_specialammo(invoker, g_SpecialAmmo[invoker], 0)
            g_SpecialAmmo[invoker]++
            update_specialammo(invoker, g_SpecialAmmo[invoker], 1)
            
            emit_sound(invoker, CHAN_ITEM, WeaponSounds[4], 1.0, ATTN_NORM, 0, PITCH_NORM)
         }
      }
      
      set_weapon_anim(invoker, B11_ANIM_SHOOT)
      emit_sound(invoker, CHAN_WEAPON, WeaponSounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)   

      return FMRES_SUPERCEDE
   }
   
   return FMRES_HANDLED
}

public fw_Think(ent)
{
   if(!pev_valid(ent))
      return
      
   static Classname[32]; pev(ent, pev_classname, Classname, sizeof(Classname))
   if(equal(Classname, FIRE_CLASSNAME))
   {   
      static Float:fFrame; pev(ent, pev_frame, fFrame)
   
      fFrame += 1.5
      fFrame = floatmin(21.0, fFrame)
   
      set_pev(ent, pev_frame, fFrame)
      set_pev(ent, pev_nextthink, get_gametime() + 0.05)
      
      // time remove
      static Float:fTimeRemove, Float:Amount
      pev(ent, pev_fuser1, fTimeRemove)
      pev(ent, pev_renderamt, Amount)
      
      if(get_gametime() >= fTimeRemove)
      {
         Amount -= 10.0
         set_pev(ent, pev_renderamt, Amount)
         
         if(Amount <= 15.0) engfunc(EngFunc_RemoveEntity, ent)
      }
   } else if(equal(Classname, SYSTEM_CLASSNAME)) {
      
      static Float:Origin[3], Float:Scale
      
      pev(ent, pev_origin, Origin)
      pev(ent, pev_scale, Scale)
      
      Scale += 0.1
      Scale = floatmin(1.5, Scale)
      set_pev(ent, pev_scale, Scale)

      Create_Fire(pev(ent, pev_owner), Origin, Scale, 0.0)
      
      set_pev(ent, pev_nextthink, get_gametime() + 0.05)
      
      // time remove
      static Float:fTimeRemove
      pev(ent, pev_fuser1, fTimeRemove)
      if(get_gametime() >= fTimeRemove) engfunc(EngFunc_RemoveEntity, ent)
   }
}

public fw_Touch(ent, id)
{
   if(!pev_valid(ent))
      return
      
   static Classname[32]
   pev(ent, pev_classname, Classname, sizeof(Classname))
      
   if(!equal(Classname, SYSTEM_CLASSNAME))
      return
      
   if(pev_valid(id))
   {
      static Classname2[32]
      pev(id, pev_classname, Classname2, sizeof(Classname2))
      
      if(equal(Classname2, SYSTEM_CLASSNAME) || equal(Classname2, FIRE_CLASSNAME)) return
      else if(is_user_alive(id))
      {
         if(pev(ent, pev_iuser3) == 1 && cs_get_user_team(id) != CS_TEAM_T) ExecuteHamB(Ham_TakeDamage, id, 0, pev(ent, pev_owner), float(FIRE_DAMAGE) / random_float(3.0, 5.0), DMG_BULLET)
         else if(pev(ent, pev_iuser3) == 2 && cs_get_user_team(id) != CS_TEAM_CT) ExecuteHamB(Ham_TakeDamage, id, 0,pev(ent, pev_owner), float(FIRE_DAMAGE) / random_float(3.0, 5.0), DMG_BULLET)
         
         return
      }
   }
      
   set_pev(ent, pev_movetype, MOVETYPE_NONE)
   set_pev(ent, pev_solid, SOLID_NOT)
}

public fw_TraceAttack(Ent, Attacker, Float:Damage, Float:Dir[3], ptr, DamageType)
{
   if(!is_user_alive(Attacker))
      return HAM_IGNORED   
   if(get_user_weapon(Attacker) != CSW_BALROG11 || !g_had_balrog11[Attacker])
      return HAM_IGNORED
      
   static Float:flEnd[3], Float:vecPlane[3]
   
   get_tr2(ptr, TR_vecEndPos, flEnd)
   get_tr2(ptr, TR_vecPlaneNormal, vecPlane)      
      
   if(!is_user_alive(Ent))
   {
      make_bullet(Attacker, flEnd)
      fake_smoke(Attacker, ptr)
   }
      
   SetHamParamFloat(3, float(DAMAGE) / random_float(1.5, 2.5))   

   return HAM_HANDLED   
}

public fw_Item_AddToPlayer_Post(ent, id)
{
   if(pev(ent, pev_impulse) == WEAPON_SECRETCODE)
   {
      g_had_balrog11[id] = 1
      
      set_pev(ent, pev_impulse, 0)
      g_SpecialAmmo[id] = pev(ent, pev_iuser4)
   }         
   
   message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("WeaponList"), _, id)
   write_string((g_had_balrog11[id] == 1 ? "weapon_balrog11" : "weapon_xm1014"))
   write_byte(5)
   write_byte(32)
   write_byte(-1)
   write_byte(-1)
   write_byte(0)
   write_byte(12)
   write_byte(CSW_BALROG11)
   write_byte(0)
   message_end()
}

public fw_Item_PostFrame(ent)
{
   static id; id = fm_cs_get_weapon_ent_owner(ent)
   if (!pev_valid(id))
      return

   if(!g_had_balrog11[id])
      return
      
   if(get_pdata_int(ent, 55, OFFSET_LINUX_WEAPONS) == 1) set_weapon_anim(id, B11_ANIM_INSERT)
}

public fw_Item_Deploy_Post(ent)
{
   static id; id = fm_cs_get_weapon_ent_owner(ent)
   if (!pev_valid(id))
      return

   if(!g_had_balrog11[id])
      return
      
   set_pev(id, pev_viewmodel2, V_MODEL)
   set_pev(id, pev_weaponmodel2, P_MODEL)
}

public update_ammo(id)
{
   if(!is_user_alive(id))
      return
   
   static weapon_ent; weapon_ent = fm_get_user_weapon_entity(id, CSW_BALROG11)
   if(!pev_valid(weapon_ent)) return
   
   engfunc(EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, get_user_msgid("CurWeapon"), {0, 0, 0}, id)
   write_byte(1)
   write_byte(CSW_BALROG11)
   write_byte(cs_get_weapon_ammo(weapon_ent))
   message_end()
   
   message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("AmmoX"), _, id)
   write_byte(1)
   write_byte(cs_get_user_bpammo(id, CSW_BALROG11))
   message_end()
}

public update_specialammo(id, Ammo, On)
{
   static AmmoSprites[33]
   format(AmmoSprites, sizeof(AmmoSprites), "number_%d", Ammo)
     
   message_begin(MSG_ONE_UNRELIABLE, g_Msg_StatusIcon, {0,0,0}, id)
   write_byte(On)
   write_string(AmmoSprites)
   write_byte(42) // red
   write_byte(212) // green
   write_byte(255) // blue
   message_end()
}

public SpecialShoot_Handle(id)
{
   if(get_pdata_float(id, 83, 5) > 0.0)
      return
   if(g_SpecialAmmo[id] <= 0)
      return      

   create_fake_attack(id)   
   
   // Shoot Handle
   set_player_nextattack(id, SPECIALSHOOT_DELAY)
   set_weapons_timeidle(id, CSW_BALROG11, SPECIALSHOOT_DELAY)
   
   update_specialammo(id, g_SpecialAmmo[id], 0)
   g_SpecialAmmo[id]--
   update_specialammo(id, g_SpecialAmmo[id], g_SpecialAmmo[id] > 0 ? 1 : 0)
   
   set_weapon_anim(id, B11_ANIM_SHOOT_SPECIAL)
   emit_sound(id, CHAN_WEAPON, WeaponSounds[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
   
   Create_FireSystem(id)
}

public create_fake_attack(id)
{
   static weapon
   weapon = fm_find_ent_by_owner(-1, "weapon_knife", id)
   
   if(pev_valid(weapon)) ExecuteHamB(Ham_Weapon_PrimaryAttack, weapon)
}

public Create_FireSystem(id)
{
   static Float:StartOrigin[3], Float:EndOrigin[5][3]
   get_weapon_attachment(id, StartOrigin, 40.0)
   
   // Left
   get_position(id, 512.0, -140.0, 0.0, EndOrigin[0])
   get_position(id, 512.0, -70.0, 0.0, EndOrigin[1])
   
   // Center
   get_position(id, 512.0, 0.0, 0.0, EndOrigin[2])
   
   // Right
   get_position(id, 512.0, 70.0, 0.0, EndOrigin[3])
   get_position(id, 512.0, 140.0, 0.0, EndOrigin[4])   
   
   // Create Fire
   for(new i = 0; i < 5; i++) Create_System(id, StartOrigin, EndOrigin[i], float(FIRE_SPEED))
}

public Create_System(id, Float:StartOrigin[3], Float:EndOrigin[3], Float:Speed)
{
   static Ent; Ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
   
   // set info for ent
   set_pev(Ent, pev_movetype, MOVETYPE_FLY)
   set_pev(Ent, pev_rendermode, kRenderTransAdd)
   set_pev(Ent, pev_renderamt, 0.0)
   set_pev(Ent, pev_fuser1, get_gametime() + 0.75)   // time remove
   set_pev(Ent, pev_scale, 0.1)
   set_pev(Ent, pev_nextthink, get_gametime() + 0.05)
   
   set_pev(Ent, pev_classname, SYSTEM_CLASSNAME)
   engfunc(EngFunc_SetModel, Ent, WeaponResources[0])
   set_pev(Ent, pev_mins, Float:{-16.0, -16.0, -16.0})
   set_pev(Ent, pev_maxs, Float:{16.0, 16.0, 16.0})
   set_pev(Ent, pev_origin, StartOrigin)
   set_pev(Ent, pev_gravity, 0.01)
   set_pev(Ent, pev_solid, SOLID_TRIGGER)
   set_pev(Ent, pev_owner, id)   
   static Team;
   if(cs_get_user_team(id) == CS_TEAM_T) Team = 1
   else if(cs_get_user_team(id) == CS_TEAM_CT) Team = 2
   set_pev(Ent, pev_iuser3, Team)
   set_pev(Ent, pev_frame, 0.0)

   static Float:Velocity[3]
   
   get_speed_vector(StartOrigin, EndOrigin, Speed, Velocity)
   set_pev(Ent, pev_velocity, Velocity)      
}

public Create_Fire(id, Float:Origin[3], Float:Scale, Float:Frame)
{
   static Ent; Ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
   
   // set info for ent
   set_pev(Ent, pev_movetype, MOVETYPE_FLY)
   set_pev(Ent, pev_rendermode, kRenderTransAdd)
   set_pev(Ent, pev_renderamt, 255.0)
   set_pev(Ent, pev_fuser1, get_gametime() + 0.1)   // time remove
   set_pev(Ent, pev_scale, Scale)
   set_pev(Ent, pev_nextthink, get_gametime() + 0.05)
   
   set_pev(Ent, pev_classname, FIRE_CLASSNAME)
   engfunc(EngFunc_SetModel, Ent, WeaponResources[0])
   set_pev(Ent, pev_mins, Float:{-10.0, -10.0, -10.0})
   set_pev(Ent, pev_maxs, Float:{10.0, 10.0, 10.0})
   set_pev(Ent, pev_origin, Origin)
   set_pev(Ent, pev_gravity, 0.01)
   set_pev(Ent, pev_solid, SOLID_TRIGGER)
   set_pev(Ent, pev_owner, id)   
   set_pev(Ent, pev_frame, Frame)
}

stock make_bullet(id, Float:Origin[3])
{
   // Find target
   new decal = random_num(41, 45)
   const loop_time = 2
   
   static Body, Target
   get_user_aiming(id, Target, Body, 999999)
   
   if(is_user_connected(Target))
      return
   
   for(new i = 0; i < loop_time; i++)
   {
      // Put decal on "world" (a wall)
      message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
      write_byte(TE_WORLDDECAL)
      engfunc(EngFunc_WriteCoord, Origin[0])
      engfunc(EngFunc_WriteCoord, Origin[1])
      engfunc(EngFunc_WriteCoord, Origin[2])
      write_byte(decal)
      message_end()
      
      // Show sparcles
      message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
      write_byte(TE_GUNSHOTDECAL)
      engfunc(EngFunc_WriteCoord, Origin[0])
      engfunc(EngFunc_WriteCoord, Origin[1])
      engfunc(EngFunc_WriteCoord, Origin[2])
      write_short(id)
      write_byte(decal)
      message_end()
   }
}

stock fake_smoke(id, trace_result)
{
   static Float:vecSrc[3], Float:vecEnd[3], TE_FLAG
   
   get_weapon_attachment(id, vecSrc)
   global_get(glb_v_forward, vecEnd)
   
   xs_vec_mul_scalar(vecEnd, 8192.0, vecEnd)
   xs_vec_add(vecSrc, vecEnd, vecEnd)

   get_tr2(trace_result, TR_vecEndPos, vecSrc)
   get_tr2(trace_result, TR_vecPlaneNormal, vecEnd)
   
   xs_vec_mul_scalar(vecEnd, 2.5, vecEnd)
   xs_vec_add(vecSrc, vecEnd, vecEnd)
   
   TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
   TE_FLAG |= TE_EXPLFLAG_NOSOUND
   TE_FLAG |= TE_EXPLFLAG_NOPARTICLES
   
   engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0)
   write_byte(TE_EXPLOSION)
   engfunc(EngFunc_WriteCoord, vecEnd[0])
   engfunc(EngFunc_WriteCoord, vecEnd[1])
   engfunc(EngFunc_WriteCoord, vecEnd[2] - 10.0)
   write_short(g_smokepuff_id)
   write_byte(2)
   write_byte(50)
   write_byte(TE_FLAG)
   message_end()
}

stock get_weapon_attachment(id, Float:output[3], Float:fDis = 40.0)
{
   new Float:vfEnd[3], viEnd[3]
   get_user_origin(id, viEnd, 3) 
   IVecFVec(viEnd, vfEnd)
   
   new Float:fOrigin[3], Float:fAngle[3]
   
   pev(id, pev_origin, fOrigin)
   pev(id, pev_view_ofs, fAngle)
   
   xs_vec_add(fOrigin, fAngle, fOrigin)
   
   new Float:fAttack[3]
   
   xs_vec_sub(vfEnd, fOrigin, fAttack)
   xs_vec_sub(vfEnd, fOrigin, fAttack)
   
   new Float:fRate
   
   fRate = fDis / vector_length(fAttack)
   xs_vec_mul_scalar(fAttack, fRate, fAttack)
   
   xs_vec_add(fOrigin, fAttack, output)
}

stock set_weapon_anim(id, anim)
{
   if(!is_user_alive(id))
      return
      
   set_pev(id, pev_weaponanim, anim)
   
   message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id)
   write_byte(anim)
   write_byte(0)
   message_end()   
}

stock fm_cs_get_weapon_ent_owner(ent)
{
   if (pev_valid(ent) != PDATA_SAFE)
      return -1
   
   return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
}

stock set_player_nextattack(id, Float:nexttime)
{
   if(!is_user_alive(id))
      return
      
   set_pdata_float(id, m_flNextAttack, nexttime, 5)
}

stock set_weapons_timeidle(id, WeaponId ,Float:TimeIdle)
{
   if(!is_user_alive(id))
      return
      
   static entwpn; entwpn = fm_get_user_weapon_entity(id, WeaponId)
   if(!pev_valid(entwpn))
      return
      
   set_pdata_float(entwpn, 46, TimeIdle, OFFSET_LINUX_WEAPONS)
   set_pdata_float(entwpn, 47, TimeIdle, OFFSET_LINUX_WEAPONS)
   set_pdata_float(entwpn, 48, TimeIdle + 0.5, OFFSET_LINUX_WEAPONS)
}

stock get_position(id,Float:forw, Float:right, Float:up, Float:vStart[])
{
   static Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
   
   pev(id, pev_origin, vOrigin)
   pev(id, pev_view_ofs, vUp) //for player
   xs_vec_add(vOrigin, vUp, vOrigin)
   pev(id, pev_v_angle, vAngle) // if normal entity ,use pev_angles
   
   angle_vector(vAngle,ANGLEVECTOR_FORWARD, vForward) //or use EngFunc_AngleVectors
   angle_vector(vAngle,ANGLEVECTOR_RIGHT, vRight)
   angle_vector(vAngle,ANGLEVECTOR_UP, vUp)
   
   vStart[0] = vOrigin[0] + vForward[0] * forw + vRight[0] * right + vUp[0] * up
   vStart[1] = vOrigin[1] + vForward[1] * forw + vRight[1] * right + vUp[1] * up
   vStart[2] = vOrigin[2] + vForward[2] * forw + vRight[2] * right + vUp[2] * up
}

stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3])
{
   new_velocity[0] = origin2[0] - origin1[0]
   new_velocity[1] = origin2[1] - origin1[1]
   new_velocity[2] = origin2[2] - origin1[2]
   new Float:num = floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
   new_velocity[0] *= num
   new_velocity[1] *= num
   new_velocity[2] *= num
   
   return 1;
}

// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
   // Get user weapons
   static weapons[32], num, i, weaponid
   num = 0 // reset passed weapons count (bugfix)
   get_user_weapons(id, weapons, num)
   
   // Loop through them and drop primaries or secondaries
   for (i = 0; i < num; i++)
   {
      // Prevent re-indexing the array
      weaponid = weapons[i]
      
      if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
      {
         // Get weapon entity
         static wname[32]
         get_weaponname(weaponid, wname, charsmax(wname))

         // Player drops the weapon and looses his bpammo
         engclient_cmd(id, "drop", wname)
         cs_set_user_bpammo(id, weaponid, 0)
      }
   }
}



i tried to remove complete:

Код: Избери целия код
public zp_user_infected_post(id) Remove_Balrog11(id)
public zp_round_ended()
{
   for(new i = 0; i < g_MaxPlayers; i++)
      Remove_Balrog11(i)
}


Problem is still there.


Include File:

Код: Избери целия код
#if defined _gxm_shop_included
    #endinput
#endif

#define _gxm_shop_included

native gxm_register_gun( const Name[ ], const XP, const Level = 0, const VIP = 0, const Round = 0, const Type[ ] = 0);
native gxm_register_item( const Name[ ], const XP, const Level = 0, const VIP = 0, const Round = 0, const Type[ ] = 0);
native gxm_register_pistol( const Name[ ], const XP, const Level = 0, const VIP = 0, const Round = 0, const Type[ ] = 0);
native gxm_register_knife( const Name[ ], const XP, const Level = 0, const VIP = 0, const Round = 0, const Type[ ] = 0);
native gxm_register_grenade( const Name[ ], const XP, const Level = 0, const VIP = 0, const Round = 0, const Type[ ] = 0);



forward gxm_gun_selected( Player, ItemIndex);
forward gxm_item_selected( Player, ItemIndex);
forward gxm_pistol_selected( Player, ItemIndex);
forward gxm_knife_selected( Player, ItemIndex);
forward gxm_grenade_selected( Player, ItemIndex);
Infamous2018

Аватар
Потребител
Потребител
 
Регистриран на: 10 Юли 2019, 15:44
[ Профил в сайта ]


Назад към Scripting (Скриптиране)

Кой е на линия

Потребители, разглеждащи този форум: 0 регистрирани

Creative Commons License

Valve, Steam, поредицата Counter-Strike и логото на всяко от изброените са търговски марки и/или
регистрирани търговски марки на Valve Corporation. Всички други търговски марки са собственост на съответните им собственици.

Design: iVoka • Special thanks: VaRkOlAKA
За сайта | Екип | За реклама | Карта на сайта | За контакти

Powered by phpBB® Forum Software © phpBB Group | Theme by A1ex, edit by iVoka
Превод: Йоан Арнаудов | Корекции: Ивомир Петров
Условия за ползване | Политика на поверителност