4ªU]nutscripts/vscriptsmsc_cs_weapons-»+¤ÿYÿÿtxt addoninfo4ÍsŸÿÿÿ"AddonInfo" { AddonTitle "(MSC) CS Weapons" AddonVersion "0.01" AddonDescription "Adds cs weapons." AddonAuthor "[FoRcE]army_guy3 aka ag3_killstreak" AddonAuthorSteamID "STEAM_1:0:15080449" AddonSteamAppID 550 addonURL0 "" }/* Going to attempt to create a info_target that pairs with a weapon_smg_mp5. Use pickup events to detect if this entity has been picked up. If it has then kill the weapon and give a new one to the player. Replace the info_targets weapon_smg_mp5 to be picked up again. */ function Main() { smg_mp5_precache <- { classname = "weapon_smg_mp5" targetname = "mp5_precache", origin = Vector(0,0,0), angles = Vector(0,0,0) } sniper_scout_precache <- { classname = "weapon_sniper_scout" targetname = "sniper_scout_precache", origin = Vector(0,0,0), angles = Vector(0,0,0) } rifle_sg552_precache <- { classname = "weapon_rifle_sg552" targetname = "rifle_sg552_precache", origin = Vector(0,0,0), angles = Vector(0,0,0) } sniper_awp_precache <- { classname = "weapon_sniper_awp" targetname = "sniper_awp_precache", origin = Vector(0,0,0), angles = Vector(0,0,0) } PrecacheEntityFromTable(smg_mp5_precache); PrecacheEntityFromTable(sniper_scout_precache); PrecacheEntityFromTable(rifle_sg552_precache); PrecacheEntityFromTable(sniper_awp_precache); } function EntityDistance(ent1, ent2) { if (ent1!=null && ent1.IsValid() && ent2!=null && ent2.IsValid()) { local pos1 = ent1.GetOrigin(); local pos2 = ent2.GetOrigin(); return PointDistance(pos1, pos2); } return -1; } function PointDistance(vector1, vector2) { return (vector1 - vector2).Length(); } function GetWeaponType(Classname) { if (Classname=="weapon_hunting_rifle_spawn" || Classname=="weapon_sniper_military_spawn") { return 0; } else if (Classname=="weapon_rifle_spawn" || Classname=="weapon_rifle_ak47_spawn" || Classname=="weapon_rifle_desert_spawn") { return 1; } else if (Classname=="weapon_smg_spawn" || Classname=="weapon_smg_silenced_spawn") { return 2; } else if (Classname=="weapon_pumpshotgun_spawn" || Classname=="weapon_shotgun_chrome_spawn") { return 3; } else if (Classname=="weapon_autoshotgun_spawn" || Classname=="weapon_shotgun_spas_spawn") { return 4; } return -1; } function GetWeaponIDType(id) { if (id==6 || id==10) { return 0; //sniper } else if (id==5 || id==26 || id==9) { return 1; //rifle } else if (id==2 || id==7) { return 2; } else if (id==3 || id==8) { return 3; } else if (id==4 || id==11) { return 4; } return -1; } function SpawnRandomWeapon(ent, weaponIDType, Position, Rotation) { if (weaponIDType==0) { local randomNum = getRandomNumber(4); if (randomNum == 0) { SpawnWeaponPickupHandler(ent, "weapon_hunting_rifle", Position, Rotation); } else if (randomNum == 1) { SpawnWeaponPickupHandler(ent, "weapon_sniper_military", Position, Rotation); } else if (randomNum == 2) { SpawnWeaponPickupHandler(ent, "weapon_sniper_scout", Position, Rotation); } else if (randomNum == 3) { SpawnWeaponPickupHandler(ent, "weapon_sniper_awp", Position, Rotation); } } else if (weaponIDType==1) { local randomNum = getRandomNumber(4); if (randomNum == 0) { SpawnWeaponPickupHandler(ent, "weapon_rifle", Position, Rotation); } else if (randomNum == 1) { SpawnWeaponPickupHandler(ent, "weapon_rifle_ak47", Position, Rotation); } else if (randomNum == 2) { SpawnWeaponPickupHandler(ent, "weapon_rifle_desert", Position, Rotation); } else if (randomNum == 3) { SpawnWeaponPickupHandler(ent, "weapon_rifle_sg552", Position, Rotation); } } else if (weaponIDType==2) { local randomNum = getRandomNumber(3); if (randomNum == 0) { SpawnWeaponPickupHandler(ent, "weapon_smg", Position, Rotation); } else if (randomNum == 1) { SpawnWeaponPickupHandler(ent, "weapon_smg_silenced", Position, Rotation); } else if (randomNum == 2) { SpawnWeaponPickupHandler(ent, "weapon_smg_mp5", Position, Rotation); } } else if (weaponIDType==3) { local randomNum = getRandomNumber(2); if (randomNum == 0) { SpawnWeaponPickupHandler(ent, "weapon_pumpshotgun", Position, Rotation); } else if (randomNum == 1) { SpawnWeaponPickupHandler(ent, "weapon_shotgun_chrome", Position, Rotation); } } else if (weaponIDType==4) { local randomNum = getRandomNumber(2); if (randomNum == 0) { SpawnWeaponPickupHandler(ent, "weapon_autoshotgun", Position, Rotation); } else if (randomNum == 1) { SpawnWeaponPickupHandler(ent, "weapon_shotgun_spas", Position, Rotation); } } } function GetWeaponType(Classname) { if (Classname=="weapon_hunting_rifle_spawn" || Classname=="weapon_sniper_military_spawn") { return 0; } else if (Classname=="weapon_rifle_spawn" || Classname=="weapon_rifle_ak47_spawn" || Classname=="weapon_rifle_desert_spawn") { return 1; } else if (Classname=="weapon_smg_spawn" || Classname=="weapon_smg_silenced_spawn") { return 2; } else if (Classname=="weapon_pumpshotgun_spawn" || Classname=="weapon_shotgun_chrome_spawn") { return 3; } else if (Classname=="weapon_autoshotgun_spawn" || Classname=="weapon_shotgun_spas_spawn") { return 4; } return -1; } function GetWeaponIDFromClassname(Classname) { if (Classname=="hunting_rifle") { return 6; } else if (Classname=="weapon_sniper_military") { return 10; } else if (Classname=="weapon_sniper_scout") { return 36; } else if (Classname=="weapon_sniper_awp") { return 35; } else if (Classname=="weapon_rifle") { return 5; } else if (Classname=="weapon_rifle_ak47") { return 26; } else if (Classname=="weapon_rifle_desert") { return 9; } else if (Classname=="weapon_rifle_sg552") { return 34; } else if (Classname=="weapon_smg") { return 2; } else if (Classname=="weapon_smg_silenced") { return 7; } else if (Classname=="weapon_smg_mp5") { return 33; } else if (Classname=="weapon_pumpshotgun") { return 3; } else if (Classname=="weapon_shotgun_chrome") { return 8; } else if (Classname=="weapon_autoshotgun") { return 4; } else if (Classname=="weapon_shotgun_spas") { return 11; } } function WeaponSpawnModifyRandomWeapon(ent, weaponType) { if (weaponType==0) { local randomNum = getRandomNumber(4); if (randomNum == 0) { //SpawnWeapon("weapon_hunting_rifle", Position, Rotation); ModifyWeaponSpawnEntity(ent, 6); } else if (randomNum == 1) { //SpawnWeapon("weapon_sniper_military", Position, Rotation); ModifyWeaponSpawnEntity(ent, 10); } else if (randomNum == 2) { ModifyWeaponSpawnEntity(ent, 36); //SpawnWeapon("weapon_sniper_scout", Position, Rotation); } else if (randomNum == 3) { //SpawnWeapon("weapon_sniper_awp", Position, Rotation); ModifyWeaponSpawnEntity(ent, 35); } } else if (weaponType==1) { local randomNum = getRandomNumber(4); if (randomNum == 0) { //SpawnWeapon("weapon_rifle", Position, Rotation); ModifyWeaponSpawnEntity(ent, 5); } else if (randomNum == 1) { //SpawnWeapon("weapon_rifle_ak47", Position, Rotation); ModifyWeaponSpawnEntity(ent, 26); } else if (randomNum == 2) { //SpawnWeapon("weapon_rifle_desert", Position, Rotation); ModifyWeaponSpawnEntity(ent, 9); } else if (randomNum == 3) { //SpawnWeapon("weapon_rifle_sg552", Position, Rotation); ModifyWeaponSpawnEntity(ent, 34); } } else if (weaponType==2) { local randomNum = getRandomNumber(3); if (randomNum == 0) { //SpawnWeapon("weapon_smg", Position, Rotation); ModifyWeaponSpawnEntity(ent, 2); } else if (randomNum == 1) { //SpawnWeapon("weapon_smg_silenced", Position, Rotation); ModifyWeaponSpawnEntity(ent, 7); } else if (randomNum == 2) { //SpawnWeapon("weapon_smg_mp5", Position, Rotation); ModifyWeaponSpawnEntity(ent, 33); } } else if (weaponType==3) { local randomNum = getRandomNumber(2); if (randomNum == 0) { //SpawnWeapon("weapon_pumpshotgun", Position, Rotation); ModifyWeaponSpawnEntity(ent, 3); } else if (randomNum == 1) { //SpawnWeapon("weapon_shotgun_chrome", Position, Rotation); ModifyWeaponSpawnEntity(ent, 8); } } else if (weaponType==4) { local randomNum = getRandomNumber(2); if (randomNum == 0) { //SpawnWeapon("weapon_autoshotgun", Position, Rotation); ModifyWeaponSpawnEntity(ent, 4); } else if (randomNum == 1) { //SpawnWeapon("weapon_shotgun_spas", Position, Rotation); ModifyWeaponSpawnEntity(ent, 11); } } } function SpawnCSWeapons() { local tempEnt = null; //local weaponList = []; while (tempEnt=Entities.Next(tempEnt)) { if (tempEnt!=null && tempEnt.IsValid()) { local entClassname = tempEnt.GetClassname(); if (entClassname=="weapon_spawn") { local weaponIDType = GetWeaponIDType(NetProps.GetPropInt(tempEnt, "m_weaponID")); if (weaponIDType>-1) { //SpawnRandomWeapon(tempEnt, weaponIDType); WeaponSpawnModifyRandomWeapon(tempEnt, weaponIDType); } } else if (entClassname.find("weapon_")!=null && entClassname.find("_spawn")!=null) { local weaponID = GetWeaponType(entClassname); if (weaponID>-1) { local pos = tempEnt.GetOrigin(); local rot = tempEnt.GetAngles(); local flowPercent = GetFlowPercentForPosition(pos, false); if (flowPercent<80) { //weaponList.push(tempEnt); DoEntFire("!self", "kill", "", 0.0, tempEnt, tempEnt); SpawnRandomWeapon(tempEnt, weaponID, pos, rot); //SpawnWeaponPickupHandler("weapon_smg_mp5", pos, rot); } } } } } /*Old code - Attempted to create a weapon_pistol_spawn and use it as a base weapon_spawn. I was able to spawn the weapon and change the model index... However the netprop appears to be ignored completely. The game will also randomly crash so this is a no go. local index = 0; local maxIndex = weaponList.len(); while (index-1) { local pos = tempEnt.GetOrigin(); local rot = tempEnt.GetAngles(); SpawnWeapon(33, pos, rot); DoEntFire("!self", "kill", "", 0.0, tempEnt, tempEnt); } index+=1; } */ /*Old code - weapon_spawn entity creation does not work properly on vscripts because edict is dispatched before netprop values can be set. I'll give up on this for now until I can find a way (if any) to spawn weapon_spawn class without it auto killing on next frame. printl("debug: start"); local tempEnt = null; local weaponList = []; while (tempEnt=Entities.Next(tempEnt)) { if (tempEnt!=null && tempEnt.IsValid()) { local entClassname = tempEnt.GetClassname(); if (entClassname.find("weapon_")!=null && entClassname.find("_spawn")!=null) { weaponList.push(tempEnt); } } } local index = 0; local maxIndex = weaponList.len(); while (index-1) { local pos = tempEnt.GetOrigin(); local rot = tempEnt.GetAngles(); DoEntFire("!self", "kill", "", 0.0, tempEnt, tempEnt); } index+=1; } */ } function ModifyWeaponSpawnEntity(ent, newID) { NetProps.SetPropInt(ent, "m_weaponID", newID); SetModelByID(ent, newID); } function SpawnGhostWeapon(ent, ID, Position, Rotation) { local entTable = { name = "ag3_weapon_spawn", classname = "weapon_pistol_spawn", count = 999, origin = Position, solid=6, spawnflags=10 } local newEnt = g_ModeScript.CreateSingleSimpleEntityFromTable(entTable); NetProps.SetPropInt(newEnt, "m_weaponID", ID); newEnt.SetOrigin(Position); newEnt.SetAngles(Rotation); } function TimerCallBack_SpawnGhost(paramsID) { local params = MSC_GetParamsFromId(paramsID); SpawnGhostWeapon(params.SpawnFlags, params.WeaponID, params.Pos, params.Rot); } function SpawnWeaponPickupHandler(ent, Classname, Position, Rotation) { local spawnFlags = NetProps.GetPropInt(ent, "m_spawnflags"); /* local timerParams = { Pos = Position, Rot = Rotation, WeaponID = GetWeaponIDFromClassname(Classname), SpawnFlags = spawnFlags } MSC_CreateNormalTimer(2.0, MSCScriptIndex, "TimerCallBack_SpawnGhost", MSC_GetParamsId(timerParams)) */ local physFlag = false; if (spawnFlags & 1) { physFlag = true; } local spawnerTable = { classname = "info_target", targetname = "weapon_pickup_handler", origin = Vector(0,0,0) } local newEnt = SpawnEntityFromTable("info_target", spawnerTable); newEnt.SetOrigin(Position); newEnt.SetAngles(Rotation); local weaponTargetname = "weapon_pickup_handler"+newEnt.GetEntityIndex(); newEnt.__KeyValueFromString("targetname", weaponTargetname); newEnt.ValidateScriptScope(); local handlerScope = newEnt.GetScriptScope(); handlerScope.spawnRot <- Rotation; DoEntFire("!self", "runscriptcode", RunScriptCode_WeaponPickupHandler(Classname, physFlag), 0.0, newEnt, newEnt); } function RunScriptCode_WeaponPickupHandler(Classname, physFlag) { return @"this.entWeapon <- null; this.entWeaponClass <- """ + Classname +@""" this.physFlag <- "+physFlag +@"; this.lastPos <- self.GetOrigin(); function loop() { if (this.entWeapon==null) { local entTable = { classname = this.entWeaponClass, ammo = ""1000"", origin = Vector(0,0,0), angles = this.spawnRot } local newEnt = g_ModeScript.CreateSingleSimpleEntityFromTable(entTable); newEnt.SetOrigin(this.lastPos); newEnt.SetAngles(this.spawnRot); if (!this.physFlag) { DoEntFire(""!self"", ""SetParent"", self.GetName(), 0.0, newEnt, newEnt); } newEnt.ValidateScriptScope(); local weaponScope = newEnt.GetScriptScope(); weaponScope.HandlerOwner <- self; this.entWeapon = newEnt; } else if (this.entWeapon.IsValid() && this.entWeapon.GetClassname()==this.entWeaponClass) { //Check if weapon has an owner yet. local weaponOwner = NetProps.GetPropInt(this.entWeapon, ""m_hOwner""); if (weaponOwner>-1) { local entTable = { classname = this.entWeaponClass, ammo = ""1000"", origin = Vector(0,0,0), angles = this.spawnRot } local newEnt = g_ModeScript.CreateSingleSimpleEntityFromTable(entTable); local oldWeaponScope = this.entWeapon.GetScriptScope(); newEnt.SetOrigin(this.lastPos); newEnt.SetAngles(this.spawnRot); local weaponTargetname = ""weapon_spawned""+newEnt.GetEntityIndex(); newEnt.__KeyValueFromString(""targetname"", weaponTargetname); if (!this.physFlag) { DoEntFire(""!self"", ""SetParent"", self.GetName(), 0.0, newEnt, newEnt); } newEnt.ValidateScriptScope(); local weaponScope = newEnt.GetScriptScope(); weaponScope.HandlerOwner <- self; this.entWeapon = newEnt; } else { this.lastPos <- this.entWeapon.GetOrigin(); } } else { this.entWeapon = null; } DoEntFire(""!self"", ""runscriptcode"", ""loop()"", 0.01, self, self); } loop(); "; } function SetModelByID(ent, ID) { local globals = getroottable(); if (ID==2) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SMG); } else if (ID==7) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SMG_SILENCED); } else if (ID==33) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SMG_MP5); } else if (ID==5) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_RIFLE); } else if (ID==26) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_RIFLE_AK47); } else if (ID==9) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_RIFLE_DESERT); } else if (ID==34) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_RIFLE_SG552); } else if (ID==6) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_HUNTING_RIFLE); } else if (ID==10) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SNIPER_MILITARY); } else if (ID==35) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SNIPER_AWP); } else if (ID==36) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SNIPER_SCOUT); } else if (ID==3) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_PUMPSHOTGUN); } else if (ID==8) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SHOTGUNCHROME); } else if (ID==4) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_AUTOSHOTGUN); } else if (ID==11) { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SHOTGUN_SPAS); } } function SetModelByClassname(ent, Classname) { local globals = getroottable(); if (Classname=="weapon_smg") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SMG); } else if (Classname=="weapon_smg_silenced") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SMG_SILENCED); } else if (Classname=="weapon_smg_mp5") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SMG_MP5); } else if (Classname=="weapon_rifle") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_RIFLE); } else if (Classname=="weapon_rifle_ak47") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_RIFLE_AK47); } else if (Classname=="weapon_rifle_desert") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_RIFLE_DESERT); } else if (Classname=="weapon_rifle_sg552") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_RIFLE_SG552); } else if (Classname=="weapon_hunting_rifle") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_HUNTING_RIFLE); } else if (Classname=="weapon_sniper_military") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SNIPER_MILITARY); } else if (Classname=="weapon_sniper_awp") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SNIPER_AWP); } else if (Classname=="weapon_sniper_scout") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SNIPER_SCOUT); } else if (Classname=="weapon_pumpshotgun") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_PUMPSHOTGUN); } else if (Classname=="weapon_shotgun_chrome") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SHOTGUNCHROME); } else if (Classname=="weapon_autoshotgun") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_AUTOSHOTGUN); } else if (Classname=="weapon_shotgun_spas") { NetProps.SetPropInt(ent, "m_nModelIndex", globals.MODELINDEX_WEAPON_SHOTGUN_SPAS); } } function PrecacheModel(model_path) { local ent = { classname = "prop_dynamic", origin = Vector(0,0,0), angles = Vector(0,0,0), model = model_path } PrecacheEntityFromTable(ent); } function getRandomNumber(max) { local randNum = (rand() % max); return randNum; } function GetModelIndex(modelString) { local entTable = { classname = "prop_dynamic", origin = Vector(0,0,0), angles = Vector(0,0,0), model = modelString } local ent = SpawnEntityFromTable("prop_dynamic", entTable); local modelIndex = NetProps.GetPropInt(ent, "m_nModelIndex"); DoEntFire("!self", "kill", "", 0.0, ent, ent); return modelIndex; } function OnGameEvent_round_start( params ) { local globals = getroottable(); globals.MODELINDEX_WEAPON_SMG <- GetModelIndex("models/w_models/weapons/w_smg_uzi.mdl"); globals.MODELINDEX_WEAPON_SMG_SILENCED <- GetModelIndex("models/w_models/weapons/w_smg_a.mdl"); globals.MODELINDEX_WEAPON_SMG_MP5 <- GetModelIndex("models/w_models/weapons/w_smg_mp5.mdl"); globals.MODELINDEX_WEAPON_RIFLE <- GetModelIndex("models/w_models/weapons/w_rifle_m16a2.mdl"); globals.MODELINDEX_WEAPON_RIFLE_AK47 <- GetModelIndex("models/w_models/weapons/w_rifle_ak47.mdl"); globals.MODELINDEX_WEAPON_RIFLE_DESERT <- GetModelIndex("models/w_models/weapons/w_desert_rifle.mdl"); globals.MODELINDEX_WEAPON_RIFLE_SG552 <- GetModelIndex("models/w_models/weapons/w_rifle_sg552.mdl"); globals.MODELINDEX_WEAPON_HUNTING_RIFLE <- GetModelIndex("models/w_models/weapons/w_sniper_mini14.mdl"); globals.MODELINDEX_WEAPON_SNIPER_MILITARY <- GetModelIndex("models/w_models/weapons/w_sniper_military.mdl"); globals.MODELINDEX_WEAPON_SNIPER_AWP <- GetModelIndex("models/w_models/weapons/w_sniper_awp.mdl"); globals.MODELINDEX_WEAPON_SNIPER_SCOUT <- GetModelIndex("models/w_models/weapons/w_sniper_scout.mdl"); globals.MODELINDEX_WEAPON_PUMPSHOTGUN <- GetModelIndex("models/w_models/weapons/w_shotgun.mdl"); globals.MODELINDEX_WEAPON_SHOTGUNCHROME <- GetModelIndex("models/w_models/weapons/w_pumpshotgun_a.mdl"); globals.MODELINDEX_WEAPON_AUTOSHOTGUN <- GetModelIndex("models/w_models/weapons/w_autoshot_m4super.mdl"); globals.MODELINDEX_WEAPON_SHOTGUN_SPAS <- GetModelIndex("models/w_models/weapons/w_shotgun_spas.mdl"); SpawnCSWeapons(); /* local timerParams = { test1 = "blah", test2 = 69 } MSC_CreateNormalTimer(10.0, MSCScriptIndex, "TimerCallBack_test1", MSC_GetParamsId(timerParams)) */ } function EVENTMSC_PlayerChangedPrimary( params ) { local oldWeaponEnt = params.oldweapon; local newWeaponEnt = params.newweapon; if (oldWeaponEnt!=null && oldWeaponEnt.IsValid() && newWeaponEnt!=null && newWeaponEnt.IsValid()) { local oldWeaponScope = oldWeaponEnt.GetScriptScope(); if (("HandlerOwner" in oldWeaponScope)) { local dist = EntityDistance(oldWeaponScope.HandlerOwner, oldWeaponEnt); if (dist>-1 && dist<250) { DoEntFire("!self", "kill", "", 0.0, oldWeaponEnt, oldWeaponEnt); } } } /* local weaponScope = weaponEnt.GetScriptScope(); if (("HandlerOwner" in weaponScope)) { weaponScope.HandlerOwner } */ } /* function EVENTMSC_PlayerChangedWeapon( params ) { local oldWeaponEnt = params.oldweapon; local newWeaponEnt = params.newweapon; } */ __CollectEventCallbacks(this, "OnGameEvent_", "GameEventCallbacks", RegisterScriptGameEventListener);