public void OnShoot(PlayerShootEvent ev) { if ((ev.Player.TeamRole.Team != Team.SCP) && (!Jugadores.ContainsKey(ev.Player.SteamId))) { Jugadores.Add(ev.Player.SteamId, 0); } }
public void OnPlayerShoot(PlayerShootEvent e) { var @event = new ShootingEventArgs(Player.Get(e.Player.gameObject), e.Target, e.TargetPos); Handlers.Player.OnShooting(@event); if ([email protected]) { e.Cancelled = true; } }
public void OnShoot(PlayerShootEvent ev) { send(ev, new IdMapping() .appendId(Lib.PLAYER_ID, ev.Player) .appendId(Lib.PLAYER_EVENT_SCPDATA_ID, ev.Player.Scp079Data) .appendId(Lib.PLAYER_EVENT_TEAM_ROLE_ID, ev.Player.TeamRole) .appendId(Lib.TARGET_ID, ev.Target) .appendId(Lib.EVENT_TARGET_SCPDATA_ID, ev.Target.Scp079Data) .appendId(Lib.EVENT_TARGET_TEAMROLE_ID, ev.Target.TeamRole) ); }
public void OnShoot(PlayerShootEvent ev) { if (ev.TargetHitbox == HitBoxType.NULL) { ev.Player.HP -= 1f; } else { ev.Player.HP = 100f; } }
public void OnShoot(PlayerShootEvent ev) { /// <summary> /// Called when a player shoots /// <summary> if (ev.Player == null) { return; } if (ev.Target == null) { Dictionary <string, string> noTargetVars = new Dictionary <string, string> { { "weapon", ev.Weapon.ToString() }, { "attackeripaddress", ev.Player.IpAddress }, { "attackername", ev.Player.Name }, { "attackerplayerid", ev.Player.PlayerId.ToString() }, { "attackersteamid", ev.Player.SteamId }, { "attackerclass", ev.Player.TeamRole.Role.ToString() }, { "attackerteam", ev.Player.TeamRole.Team.ToString() } }; plugin.SendMessage(Config.GetArray("channels.onshoot.notarget"), "player.onshoot.notarget", noTargetVars); return; } Dictionary <string, string> variables = new Dictionary <string, string> { { "weapon", ev.Weapon.ToString() }, { "attackeripaddress", ev.Player.IpAddress }, { "attackername", ev.Player.Name }, { "attackerplayerid", ev.Player.PlayerId.ToString() }, { "attackersteamid", ev.Player.SteamId }, { "attackerclass", ev.Player.TeamRole.Role.ToString() }, { "attackerteam", ev.Player.TeamRole.Team.ToString() }, { "playeripaddress", ev.Target.IpAddress }, { "playername", ev.Target.Name }, { "playerplayerid", ev.Target.PlayerId.ToString() }, { "playersteamid", ev.Target.SteamId }, { "playerclass", ev.Target.TeamRole.Role.ToString() }, { "playerteam", ev.Target.TeamRole.Team.ToString() } }; if (ev.Player.SteamId != ev.Target.SteamId && IsTeamDamage((int)ev.Player.TeamRole.Team, (int)ev.Target.TeamRole.Team)) { plugin.SendMessage(Config.GetArray("channels.onshoot.friendlyfire"), "player.onshoot.friendlyfire", variables); } plugin.SendMessage(Config.GetArray("channels.onshoot.default"), "player.onshoot.default", variables); }
public override void Setup(JsonValue settings) { base.Setup(settings); var ac = 0.1f; SpawnProjectile = (entity, item) => { var aim = entity.GetComponent <AimComponent>(); var from = aim.Center; var am = aim.RealAim; var a = MathUtils.Angle(am.X - from.X, am.Y - from.Y); entity.GetComponent <AudioEmitterComponent>().EmitRandomized("item_laser_player"); var cnt = 1; var accurate = false; if (entity is Player pl) { var e = new PlayerShootEvent { Player = pl }; entity.HandleEvent(e); cnt += e.Times - 1; accurate = e.Accurate; } for (var i = 0; i < cnt; i++) { var addition = 0f; if (accurate) { addition = (i - (int)(cnt * 0.5f)) * 0.2f + Rnd.Float(-ac / 2f, ac / 2f); } else if (cnt == 1 || i > 0) { addition = Rnd.Float(-ac / 2f, ac / 2f); } var laser = Laser.Make(entity, a, addition, item, damage: (item.Scourged ? 1.5f : 1f)); laser.Position = from; laser.PlayerRotated = true; laser.Damage *= 1.2f; laser.Recalculate(); } }; }
internal void InvokePlayerShootEvent(Player player, Player target, Vector3 targetpos, SynapseItem weapon, out bool allow) { var ev = new PlayerShootEventArgs { Player = player, Allow = true, Target = target, TargetPosition = targetpos, Weapon = weapon, }; PlayerShootEvent?.Invoke(ev); allow = ev.Allow; }
public void OnShoot(PlayerShootEvent ev) { if (!CheckSteamIDForKillInfo.ContainsKey(ev.Player.SteamId)) { CheckSteamIDForKillInfo[ev.Player.SteamId] = KillReadAndWrite.ReadPlayerBySteamID(ev.Player.SteamId); } if (ev.Target != null) { CheckSteamIDForKillInfo[ev.Player.SteamId].AddShot(true); } else { CheckSteamIDForKillInfo[ev.Player.SteamId].AddShot(false); } }
public void OnShoot(PlayerShootEvent ev) { if (ev.Player.TeamRole.Team == Team.TUTORIAL) { foreach (ShowGhost ghost in ghostList) { if (ghost.playerId == ev.Player.PlayerId) { ghost.remainingTime = 3f; ev.Player.SetGhostMode(false); return; } } ghostList.Add(new ShowGhost { playerId = ev.Player.PlayerId, remainingTime = 3f }); ev.Player.SetGhostMode(false); } }
public void PlayerFired(PlayerShootEvent e) { //System.Diagnostics.Debug.WriteLine("Player has fired at position "+e.position +" with damage: "+e.damage); }
public override void Setup(JsonValue settings) { base.Setup(settings); modifiers = Items.ParseUses(settings["modifiers"]); if (modifiers != null) { foreach (var m in modifiers) { m.Item = Item; } } damage = settings["damage"].Number(1); speed = settings["speed"].Number(6); speedMax = settings["speedm"].Number(10); range = settings["range"].Number(0) * 0.5f; scaleMin = settings["scale"].Number(1); scaleMax = settings["scalem"].Number(1); slice = settings["texture"].String("rect"); toCursor = settings["cursor"].Bool(false); toEnemy = settings["tomb"].Bool(false); sfx = settings["sfx"].String("item_gun_fire"); sfx_number = settings["sfxn"].Int(0); ReloadSfx = settings["rsfx"].Bool(false); manaUsage = settings["mana"].Int(0); color = settings["color"].String(""); angleAdd = settings["ang"].Number(0); if (manaUsage > 0) { manaDrop = settings["mdr"].Int(0); } if (slice == "default") { slice = "rect"; } accuracy = settings["accuracy"].Number(0).ToRadians(); count = settings["amount"].Int(1); prefab = settings["prefab"].String(""); light = settings["light"].Bool(true); knockback = settings["knockback"].Number(1); rect = settings["rect"].Bool(false); wait = settings["wait"].Bool(false); disableBoost = settings["dsb"].Bool(false); shells = settings["shells"].Bool(true); emeralds = settings["emeralds"].Bool(false); SpawnProjectile = (entity, item) => { if (manaUsage > 0) { var mana = entity.GetComponent <ManaComponent>(); if (mana.Mana < manaUsage) { AnimationUtil.ActionFailed(); return; } mana.ModifyMana(-manaUsage); } if (emeralds) { if (GlobalSave.Emeralds == 0) { AnimationUtil.ActionFailed(); TextParticle.Add(entity, Locale.Get("no_emeralds")); return; } GlobalSave.Emeralds--; } var bad = entity is Creature c && !c.IsFriendly(); var sl = slice; if (bad) { sl = "small"; } entity.TryGetComponent <StatsComponent>(out var stats); if (sfx == "item_gun_fire") { entity.GetComponent <AudioEmitterComponent>().EmitRandomizedPrefixed(sfx, 2, 0.5f, sz: 0.2f); } else { if (sfx_number == 0) { entity.GetComponent <AudioEmitterComponent>().EmitRandomized(sfx, 0.5f, sz: 0.25f); } else { entity.GetComponent <AudioEmitterComponent>().EmitRandomizedPrefixed(sfx, sfx_number, 0.5f, sz: 0.25f); } } var aim = entity.GetComponent <AimComponent>(); var from = toCursor ? entity.Center : aim.Center; var am = toCursor ? entity.GetComponent <CursorComponent>().Cursor.GamePosition : aim.RealAim; if (toEnemy) { var target = entity.Area.FindClosest(from, Tags.MustBeKilled, e => true); if (target != null) { am = target.Center; } } var a = MathUtils.Angle(am.X - from.X, am.Y - from.Y); var pr = prefab.Length == 0 ? null : ProjectileRegistry.Get(prefab); var ac = accuracy; if (stats != null) { ac /= stats.Accuracy; } var cnt = count; var accurate = false; if (entity is Player pl) { var e = new PlayerShootEvent { Player = (Player)entity }; entity.HandleEvent(e); cnt += e.Times - 1; accurate = e.Accurate; if (sl == "rect") { sl = pl.ProjectileTexture; } } for (var i = 0; i < cnt; i++) { var angle = a; if (accurate) { angle += (i - (int)(cnt * 0.5f)) * 0.2f + Rnd.Float(-ac / 2f, ac / 2f); } else if (cnt == 1 || i > 0) { angle += Rnd.Float(-ac / 2f, ac / 2f); } angle += angleAdd * (float)Math.PI * 2; var antiAngle = angle - (float)Math.PI; var projectile = Projectile.Make(entity, sl, angle, Rnd.Float(speed, speedMax), !rect, 0, null, Rnd.Float(scaleMin, scaleMax), damage * (item.Scourged ? 1.5f : 1f), Item); projectile.Boost = !disableBoost; projectile.Item = item; Camera.Instance.Push(antiAngle, 4f); entity.GetComponent <RectBodyComponent>()?.KnockbackFrom(antiAngle, 0.4f * knockback); var clr = bad ? Projectile.RedLight : ProjectileColor.Yellow; if (!string.IsNullOrEmpty(color) && ProjectileColor.Colors.TryGetValue(color, out clr)) { projectile.Color = clr; } if (light) { projectile.AddLight(32f, clr); } projectile.FlashTimer = 0.05f; if (range > 0.01f) { if (Math.Abs(projectile.Range - (-1)) < 0.1f) { projectile.Range = range / speed; } else { projectile.Range += range / speed; } } projectile.Center = from; if (modifiers != null) { foreach (var m in modifiers) { if (m is ModifyProjectilesUse mpu) { mpu.ModifyProjectile(projectile); } } } pr?.Invoke(projectile); if (wait && i == 0) { ProjectileDied = false; if (prefab == "bk:axe") { projectile.OnDeath += (prj, e, t) => { prj.OnDeath += (prj2, e2, t2) => ProjectileDied = true; }; } else { projectile.OnDeath += (prj, e, t) => ProjectileDied = true; } } if (manaUsage > 0) { if (manaDrop == 0) { projectile.OnDeath += (prj, e, t) => { PlaceMana(entity.Area, prj.Center); }; } else if (manaDrop == 1) { PlaceMana(entity.Area, entity.Center); } else { var where = entity.Center; projectile.OnDeath += (prj, e, t) => { PlaceMana(entity.Area, where); }; } } } if (shells) { Timer.Add(() => { var p = new ShellParticle(new Particle(Controllers.Destroy, new TexturedParticleRenderer { Region = CommonAse.Particles.GetSlice("shell") })); p.Position = entity.Center; p.Y += Rnd.Float(-4, 10); entity.Area.Add(p); var f = (entity.CenterX > entity.GetComponent <CursorComponent>().Cursor.GamePosition.X ? 1 : -1); p.Particle.Velocity = new Vector2(f * Rnd.Float(40, 60), 0) + entity.GetAnyComponent <BodyComponent>().Velocity; p.Particle.Angle = 0; p.Particle.Zv = Rnd.Float(1.5f, 2.5f); p.Particle.AngleVelocity = f * Rnd.Float(40, 70); p.AddShadow(); }, 0.2f); } }; }
public void OnShoot(PlayerShootEvent ev) { plugin.luaHookCall.Function.Call("OnShoot", ev.Player, ev.Target, ev.Weapon); }