Merge pull request #123 from DeKaN/game-attributes-refactoring
GameAttribute refactoring
This commit is contained in:
commit
c5220396ed
@ -47,8 +47,8 @@ public class InfoCommand : CommandGroup
|
||||
info.Add($"> Class: {playerInWorld.Value.Toon.Class.ToString()}");
|
||||
info.Add($"> Level: {playerInWorld.Value.Toon.Level}");
|
||||
info.Add(
|
||||
$"> Health: {playerInWorld.Value.Attributes[GameAttribute.Hitpoints_Cur]} / {playerInWorld.Value.Attributes[GameAttribute.Hitpoints_Max]}");
|
||||
info.Add($"> Damage: {playerInWorld.Value.Attributes[GameAttribute.Damage_Min, 0]}");
|
||||
$"> Health: {playerInWorld.Value.Attributes[GameAttributes.Hitpoints_Cur]} / {playerInWorld.Value.Attributes[GameAttributes.Hitpoints_Max]}");
|
||||
info.Add($"> Damage: {playerInWorld.Value.Attributes[GameAttributes.Damage_Min, 0]}");
|
||||
info.Add("");
|
||||
}
|
||||
|
||||
|
||||
@ -17,13 +17,13 @@ public class InvulnerableCommand : CommandGroup
|
||||
if (player.Attributes.FixedMap.Contains(FixedAttribute.Invulnerable))
|
||||
{
|
||||
player.Attributes.FixedMap.Remove(FixedAttribute.Invulnerable);
|
||||
player.Attributes[GameAttribute.Invulnerable] = false;
|
||||
player.Attributes[GameAttributes.Invulnerable] = false;
|
||||
player.Attributes.BroadcastChangedIfRevealed();
|
||||
return "You are no longer invulnerable.";
|
||||
}
|
||||
|
||||
player.Attributes.FixedMap.Add(FixedAttribute.Invulnerable,
|
||||
attributes => { attributes[GameAttribute.Invulnerable] = true; });
|
||||
attributes => { attributes[GameAttributes.Invulnerable] = true; });
|
||||
player.Attributes.BroadcastChangedIfRevealed();
|
||||
return "You are now invulnerable.";
|
||||
}
|
||||
|
||||
@ -28,13 +28,13 @@ public class LevelUpCommand : CommandGroup
|
||||
for (var i = 0; i < amount; i++)
|
||||
if (player.Level >= 70)
|
||||
{
|
||||
player.UpdateExp((int)player.Attributes[GameAttribute.Alt_Experience_Next_Lo]);
|
||||
player.UpdateExp((int)player.Attributes[GameAttributes.Alt_Experience_Next_Lo]);
|
||||
player.PlayEffect(Effect.ParagonLevelUp, null, false);
|
||||
player.World.PowerManager.RunPower(player, 252038);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.UpdateExp((int)player.Attributes[GameAttribute.Experience_Next_Lo]);
|
||||
player.UpdateExp((int)player.Attributes[GameAttributes.Experience_Next_Lo]);
|
||||
player.PlayEffect(Effect.LevelUp, null, false);
|
||||
player.World.PowerManager.RunPower(player, 85954);
|
||||
}
|
||||
|
||||
@ -24,10 +24,10 @@ public class PowerfulCommand : CommandGroup
|
||||
|
||||
player.Attributes.FixedMap.Add(FixedAttribute.Powerful, (attributes) =>
|
||||
{
|
||||
attributes[GameAttribute.Damage_Delta, 0] = float.MaxValue;
|
||||
attributes[GameAttribute.Damage_Min, 0] = float.MaxValue;
|
||||
attributes[GameAttribute.Damage_Weapon_Delta, 0] = float.MaxValue;
|
||||
attributes[GameAttribute.Damage_Weapon_Min, 0] = float.MaxValue;
|
||||
attributes[GameAttributes.Damage_Delta, 0] = float.MaxValue;
|
||||
attributes[GameAttributes.Damage_Min, 0] = float.MaxValue;
|
||||
attributes[GameAttributes.Damage_Weapon_Delta, 0] = float.MaxValue;
|
||||
attributes[GameAttributes.Damage_Weapon_Min, 0] = float.MaxValue;
|
||||
});
|
||||
|
||||
player.Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
@ -24,7 +24,7 @@ public class ResourcefulCommand : CommandGroup
|
||||
|
||||
player.Attributes.FixedMap.Add(FixedAttribute.Resourceful, (attributes) =>
|
||||
{
|
||||
attributes[GameAttribute.Resource_Cur, 1] = 100;
|
||||
attributes[GameAttributes.Resource_Cur, 1] = 100;
|
||||
});
|
||||
|
||||
player.Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
@ -39,10 +39,10 @@ public class SpeedCommand : CommandGroup
|
||||
|
||||
if (speedValue <= baseSpeed) // Base Run Speed [Necrosummon]
|
||||
{
|
||||
playerSpeed[GameAttribute.Running_Rate] = baseSpeed;
|
||||
playerSpeed[GameAttributes.Running_Rate] = baseSpeed;
|
||||
return $"Speed reset to Base Speed ({baseSpeed:0.000}).";
|
||||
}
|
||||
playerSpeed.FixedMap.Add(FixedAttribute.Speed, attr => attr[GameAttribute.Running_Rate] = speedValue);
|
||||
playerSpeed.FixedMap.Add(FixedAttribute.Speed, attr => attr[GameAttributes.Running_Rate] = speedValue);
|
||||
playerSpeed.BroadcastChangedIfRevealed();
|
||||
return $"Speed changed to {speedValue}";
|
||||
}
|
||||
|
||||
@ -165,7 +165,7 @@ namespace DiIiS_NA.GameServer.Core
|
||||
List<Item> baseItems = Items.Values.Where(i => i.GBHandle.GBID == GBid).ToList();
|
||||
int have = 0;
|
||||
foreach (var itm in baseItems)
|
||||
have += itm.Attributes[GameAttribute.ItemStackQuantityLo];
|
||||
have += itm.Attributes[GameAttributes.ItemStackQuantityLo];
|
||||
|
||||
Logger.MethodTrace($"gbid {GBid}, count {have}");
|
||||
|
||||
@ -177,7 +177,7 @@ namespace DiIiS_NA.GameServer.Core
|
||||
List<Item> baseItems = Items.Values.Where(i => i.GBHandle.GBID == GBid).ToList();
|
||||
int have = 0;
|
||||
foreach (var itm in baseItems)
|
||||
have += itm.Attributes[GameAttribute.ItemStackQuantityLo];
|
||||
have += itm.Attributes[GameAttributes.ItemStackQuantityLo];
|
||||
|
||||
return have;
|
||||
}
|
||||
@ -189,14 +189,14 @@ namespace DiIiS_NA.GameServer.Core
|
||||
List<Item> consumed = new List<Item>();
|
||||
foreach (var itm in baseItems)
|
||||
{
|
||||
if (itm.Attributes[GameAttribute.ItemStackQuantityLo] > estimate)
|
||||
if (itm.Attributes[GameAttributes.ItemStackQuantityLo] > estimate)
|
||||
{
|
||||
itm.UpdateStackCount(itm.Attributes[GameAttribute.ItemStackQuantityLo] - estimate);
|
||||
itm.UpdateStackCount(itm.Attributes[GameAttributes.ItemStackQuantityLo] - estimate);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
estimate -= itm.Attributes[GameAttribute.ItemStackQuantityLo];
|
||||
estimate -= itm.Attributes[GameAttributes.ItemStackQuantityLo];
|
||||
consumed.Add(itm);
|
||||
}
|
||||
}
|
||||
@ -261,9 +261,9 @@ namespace DiIiS_NA.GameServer.Core
|
||||
List<Item> baseItems = Items.Values.Where(i => i.GBHandle.GBID == item.GBHandle.GBID).ToList();
|
||||
foreach (Item baseItem in baseItems)
|
||||
{
|
||||
if (baseItem.Attributes[GameAttribute.ItemStackQuantityLo] + item.Attributes[GameAttribute.ItemStackQuantityLo] <= baseItem.ItemDefinition.MaxStackSize)
|
||||
if (baseItem.Attributes[GameAttributes.ItemStackQuantityLo] + item.Attributes[GameAttributes.ItemStackQuantityLo] <= baseItem.ItemDefinition.MaxStackSize)
|
||||
{
|
||||
baseItem.UpdateStackCount(baseItem.Attributes[GameAttribute.ItemStackQuantityLo] + item.Attributes[GameAttribute.ItemStackQuantityLo]);
|
||||
baseItem.UpdateStackCount(baseItem.Attributes[GameAttributes.ItemStackQuantityLo] + item.Attributes[GameAttributes.ItemStackQuantityLo]);
|
||||
baseItem.Attributes.SendChangedMessage((_owner as Player).InGameClient);
|
||||
|
||||
return;
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using DiIiS_NA.Core.Helpers.Math;
|
||||
using DiIiS_NA.Core.MPQ;
|
||||
using DiIiS_NA.Core.MPQ;
|
||||
using DiIiS_NA.GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem;
|
||||
@ -7,11 +6,8 @@ using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DiIiS_NA.Core.Extensions;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
@ -42,10 +38,10 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
|
||||
public override void Think(int tickCounter)
|
||||
{
|
||||
if (Body.Attributes[GameAttribute.Frozen] ||
|
||||
Body.Attributes[GameAttribute.Stunned] ||
|
||||
Body.Attributes[GameAttribute.Blind] ||
|
||||
Body.Attributes[GameAttribute.Webbed] ||
|
||||
if (Body.Attributes[GameAttributes.Frozen] ||
|
||||
Body.Attributes[GameAttributes.Stunned] ||
|
||||
Body.Attributes[GameAttributes.Blind] ||
|
||||
Body.Attributes[GameAttributes.Webbed] ||
|
||||
Body.Disable ||
|
||||
Body.World.BuffManager.GetFirstBuff<PowerSystem.Implementations.KnockbackBuff>(Body) != null)
|
||||
{
|
||||
|
||||
@ -3,9 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using DiIiS_NA.Core.Extensions;
|
||||
using DiIiS_NA.Core.Helpers.Math;
|
||||
using DiIiS_NA.Core.MPQ;
|
||||
using DiIiS_NA.GameServer.Core.Types.Math;
|
||||
using DiIiS_NA.GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions;
|
||||
@ -54,10 +52,10 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
if (Body.World.Game.Paused) return;
|
||||
|
||||
// check if in disabled state, if so cancel any action then do nothing
|
||||
if (Body.Attributes[GameAttribute.Frozen] ||
|
||||
Body.Attributes[GameAttribute.Stunned] ||
|
||||
Body.Attributes[GameAttribute.Blind] ||
|
||||
Body.Attributes[GameAttribute.Webbed] ||
|
||||
if (Body.Attributes[GameAttributes.Frozen] ||
|
||||
Body.Attributes[GameAttributes.Stunned] ||
|
||||
Body.Attributes[GameAttributes.Blind] ||
|
||||
Body.Attributes[GameAttributes.Webbed] ||
|
||||
Body.Disable ||
|
||||
Body.World.BuffManager.GetFirstBuff<KnockbackBuff>(Body) != null)
|
||||
{
|
||||
@ -71,7 +69,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
return;
|
||||
}
|
||||
|
||||
if (Body.Attributes[GameAttribute.Feared])
|
||||
if (Body.Attributes[GameAttributes.Feared])
|
||||
{
|
||||
if (!Feared || CurrentAction == null)
|
||||
{
|
||||
|
||||
@ -5,16 +5,11 @@ using DiIiS_NA.Core.Helpers.Math;
|
||||
using DiIiS_NA.Core.MPQ;
|
||||
using DiIiS_NA.GameServer.Core.Types.Math;
|
||||
using DiIiS_NA.GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement;
|
||||
using DiIiS_NA.GameServer.GSSystem.ItemsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base;
|
||||
@ -72,7 +67,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
WorldID = Body.World.GlobalID,
|
||||
},
|
||||
|
||||
Amount = item.Attributes[GameAttribute.ItemStackQuantityLo],
|
||||
Amount = item.Attributes[GameAttributes.ItemStackQuantityLo],
|
||||
Type = FloatingAmountMessage.FloatType.Gold,
|
||||
});
|
||||
|
||||
@ -101,7 +96,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
WorldID = Body.World.GlobalID,
|
||||
},
|
||||
|
||||
Amount = item.Attributes[GameAttribute.ItemStackQuantityLo],
|
||||
Amount = item.Attributes[GameAttributes.ItemStackQuantityLo],
|
||||
Type = FloatingAmountMessage.FloatType.BloodStone,
|
||||
});
|
||||
|
||||
|
||||
@ -11,7 +11,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
@ -65,10 +64,10 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
if (Body.World.Game.Paused) return;
|
||||
|
||||
// check if in disabled state, if so cancel any action then do nothing
|
||||
if (Body.Attributes[GameAttribute.Frozen] ||
|
||||
Body.Attributes[GameAttribute.Stunned] ||
|
||||
Body.Attributes[GameAttribute.Blind] ||
|
||||
Body.Attributes[GameAttribute.Webbed] ||
|
||||
if (Body.Attributes[GameAttributes.Frozen] ||
|
||||
Body.Attributes[GameAttributes.Stunned] ||
|
||||
Body.Attributes[GameAttributes.Blind] ||
|
||||
Body.Attributes[GameAttributes.Webbed] ||
|
||||
Body.Disable ||
|
||||
Body.World.BuffManager.GetFirstBuff<KnockbackBuff>(Body) != null)
|
||||
{
|
||||
@ -82,7 +81,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
return;
|
||||
}
|
||||
|
||||
if (Body.Attributes[GameAttribute.Feared])
|
||||
if (Body.Attributes[GameAttributes.Feared])
|
||||
{
|
||||
if (!Feared || CurrentAction == null)
|
||||
{
|
||||
@ -119,7 +118,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
.Cast<Actor>()
|
||||
.ToList();
|
||||
if (Body.World.Game.PvP)
|
||||
targets = (Body as Minion).Master.GetObjectsInRange<Player>(30f).Where(p => p.GlobalID != (Body as Minion).Master.GlobalID && p.Attributes[GameAttribute.TeamID] != (Body as Minion).Master.Attributes[GameAttribute.TeamID]).Cast<Actor>().ToList();
|
||||
targets = (Body as Minion).Master.GetObjectsInRange<Player>(30f).Where(p => p.GlobalID != (Body as Minion).Master.GlobalID && p.Attributes[GameAttributes.TeamID] != (Body as Minion).Master.Attributes[GameAttributes.TeamID]).Cast<Actor>().ToList();
|
||||
if (Body.World.IsPvP)
|
||||
targets = (Body as Minion).Master.GetObjectsInRange<Player>(30f).Where(p => p.GlobalID != (Body as Minion).Master.GlobalID).Cast<Actor>().ToList();
|
||||
|
||||
|
||||
@ -88,7 +88,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
if (Body.Hidden)
|
||||
return;
|
||||
|
||||
if (CurrentAction != null && PriorityTarget != null && PriorityTarget.Attributes[GameAttribute.Is_Helper] == true)
|
||||
if (CurrentAction != null && PriorityTarget != null && PriorityTarget.Attributes[GameAttributes.Is_Helper] == true)
|
||||
{
|
||||
PriorityTarget = null;
|
||||
CurrentAction.Cancel(tickCounter);
|
||||
@ -103,12 +103,12 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
if (!Body.Visible || Body.Dead) return;
|
||||
|
||||
if (Body.World.Game.Paused) return;
|
||||
if (Body.Attributes[GameAttribute.Disabled]) return;
|
||||
if (Body.Attributes[GameAttributes.Disabled]) return;
|
||||
|
||||
if (Body.Attributes[GameAttribute.Frozen] ||
|
||||
Body.Attributes[GameAttribute.Stunned] ||
|
||||
Body.Attributes[GameAttribute.Blind] ||
|
||||
Body.Attributes[GameAttribute.Webbed] ||
|
||||
if (Body.Attributes[GameAttributes.Frozen] ||
|
||||
Body.Attributes[GameAttributes.Stunned] ||
|
||||
Body.Attributes[GameAttributes.Blind] ||
|
||||
Body.Attributes[GameAttributes.Webbed] ||
|
||||
Body.Disable ||
|
||||
Body.World.BuffManager.GetFirstBuff<KnockbackBuff>(Body) != null ||
|
||||
Body.World.BuffManager.GetFirstBuff<SummonedBuff>(Body) != null)
|
||||
@ -123,7 +123,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
return;
|
||||
}
|
||||
|
||||
if (Body.Attributes[GameAttribute.Feared])
|
||||
if (Body.Attributes[GameAttributes.Feared])
|
||||
{
|
||||
if (!Feared || CurrentAction == null)
|
||||
{
|
||||
@ -161,15 +161,15 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
{
|
||||
Actor[] targets;
|
||||
|
||||
if (Body.Attributes[GameAttribute.Team_Override] == 1)
|
||||
if (Body.Attributes[GameAttributes.Team_Override] == 1)
|
||||
targets = Body.GetObjectsInRange<Monster>(60f)
|
||||
.Where(p => !p.Dead)
|
||||
.OrderBy((monster) => PowerMath.Distance2D(monster.Position, Body.Position))
|
||||
.ToArray();
|
||||
else
|
||||
targets = Body.GetActorsInRange(50f)
|
||||
.Where(p => ((p is Player) && !p.Dead && p.Attributes[GameAttribute.Loading] == false && p.Attributes[GameAttribute.Is_Helper] == false && p.World.BuffManager.GetFirstBuff<ActorGhostedBuff>(p) == null)
|
||||
|| ((p is Minion) && !p.Dead && p.Attributes[GameAttribute.Is_Helper] == false)
|
||||
.Where(p => ((p is Player) && !p.Dead && p.Attributes[GameAttributes.Loading] == false && p.Attributes[GameAttributes.Is_Helper] == false && p.World.BuffManager.GetFirstBuff<ActorGhostedBuff>(p) == null)
|
||||
|| ((p is Minion) && !p.Dead && p.Attributes[GameAttributes.Is_Helper] == false)
|
||||
|| (p is DesctructibleLootContainer && p.SNO.IsDoorOrBarricade())
|
||||
|| ((p is Hireling) && !p.Dead)
|
||||
)
|
||||
|
||||
@ -1,16 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using DiIiS_NA.Core.Extensions;
|
||||
using DiIiS_NA.Core.Helpers.Math;
|
||||
using DiIiS_NA.Core.MPQ;
|
||||
using DiIiS_NA.GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
@ -50,10 +46,10 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
|
||||
//if (this.Body is NPC) return;
|
||||
|
||||
// check if in disabled state, if so cancel any action then do nothing
|
||||
if (Body.Attributes[GameAttribute.Frozen] ||
|
||||
Body.Attributes[GameAttribute.Stunned] ||
|
||||
Body.Attributes[GameAttribute.Blind] ||
|
||||
Body.Attributes[GameAttribute.Webbed] ||
|
||||
if (Body.Attributes[GameAttributes.Frozen] ||
|
||||
Body.Attributes[GameAttributes.Stunned] ||
|
||||
Body.Attributes[GameAttributes.Blind] ||
|
||||
Body.Attributes[GameAttributes.Webbed] ||
|
||||
Body.Disable ||
|
||||
Body.World.BuffManager.GetFirstBuff<KnockbackBuff>(Body) != null)
|
||||
{
|
||||
|
||||
@ -249,7 +249,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
|
||||
if (ActorData.TagMap.ContainsKey(ActorKeys.TeamID))
|
||||
{
|
||||
Attributes[GameAttribute.TeamID] = ActorData.TagMap[ActorKeys.TeamID];
|
||||
Attributes[GameAttributes.TeamID] = ActorData.TagMap[ActorKeys.TeamID];
|
||||
//Logger.Debug("Actor {0} has TeamID {1}", this.ActorSNO.Name, this.Attributes[GameAttribute.TeamID]);
|
||||
}
|
||||
Spawned = false;
|
||||
@ -362,12 +362,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
if (world.IsPvP)
|
||||
{
|
||||
//this.GlobalIDOverride = World.NewActorPvPID;
|
||||
Attributes[GameAttribute.Team_Override] = 10;
|
||||
Attributes[GameAttributes.Team_Override] = 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
//this.GlobalIDOverride = 0;
|
||||
Attributes[GameAttribute.Team_Override] = -1;
|
||||
Attributes[GameAttributes.Team_Override] = -1;
|
||||
}
|
||||
|
||||
World?.Enter(this); // let him enter first.
|
||||
@ -476,8 +476,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
|
||||
plr.RevealActorsToPlayer();
|
||||
plr.ReRevealPlayersToPlayer();
|
||||
Attributes[GameAttribute.Looping_Animation_Start_Time] = -1;
|
||||
Attributes[GameAttribute.Looping_Animation_End_Time] = -1;
|
||||
Attributes[GameAttributes.Looping_Animation_Start_Time] = -1;
|
||||
Attributes[GameAttributes.Looping_Animation_End_Time] = -1;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
//Refresh Inventory
|
||||
plr.Inventory.RefreshInventoryToClient();
|
||||
@ -711,7 +711,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
public void NotifyConversation(int status)
|
||||
{
|
||||
//0 - turn off, 1 - yellow "!", 2 - yellow "?", 3 - "*", 4 - bubble, 5 - silver "!", 6 - none (spams errors)
|
||||
Attributes[GameAttribute.Conversation_Icon, 0] = status + 1;
|
||||
Attributes[GameAttributes.Conversation_Icon, 0] = status + 1;
|
||||
//this.Attributes[GameAttribute.MinimapIconOverride] = (status > 0) ? 120356 : -1;
|
||||
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
@ -719,7 +719,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
|
||||
public void AddPercentHP(int percentage, bool GuidingLight = false)
|
||||
{
|
||||
float quantity = percentage * Attributes[GameAttribute.Hitpoints_Max_Total] / 100;
|
||||
float quantity = percentage * Attributes[GameAttributes.Hitpoints_Max_Total] / 100;
|
||||
AddHP(quantity, GuidingLight);
|
||||
}
|
||||
|
||||
@ -727,19 +727,19 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
{
|
||||
if (quantity > 0)
|
||||
{
|
||||
if (Attributes[GameAttribute.Hitpoints_Cur] < Attributes[GameAttribute.Hitpoints_Max_Total])
|
||||
if (Attributes[GameAttributes.Hitpoints_Cur] < Attributes[GameAttributes.Hitpoints_Max_Total])
|
||||
{
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Math.Min(
|
||||
Attributes[GameAttribute.Hitpoints_Cur] + quantity,
|
||||
Attributes[GameAttribute.Hitpoints_Max_Total]);
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Math.Min(
|
||||
Attributes[GameAttributes.Hitpoints_Cur] + quantity,
|
||||
Attributes[GameAttributes.Hitpoints_Max_Total]);
|
||||
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Math.Max(
|
||||
Attributes[GameAttribute.Hitpoints_Cur] + quantity,
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Math.Max(
|
||||
Attributes[GameAttributes.Hitpoints_Cur] + quantity,
|
||||
0);
|
||||
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
@ -772,13 +772,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
|
||||
public void SetUsable(bool activated)
|
||||
{
|
||||
Attributes[GameAttribute.Team_Override] = activated ? -1 : 2;
|
||||
Attributes[GameAttribute.Untargetable] = !activated;
|
||||
Attributes[GameAttribute.NPC_Is_Operatable] = activated;
|
||||
Attributes[GameAttribute.Operatable] = activated;
|
||||
Attributes[GameAttribute.Operatable_Story_Gizmo] = activated;
|
||||
Attributes[GameAttribute.Disabled] = !activated;
|
||||
Attributes[GameAttribute.Immunity] = !activated;
|
||||
Attributes[GameAttributes.Team_Override] = activated ? -1 : 2;
|
||||
Attributes[GameAttributes.Untargetable] = !activated;
|
||||
Attributes[GameAttributes.NPC_Is_Operatable] = activated;
|
||||
Attributes[GameAttributes.Operatable] = activated;
|
||||
Attributes[GameAttributes.Operatable_Story_Gizmo] = activated;
|
||||
Attributes[GameAttributes.Disabled] = !activated;
|
||||
Attributes[GameAttributes.Immunity] = !activated;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
}
|
||||
|
||||
@ -906,7 +906,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
|
||||
if (this is Monster)
|
||||
{
|
||||
Attributes[GameAttribute.Hitpoints_Cur] += 0.001f;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] += 0.001f;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
}
|
||||
|
||||
|
||||
@ -1,22 +1,16 @@
|
||||
using DiIiS_NA.Core.Helpers.Hash;
|
||||
using DiIiS_NA.Core.Logging;
|
||||
using DiIiS_NA.Core.Logging;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Encounter;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Map;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Portal;
|
||||
//using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Portal;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Portal;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
{
|
||||
@ -46,8 +40,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
{
|
||||
Field2 = 0x9;//16;
|
||||
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttribute.Untargetable] = false;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
Attributes[GameAttributes.Untargetable] = false;
|
||||
var bossEncounter = ((ActorSNO.Target as DiIiS_NA.Core.MPQ.FileFormats.ActorData).TagMap[MarkerKeys.BossEncounter].Target as DiIiS_NA.Core.MPQ.FileFormats.BossEncounter);
|
||||
DestWorld = bossEncounter.Worlds[0];
|
||||
switch (DestWorld)
|
||||
@ -189,13 +183,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
if (actor == null)
|
||||
return false;
|
||||
|
||||
actor.Attributes[GameAttribute.Team_Override] = (status ? -1 : 2);
|
||||
actor.Attributes[GameAttribute.Untargetable] = !status;
|
||||
actor.Attributes[GameAttribute.NPC_Is_Operatable] = status;
|
||||
actor.Attributes[GameAttribute.Operatable] = status;
|
||||
actor.Attributes[GameAttribute.Operatable_Story_Gizmo] = status;
|
||||
actor.Attributes[GameAttribute.Disabled] = !status;
|
||||
actor.Attributes[GameAttribute.Immunity] = !status;
|
||||
actor.Attributes[GameAttributes.Team_Override] = (status ? -1 : 2);
|
||||
actor.Attributes[GameAttributes.Untargetable] = !status;
|
||||
actor.Attributes[GameAttributes.NPC_Is_Operatable] = status;
|
||||
actor.Attributes[GameAttributes.Operatable] = status;
|
||||
actor.Attributes[GameAttributes.Operatable_Story_Gizmo] = status;
|
||||
actor.Attributes[GameAttributes.Disabled] = !status;
|
||||
actor.Attributes[GameAttributes.Immunity] = !status;
|
||||
actor.Attributes.BroadcastChangedIfRevealed();
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -20,8 +20,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
Field2 = 0x9;//16;
|
||||
Field7 = 0x00000001;
|
||||
//this.CollFlags = 1; // this.CollFlags = 0; a hack for passing through blockers /fasbat
|
||||
if (Attributes[GameAttribute.TeamID] == 10) Attributes[GameAttribute.TeamID] = 1; //fix for bugged gizmos
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = 1;
|
||||
if (Attributes[GameAttributes.TeamID] == 10) Attributes[GameAttributes.TeamID] = 1; //fix for bugged gizmos
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = 1;
|
||||
//this.Attributes[GameAttribute.MinimapActive] = true;
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
|
||||
public override void OnTargeted(Player player, TargetMessage message)
|
||||
{
|
||||
if (Attributes[GameAttribute.Disabled] == true) return;
|
||||
if (Attributes[GameAttributes.Disabled] == true) return;
|
||||
Logger.Trace("(OnTargeted) Gizmo has been activated! Id: {0}, Type: {1}", SNO, ActorData.TagMap[ActorKeys.GizmoGroup]);
|
||||
|
||||
//handling quest triggers
|
||||
|
||||
@ -49,8 +49,8 @@ namespace DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Artisans
|
||||
public ArtisanShortcut(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.MinimapActive] = false;
|
||||
Attributes[GameAttribute.Conversation_Icon, 0] = 0;
|
||||
Attributes[GameAttributes.MinimapActive] = false;
|
||||
Attributes[GameAttributes.Conversation_Icon, 0] = 0;
|
||||
}
|
||||
|
||||
public override void OnTargeted(Player player, TargetMessage message)
|
||||
|
||||
@ -19,7 +19,7 @@ namespace DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Artisans
|
||||
public void OnAddSocket(Player player, Item item)
|
||||
{
|
||||
// TODO: Animate Jeweler? Who knows. /fasbat
|
||||
item.Attributes[GameAttribute.Sockets] += 1;
|
||||
item.Attributes[GameAttributes.Sockets] += 1;
|
||||
// Why this not work? :/
|
||||
item.Attributes.SendChangedMessage(player.InGameClient);
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ namespace DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Artisans
|
||||
public Nephalem(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.In_Tiered_Loot_Run_Level] = 0;
|
||||
Attributes[GameAttributes.In_Tiered_Loot_Run_Level] = 0;
|
||||
//this.Attributes[GameAttribute.Conversation_Icon] = 2;
|
||||
//this.ForceConversationSNO =
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
class Banner : Gizmo
|
||||
{
|
||||
private static readonly Dictionary<int, ActorSno[]> bannerActors = new Dictionary<int, ActorSno[]>()
|
||||
private static readonly Dictionary<int, ActorSno[]> bannerActors = new()
|
||||
{
|
||||
[0] = new ActorSno[] {
|
||||
ActorSno._banner_player_1,
|
||||
@ -72,7 +72,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
}
|
||||
|
||||
//if banner has been disabled for events like active greater active swarm /advocaite
|
||||
if(!player.Attributes[GameAttribute.Banner_Usable])
|
||||
if(!player.Attributes[GameAttributes.Banner_Usable])
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2,11 +2,6 @@
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DiIiS_NA.Core.Logging;
|
||||
using DiIiS_NA.Core.MPQ.FileFormats;
|
||||
|
||||
@ -74,15 +69,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
if (sno == ActorSno._zoltunkulle && world.SNO == WorldSno.a2dun_zolt_lobby) SetVisible(false);
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
//this.Attributes[GameAttribute.Immune_To_Charm] = true;
|
||||
Attributes[GameAttribute.using_Bossbar] = true;
|
||||
Attributes[GameAttribute.InBossEncounter] = true;
|
||||
Attributes[GameAttribute.Hitpoints_Max] *= GameServerConfig.Instance.BossHealthMultiplier;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] *= GameServerConfig.Instance.BossDamageMultiplier;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] *= GameServerConfig.Instance.BossDamageMultiplier;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.TeamID] = 10;
|
||||
Attributes[GameAttributes.using_Bossbar] = true;
|
||||
Attributes[GameAttributes.InBossEncounter] = true;
|
||||
Attributes[GameAttributes.Hitpoints_Max] *= GameServerConfig.Instance.BossHealthMultiplier;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] *= GameServerConfig.Instance.BossDamageMultiplier;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] *= GameServerConfig.Instance.BossDamageMultiplier;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.TeamID] = 10;
|
||||
|
||||
WalkSpeed *= 0.5f;
|
||||
if (Brain is MonsterBrain monsterBrain)
|
||||
|
||||
@ -13,8 +13,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public CR_Glass(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
}
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
@ -35,10 +34,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
Type = FloatingNumberMessage.FloatType.White
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Math.Max(Attributes[GameAttribute.Hitpoints_Cur] - damage, 0);
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Math.Max(Attributes[GameAttributes.Hitpoints_Cur] - damage, 0);
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
if (Attributes[GameAttribute.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable())
|
||||
if (Attributes[GameAttributes.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable())
|
||||
Die(source);
|
||||
}
|
||||
|
||||
@ -68,11 +67,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Deleted_On_Server] = true;
|
||||
Attributes[GameAttribute.Could_Have_Ragdolled] = true;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes[GameAttributes.Deleted_On_Server] = true;
|
||||
Attributes[GameAttributes.Could_Have_Ragdolled] = true;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
Task.Delay(1500).ContinueWith(delegate
|
||||
|
||||
@ -7,7 +7,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
@ -34,10 +33,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
Type = FloatingNumberMessage.FloatType.White
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Math.Max(Attributes[GameAttribute.Hitpoints_Cur] - damage, 0);
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Math.Max(Attributes[GameAttributes.Hitpoints_Cur] - damage, 0);
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
if (Attributes[GameAttribute.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable())
|
||||
if (Attributes[GameAttributes.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable())
|
||||
Die(source);
|
||||
}
|
||||
|
||||
@ -67,11 +66,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Deleted_On_Server] = true;
|
||||
Attributes[GameAttribute.Could_Have_Ragdolled] = true;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes[GameAttributes.Deleted_On_Server] = true;
|
||||
Attributes[GameAttributes.Could_Have_Ragdolled] = true;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
Task.Delay(1400).ContinueWith(delegate
|
||||
|
||||
@ -6,10 +6,6 @@ using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
@ -20,8 +16,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public ChallengeObelisk(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
}
|
||||
|
||||
@ -30,13 +26,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
bool activated = false;
|
||||
|
||||
PlayAnimation(5, (AnimationSno)AnimationSet.TagMapAnimDefault[AnimationSetKeys.Opening]);
|
||||
Attributes[GameAttribute.Team_Override] = (activated ? -1 : 2);
|
||||
Attributes[GameAttribute.Untargetable] = !activated;
|
||||
Attributes[GameAttribute.NPC_Is_Operatable] = activated;
|
||||
Attributes[GameAttribute.Operatable] = activated;
|
||||
Attributes[GameAttribute.Operatable_Story_Gizmo] = activated;
|
||||
Attributes[GameAttribute.Disabled] = !activated;
|
||||
Attributes[GameAttribute.Immunity] = !activated;
|
||||
Attributes[GameAttributes.Team_Override] = (activated ? -1 : 2);
|
||||
Attributes[GameAttributes.Untargetable] = !activated;
|
||||
Attributes[GameAttributes.NPC_Is_Operatable] = activated;
|
||||
Attributes[GameAttributes.Operatable] = activated;
|
||||
Attributes[GameAttributes.Operatable_Story_Gizmo] = activated;
|
||||
Attributes[GameAttributes.Disabled] = !activated;
|
||||
Attributes[GameAttributes.Immunity] = !activated;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
CollFlags = 0;
|
||||
|
||||
@ -61,7 +57,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
if (!base.Reveal(player))
|
||||
return false;
|
||||
if (!Attributes[GameAttribute.Operatable])
|
||||
if (!Attributes[GameAttributes.Operatable])
|
||||
{
|
||||
var actor = World.GetActorBySNO(ActorSno._x1_openworld_challenge_rifts_portal);
|
||||
actor.SetVisible(false);
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
@ -17,15 +16,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public Champion(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Hitpoints_Max] *= 4.0f;
|
||||
Attributes[GameAttribute.Immune_To_Charm] = true;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 2.5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] *= 2.5f;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Hitpoints_Max] *= 4.0f;
|
||||
Attributes[GameAttributes.Immune_To_Charm] = true;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 2.5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] *= 2.5f;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
//MonsterAffixGenerator.Generate(this, this.World.Game.Difficulty + 1);
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f;
|
||||
NamePrefix = MonsterAffixGenerator.GeneratePrefixName();
|
||||
NameSuffix = MonsterAffixGenerator.GenerateSuffixName();
|
||||
|
||||
@ -30,7 +30,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
});
|
||||
|
||||
player.CheckPointPosition = Position;
|
||||
player.Attributes[GameAttribute.Corpse_Resurrection_Charges] = 3; // Reset corpse resurrection charges
|
||||
player.Attributes[GameAttributes.Corpse_Resurrection_Charges] = 3; // Reset corpse resurrection charges
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,11 +1,8 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DiIiS_NA.Core.Extensions;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
@ -16,7 +13,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public CursedChest(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
}
|
||||
|
||||
private bool _collapsed = false;
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using DiIiS_NA.Core.Extensions;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
@ -20,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public CursedShrine(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
}
|
||||
|
||||
private bool _collapsed = false;
|
||||
@ -93,9 +92,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
}
|
||||
break;
|
||||
}
|
||||
Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true;
|
||||
Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true;
|
||||
//this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID);
|
||||
Attributes[GameAttribute.Gizmo_State] = 1;
|
||||
Attributes[GameAttributes.Gizmo_State] = 1;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
var rewardChests = GetActorsInRange<LootContainer>(20f).Where(c => c.rewardChestAvailable == false).ToList();
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using DiIiS_NA.Core.Helpers.Math;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
@ -47,12 +46,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
Type = FloatingNumberMessage.FloatType.White
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Math.Max(Attributes[GameAttribute.Hitpoints_Cur] - damage, 0);
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Math.Max(Attributes[GameAttributes.Hitpoints_Cur] - damage, 0);
|
||||
//Attributes[GameAttribute.Last_Damage_ACD] = unchecked((int)source.DynamicID);
|
||||
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
if (Attributes[GameAttribute.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable())
|
||||
if (Attributes[GameAttributes.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable())
|
||||
{
|
||||
Die(source);
|
||||
}
|
||||
@ -76,7 +75,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
World.SpawnRandomGem(this, plr);
|
||||
if (seed < 0.10f)
|
||||
World.SpawnRandomPotion(this, plr);
|
||||
if (seed < (rate * (1f + plr.Attributes[GameAttribute.Magic_Find])))
|
||||
if (seed < (rate * (1f + plr.Attributes[GameAttributes.Magic_Find])))
|
||||
{
|
||||
var lootQuality = World.Game.IsHardcore ? LootManager.GetSeasonalLootQuality((int)Quality, World.Game.Difficulty) : LootManager.GetLootQuality((int)Quality, World.Game.Difficulty);
|
||||
World.SpawnRandomEquip(plr, plr, lootQuality);
|
||||
@ -113,8 +112,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Deleted_On_Server] = true;
|
||||
Attributes[GameAttribute.Could_Have_Ragdolled] = true;
|
||||
Attributes[GameAttributes.Deleted_On_Server] = true;
|
||||
Attributes[GameAttributes.Could_Have_Ragdolled] = true;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
//handling quest triggers
|
||||
|
||||
@ -7,10 +7,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
@ -107,9 +103,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
AnimationSNO = AnimationSetKeys.Open.ID
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true;
|
||||
Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true;
|
||||
//this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID);
|
||||
Attributes[GameAttribute.Gizmo_State] = 1;
|
||||
Attributes[GameAttributes.Gizmo_State] = 1;
|
||||
CollFlags = 0;
|
||||
isOpened = true;
|
||||
|
||||
@ -130,11 +126,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
|
||||
public override void OnTargeted(Player player, TargetMessage message)
|
||||
{
|
||||
if (Attributes[GameAttribute.Disabled]) return;
|
||||
if (Attributes[GameAttributes.Disabled]) return;
|
||||
Open();
|
||||
|
||||
base.OnTargeted(player, message);
|
||||
Attributes[GameAttribute.Disabled] = true;
|
||||
Attributes[GameAttributes.Disabled] = true;
|
||||
}
|
||||
|
||||
private bool WaitToSpawn(TickerSystem.TickTimer timer)
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
@ -25,7 +24,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
|
||||
//this.Field2 = 0x9;//16;
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
//this.Attributes[GameAttribute.MinimapIconOverride] = 218394;
|
||||
if (World.SNO.IsDungeon())
|
||||
{
|
||||
|
||||
@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -18,7 +13,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public EquipmentManager(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
}
|
||||
|
||||
public override void OnTargeted(Player player, TargetMessage message)
|
||||
|
||||
@ -23,7 +23,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
CollFlags = 0;
|
||||
WalkSpeed = 0;
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,12 +1,9 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc;
|
||||
using System;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -23,13 +20,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
// Override minimap icon in markerset tags
|
||||
WalkSpeed = 0;
|
||||
Brain = new MonsterBrain(this);
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
//this.Attributes[GameAttribute.MinimapIconOverride] = 123152;
|
||||
Attributes[GameAttribute.Hitpoints_Max] *= 3f;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Hitpoints_Max] *= 3f;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
//this.Attributes[GameAttribute.Immune_To_Charm] = true;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 0f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 0f;
|
||||
//(this.Brain as MonsterBrain).AddPresetPower(54055); //TreasureGoblinPause
|
||||
(Brain as MonsterBrain).AddPresetPower(105371); //TreasureGoblin_Escape
|
||||
}
|
||||
|
||||
@ -17,10 +17,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
this.playerIndex = playerIndex;
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttribute.Headstone_Player_ANN] = 1;
|
||||
Attributes[GameAttribute.TeamID] = 1;
|
||||
if (World.Game.PvP) Attributes[GameAttribute.Disabled] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
Attributes[GameAttributes.Headstone_Player_ANN] = 1;
|
||||
Attributes[GameAttributes.TeamID] = 1;
|
||||
if (World.Game.PvP) Attributes[GameAttributes.Disabled] = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
@ -18,8 +17,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public Healer(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.TeamID] = 0;
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.TeamID] = 0;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
}
|
||||
|
||||
public override void OnTargeted(PlayerSystem.Player player, TargetMessage message)
|
||||
|
||||
@ -3,11 +3,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -16,8 +11,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public Healthwell(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttribute.Gizmo_State] = 0;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
Attributes[GameAttributes.Gizmo_State] = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -25,9 +20,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
//Logger.Warn("Healthwell has no function, Powers not implemented");
|
||||
|
||||
Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true;
|
||||
Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true;
|
||||
//this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID);
|
||||
Attributes[GameAttribute.Gizmo_State] = 1;
|
||||
Attributes[GameAttributes.Gizmo_State] = 1;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
player.AddPercentageHP(50);
|
||||
player.AddAchievementCounter(74987243307169, 1);
|
||||
|
||||
@ -5,11 +5,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -24,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public HearthPortal(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
SetVisible(false);
|
||||
}
|
||||
|
||||
|
||||
@ -5,11 +5,7 @@ using DiIiS_NA.GameServer.GSSystem.ItemsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -52,7 +48,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
for (int i = 0; i < 9; i++)
|
||||
{
|
||||
var itm = ItemGenerator.GenerateRandomEquip(this, level, 6, 7);
|
||||
itm.Attributes[GameAttribute.Item_Cost_Percent_Bonus] = 3f;
|
||||
itm.Attributes[GameAttributes.Item_Cost_Percent_Bonus] = 3f;
|
||||
list.Add(itm);
|
||||
}
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
proxySNO = ActorSno._hireling_enchantress_proxy;
|
||||
skillKit = 484938;
|
||||
hirelingGBID = StringHashHelper.HashItemName("Enchantress");
|
||||
Attributes[GameAttribute.Hireling_Class] = 3;
|
||||
Attributes[GameAttributes.Hireling_Class] = 3;
|
||||
}
|
||||
|
||||
public override Hireling CreateHireling(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
@ -35,8 +35,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 102057:
|
||||
case 101969:
|
||||
player.HirelingInfo[3].Skill1SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 102057 ? 101969 : 102057)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 102057 ? 101969 : 102057)] = 0;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
dbhireling.Skill1SNOId = SkillSNOId;
|
||||
@ -45,8 +45,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 102133:
|
||||
case 101461:
|
||||
player.HirelingInfo[3].Skill2SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 102133 ? 101461 : 102133)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 102133 ? 101461 : 102133)] = 0;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
dbhireling.Skill2SNOId = SkillSNOId;
|
||||
@ -55,8 +55,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 101990:
|
||||
case 220872:
|
||||
player.HirelingInfo[3].Skill3SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 101990 ? 220872 : 101990)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 101990 ? 220872 : 101990)] = 0;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
dbhireling.Skill3SNOId = SkillSNOId;
|
||||
@ -65,8 +65,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 101425:
|
||||
case 201524:
|
||||
player.HirelingInfo[3].Skill4SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 101425 ? 201524 : 101425)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 101425 ? 201524 : 101425)] = 0;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
dbhireling.Skill4SNOId = SkillSNOId;
|
||||
@ -91,14 +91,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
player.HirelingInfo[3].Skill3SNOId = -1;
|
||||
player.HirelingInfo[3].Skill4SNOId = -1;
|
||||
|
||||
Attributes[GameAttribute.Skill, 102057] = 0;
|
||||
Attributes[GameAttribute.Skill, 101969] = 0;
|
||||
Attributes[GameAttribute.Skill, 102133] = 0;
|
||||
Attributes[GameAttribute.Skill, 101461] = 0;
|
||||
Attributes[GameAttribute.Skill, 101990] = 0;
|
||||
Attributes[GameAttribute.Skill, 220872] = 0;
|
||||
Attributes[GameAttribute.Skill, 101425] = 0;
|
||||
Attributes[GameAttribute.Skill, 201524] = 0;
|
||||
Attributes[GameAttributes.Skill, 102057] = 0;
|
||||
Attributes[GameAttributes.Skill, 101969] = 0;
|
||||
Attributes[GameAttributes.Skill, 102133] = 0;
|
||||
Attributes[GameAttributes.Skill, 101461] = 0;
|
||||
Attributes[GameAttributes.Skill, 101990] = 0;
|
||||
Attributes[GameAttributes.Skill, 220872] = 0;
|
||||
Attributes[GameAttributes.Skill, 101425] = 0;
|
||||
Attributes[GameAttributes.Skill, 201524] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
}
|
||||
|
||||
|
||||
@ -4,11 +4,8 @@ using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Pet;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.ObjectsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem;
|
||||
using DiIiS_NA.Core.MPQ.FileFormats;
|
||||
using DiIiS_NA.GameServer.GSSystem.ActorSystem.Interactions;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Inventory;
|
||||
@ -43,25 +40,25 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
public Hireling(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
Interactions.Add(new HireInteraction());
|
||||
Interactions.Add(new InventoryInteraction());
|
||||
if (skillKit != -1)
|
||||
Attributes[GameAttribute.SkillKit] = skillKit;
|
||||
Attributes[GameAttributes.SkillKit] = skillKit;
|
||||
}
|
||||
|
||||
public void SetUpAttributes(Player player)
|
||||
{
|
||||
owner = player;
|
||||
|
||||
var info = player.HirelingInfo[Attributes[GameAttribute.Hireling_Class]];
|
||||
var info = player.HirelingInfo[Attributes[GameAttributes.Hireling_Class]];
|
||||
//*
|
||||
// TODO: fix this hardcoded crap
|
||||
if (!IsProxy)
|
||||
Attributes[GameAttribute.Buff_Visual_Effect, 0x000FFFFF] = true;
|
||||
Attributes[GameAttributes.Buff_Visual_Effect, 0x000FFFFF] = true;
|
||||
|
||||
Attributes[GameAttribute.Level] = player.Level;
|
||||
Attributes[GameAttribute.Experience_Next_Lo] = 0;
|
||||
Attributes[GameAttributes.Level] = player.Level;
|
||||
Attributes[GameAttributes.Experience_Next_Lo] = 0;
|
||||
|
||||
if (!IsHireling && !IsProxy) // original doesn't need more attribs
|
||||
return;
|
||||
@ -69,70 +66,70 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
if (info.Skill1SNOId != -1)
|
||||
{
|
||||
//scripted //this.Attributes[GameAttribute.Skill_Total, info.Skill1SNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, info.Skill1SNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, info.Skill1SNOId] = 1;
|
||||
}
|
||||
|
||||
if (info.Skill2SNOId != -1)
|
||||
{
|
||||
//scripted //this.Attributes[GameAttribute.Skill_Total, info.Skill2SNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, info.Skill2SNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, info.Skill2SNOId] = 1;
|
||||
}
|
||||
|
||||
if (info.Skill3SNOId != -1)
|
||||
{
|
||||
//scripted //this.Attributes[GameAttribute.Skill_Total, info.Skill3SNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, info.Skill3SNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, info.Skill3SNOId] = 1;
|
||||
}
|
||||
|
||||
if (info.Skill4SNOId != -1)
|
||||
{
|
||||
//scripted //this.Attributes[GameAttribute.Skill_Total, info.Skill4SNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, info.Skill4SNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, info.Skill4SNOId] = 1;
|
||||
}
|
||||
|
||||
/**/
|
||||
_lastResourceUpdateTick = 0;
|
||||
Attributes[GameAttribute.SkillKit] = skillKit;
|
||||
Attributes[GameAttributes.SkillKit] = skillKit;
|
||||
WalkSpeed = 0.45f;
|
||||
|
||||
#region hardcoded attribs :/
|
||||
//*
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1f;
|
||||
Attributes[GameAttribute.Attacks_Per_Second_Item] = 1.199219f;
|
||||
Attributes[GameAttribute.Casting_Speed] = 1;
|
||||
Attributes[GameAttribute.Damage_Delta, 0] = 1f;
|
||||
Attributes[GameAttribute.Damage_Min, 0] = 1f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 2f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 6f;
|
||||
Attributes[GameAttribute.General_Cooldown] = 0;
|
||||
Attributes[GameAttribute.Hit_Chance] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Factor_Vitality] = 10f + Math.Max(Attributes[GameAttribute.Level] - 35, 0);
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 276f;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = 1f;
|
||||
Attributes[GameAttribute.Level_Cap] = 70;
|
||||
Attributes[GameAttribute.Movement_Scalar] = 1;
|
||||
Attributes[GameAttribute.Resource_Max, 0] = 1.0f;
|
||||
Attributes[GameAttribute.Resource_Cur, 0] = 1.0f;
|
||||
Attributes[GameAttribute.Resource_Type_Primary] = 0;
|
||||
Attributes[GameAttribute.Running_Rate] = 0.3598633f;
|
||||
Attributes[GameAttribute.Sprinting_Rate] = 0.3598633f;
|
||||
Attributes[GameAttribute.Strafing_Rate] = 0.1799316f;
|
||||
Attributes[GameAttribute.Walking_Rate] = 0.3598633f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second_Item] = 1.199219f;
|
||||
Attributes[GameAttributes.Casting_Speed] = 1;
|
||||
Attributes[GameAttributes.Damage_Delta, 0] = 1f;
|
||||
Attributes[GameAttributes.Damage_Min, 0] = 1f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 2f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 6f;
|
||||
Attributes[GameAttributes.General_Cooldown] = 0;
|
||||
Attributes[GameAttributes.Hit_Chance] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Factor_Vitality] = 10f + Math.Max(Attributes[GameAttributes.Level] - 35, 0);
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 276f;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = 1f;
|
||||
Attributes[GameAttributes.Level_Cap] = 70;
|
||||
Attributes[GameAttributes.Movement_Scalar] = 1;
|
||||
Attributes[GameAttributes.Resource_Max, 0] = 1.0f;
|
||||
Attributes[GameAttributes.Resource_Cur, 0] = 1.0f;
|
||||
Attributes[GameAttributes.Resource_Type_Primary] = 0;
|
||||
Attributes[GameAttributes.Running_Rate] = 0.3598633f;
|
||||
Attributes[GameAttributes.Sprinting_Rate] = 0.3598633f;
|
||||
Attributes[GameAttributes.Strafing_Rate] = 0.1799316f;
|
||||
Attributes[GameAttributes.Walking_Rate] = 0.3598633f;
|
||||
|
||||
if (IsProxy)
|
||||
return;
|
||||
|
||||
Attributes[GameAttribute.Callout_Cooldown, 0x000FFFFF] = 0x00000797;
|
||||
Attributes[GameAttribute.Buff_Visual_Effect, 0x000FFFFF] = true;
|
||||
Attributes[GameAttribute.Buff_Icon_Count0, 0x000075C1] = 1;
|
||||
Attributes[GameAttribute.Buff_Exclusive_Type_Active, 0x000075C1] = true;
|
||||
Attributes[GameAttribute.Conversation_Icon, 0] = 1;
|
||||
Attributes[GameAttribute.Buff_Exclusive_Type_Active, 0x20c51] = true;
|
||||
Attributes[GameAttribute.Buff_Icon_End_Tick0, 0x00020C51] = 0x00000A75;
|
||||
Attributes[GameAttribute.Buff_Icon_Start_Tick0, 0x00020C51] = 0x00000375;
|
||||
Attributes[GameAttribute.Buff_Icon_Count0, 0x00020C51] = 3;
|
||||
Attributes[GameAttribute.Callout_Cooldown, 0x1618a] = 743;
|
||||
Attributes[GameAttribute.Callout_Cooldown, 0x01CAB6] = 743;
|
||||
Attributes[GameAttributes.Callout_Cooldown, 0x000FFFFF] = 0x00000797;
|
||||
Attributes[GameAttributes.Buff_Visual_Effect, 0x000FFFFF] = true;
|
||||
Attributes[GameAttributes.Buff_Icon_Count0, 0x000075C1] = 1;
|
||||
Attributes[GameAttributes.Buff_Exclusive_Type_Active, 0x000075C1] = true;
|
||||
Attributes[GameAttributes.Conversation_Icon, 0] = 1;
|
||||
Attributes[GameAttributes.Buff_Exclusive_Type_Active, 0x20c51] = true;
|
||||
Attributes[GameAttributes.Buff_Icon_End_Tick0, 0x00020C51] = 0x00000A75;
|
||||
Attributes[GameAttributes.Buff_Icon_Start_Tick0, 0x00020C51] = 0x00000375;
|
||||
Attributes[GameAttributes.Buff_Icon_Count0, 0x00020C51] = 3;
|
||||
Attributes[GameAttributes.Callout_Cooldown, 0x1618a] = 743;
|
||||
Attributes[GameAttributes.Callout_Cooldown, 0x01CAB6] = 743;
|
||||
//*/
|
||||
#endregion
|
||||
|
||||
@ -150,59 +147,59 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
//*
|
||||
try
|
||||
{
|
||||
Attributes[GameAttribute.Vitality] = 5f + (Attributes[GameAttribute.Level] * 2) + (GetItemBonus(GameAttribute.Vitality_Item));// * 2.5f);
|
||||
Attributes[GameAttribute.Strength] = 5f + (Attributes[GameAttribute.Level] * (this is Templar ? 3 : 1)) + (GetItemBonus(GameAttribute.Strength_Item));// * 2.5f);
|
||||
Attributes[GameAttribute.Dexterity] = 5f + (Attributes[GameAttribute.Level] * (this is Scoundrel ? 3 : 1)) + (GetItemBonus(GameAttribute.Dexterity_Item));// * 2.5f);
|
||||
Attributes[GameAttribute.Intelligence] = 5f + (Attributes[GameAttribute.Level] * (this is Enchantress ? 3 : 1)) + (GetItemBonus(GameAttribute.Intelligence_Item));// * 2.5f);
|
||||
Attributes[GameAttributes.Vitality] = 5f + (Attributes[GameAttributes.Level] * 2) + (GetItemBonus(GameAttributes.Vitality_Item));// * 2.5f);
|
||||
Attributes[GameAttributes.Strength] = 5f + (Attributes[GameAttributes.Level] * (this is Templar ? 3 : 1)) + (GetItemBonus(GameAttributes.Strength_Item));// * 2.5f);
|
||||
Attributes[GameAttributes.Dexterity] = 5f + (Attributes[GameAttributes.Level] * (this is Scoundrel ? 3 : 1)) + (GetItemBonus(GameAttributes.Dexterity_Item));// * 2.5f);
|
||||
Attributes[GameAttributes.Intelligence] = 5f + (Attributes[GameAttributes.Level] * (this is Enchantress ? 3 : 1)) + (GetItemBonus(GameAttributes.Intelligence_Item));// * 2.5f);
|
||||
|
||||
Attributes[GameAttribute.Attacks_Per_Second_Item] = GetItemBonus(GameAttribute.Attacks_Per_Second_Item);
|
||||
Attributes[GameAttributes.Attacks_Per_Second_Item] = GetItemBonus(GameAttributes.Attacks_Per_Second_Item);
|
||||
//*
|
||||
Attributes[GameAttribute.Crit_Percent_Bonus_Capped] = GetItemBonus(GameAttribute.Crit_Percent_Bonus_Capped);
|
||||
Attributes[GameAttribute.Weapon_Crit_Chance] = GetItemBonus(GameAttribute.Weapon_Crit_Chance);
|
||||
Attributes[GameAttribute.Crit_Damage_Percent] = 0.5f + GetItemBonus(GameAttribute.Crit_Damage_Percent);
|
||||
Attributes[GameAttribute.Crit_Percent_Bonus_Uncapped] = GetItemBonus(GameAttribute.Crit_Percent_Bonus_Uncapped);
|
||||
Attributes[GameAttributes.Crit_Percent_Bonus_Capped] = GetItemBonus(GameAttributes.Crit_Percent_Bonus_Capped);
|
||||
Attributes[GameAttributes.Weapon_Crit_Chance] = GetItemBonus(GameAttributes.Weapon_Crit_Chance);
|
||||
Attributes[GameAttributes.Crit_Damage_Percent] = 0.5f + GetItemBonus(GameAttributes.Crit_Damage_Percent);
|
||||
Attributes[GameAttributes.Crit_Percent_Bonus_Uncapped] = GetItemBonus(GameAttributes.Crit_Percent_Bonus_Uncapped);
|
||||
|
||||
Attributes[GameAttribute.Armor_Item] = GetItemBonus(GameAttribute.Armor_Item);
|
||||
Attributes[GameAttributes.Armor_Item] = GetItemBonus(GameAttributes.Armor_Item);
|
||||
//*
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, i] = Math.Max(GetItemBonus(GameAttribute.Damage_Weapon_Min, i), 2f) + GetItemBonus(GameAttribute.Damage_Min, i);
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, i] = Math.Max(GetItemBonus(GameAttribute.Damage_Weapon_Delta_Total, i), 2f) + GetItemBonus(GameAttribute.Damage_Delta, i);
|
||||
Attributes[GameAttribute.Damage_Weapon_Bonus_Min, i] = GetItemBonus(GameAttribute.Damage_Weapon_Bonus_Min, i);
|
||||
Attributes[GameAttribute.Damage_Weapon_Bonus_Delta, i] = GetItemBonus(GameAttribute.Damage_Weapon_Bonus_Delta, i);
|
||||
Attributes[GameAttribute.Resistance, i] = GetItemBonus(GameAttribute.Resistance, i);
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, i] = Math.Max(GetItemBonus(GameAttributes.Damage_Weapon_Min, i), 2f) + GetItemBonus(GameAttributes.Damage_Min, i);
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, i] = Math.Max(GetItemBonus(GameAttributes.Damage_Weapon_Delta_Total, i), 2f) + GetItemBonus(GameAttributes.Damage_Delta, i);
|
||||
Attributes[GameAttributes.Damage_Weapon_Bonus_Min, i] = GetItemBonus(GameAttributes.Damage_Weapon_Bonus_Min, i);
|
||||
Attributes[GameAttributes.Damage_Weapon_Bonus_Delta, i] = GetItemBonus(GameAttributes.Damage_Weapon_Bonus_Delta, i);
|
||||
Attributes[GameAttributes.Resistance, i] = GetItemBonus(GameAttributes.Resistance, i);
|
||||
}
|
||||
//*/
|
||||
Attributes[GameAttribute.Resistance_All] = GetItemBonus(GameAttribute.Resistance_All);
|
||||
Attributes[GameAttribute.Resistance_Percent_All] = GetItemBonus(GameAttribute.Resistance_Percent_All);
|
||||
Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] = GetItemBonus(GameAttribute.Damage_Percent_Reduction_From_Melee);
|
||||
Attributes[GameAttribute.Damage_Percent_Reduction_From_Ranged] = GetItemBonus(GameAttribute.Damage_Percent_Reduction_From_Ranged);
|
||||
Attributes[GameAttributes.Resistance_All] = GetItemBonus(GameAttributes.Resistance_All);
|
||||
Attributes[GameAttributes.Resistance_Percent_All] = GetItemBonus(GameAttributes.Resistance_Percent_All);
|
||||
Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] = GetItemBonus(GameAttributes.Damage_Percent_Reduction_From_Melee);
|
||||
Attributes[GameAttributes.Damage_Percent_Reduction_From_Ranged] = GetItemBonus(GameAttributes.Damage_Percent_Reduction_From_Ranged);
|
||||
|
||||
Attributes[GameAttribute.Thorns_Fixed] = GetItemBonus(GameAttribute.Thorns_Fixed, 0);
|
||||
Attributes[GameAttributes.Thorns_Fixed] = GetItemBonus(GameAttributes.Thorns_Fixed, 0);
|
||||
|
||||
Attributes[GameAttribute.Steal_Health_Percent] = GetItemBonus(GameAttribute.Steal_Health_Percent);
|
||||
Attributes[GameAttribute.Hitpoints_On_Hit] = GetItemBonus(GameAttribute.Hitpoints_On_Hit);
|
||||
Attributes[GameAttribute.Hitpoints_On_Kill] = GetItemBonus(GameAttribute.Hitpoints_On_Kill);
|
||||
Attributes[GameAttributes.Steal_Health_Percent] = GetItemBonus(GameAttributes.Steal_Health_Percent);
|
||||
Attributes[GameAttributes.Hitpoints_On_Hit] = GetItemBonus(GameAttributes.Hitpoints_On_Hit);
|
||||
Attributes[GameAttributes.Hitpoints_On_Kill] = GetItemBonus(GameAttributes.Hitpoints_On_Kill);
|
||||
|
||||
Attributes[GameAttribute.Magic_Find] = GetItemBonus(GameAttribute.Magic_Find);
|
||||
Attributes[GameAttribute.Gold_Find] = GetItemBonus(GameAttribute.Gold_Find);
|
||||
Attributes[GameAttributes.Magic_Find] = GetItemBonus(GameAttributes.Magic_Find);
|
||||
Attributes[GameAttributes.Gold_Find] = GetItemBonus(GameAttributes.Gold_Find);
|
||||
|
||||
Attributes[GameAttribute.Dodge_Chance_Bonus] = GetItemBonus(GameAttribute.Dodge_Chance_Bonus);
|
||||
Attributes[GameAttributes.Dodge_Chance_Bonus] = GetItemBonus(GameAttributes.Dodge_Chance_Bonus);
|
||||
|
||||
Attributes[GameAttribute.Block_Amount_Item_Min] = GetItemBonus(GameAttribute.Block_Amount_Item_Min);
|
||||
Attributes[GameAttribute.Block_Amount_Item_Delta] = GetItemBonus(GameAttribute.Block_Amount_Item_Delta);
|
||||
Attributes[GameAttribute.Block_Amount_Bonus_Percent] = GetItemBonus(GameAttribute.Block_Amount_Bonus_Percent);
|
||||
Attributes[GameAttribute.Block_Chance] = GetItemBonus(GameAttribute.Block_Chance_Item_Total);
|
||||
Attributes[GameAttributes.Block_Amount_Item_Min] = GetItemBonus(GameAttributes.Block_Amount_Item_Min);
|
||||
Attributes[GameAttributes.Block_Amount_Item_Delta] = GetItemBonus(GameAttributes.Block_Amount_Item_Delta);
|
||||
Attributes[GameAttributes.Block_Amount_Bonus_Percent] = GetItemBonus(GameAttributes.Block_Amount_Bonus_Percent);
|
||||
Attributes[GameAttributes.Block_Chance] = GetItemBonus(GameAttributes.Block_Chance_Item_Total);
|
||||
//*/
|
||||
Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Item] = GetItemBonus(GameAttribute.Hitpoints_Max_Percent_Bonus_Item);
|
||||
Attributes[GameAttribute.Hitpoints_Max_Bonus] = GetItemBonus(GameAttribute.Hitpoints_Max_Bonus);
|
||||
Attributes[GameAttribute.Hitpoints_Factor_Vitality] = 10f + Math.Max(Attributes[GameAttribute.Level] - 35, 0);
|
||||
Attributes[GameAttribute.Hitpoints_Regen_Per_Second] = GetItemBonus(GameAttribute.Hitpoints_Regen_Per_Second) + 10f + (10f * Attributes[GameAttribute.Level]);
|
||||
Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Item] = GetItemBonus(GameAttributes.Hitpoints_Max_Percent_Bonus_Item);
|
||||
Attributes[GameAttributes.Hitpoints_Max_Bonus] = GetItemBonus(GameAttributes.Hitpoints_Max_Bonus);
|
||||
Attributes[GameAttributes.Hitpoints_Factor_Vitality] = 10f + Math.Max(Attributes[GameAttributes.Level] - 35, 0);
|
||||
Attributes[GameAttributes.Hitpoints_Regen_Per_Second] = GetItemBonus(GameAttributes.Hitpoints_Regen_Per_Second) + 10f + (10f * Attributes[GameAttributes.Level]);
|
||||
|
||||
Attributes[GameAttribute.Core_Attributes_From_Item_Bonus_Multiplier] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 276f; //+ (this.Attributes[GameAttribute.Vitality] * (10f + Math.Max(this.Attributes[GameAttribute.Level] - 35, 0)));
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Core_Attributes_From_Item_Bonus_Multiplier] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 276f; //+ (this.Attributes[GameAttribute.Vitality] * (10f + Math.Max(this.Attributes[GameAttribute.Level] - 35, 0)));
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
/**/
|
||||
}
|
||||
catch { }
|
||||
@ -227,11 +224,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
hireling.GBHandle.Type = 4;
|
||||
hireling.GBHandle.GBID = hirelingGBID;
|
||||
|
||||
hireling.Attributes[GameAttribute.Pet_Creator] = player.PlayerIndex + 1;
|
||||
hireling.Attributes[GameAttribute.Pet_Type] = 1;
|
||||
hireling.Attributes[GameAttribute.Pet_Owner] = player.PlayerIndex + 1;
|
||||
hireling.Attributes[GameAttribute.Untargetable] = false;
|
||||
hireling.Attributes[GameAttribute.NPC_Is_Escorting] = true;
|
||||
hireling.Attributes[GameAttributes.Pet_Creator] = player.PlayerIndex + 1;
|
||||
hireling.Attributes[GameAttributes.Pet_Type] = 1;
|
||||
hireling.Attributes[GameAttributes.Pet_Owner] = player.PlayerIndex + 1;
|
||||
hireling.Attributes[GameAttributes.Untargetable] = false;
|
||||
hireling.Attributes[GameAttributes.NPC_Is_Escorting] = true;
|
||||
|
||||
hireling.RotationW = RotationW;
|
||||
hireling.RotationAxis = RotationAxis;
|
||||
@ -262,21 +259,21 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
if (IsHireling || IsProxy)
|
||||
return;
|
||||
|
||||
if (player.ActiveHireling.Attributes[GameAttribute.Hireling_Class] == Attributes[GameAttribute.Hireling_Class])
|
||||
if (player.ActiveHireling.Attributes[GameAttributes.Hireling_Class] == Attributes[GameAttributes.Hireling_Class])
|
||||
return;
|
||||
|
||||
var hireling = CreateHireling(World, proxySNO, Tags);
|
||||
hireling.SetUpAttributes(player);
|
||||
hireling.GBHandle.Type = 4;
|
||||
hireling.GBHandle.GBID = hirelingGBID;
|
||||
hireling.Attributes[GameAttribute.Is_NPC] = false;
|
||||
hireling.Attributes[GameAttribute.NPC_Is_Operatable] = false;
|
||||
hireling.Attributes[GameAttribute.NPC_Has_Interact_Options, 0] = false;
|
||||
hireling.Attributes[GameAttribute.Buff_Visual_Effect, 0x00FFFFF] = false;
|
||||
hireling.Attributes[GameAttributes.Is_NPC] = false;
|
||||
hireling.Attributes[GameAttributes.NPC_Is_Operatable] = false;
|
||||
hireling.Attributes[GameAttributes.NPC_Has_Interact_Options, 0] = false;
|
||||
hireling.Attributes[GameAttributes.Buff_Visual_Effect, 0x00FFFFF] = false;
|
||||
|
||||
hireling.Attributes[GameAttribute.Pet_Creator] = player.PlayerIndex + 1;
|
||||
hireling.Attributes[GameAttribute.Pet_Type] = 1;
|
||||
hireling.Attributes[GameAttribute.Pet_Owner] = player.PlayerIndex + 1;
|
||||
hireling.Attributes[GameAttributes.Pet_Creator] = player.PlayerIndex + 1;
|
||||
hireling.Attributes[GameAttributes.Pet_Type] = 1;
|
||||
hireling.Attributes[GameAttributes.Pet_Owner] = player.PlayerIndex + 1;
|
||||
|
||||
hireling.RotationW = RotationW;
|
||||
hireling.RotationAxis = RotationAxis;
|
||||
@ -301,7 +298,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
{
|
||||
float tickSeconds = 1f / 60f * (World.Game.TickCounter - _lastResourceUpdateTick);
|
||||
_lastResourceUpdateTick = World.Game.TickCounter;
|
||||
float quantity = tickSeconds * Attributes[GameAttribute.Hitpoints_Regen_Per_Second];
|
||||
float quantity = tickSeconds * Attributes[GameAttributes.Hitpoints_Regen_Per_Second];
|
||||
|
||||
AddHP(quantity);
|
||||
}
|
||||
@ -313,11 +310,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
if (quantity == 0) return;
|
||||
if (quantity > 0)
|
||||
{
|
||||
if (Attributes[GameAttribute.Hitpoints_Cur] < Attributes[GameAttribute.Hitpoints_Max_Total])
|
||||
if (Attributes[GameAttributes.Hitpoints_Cur] < Attributes[GameAttributes.Hitpoints_Max_Total])
|
||||
{
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Math.Min(
|
||||
Attributes[GameAttribute.Hitpoints_Cur] + quantity,
|
||||
Attributes[GameAttribute.Hitpoints_Max_Total]);
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Math.Min(
|
||||
Attributes[GameAttributes.Hitpoints_Cur] + quantity,
|
||||
Attributes[GameAttributes.Hitpoints_Max_Total]);
|
||||
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
}
|
||||
@ -402,7 +399,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
if (World.Game.Players.Count > 1)
|
||||
return false;
|
||||
|
||||
if (!IsHireling && ((player.ActiveHireling != null && Attributes[GameAttribute.Hireling_Class] == player.ActiveHireling.Attributes[GameAttribute.Hireling_Class])))// || (player.HirelingId != null && this.Attributes[GameAttribute.Hireling_Class] == player.HirelingId)))
|
||||
if (!IsHireling && ((player.ActiveHireling != null && Attributes[GameAttributes.Hireling_Class] == player.ActiveHireling.Attributes[GameAttributes.Hireling_Class])))// || (player.HirelingId != null && this.Attributes[GameAttribute.Hireling_Class] == player.HirelingId)))
|
||||
return false;
|
||||
|
||||
if (owner == null)
|
||||
@ -448,12 +445,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
public void LoadInventory(Player player)
|
||||
{
|
||||
_equipment.Add(player, new Dictionary<int, Item>());
|
||||
var inventory_list = World.Game.GameDbSession.SessionQueryWhere<DBInventory>(dbi => dbi.DBToon.Id == player.Toon.PersistentID && dbi.HirelingId != 0 && dbi.HirelingId == Attributes[GameAttribute.Hireling_Class]);
|
||||
var inventory_list = World.Game.GameDbSession.SessionQueryWhere<DBInventory>(dbi => dbi.DBToon.Id == player.Toon.PersistentID && dbi.HirelingId != 0 && dbi.HirelingId == Attributes[GameAttributes.Hireling_Class]);
|
||||
foreach (var inv_item in inventory_list)
|
||||
{
|
||||
Item item = ItemGenerator.LoadFromDB(player, inv_item);
|
||||
item.Owner = this;
|
||||
item.Attributes[GameAttribute.Item_Equipped] = true;
|
||||
item.Attributes[GameAttributes.Item_Equipped] = true;
|
||||
item.SetInventoryLocation(inv_item.EquipmentSlot, 0, 0);
|
||||
if (!_equipment[player].ContainsKey(inv_item.EquipmentSlot))
|
||||
_equipment[player].Add(inv_item.EquipmentSlot, item);
|
||||
@ -472,12 +469,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
|
||||
item.Owner = this;
|
||||
item.SetInventoryLocation(slot, 0, 0);
|
||||
item.DBInventory.HirelingId = Attributes[GameAttribute.Hireling_Class];
|
||||
item.DBInventory.HirelingId = Attributes[GameAttributes.Hireling_Class];
|
||||
item.DBInventory.EquipmentSlot = slot;
|
||||
item.DBInventory.LocationX = 0;
|
||||
item.DBInventory.LocationY = 0;
|
||||
World.Game.GameDbSession.SessionUpdate(item.DBInventory);
|
||||
item.Attributes[GameAttribute.Item_Equipped] = true;
|
||||
item.Attributes[GameAttributes.Item_Equipped] = true;
|
||||
_equipment[owner].Add(slot, item);
|
||||
RefreshEquipment(owner);
|
||||
UpdateAttributes();
|
||||
@ -497,7 +494,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
World.Game.GameDbSession.SessionDelete(item.DBInventory);
|
||||
owner.Inventory.PickUp(item);
|
||||
item.Unreveal(owner);
|
||||
item.Attributes[GameAttribute.Item_Equipped] = false;
|
||||
item.Attributes[GameAttributes.Item_Equipped] = false;
|
||||
item.Reveal(owner);
|
||||
RefreshEquipment(owner);
|
||||
UpdateAttributes();
|
||||
@ -538,10 +535,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
public float GetItemBonus(GameAttributeF attributeF)
|
||||
{
|
||||
var stats = GetEquippedItems(owner)
|
||||
.Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 ||
|
||||
item.Attributes[GameAttribute.Durability_Max] == 0);
|
||||
.Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 ||
|
||||
item.Attributes[GameAttributes.Durability_Max] == 0);
|
||||
|
||||
if (attributeF == GameAttribute.Attacks_Per_Second_Item)
|
||||
if (attributeF == GameAttributes.Attacks_Per_Second_Item)
|
||||
{
|
||||
return stats.Any()
|
||||
? stats.Select(item => item.Attributes[attributeF]).Where(a => a > 0f).Aggregate(1f, (x, y) => x * y)
|
||||
@ -552,7 +549,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
|
||||
public int GetItemBonus(GameAttributeI attributeI)
|
||||
{
|
||||
return GetEquippedItems(owner).Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0).Sum(item => item.Attributes[attributeI]);
|
||||
return GetEquippedItems(owner).Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0).Sum(item => item.Attributes[attributeI]);
|
||||
}
|
||||
|
||||
public bool GetItemBonus(GameAttributeB attributeB)
|
||||
@ -562,12 +559,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
|
||||
public float GetItemBonus(GameAttributeF attributeF, int attributeKey)
|
||||
{
|
||||
return GetEquippedItems(owner).Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0).Sum(item => item.Attributes[attributeF, attributeKey]);
|
||||
return GetEquippedItems(owner).Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0).Sum(item => item.Attributes[attributeF, attributeKey]);
|
||||
}
|
||||
|
||||
public int GetItemBonus(GameAttributeI attributeI, int attributeKey)
|
||||
{
|
||||
return GetEquippedItems(owner).Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0).Sum(item => item.Attributes[attributeI, attributeKey]);
|
||||
return GetEquippedItems(owner).Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0).Sum(item => item.Attributes[attributeI, attributeKey]);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
{
|
||||
@ -24,20 +19,20 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
proxySNO = ActorSno._hireling_scoundrel_proxy;
|
||||
skillKit = 0x8AFE;
|
||||
hirelingGBID = StringHashHelper.HashItemName("Scoundrel");
|
||||
Attributes[GameAttribute.Hireling_Class] = 4;
|
||||
var MS = Attributes[GameAttribute.Movement_Scalar];
|
||||
var RS = Attributes[GameAttribute.Run_Speed_Granted];
|
||||
var MSRP = Attributes[GameAttribute.Movement_Scalar_Reduction_Percent];
|
||||
Attributes[GameAttribute.Movement_Scalar] = 3f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = 3f;
|
||||
Attributes[GameAttributes.Hireling_Class] = 4;
|
||||
var MS = Attributes[GameAttributes.Movement_Scalar];
|
||||
var RS = Attributes[GameAttributes.Run_Speed_Granted];
|
||||
var MSRP = Attributes[GameAttributes.Movement_Scalar_Reduction_Percent];
|
||||
Attributes[GameAttributes.Movement_Scalar] = 3f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = 3f;
|
||||
//this.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f; Attributes[GameAttribute.Hitpoints_Max] = 9999f;
|
||||
var HPM = Attributes[GameAttribute.Hitpoints_Max];
|
||||
var HPMT = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
WalkSpeed = 0.3f; Attributes[GameAttributes.Hitpoints_Max] = 9999f;
|
||||
var HPM = Attributes[GameAttributes.Hitpoints_Max];
|
||||
var HPMT = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1;
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Max] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Hitpoints_Max] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
|
||||
}
|
||||
|
||||
@ -117,7 +112,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
}
|
||||
}
|
||||
});
|
||||
Attributes[GameAttribute.Conversation_Icon, 0] = 1;
|
||||
Attributes[GameAttributes.Conversation_Icon, 0] = 1;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
return true;
|
||||
|
||||
@ -19,9 +19,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
proxySNO = ActorSno._hireling_templar_proxy;
|
||||
skillKit = 484941;
|
||||
hirelingGBID = StringHashHelper.HashItemName("Templar");
|
||||
Attributes[GameAttribute.Hireling_Class] = 0;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttribute.Team_Override] = 2;
|
||||
Attributes[GameAttributes.Hireling_Class] = 0;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
Attributes[GameAttributes.Team_Override] = 2;
|
||||
}
|
||||
|
||||
public override Hireling CreateHireling(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
@ -37,8 +37,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 102057:
|
||||
case 101969:
|
||||
player.HirelingInfo[3].Skill1SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 102057 ? 101969 : 102057)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 102057 ? 101969 : 102057)] = 0;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
dbhireling.Skill1SNOId = SkillSNOId;
|
||||
@ -47,8 +47,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 102133:
|
||||
case 101461:
|
||||
player.HirelingInfo[3].Skill2SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 102133 ? 101461 : 102133)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 102133 ? 101461 : 102133)] = 0;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
dbhireling.Skill2SNOId = SkillSNOId;
|
||||
@ -57,8 +57,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 101990:
|
||||
case 220872:
|
||||
player.HirelingInfo[3].Skill3SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 101990 ? 220872 : 101990)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 101990 ? 220872 : 101990)] = 0;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
dbhireling.Skill3SNOId = SkillSNOId;
|
||||
@ -67,8 +67,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 101425:
|
||||
case 201524:
|
||||
player.HirelingInfo[3].Skill4SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 101425 ? 201524 : 101425)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 101425 ? 201524 : 101425)] = 0;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
dbhireling.Skill4SNOId = SkillSNOId;
|
||||
@ -93,14 +93,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
player.HirelingInfo[3].Skill3SNOId = -1;
|
||||
player.HirelingInfo[3].Skill4SNOId = -1;
|
||||
|
||||
Attributes[GameAttribute.Skill, 102057] = 0;
|
||||
Attributes[GameAttribute.Skill, 101969] = 0;
|
||||
Attributes[GameAttribute.Skill, 102133] = 0;
|
||||
Attributes[GameAttribute.Skill, 101461] = 0;
|
||||
Attributes[GameAttribute.Skill, 101990] = 0;
|
||||
Attributes[GameAttribute.Skill, 220872] = 0;
|
||||
Attributes[GameAttribute.Skill, 101425] = 0;
|
||||
Attributes[GameAttribute.Skill, 201524] = 0;
|
||||
Attributes[GameAttributes.Skill, 102057] = 0;
|
||||
Attributes[GameAttributes.Skill, 101969] = 0;
|
||||
Attributes[GameAttributes.Skill, 102133] = 0;
|
||||
Attributes[GameAttributes.Skill, 101461] = 0;
|
||||
Attributes[GameAttributes.Skill, 101990] = 0;
|
||||
Attributes[GameAttributes.Skill, 220872] = 0;
|
||||
Attributes[GameAttributes.Skill, 101425] = 0;
|
||||
Attributes[GameAttributes.Skill, 201524] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
}
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
proxySNO = ActorSno._hireling_scoundrel_proxy;
|
||||
skillKit = 484937;
|
||||
hirelingGBID = StringHashHelper.HashItemName("Scoundrel");
|
||||
Attributes[GameAttribute.Hireling_Class] = 2;
|
||||
Attributes[GameAttributes.Hireling_Class] = 2;
|
||||
}
|
||||
|
||||
public override Hireling CreateHireling(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
@ -35,8 +35,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 95675:
|
||||
case 30460:
|
||||
player.HirelingInfo[2].Skill1SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 95675 ? 30460 : 95675)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 95675 ? 30460 : 95675)] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
|
||||
dbhireling.Skill1SNOId = SkillSNOId;
|
||||
@ -45,8 +45,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 97436:
|
||||
case 30464:
|
||||
player.HirelingInfo[2].Skill2SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 97436 ? 30464 : 97436)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 97436 ? 30464 : 97436)] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
|
||||
dbhireling.Skill2SNOId = SkillSNOId;
|
||||
@ -55,8 +55,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 95690:
|
||||
case 30458:
|
||||
player.HirelingInfo[2].Skill3SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 95690 ? 30458 : 95690)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 95690 ? 30458 : 95690)] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
|
||||
dbhireling.Skill3SNOId = SkillSNOId;
|
||||
@ -65,8 +65,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 200169:
|
||||
case 30454:
|
||||
player.HirelingInfo[2].Skill4SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 200169 ? 30454 : 200169)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 200169 ? 30454 : 200169)] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
|
||||
dbhireling.Skill4SNOId = SkillSNOId;
|
||||
@ -91,14 +91,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
player.HirelingInfo[2].Skill3SNOId = -1;
|
||||
player.HirelingInfo[2].Skill4SNOId = -1;
|
||||
|
||||
Attributes[GameAttribute.Skill, 95675] = 0;
|
||||
Attributes[GameAttribute.Skill, 30460] = 0;
|
||||
Attributes[GameAttribute.Skill, 97436] = 0;
|
||||
Attributes[GameAttribute.Skill, 30464] = 0;
|
||||
Attributes[GameAttribute.Skill, 95690] = 0;
|
||||
Attributes[GameAttribute.Skill, 30458] = 0;
|
||||
Attributes[GameAttribute.Skill, 200169] = 0;
|
||||
Attributes[GameAttribute.Skill, 30454] = 0;
|
||||
Attributes[GameAttributes.Skill, 95675] = 0;
|
||||
Attributes[GameAttributes.Skill, 30460] = 0;
|
||||
Attributes[GameAttributes.Skill, 97436] = 0;
|
||||
Attributes[GameAttributes.Skill, 30464] = 0;
|
||||
Attributes[GameAttributes.Skill, 95690] = 0;
|
||||
Attributes[GameAttributes.Skill, 30458] = 0;
|
||||
Attributes[GameAttributes.Skill, 200169] = 0;
|
||||
Attributes[GameAttributes.Skill, 30454] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
}
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
proxySNO = ActorSno._hireling_templar_proxy;
|
||||
skillKit = 484941;
|
||||
hirelingGBID = StringHashHelper.HashItemName("Templar");
|
||||
Attributes[GameAttribute.Hireling_Class] = 1;
|
||||
Attributes[GameAttributes.Hireling_Class] = 1;
|
||||
}
|
||||
|
||||
public override Hireling CreateHireling(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
@ -35,8 +35,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 1747:
|
||||
case 93938:
|
||||
player.HirelingInfo[1].Skill1SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 1747 ? 93938 : 1747)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 1747 ? 93938 : 1747)] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
|
||||
dbhireling.Skill1SNOId = SkillSNOId;
|
||||
@ -45,8 +45,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 30357:
|
||||
case 93901:
|
||||
player.HirelingInfo[1].Skill2SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 30357 ? 93901 : 30357)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 30357 ? 93901 : 30357)] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
|
||||
dbhireling.Skill2SNOId = SkillSNOId;
|
||||
@ -55,8 +55,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 30360:
|
||||
case 93888:
|
||||
player.HirelingInfo[1].Skill3SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 30360 ? 93888 : 30360)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 30360 ? 93888 : 30360)] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
|
||||
dbhireling.Skill3SNOId = SkillSNOId;
|
||||
@ -65,8 +65,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
case 30356:
|
||||
case 30359:
|
||||
player.HirelingInfo[1].Skill4SNOId = SkillSNOId;
|
||||
Attributes[GameAttribute.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttribute.Skill, (SkillSNOId == 30356 ? 30359 : 30356)] = 0;
|
||||
Attributes[GameAttributes.Skill, SkillSNOId] = 1;
|
||||
Attributes[GameAttributes.Skill, (SkillSNOId == 30356 ? 30359 : 30356)] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
|
||||
dbhireling.Skill4SNOId = SkillSNOId;
|
||||
@ -91,14 +91,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings
|
||||
player.HirelingInfo[1].Skill3SNOId = -1;
|
||||
player.HirelingInfo[1].Skill4SNOId = -1;
|
||||
|
||||
Attributes[GameAttribute.Skill, 1747] = 0;
|
||||
Attributes[GameAttribute.Skill, 93938] = 0;
|
||||
Attributes[GameAttribute.Skill, 30357] = 0;
|
||||
Attributes[GameAttribute.Skill, 93901] = 0;
|
||||
Attributes[GameAttribute.Skill, 30360] = 0;
|
||||
Attributes[GameAttribute.Skill, 93888] = 0;
|
||||
Attributes[GameAttribute.Skill, 30356] = 0;
|
||||
Attributes[GameAttribute.Skill, 30359] = 0;
|
||||
Attributes[GameAttributes.Skill, 1747] = 0;
|
||||
Attributes[GameAttributes.Skill, 93938] = 0;
|
||||
Attributes[GameAttributes.Skill, 30357] = 0;
|
||||
Attributes[GameAttributes.Skill, 93901] = 0;
|
||||
Attributes[GameAttributes.Skill, 30360] = 0;
|
||||
Attributes[GameAttributes.Skill, 93888] = 0;
|
||||
Attributes[GameAttributes.Skill, 30356] = 0;
|
||||
Attributes[GameAttributes.Skill, 30359] = 0;
|
||||
Attributes.SendChangedMessage(player.InGameClient);
|
||||
}
|
||||
|
||||
|
||||
@ -8,12 +8,7 @@ using DiIiS_NA.GameServer.GSSystem.ItemsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Quest;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Text;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -37,7 +32,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
|
||||
public override void OnTargeted(Player player, TargetMessage message)
|
||||
{
|
||||
if (Attributes[GameAttribute.Disabled]) return;
|
||||
if (Attributes[GameAttributes.Disabled]) return;
|
||||
|
||||
int chance = World.Game.IsHardcore ? 99 : 25; //S4 special
|
||||
/*
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
using DiIiS_NA.Core.Helpers.Math;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
@ -9,7 +7,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Quest;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
|
||||
@ -24,7 +21,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public LootContainer(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
if (SNO == ActorSno._a3dunrmpt_interactives_signal_fire_a_prop) Attributes[GameAttribute.MinimapActive] = true;
|
||||
if (SNO == ActorSno._a3dunrmpt_interactives_signal_fire_a_prop) Attributes[GameAttributes.MinimapActive] = true;
|
||||
|
||||
if (SNO.IsChest() || SNO.IsCorpse()) haveDrop = true;
|
||||
|
||||
@ -52,7 +49,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
|
||||
if (!base.Reveal(player))
|
||||
return false;
|
||||
if (Attributes[GameAttribute.Disabled])
|
||||
if (Attributes[GameAttributes.Disabled])
|
||||
{
|
||||
player.InGameClient.SendMessage(new SetIdleAnimationMessage
|
||||
{
|
||||
@ -70,7 +67,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
if (SNO == ActorSno._p4_setdung_totem_cru_thorns)
|
||||
return;
|
||||
|
||||
if (Attributes[GameAttribute.Disabled]) return;
|
||||
if (Attributes[GameAttributes.Disabled]) return;
|
||||
|
||||
base.OnTargeted(player, message);
|
||||
|
||||
@ -116,7 +113,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
World.SpawnRandomGem(this, plr);
|
||||
if (seed < 0.10f)
|
||||
World.SpawnRandomPotion(this, plr);
|
||||
if (seed < (rate * (1f + plr.Attributes[GameAttribute.Magic_Find])))
|
||||
if (seed < (rate * (1f + plr.Attributes[GameAttributes.Magic_Find])))
|
||||
{
|
||||
var lootQuality = World.Game.IsHardcore ? LootManager.GetSeasonalLootQuality((int)Quality, World.Game.Difficulty) : LootManager.GetLootQuality((int)Quality, World.Game.Difficulty);
|
||||
World.SpawnRandomEquip(plr, plr, lootQuality);
|
||||
@ -160,12 +157,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
AnimationSNO = AnimationSetKeys.Open.ID
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true;
|
||||
Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true;
|
||||
//this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID);
|
||||
Attributes[GameAttribute.Chest_Open, 0xFFFFFF] = true;
|
||||
Attributes[GameAttributes.Chest_Open, 0xFFFFFF] = true;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
Attributes[GameAttribute.Disabled] = true;
|
||||
Attributes[GameAttributes.Disabled] = true;
|
||||
|
||||
if (SNO == ActorSno._trdun_cath_chandelier_trap_switch2)
|
||||
{
|
||||
|
||||
@ -27,13 +27,13 @@ namespace DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
brain.AddPresetPower(power);
|
||||
}
|
||||
SetBrain(brain);
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
if (this.Master != null)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
@ -19,15 +17,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
DamageCoefficient = 4f; //Useless otherwise
|
||||
SetBrain(new MinionBrain(this));
|
||||
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Max] = context.User.Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Max] = context.User.Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max];
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total] * damageMult;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total] * damageMult;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total] * damageMult;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total] * damageMult;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
|
||||
LifeTime = lifeTime;
|
||||
}
|
||||
@ -44,15 +42,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
SetBrain(new MinionBrain(this));
|
||||
(Brain as MinionBrain).AddPresetPower(369807);
|
||||
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Max] = context.User.Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Max] = context.User.Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max];
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total] * damageMult;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total] * damageMult;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total] * damageMult;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total] * damageMult;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
|
||||
LifeTime = lifeTime;
|
||||
}
|
||||
|
||||
@ -2,8 +2,6 @@
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using System.Collections.Generic;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
@ -30,14 +28,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
: base(world, CompanionSNO, context.User, null)
|
||||
{
|
||||
Scale = 1.2f;
|
||||
if (context.User.Attributes[GameAttribute.Rune_B, 0x000592ff] > 0) Scale = 2f; //Boar
|
||||
if (context.User.Attributes[GameAttribute.Rune_C, 0x000592ff] > 0) Scale = 2f; //Wolf
|
||||
if (context.User.Attributes[GameAttributes.Rune_B, 0x000592ff] > 0) Scale = 2f; //Boar
|
||||
if (context.User.Attributes[GameAttributes.Rune_C, 0x000592ff] > 0) Scale = 2f; //Wolf
|
||||
//TODO: get a proper value for this.
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = context.ScriptFormula(0);
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttribute.Is_Helper] = true;
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Is_Helper] = true;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
if (CompanionSNO == ActorSno._dh_companion_ferret)
|
||||
SetBrain(new LooterBrain(this, false));
|
||||
else
|
||||
@ -45,23 +43,23 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
SetBrain(new MinionBrain(this));
|
||||
(Brain as MinionBrain).AddPresetPower(169081); //melee_instant
|
||||
|
||||
if (context.User.Attributes[GameAttribute.Rune_A, 0x000592ff] > 0) //Spider
|
||||
if (context.User.Attributes[GameAttributes.Rune_A, 0x000592ff] > 0) //Spider
|
||||
(Brain as MinionBrain).AddPresetPower(133887); //cleave
|
||||
|
||||
if (context.User.Attributes[GameAttribute.Rune_B, 0x000592ff] > 0) //Boar
|
||||
if (context.User.Attributes[GameAttributes.Rune_B, 0x000592ff] > 0) //Boar
|
||||
(Brain as MinionBrain).AddPresetPower(133887); //cleave
|
||||
|
||||
if (context.User.Attributes[GameAttribute.Rune_C, 0x000592ff] > 0) //Wolf
|
||||
if (context.User.Attributes[GameAttributes.Rune_C, 0x000592ff] > 0) //Wolf
|
||||
(Brain as MinionBrain).AddPresetPower(133887); //cleave
|
||||
//(Brain as MinionBrain).AddPresetPower(133887); //ChargeAttack
|
||||
}
|
||||
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = context.User.Attributes[GameAttribute.Attacks_Per_Second_Total];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = context.User.Attributes[GameAttributes.Attacks_Per_Second_Total];
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(0) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(0) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(0) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(0) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
@ -21,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = context.ScriptFormula(16) * 2f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
(Brain as MinionBrain).AddPresetPower(30592); //melee_instant
|
||||
//(Brain as MinionBrain).AddPresetPower(30005); //AINearby
|
||||
if (context.Rune_C > 0)
|
||||
@ -29,12 +27,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
//Attributes[GameAttribute.Hitpoints_Max] = 20f;
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 20f;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
LifeTime = TickTimer.WaitSeconds(world.Game, 5f);
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
@ -24,7 +23,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = context.ScriptFormula(16) * 2f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
(Brain as MinionBrain).AddPresetPower(30592); //melee_instant
|
||||
//(Brain as MinionBrain).AddPresetPower(30005); //AINearby
|
||||
if (context.Rune_C > 0)
|
||||
@ -35,10 +34,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 20f;
|
||||
//Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
if (Master != null)
|
||||
|
||||
@ -1,11 +1,8 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using System.Collections.Generic;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
@ -21,17 +18,17 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = context.ScriptFormula(14) * 2f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
(Brain as MinionBrain).AddPresetPower(119166); //fetisharmy_hunter.pow
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
//Attributes[GameAttribute.Hitpoints_Max] = 20f;
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 20f;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
LifeTime = TickTimer.WaitSeconds(world.Game, 20f);
|
||||
|
||||
@ -18,16 +18,16 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = context.ScriptFormula(22) * 2f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
//Attributes[GameAttribute.Hitpoints_Max] = 20f;
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 20f;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(22) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(22) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(22) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(22) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
LifeTime = TickTimer.WaitSeconds(world.Game, 20f);
|
||||
|
||||
@ -1,11 +1,8 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using System.Collections.Generic;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
@ -21,17 +18,17 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = context.ScriptFormula(11) * 2f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
(Brain as MinionBrain).AddPresetPower(118442); //fetisharmy_shaman.pow
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
//Attributes[GameAttribute.Hitpoints_Max] = 20f;
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 20f;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
LifeTime = TickTimer.WaitSeconds(world.Game, 20f);
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using System.Collections.Generic;
|
||||
@ -20,7 +18,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = context.ScriptFormula(24) * 2f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
//(Brain as MinionBrain).AddPresetPower(30005);
|
||||
//(Brain as MinionBrain).AddPresetPower(30001);
|
||||
(Brain as MinionBrain).AddPresetPower(30592);
|
||||
@ -29,20 +27,20 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
(Brain as MinionBrain).AddPresetPower(121942); // Witchdoctor_Gargantuan_Cleave
|
||||
if ((context.User as Player).SkillSet.HasPassive(208563)) //ZombieHandler (wd)
|
||||
{
|
||||
Attributes[GameAttribute.Hitpoints_Max] *= 1.2f;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Max] *= 1.2f;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max];
|
||||
}
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(24) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(24) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(24) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(24) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
if ((context.User as Player).SkillSet.HasPassive(340909)) //MidnightFeast (wd)
|
||||
{
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 1.5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 1.5f;
|
||||
}
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
if (Master != null)
|
||||
|
||||
@ -1,16 +1,8 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
{
|
||||
@ -30,12 +22,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 3;
|
||||
SetBrain(new MinionBrain(this));
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Attributes[GameAttribute.Damage_Weapon_Min, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Attributes[GameAttributes.Damage_Weapon_Min, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
|
||||
|
||||
}
|
||||
@ -50,12 +42,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 3;
|
||||
SetBrain(new MinionBrain(this));
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
//SNOSummons
|
||||
|
||||
}
|
||||
@ -70,12 +62,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 3;
|
||||
SetBrain(new MinionBrain(this));
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
|
||||
|
||||
}
|
||||
@ -90,12 +82,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 3;
|
||||
SetBrain(new MinionBrain(this));
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
|
||||
}
|
||||
}
|
||||
@ -109,12 +101,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 3;
|
||||
SetBrain(new MinionBrain(this));
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
|
||||
|
||||
}
|
||||
@ -129,12 +121,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 3;
|
||||
SetBrain(new MinionBrain(this));
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,11 +1,8 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using System.Collections.Generic;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
@ -20,7 +17,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
SetBrain(new MinionBrain(this));
|
||||
DamageCoefficient = 1f * 2f;
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
(Brain as MinionBrain).AddPresetPower(196974); //chicken_walk.pow
|
||||
(Brain as MinionBrain).AddPresetPower(188442); //explode.pow
|
||||
(Brain as MinionBrain).AddPresetPower(107301); //Fetish.pow
|
||||
@ -28,12 +25,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
|
||||
//Attributes[GameAttribute.Hitpoints_Max] = 5f;
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 5f;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 7f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 7f;
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
LifeTime = TickTimer.WaitSeconds(world.Game, 12f);
|
||||
}
|
||||
|
||||
@ -1,11 +1,7 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using System.Collections.Generic;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
@ -21,12 +17,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
CollFlags = 0;
|
||||
DamageCoefficient = 0;
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttribute.Is_Helper] = true;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Is_Helper] = true;
|
||||
SetBrain(new LooterBrain(this, true));
|
||||
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
}
|
||||
|
||||
|
||||
@ -20,16 +20,16 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = context.ScriptFormula(11);
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
//Attributes[GameAttribute.Hitpoints_Max] = 20f;
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 20f;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
LifeTime = TickTimer.WaitSeconds(world.Game, lifetime);
|
||||
|
||||
@ -1,11 +1,7 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using System.Collections.Generic;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
@ -22,7 +18,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = 5f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = 0x00058676;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = 0x00058676;
|
||||
(Brain as MinionBrain).AddPresetPower(169081); //melee_instant
|
||||
|
||||
|
||||
@ -35,14 +31,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
(Brain as MinionBrain).AddPresetPower(169715); //Earth Ally -> Boulder*/
|
||||
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 5f * context.User.Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = context.User.Attributes[GameAttribute.Attacks_Per_Second_Total];
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 5f * context.User.Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = context.User.Attributes[GameAttributes.Attacks_Per_Second_Total];
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 2f * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 2f * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 2f * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 2f * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,15 +1,8 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
{
|
||||
@ -31,24 +24,24 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
DamageCoefficient = context.ScriptFormula(14) * 2f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Item] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Max_Bonus] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Factor_Vitality] = 1f;
|
||||
Attributes[GameAttribute.Hitpoints_Regen_Per_Second] = 0;
|
||||
Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Item] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max_Bonus] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Factor_Vitality] = 1f;
|
||||
Attributes[GameAttributes.Hitpoints_Regen_Per_Second] = 0;
|
||||
|
||||
Attributes[GameAttribute.Core_Attributes_From_Item_Bonus_Multiplier] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 20f * ((Player) Master).Toon.Level;
|
||||
Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Core_Attributes_From_Item_Bonus_Multiplier] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 20f * ((Player) Master).Toon.Level;
|
||||
Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = 453801;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = 453801;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 0.5f * context!.User!.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 0.5f * context!.User!.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 0.5f * context!.User!.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 0.5f * context!.User!.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
LifeTime = null;// TickTimer.WaitSeconds(world.Game, 6f);
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
@ -37,12 +36,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
//Attributes[GameAttribute.Hitpoints_Max] = 20f;
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 20f;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(2) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(2) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(2) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(2) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
if (Master != null)
|
||||
|
||||
@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
{
|
||||
@ -26,21 +21,21 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
Rune_Flesh = true;
|
||||
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
//(Brain as MinionBrain).AddPresetPower(119166);
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
DamageCoefficient = context.ScriptFormula(14) * 2f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = (context.ScriptFormula(14) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]);
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = (context.ScriptFormula(14) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]);
|
||||
//(UsedEssense * 3f)
|
||||
if (context.Rune_B > 0)
|
||||
{
|
||||
UsedEssense = (context as PowerSystem.Implementations.SummonSkeletalMage).Count;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] += (Attributes[GameAttribute.Damage_Weapon_Min, 0] / 100 * 3) * UsedEssense;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] += (Attributes[GameAttributes.Damage_Weapon_Min, 0] / 100 * 3) * UsedEssense;
|
||||
}
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
if (context.Rune_C > 0)
|
||||
LifeTime = TickTimer.WaitSeconds(world.Game, 8f);
|
||||
|
||||
@ -1,11 +1,8 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using System.Collections.Generic;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
@ -22,16 +19,16 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 2;
|
||||
DamageCoefficient = 2f * 2f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO;
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
//Attributes[GameAttribute.Hitpoints_Max] = 20f;
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 20f;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 2f * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 2f * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 2f * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 2f * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
|
||||
LifeTime = TickTimer.WaitSeconds(world.Game, 5f);
|
||||
|
||||
@ -1,11 +1,7 @@
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.PowerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.TickerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using System.Collections.Generic;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
@ -22,10 +18,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
WalkSpeed *= 5;
|
||||
DamageCoefficient = mul * 2f;
|
||||
SetBrain(new MinionBrain(this));
|
||||
Attributes[GameAttribute.Summoned_By_SNO] = 102573;
|
||||
Attributes[GameAttributes.Summoned_By_SNO] = 102573;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = master.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = master.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0];
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0];
|
||||
|
||||
|
||||
//TODO: These values should most likely scale, but we don't know how yet, so just temporary values.
|
||||
@ -33,22 +29,22 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions
|
||||
//Attributes[GameAttribute.Hitpoints_Cur] = 20f;
|
||||
if ((master as Player).SkillSet.HasPassive(208563)) //ZombieHandler (wd)
|
||||
{
|
||||
Attributes[GameAttribute.Hitpoints_Max] *= 1.2f;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Hitpoints_Max] *= 1.2f;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max];
|
||||
}
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = master.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0] * mul;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * mul;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = master.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0] * mul;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * mul;
|
||||
|
||||
if ((master as Player).SkillSet.HasPassive(340909)) //MidnightFeast (wd)
|
||||
{
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 1.5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 1.5f;
|
||||
}
|
||||
|
||||
Attributes[GameAttribute.Pet_Type] = 0x8;
|
||||
Attributes[GameAttributes.Pet_Type] = 0x8;
|
||||
//Pet_Owner and Pet_Creator seems to be 0
|
||||
master.Attributes[GameAttribute.Free_Cast, SkillsSystem.Skills.WitchDoctor.Support.Sacrifice] = 1;
|
||||
master.Attributes[GameAttributes.Free_Cast, SkillsSystem.Skills.WitchDoctor.Support.Sacrifice] = 1;
|
||||
master.Attributes.BroadcastChangedIfRevealed();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,11 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
|
||||
@ -18,13 +12,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public Unique_CaptainDaltyn(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttribute.Immune_To_Charm] = true;
|
||||
Attributes[GameAttribute.using_Bossbar] = true;
|
||||
Attributes[GameAttribute.InBossEncounter] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
Attributes[GameAttributes.Immune_To_Charm] = true;
|
||||
Attributes[GameAttributes.using_Bossbar] = true;
|
||||
Attributes[GameAttributes.InBossEncounter] = true;
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.TeamID] = 10;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.TeamID] = 10;
|
||||
|
||||
|
||||
WalkSpeed = 0.2f;
|
||||
|
||||
@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
@ -54,9 +49,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public DarkCultists(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f;
|
||||
}
|
||||
}
|
||||
@ -66,9 +61,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public DarkCultistsTownAttackMelee(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f;
|
||||
}
|
||||
}
|
||||
@ -84,9 +79,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
(Brain as MonsterBrain).AddPresetPower(30570);
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 10f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 10f;
|
||||
WalkSpeed = 0.15f;
|
||||
}
|
||||
}
|
||||
@ -98,9 +93,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
{
|
||||
|
||||
(Brain as MonsterBrain).AddPresetPower(30547);
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.15f;
|
||||
}
|
||||
}
|
||||
@ -112,9 +107,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
{
|
||||
(Brain as MonsterBrain).AddPresetPower(30570);
|
||||
(Brain as MonsterBrain).AddPresetPower(30547);
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.15f;
|
||||
}
|
||||
}
|
||||
@ -126,9 +121,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public Shark(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f;
|
||||
}
|
||||
}
|
||||
@ -146,9 +141,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public Lacuni(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f;
|
||||
}
|
||||
}
|
||||
@ -165,9 +160,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public Fallens(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f;
|
||||
}
|
||||
}
|
||||
@ -186,8 +181,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
CollFlags = 0;
|
||||
WalkSpeed = 0;
|
||||
|
||||
Attributes[GameAttribute.Movement_Scalar] = 0f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = 0f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = 0f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = 0f;
|
||||
Spawner = true;
|
||||
}
|
||||
|
||||
@ -511,9 +506,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public TriuneCultist(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f;
|
||||
}
|
||||
}
|
||||
@ -532,9 +527,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public TombGuardian(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
(Brain as MonsterBrain).AddPresetPower(30503);
|
||||
(Brain as MonsterBrain).AddPresetPower(30543); //Summon Skeletons
|
||||
}
|
||||
@ -661,8 +656,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
CollFlags = 0;
|
||||
WalkSpeed = 0;
|
||||
|
||||
Attributes[GameAttribute.Movement_Scalar] = 0f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = 0f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = 0f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = 0f;
|
||||
Spawner = true;
|
||||
}
|
||||
|
||||
@ -679,8 +674,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
(Brain as MonsterBrain).PresetPowers.Clear();
|
||||
(Brain as MonsterBrain).AddPresetPower(117580);
|
||||
|
||||
Attributes[GameAttribute.Movement_Scalar] = 0f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = 0f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = 0f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = 0f;
|
||||
WalkSpeed = 0f;
|
||||
Spawner = true;
|
||||
}
|
||||
@ -771,9 +766,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public GoatmanMelee(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.2f;
|
||||
}
|
||||
}
|
||||
@ -808,9 +803,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public TriuneWizard(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.35f;
|
||||
(Brain as MonsterBrain).AddPresetPower(99077);
|
||||
}
|
||||
@ -829,9 +824,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public TriuneBerserker(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.35f;
|
||||
(Brain as MonsterBrain).AddPresetPower(99077);
|
||||
}
|
||||
@ -1099,9 +1094,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public Wrath(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f;
|
||||
}
|
||||
}
|
||||
@ -1113,9 +1108,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
public Spider_Elemental_Cold_tesla_A(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
WalkSpeed = 0.3f;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,11 +3,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
{
|
||||
@ -22,14 +17,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters
|
||||
CollFlags = 0;
|
||||
WalkSpeed = 0;
|
||||
|
||||
Attributes[GameAttribute.Movement_Scalar] = 0f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = 0f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = 0f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = 0f;
|
||||
Spawner = true;
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
|
||||
CollFlags = 0;
|
||||
WalkSpeed = 0;
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
(Brain as MonsterBrain).RemovePresetPower(30592);
|
||||
//(Brain as MonsterBrain).AddPresetPower(96925);
|
||||
(Brain as MonsterBrain).AddPresetPower(223284);
|
||||
|
||||
@ -23,11 +23,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data;
|
||||
var monsterData = (Monster.Target as MonsterFF);
|
||||
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 99999;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 99999;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f;
|
||||
WalkSpeed = 0f; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise
|
||||
|
||||
}
|
||||
@ -46,7 +46,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
if (!base.Reveal(player))
|
||||
return false;
|
||||
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -3,11 +3,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -22,7 +17,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
Conversations.Add(new Interactions.ConversationInteraction(471076));
|
||||
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
}
|
||||
|
||||
public override void OnTargeted(Player player, TargetMessage message)
|
||||
|
||||
@ -1,9 +1,5 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
@ -15,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public Cain(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
}
|
||||
|
||||
protected override void ReadTags()
|
||||
|
||||
@ -37,12 +37,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data;
|
||||
var monsterData = (Monster.Target as MonsterFF);
|
||||
|
||||
Attributes[GameAttribute.Level] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes[GameAttributes.Level] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f;
|
||||
WalkSpeed = 0.3f * monsterData.AttributeModifiers[129]; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise
|
||||
}
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
}
|
||||
|
||||
|
||||
@ -22,12 +22,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data;
|
||||
var monsterData = (Monster.Target as MonsterFF);
|
||||
|
||||
Attributes[GameAttribute.Level] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes[GameAttributes.Level] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f;
|
||||
WalkSpeed = 0.3f * monsterData.AttributeModifiers[129]; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise
|
||||
}
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -20,8 +20,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttribute.NPC_Has_Interact_Options, 0] = false;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
Attributes[GameAttributes.NPC_Has_Interact_Options, 0] = false;
|
||||
}
|
||||
|
||||
public override bool Reveal(PlayerSystem.Player player)
|
||||
|
||||
@ -1,11 +1,6 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -16,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -24,20 +24,20 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data;
|
||||
var monsterData = (Monster.Target as MonsterFF);
|
||||
|
||||
Attributes[GameAttribute.Level] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Level] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
if (world.SNO == WorldSno.x1_westmarch_overlook_d)
|
||||
{
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 0f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f;
|
||||
}
|
||||
WalkSpeed = 0.3f * monsterData.AttributeModifiers[129]; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise
|
||||
}
|
||||
|
||||
@ -1,9 +1,5 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
|
||||
@ -15,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public MysticNoVendor(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
}
|
||||
|
||||
protected override void ReadTags()
|
||||
@ -30,7 +26,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public TemplarNPC(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
}
|
||||
|
||||
protected override void ReadTags()
|
||||
|
||||
@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Field7 = 1;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,12 +23,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data;
|
||||
var monsterData = (Monster.Target as MonsterFF);
|
||||
|
||||
Attributes[GameAttribute.Level] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.2f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes[GameAttributes.Level] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.2f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f;
|
||||
WalkSpeed = 0.3f * monsterData.AttributeModifiers[129];
|
||||
}
|
||||
|
||||
|
||||
@ -23,12 +23,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data;
|
||||
var monsterData = (Monster.Target as MonsterFF);
|
||||
|
||||
Attributes[GameAttribute.Level] = 1;
|
||||
Attributes[GameAttribute.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f;
|
||||
Attributes[GameAttributes.Level] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Max] = 100000;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Attacks_Per_Second] = 1.0f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f;
|
||||
WalkSpeed = 0.3f * monsterData.AttributeModifiers[129]; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using DiIiS_NA.Core.Logging;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
|
||||
@ -15,7 +14,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
Field2 = 16;//16;
|
||||
Field7 = 0x00000001;
|
||||
CollFlags = 1; // this.CollFlags = 0; a hack for passing through blockers /fasbat
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = 1;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -14,11 +14,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public NephalemStone(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttribute.MinimapActive] = true;
|
||||
Attributes[GameAttribute.Untargetable] = false;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
Attributes[GameAttributes.MinimapActive] = true;
|
||||
Attributes[GameAttributes.Untargetable] = false;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
Attributes[GameAttribute.MinimapIconOverride] = 221224;//327066;
|
||||
Attributes[GameAttributes.MinimapIconOverride] = 221224;//327066;
|
||||
}
|
||||
|
||||
public override void OnTargeted(Player player, TargetMessage message)
|
||||
@ -31,7 +31,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
if (!base.Reveal(player))
|
||||
return false;
|
||||
|
||||
var animationTag = Attributes[GameAttribute.Untargetable] ? AnimationSetKeys.Open : AnimationSetKeys.IdleDefault;
|
||||
var animationTag = Attributes[GameAttributes.Untargetable] ? AnimationSetKeys.Open : AnimationSetKeys.IdleDefault;
|
||||
var animation = (AnimationSno)AnimationSet.TagMapAnimDefault[animationTag];
|
||||
PlayAnimation(5, animation);
|
||||
SetIdleAnimation(animation);
|
||||
|
||||
@ -5,10 +5,6 @@ using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
@ -76,7 +72,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
CollFlags = 0
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Deleted_On_Server] = true;
|
||||
Attributes[GameAttributes.Deleted_On_Server] = true;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
RelativeTickTimer destroy = new RelativeTickTimer(World.Game, duration, x => Destroy());
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
@ -13,14 +12,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public Rare(MapSystem.World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Hitpoints_Max] *= 5f;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total];
|
||||
Attributes[GameAttribute.Immune_To_Charm] = true;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 3.5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] *= 3.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
Attributes[GameAttributes.Hitpoints_Max] *= 5f;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total];
|
||||
Attributes[GameAttributes.Immune_To_Charm] = true;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 3.5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] *= 3.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f;
|
||||
Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f;
|
||||
Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f;
|
||||
|
||||
NamePrefix = MonsterAffixGenerator.GeneratePrefixName();
|
||||
NameSuffix = MonsterAffixGenerator.GenerateSuffixName();
|
||||
|
||||
@ -1,12 +1,9 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc;
|
||||
using System;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -15,10 +12,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public RareMinion(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.Hitpoints_Max] *= 3.0f;
|
||||
Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max];
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 1.5f;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] *= 1.5f;
|
||||
Attributes[GameAttributes.Hitpoints_Max] *= 3.0f;
|
||||
Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max];
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 1.5f;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] *= 1.5f;
|
||||
|
||||
//MonsterAffixGenerator.Generate(this, this.World.Game.Difficulty + 1);
|
||||
}
|
||||
|
||||
@ -1,16 +1,13 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.AISystem.Brains;
|
||||
using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.ItemsSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
|
||||
using System;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
{
|
||||
@ -21,7 +18,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
public Readable(World world, ActorSno sno, TagMap tags)
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
Attributes[GameAttribute.TeamID] = 1;
|
||||
Attributes[GameAttributes.TeamID] = 1;
|
||||
}
|
||||
|
||||
|
||||
@ -65,14 +62,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
}, this);
|
||||
|
||||
used = true;
|
||||
Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true;
|
||||
Attributes[GameAttribute.TeamID] = 2;
|
||||
Attributes[GameAttribute.Untargetable] = true;
|
||||
Attributes[GameAttribute.Operatable] = false;
|
||||
Attributes[GameAttribute.Operatable_Story_Gizmo] = false;
|
||||
Attributes[GameAttribute.Disabled] = true;
|
||||
Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true;
|
||||
Attributes[GameAttributes.TeamID] = 2;
|
||||
Attributes[GameAttributes.Untargetable] = true;
|
||||
Attributes[GameAttributes.Operatable] = false;
|
||||
Attributes[GameAttributes.Operatable_Story_Gizmo] = false;
|
||||
Attributes[GameAttributes.Disabled] = true;
|
||||
//this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID);
|
||||
Attributes[GameAttribute.Chest_Open, 0xFFFFFF] = true;
|
||||
Attributes[GameAttributes.Chest_Open, 0xFFFFFF] = true;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
|
||||
base.OnTargeted(player, message);
|
||||
|
||||
@ -2,10 +2,6 @@
|
||||
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
@ -30,15 +26,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations
|
||||
DamageMin = World.Game.MonsterLevel * 120f;
|
||||
|
||||
float DamageDelta = DamageMin * 0.3f * World.Game.DmgModifier;
|
||||
Attributes[GameAttribute.Damage_Weapon_Min, 0] = DamageMin * World.Game.DmgModifier;
|
||||
Attributes[GameAttribute.Damage_Weapon_Delta, 0] = DamageDelta;
|
||||
Attributes[GameAttributes.Damage_Weapon_Min, 0] = DamageMin * World.Game.DmgModifier;
|
||||
Attributes[GameAttributes.Damage_Weapon_Delta, 0] = DamageDelta;
|
||||
|
||||
Attributes[GameAttribute.Team_Override] = 2;
|
||||
Attributes[GameAttribute.Untargetable] = true;
|
||||
Attributes[GameAttribute.NPC_Is_Operatable] = false;
|
||||
Attributes[GameAttribute.Operatable] = false;
|
||||
Attributes[GameAttribute.Operatable_Story_Gizmo] = false;
|
||||
Attributes[GameAttribute.Immunity] = true;
|
||||
Attributes[GameAttributes.Team_Override] = 2;
|
||||
Attributes[GameAttributes.Untargetable] = true;
|
||||
Attributes[GameAttributes.NPC_Is_Operatable] = false;
|
||||
Attributes[GameAttributes.Operatable] = false;
|
||||
Attributes[GameAttributes.Operatable_Story_Gizmo] = false;
|
||||
Attributes[GameAttributes.Immunity] = true;
|
||||
Attributes.BroadcastChangedIfRevealed();
|
||||
}
|
||||
|
||||
|
||||
@ -42,9 +42,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
|
||||
AnimationSNO = AnimationSetKeys.Open.ID
|
||||
}, this);
|
||||
|
||||
Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true;
|
||||
Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true;
|
||||
//this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID);
|
||||
Attributes[GameAttribute.Gizmo_State] = 1;
|
||||
Attributes[GameAttributes.Gizmo_State] = 1;
|
||||
CollFlags = 0;
|
||||
isOpened = true;
|
||||
|
||||
@ -53,11 +53,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
|
||||
|
||||
public override void OnTargeted(Player player, TargetMessage message)
|
||||
{
|
||||
if (Attributes[GameAttribute.Disabled]) return;
|
||||
if (Attributes[GameAttributes.Disabled]) return;
|
||||
Open();
|
||||
|
||||
base.OnTargeted(player, message);
|
||||
Attributes[GameAttribute.Disabled] = true;
|
||||
Attributes[GameAttributes.Disabled] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,10 +3,7 @@ using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.LoginServer.Toons;
|
||||
using System.Drawing;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
|
||||
{
|
||||
@ -29,7 +26,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
|
||||
{
|
||||
CollFlags = 1;
|
||||
WalkSpeed = 0;
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
//this.Attributes[GameAttribute.MinimapIconOverride] = 120356;
|
||||
}
|
||||
|
||||
|
||||
@ -6,11 +6,6 @@ using DiIiS_NA.GameServer.MessageSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
|
||||
using DiIiS_NA.GameServer.MessageSystem.Message.Fields;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
|
||||
{
|
||||
@ -21,13 +16,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
|
||||
: base(world, sno, tags)
|
||||
{
|
||||
bool Activated = false;
|
||||
Attributes[GameAttribute.Team_Override] = (Activated ? -1 : 2);
|
||||
Attributes[GameAttribute.Untargetable] = !Activated;
|
||||
Attributes[GameAttribute.NPC_Is_Operatable] = Activated;
|
||||
Attributes[GameAttribute.Operatable] = Activated;
|
||||
Attributes[GameAttribute.Operatable_Story_Gizmo] = Activated;
|
||||
Attributes[GameAttribute.Disabled] = !Activated;
|
||||
Attributes[GameAttribute.Immunity] = !Activated;
|
||||
Attributes[GameAttributes.Team_Override] = (Activated ? -1 : 2);
|
||||
Attributes[GameAttributes.Untargetable] = !Activated;
|
||||
Attributes[GameAttributes.NPC_Is_Operatable] = Activated;
|
||||
Attributes[GameAttributes.Operatable] = Activated;
|
||||
Attributes[GameAttributes.Operatable_Story_Gizmo] = Activated;
|
||||
Attributes[GameAttributes.Disabled] = !Activated;
|
||||
Attributes[GameAttributes.Immunity] = !Activated;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,11 +2,6 @@
|
||||
using DiIiS_NA.GameServer.Core.Types.TagMap;
|
||||
using DiIiS_NA.GameServer.GSSystem.MapSystem;
|
||||
using DiIiS_NA.GameServer.MessageSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
|
||||
{
|
||||
@ -19,7 +14,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects
|
||||
Field2 = 0x8;
|
||||
CollFlags = 0;
|
||||
WalkSpeed = 0;
|
||||
Attributes[GameAttribute.Invulnerable] = true;
|
||||
Attributes[GameAttributes.Invulnerable] = true;
|
||||
//Logger.Debug("Jondar, tagSNO: {0}", tags[MarkerKeys.OnActorSpawnedScript].Id);
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
user.block.title