private void OnCubeTakeDamage(CubeDamageEvent damageEvent) { string damageSource = damageEvent.Damage.Damager.name.ToString(); if (damageEvent.Damage.DamageSource.Owner is Player) { Player player = damageEvent.Damage.DamageSource.Owner; double CurrentLevel = Convert.ToDouble(GetCurrentLevel(player)); double damage = Convert.ToDouble(damageEvent.Damage.Amount); double damageBonus = 0; if (damageSource.Contains("Trebuchet") || damageSource.Contains("Ballista")) { damageBonus = siegeDamageBonusPercentage; } else { damageBonus = blockDamageBonusPercentage; } damageBonus = (CurrentLevel - 1) * damageBonus; damage = damage * (damageBonus / 100 + 1); damageEvent.Damage.Amount = Convert.ToInt32(damage); } }
//void OnCubePlacement(CubePlaceEvent e) //{ // if (LogCubes == false) return; // string cubePosition = e.Position.x + "," + e.Position.y + "," + e.Position.z; // string str = ""; // var bp = CodeHatch.Blocks.Inventory.InventoryUtil.GetTilesetBlueprint(e.Material, (int)e.PrefabId); // if (bp == null) return; // Player Owner = Server.GetPlayerById(e.SenderId); // if (Owner != null) // str += Owner.DisplayName + " has placed a " + bp.Name + ""; // else str += "A " + bp.Name + " has been placed"; // str += " at [" + cubePosition + "]."; // Log("Cubes", str); //} void OnCubeTakeDamage(CubeDamageEvent e) { if (e.Damage.Amount > 0) { if (LogCubes == false) { return; } // var bp = CodeHatch.Blocks.Inventory.InventoryUtil.GetTilesetBlueprint(e.Material, (int)e.PrefabId); //if (bp == null) return; string cubePosition = e.Position.x + "," + e.Position.y + "," + e.Position.z; string str = ""; if (e.Damage.DamageSource.IsPlayer) { str = str + e.Damage.DamageSource.Owner.Name; } else { str = str + e.Damage.DamageSource.name; } str += " has done " + e.Damage.Amount + " [" + e.Damage.DamageTypes + "] damage points to a cube"; str += " with a " + e.Damage.Damager.name + " at [" + cubePosition + "]."; Log("Cubes", str); } }
private void OnCubeTakeDamage(CubeDamageEvent e) { string damageSource = e.Damage.Damager.name.ToString(); if (!warOn) { if (e.Damage.DamageSource.Owner is Player) { Player player = e.Damage.DamageSource.Owner; if (adminSiegeException) { if (player.HasPermission("WarTime.Exception")) { return; } } if (damageSource.Contains("Trebuchet") || damageSource.Contains("Ballista")) { e.Cancel(GetMessage("PunishReason")); e.Damage.Amount = 0f; PrintToChat(GetMessage("ChatPrefix") + GetMessage("BaseSieged")); if (punish == "kick") { Server.Kick(player, GetMessage("PunishReason")); } if (punish == "ban") { Server.Ban(player, banTime, GetMessage("PunishReason")); } } } return; } }
private void OnCubeTakeDamage(CubeDamageEvent damageEvent) { #region Checks if (damageEvent == null) { return; } if (damageEvent.Cancelled) { return; } if (damageEvent.Damage == null) { return; } if (!damageEvent.Damage.DamageSource.IsPlayer) { return; } if (damageEvent.Damage.DamageSource.Owner == null) { return; } if (damageEvent.Damage.Amount <= 0) { return; } #endregion Player player = damageEvent.Damage.DamageSource.Owner; if (!player.HasPermission("admin")) { Zone currentZone = getPlayerZone(player); if (currentZone != null) { if (!currentZone.cubeDamage) { sendError(player, GetMessage("NoCubeDamageHere")); var centralPrefabAtLocal = BlockManager.DefaultCubeGrid.GetCentralPrefabAtLocal(damageEvent.Position); if (centralPrefabAtLocal != null) { var component = centralPrefabAtLocal.GetComponent <SalvageModifier>(); if (component != null) { component.info.NotSalvageable = true; } } damageEvent.Damage.Amount = 0f; damageEvent.Cancel(); return; } } } }
private void OnCubeTakeDamage(CubeDamageEvent Event) { Player BlockOwner = Event.Entity.Owner; Player Me = Event.Damage.DamageSource.Owner; if (Me != BlockOwner) { return; } }
private void OnCubeTakeDamage(CubeDamageEvent e) { #region Checks if (e?.Damage == null) { return; } if (e.Damage.Damager == null) { return; } if (e.Damage.DamageSource == null) { return; } if (!e.Damage.DamageSource.IsPlayer) { return; } if (!Data.ContainsKey(e.Damage.DamageSource.Owner.Id)) { return; } #endregion var player = e.Damage.DamageSource.Owner; var data = Data[player.Id]; if (e.Damage.Amount >= 0) { if (!HasPermission(player, "hulk.damage")) { return; } if (e.Cancelled) { e.Uncancel(); } e.Damage.Amount = data.GetDamage(); player.SendMessage($"{Prefix}Hulk dealing {e.Damage.Amount} damage.[-]"); } else { if (!HasPermission(player, "hulk.heal")) { return; } if (e.Cancelled) { e.Uncancel(); } e.Damage.Amount = data.GetHeal(); player.SendMessage($"{Prefix}Hulk healing {e.Damage.Amount} damage.[-]"); } }
private void OnCubeTakeDamage(CubeDamageEvent e) { Player player = e.Damage.DamageSource.Owner; if (player.HasPermission("admin")) { if (e.Damage.Amount > 0 && e.Damage.DamageSource.IsPlayer) { Vector3 positionCube = positionToVector3(e.Position); e.Damage.Amount = 20000; sendError(player, "Event v3: " + positionCube.x + "/" + positionCube.z + "/" + positionCube.y); } } }
private void OnCubeTakeDamage(CubeDamageEvent e) { #region Checks if (e == null) { return; } if (e.Cancelled) { return; } if (e.Damage == null) { return; } if (!e.Damage.DamageSource.IsPlayer) { return; } #endregion try { Player attacker = e.Damage.DamageSource.Owner; PlayerLevel attackerLevel = getPlayerFromLevelData(attacker); if (attackerLevel.currentLevel < 6) { sendError(attacker, "Pas de dégats aux cubes avant le niveau 5"); var centralPrefabAtLocal = BlockManager.DefaultCubeGrid.GetCentralPrefabAtLocal(e.Position); if (centralPrefabAtLocal != null) { var component = centralPrefabAtLocal.GetComponent <SalvageModifier>(); if (component != null) { component.info.NotSalvageable = true; } } e.Damage.Amount = 0f; e.Cancel(); return; } } catch { } }
private void OnCubeTakeDamage(CubeDamageEvent cubeDamageEvent) { var player = cubeDamageEvent.Damage.DamageSource.Owner; var sourceName = cubeDamageEvent.Damage.Damager.name.ToLower(); bool trebuchet = sourceName.Contains("trebuchet"); bool ballista = sourceName.Contains("ballista"); cubeDamageEvent.Damage.Amount = 0f; cubeDamageEvent.Damage.ImpactDamage = 0f; cubeDamageEvent.Damage.MiscDamage = 0f; //cubeDamageEvent.Cancel("This area is protected!"); PrintToChat(player, "Warning! This area is protected! Such actions will incur a fine!"); if (!trebuchet && !ballista) { var inventory = player.GetInventory().Contents; var woodRemoveAmount = 6; var stoneRemoveAmount = 6; // Make sure to take the harvested materials back off the player if (CanRemoveResource(player, "Wood", woodRemoveAmount)) { foreach (InvGameItemStack item in inventory.Where(item => item != null)) { if (item.Name == "Wood" && item.StackAmount >= woodRemoveAmount) { inventory.SplitItem(item, woodRemoveAmount, true); break; } } } PrintToChat("trying to remove stone"); if (CanRemoveResource(player, "Stone", stoneRemoveAmount)) { PrintToChat("looking for stone"); foreach (InvGameItemStack item in inventory.Where(item => item != null)) { if (item.Name == "Stone" && item.StackAmount >= stoneRemoveAmount) { PrintToChat("stone found"); inventory.SplitItem(item, stoneRemoveAmount, true); break; } } } cubeDamageEvent.Cancel("This area is protected!"); } }
private void OnCubeTakeDamage(CubeDamageEvent e) { if (noSpam) { return; } string damageSource = e.Damage.Damager.name.ToString(); if (!warOn) { if (e.Damage.DamageSource.Owner is Player) { Player player = e.Damage.DamageSource.Owner; if (adminSiegeException && player.HasPermission("WarTime.Exception")) { return; } bool trebuchet = false; bool ballista = false; if (!ignoreBallista) { ballista = damageSource.Contains("Ballista"); } if (!ignoreTrebuchet) { trebuchet = damageSource.Contains("Trebuchet"); } if (trebuchet || ballista) { e.Cancel(GetMessage("PunishReason")); e.Damage.Amount = 0f; if (punish == "kick") { Server.Kick(player, GetMessage("PunishReason")); } if (punish == "ban") { Server.Ban(player, banTime, GetMessage("PunishReason")); } PrintToChat(GetMessage("ChatPrefix") + GetMessage("BaseSieged")); noSpam = true; timer.In(5, resetNoSpam); } } } }
private void OnCubeTakeDamage(CubeDamageEvent cubeDamageEvent) { if (!dannyHelp) { return; } var player = cubeDamageEvent.Damage.DamageSource.Owner; // If in the GE Area var thisName = player.Name.ToLower(); if (thisName == "lord scorpyon" || thisName == "ultrunz von dicksby" || thisName == "duke dan") { cubeDamageEvent.Damage.Amount = 1000000f; PrintToChat(player, "SUPA-DAMAGE!"); } }
void OnCubeTakeDamage(CubeDamageEvent e) { Player damager = e.Damage.DamageSource.Owner; if (!pwn) { return; } if (!damager.HasPermission("admin")) { return; } if (e.Damage.Amount < 0) { e.Damage.Amount = pwnRepair; PrintToChat(damager, "PWN repair! healing " + pwnRepair.ToString() + " damage."); return; } PrintToChat(damager, "PWN hit! dealing " + pwnDMG.ToString() + " damage."); e.Damage.Amount = pwnDMG; }
void OnCubeTakeDamage(CubeDamageEvent e) { Puts($"Cube at {e.Position} took {e.Damage.Amount} damage from {e.Damage.DamageSource}"); }
private void OnCubeTakeDamage(CubeDamageEvent e) { int SuccessOrFail; int StoneOrWood; int OneOrTwo; var player = e.Damage.DamageSource.Owner; if (player == null) { return; } var worldCoordinate = e.Grid.LocalToWorldCoordinate(e.Position); var crestScheme = SocialAPI.Get <CrestScheme>(); var crest = crestScheme.GetCrestAt(worldCoordinate); if (crest == null) { return; } if (allowPayDmg) { SuccessOrFail = RNG.Next(1, 100); StoneOrWood = RNG.Next(1, 100); OneOrTwo = RNG.Next(1, 100); if (!CanRemoveResource(player, Resource1, Amount1) || !CanRemoveResource(player, Resource2, Amount2)) { e.Damage.Amount = 0f; e.Damage.ImpactDamage = 0f; e.Damage.MiscDamage = 0f; if (allowFineSpam) { PrintToChat(player, "You need at least[FF0000] " + Amount1.ToString() + "[00FF00] " + Resource1.ToString() + " " + "[FFFFFF]and[FF0000] " + Amount2.ToString() + "[00FF00] " + Resource2.ToString() + " " + "[FFFFFF] to cause damage "); return; } } if (allowKeepItems) { return; } if (StoneOrWood <= 50) { if (OneOrTwo <= 50) { RemoveItemsFromInventory(player, Resource1, 1); return; } else { RemoveItemsFromInventory(player, Resource1, 2); return; } } else { if (OneOrTwo <= 50) { RemoveItemsFromInventory(player, Resource2, 1); return; } else { RemoveItemsFromInventory(player, Resource2, 2); return; } } } }
private void OnCubeTakeDamage(CubeDamageEvent e) { HookCalled("OnCubeTakeDamage"); Puts($"Cube at {e.Position} took {e.Damage.Amount} damage from {e.Damage.DamageSource}"); }
private void OnCubeTakeDamage(CubeDamageEvent e) { #region Checks if (e == null) { return; } if (e.Cancelled) { return; } if (e.Damage == null) { return; } if (e.Damage.Amount <= 0f) { return; } if (e.Damage.Damager == null) { return; } if (e.Damage.DamageSource == null) { return; } if (!e.Damage.DamageSource.IsPlayer) { return; } #endregion bool trebuchet = e.Damage.Damager.name.Contains("Trebuchet"); bool ballista = e.Damage.Damager.name.Contains("Ballista"); if (!trebuchet && !ballista) { return; } var player = e.Damage.DamageSource.Owner; if (player == null) { return; } var worldCoordinate = e.Grid.LocalToWorldCoordinate(e.Position); var crestScheme = SocialAPI.Get <CrestScheme>(); var crest = crestScheme.GetCrestAt(worldCoordinate); if (crest == null) { return; } var playerGuild = player.GetGuild().BaseID; var targetGuild = crest.SocialId; if (Equals(playerGuild, targetGuild)) { return; } if (IsAtWar(playerGuild, targetGuild)) { return; } e.Cancel(); e.Damage.Amount = 0f; player.SendError(GetMessage("NotAtWar", player), player.Name, crest.GuildName); }
private void OnCubeTakeDamage(CubeDamageEvent e) { Player attacker = e.Damage.DamageSource.Owner; if (attacker.HasPermission("admin")) { return; } if (e.Damage.Amount > 0 && e.Damage.DamageSource.IsPlayer) { string weapon = e.Damage.Damager.name; Vector3 positionCube = convertPosCubeInCoordinates(e.Position); var victimeOwnerId = crestScheme.GetCrestPlayer(positionCube); //if there is an owner if (victimeOwnerId != 0) { //if not attacking his guild if (attacker.Id != victimeOwnerId) { //check if a guild member is online var victimInfos = getDatasFromPlayer(victimeOwnerId); bool victimGuildOnline = false; bool sameGuild = false; if (victimInfos != null) { //search for online members foreach (Player guildMember in getPlayersOnline()) { if (guildMember.GetGuild().Name == victimInfos.guildName) { victimGuildOnline = true; } } if (attacker.GetGuild().Name == victimInfos.guildName) { sameGuild = true; } } if (!sameGuild) { //victim offline if (!victimGuildOnline) { //offline protection active if (raidOfflineProtection && isInATimeRange()) { if (getTimestamp() - lastWarning > 5) { PrintToChat(GetMessage("AttackingBase"), attacker.DisplayName); lastWarning = getTimestamp(); } float dmgAmount = e.Damage.Amount; e.Damage.Amount = 0f; Damage damage = new Damage() { Amount = dmgAmount, }; EventManager.CallEvent((BaseEvent) new EntityDamageEvent(attacker.Entity, damage)); } } else { if (raidOnlineProtection && isInATimeRange()) { e.Damage.Amount = 0f; if (getTimestamp() - lastWarning > 5) { if (!killOrKick) { PrintToChat(GetMessage("raidOnlineKill"), attacker.DisplayName, weapon, Server.GetPlayerById(victimeOwnerId).DisplayName); } else { PrintToChat(GetMessage("raidOnlineKick"), attacker.DisplayName, weapon, Server.GetPlayerById(victimeOwnerId).DisplayName); } lastWarning = getTimestamp(); } if (!killOrKick) { attacker.GetHealth().Kill(); } else { Server.Kick(attacker, "RaidOn"); } } else { if (getTimestamp() - lastWarning > 5) { PrintToChat(GetMessage("BaseUnderAttack"), Server.GetPlayerById(victimeOwnerId).DisplayName); lastWarning = getTimestamp(); } } } } } } } }