public Hero(GameClient client, Universe universe, Toon toon) { this.InGameClient = client; this.Universe = universe; this.Properties = toon; this.CurrentWorldSNO = 0x115EE; // actor values this.Id = 0x789E00E2; this.SnoId = this.ClassSNO; this.WorldId = 0x772E0000; this.Field2 = 0x00000009; this.Field3 = 0x00000000; this.Scale = ModelScale; this.RotationAmount = 0.05940768f; this.RotationAxis = new Vector3D(0f, 0f, 0.9982339f); this.Position.X = 3143.75f; this.Position.Y = 2828.75f; this.Position.Z = 59.075588f; this.GBHandle = new GBHandle() { Field0 = 0x00000007, Field1 = this.Properties.ClassID, }; this.Field7 = -1; this.Field8 = -1; this.Field9 = 0x00000000; this.Field10 = 0x0; }
// // GameEncounterPoint // public EncounterPoint(World world, GameClient client, Type monsterType, int numMonsters, Vector3D position) { ObjectIdsSpawned = new List<Monster>(); _client = client; numMonsters += RandomHelper.Next(3); for (int i = 0; i < numMonsters; i++) { // Allocate the monster with the world. Monster monster = (Monster)world.SpawnNPC(monsterType); // Random spawn offset. float xpos = (float)(RandomHelper.NextDouble() * 20); float ypos = (float)(RandomHelper.NextDouble() * 20); // Init the monster and set the position with the randomized coordinates. monster.Init(_client.GetNextValidObjectID(), ref client); monster.SetPosition(position.Field0 + xpos, position.Field1 + ypos, position.Field2); // Spawn the monster. world.SpawnMob(client, monster.Position, monster); System.Threading.Thread.Sleep(15); // Required to not generate the same random value twice... ObjectIdsSpawned.Add(monster); } }
public void Tick(GameClient client) { if (Worlds == null) return; for (int i = 0; i < Worlds.Count; i++) { Worlds[i].Tick(client); } }
public void Consume(GameClient client, GameMessage message) { if (message is AssignActiveSkillMessage) OnAssignActiveSkill(client, (AssignActiveSkillMessage)message); else if (message is AssignPassiveSkillMessage) OnAssignPassiveSkill(client, (AssignPassiveSkillMessage)message); else if (message is PlayerChangeHotbarButtonMessage) OnPlayerChangeHotbarButtonMessage(client, (PlayerChangeHotbarButtonMessage)message); else return; UpdateClient(client); client.FlushOutgoingBuffer(); }
public static void OnConnect(object sender, ConnectionEventArgs e) { Logger.Trace("Game-Client connected: {0}", e.Connection.ToString()); // atm, just creating a universe - though clients should be able to join existing ones. var universe = new Universe(); Universes.Add(universe); var gameClient = new GameClient(e.Connection,universe); e.Connection.Client = gameClient; }
public void Route(GameClient client, GameMessage message) { switch(message.Consumer) { case Consumers.Universe: this.Consume(client, message); break; case Consumers.GameManager: this.GameManager.Consume(client, message); break; } }
public void Route(GameClient client, GameMessage message) { switch(message.Consumer) { case Consumers.Universe: this.Consume(client, message); break; case Consumers.PlayerManager: this.PlayerManager.Consume(client, message); break; case Consumers.Skillset: client.Player.Hero.Skillset.Consume(client, message); break; } }
public void OnNewPlayer(GameClient client, JoinBNetGameMessage message) { client.BnetClient = GameManager.AvailableGames[(ulong)message.GameId].Clients.FirstOrDefault(); if (client.BnetClient == null) { Logger.Warn("Couldn't find bnet client for joined client/player!"); return; } client.BnetClient.InGameClient = client; var player = new Player(client, this.Universe, client.BnetClient.CurrentToon); client.Player = player; this.Players.Add(player); player.Greet(message); }
public void OnNewPlayer(GameClient client, JoinBNetGameMessage message) { // a hackish way to get client.BnetClient in context -- pretends games has only one client in. when we're done with implementing bnet completely, will get this sorted out. /raist client.BnetClient = GameManager.AvailableGames[(ulong)message.GameId].Clients.FirstOrDefault(); if (client.BnetClient == null) { Logger.Warn("Couldn't find bnet client for joined client/player!"); return; } client.BnetClient.InGameClient = client; var player = new Player(client, this.Universe, client.BnetClient.CurrentToon); client.Player = player; this.Players.Add(player); player.Greet(message); }
public void Consume(GameClient client, GameMessage message) { if (message is TargetMessage) OnToonTargetChange(client, (TargetMessage)message); }
public void EnterPlayer(GameClient client) { var currentToon = client.Toon; Players.Add(currentToon); //initialize world entry point for player to the new character entry area for now currentToon.CurrentWorldID = 0x772E0000; currentToon.CurrentWorldSNO = 0x115EE; currentToon.PosX = 2477.483f; currentToon.PosY = 2835.02954f; currentToon.PosZ = 27.1000023f; //reveal world to the toon World w = GetWorld(currentToon.CurrentWorldID); if (w != null) { w.RevealWorld(currentToon); } //handle world entry for player here, hardcoded version for now #region NewPlayer client.SendMessage(new NewPlayerMessage() { Id = 0x0031, Field0 = 0x00000000, //Party frame (0x00000000 hide, 0x00000001 show) Field1 = "", //Owner name? ToonName = currentToon.Name, Field3 = 0x00000002, //party frame class Field4 = 0x00000004, //party frame level snoActorPortrait = currentToon.ClassSNO, //party frame portrait Field6 = 0x00000001, #region HeroStateData Field7 = new HeroStateData() { Field0 = 0x00000000, Field1 = 0x00000000, Field2 = 0x00000000, Field3 = currentToon.Gender, Field4 = new PlayerSavedData() { #region HotBarButtonData Field0 = new HotbarButtonData[9] { new HotbarButtonData() { m_snoPower = 0x000176C4, m_gbidItem = -1, }, new HotbarButtonData() { m_snoPower = 0x00007780, m_gbidItem = -1, }, new HotbarButtonData() { m_snoPower = -1, m_gbidItem = -1, }, new HotbarButtonData() { m_snoPower = 0x00007780, m_gbidItem = -1, }, new HotbarButtonData() { m_snoPower = 0x000216FA, m_gbidItem = -1, }, new HotbarButtonData() { m_snoPower = -1, m_gbidItem = -1, }, new HotbarButtonData() { m_snoPower = -1, m_gbidItem = -1, }, new HotbarButtonData() { m_snoPower = -1, m_gbidItem = -1, }, new HotbarButtonData() { m_snoPower = -1, m_gbidItem = 0x622256D4, }, }, #endregion #region SkillKeyMapping Field1 = new SkillKeyMapping[15] { new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, }, #endregion Field2 = 0x00000000, Field3 = 0x00000001, #region HirelingSavedData Field4 = new HirelingSavedData() { Field0 = new HirelingInfo[4] { new HirelingInfo() { Field0 = 0x00000000, Field1 = -1, Field2 = 0x00000000, Field3 = 0x00000000, Field4 = false, Field5 = -1, Field6 = -1, Field7 = -1, Field8 = -1, }, new HirelingInfo() { Field0 = 0x00000000, Field1 = -1, Field2 = 0x00000000, Field3 = 0x00000000, Field4 = false, Field5 = -1, Field6 = -1, Field7 = -1, Field8 = -1, }, new HirelingInfo() { Field0 = 0x00000000, Field1 = -1, Field2 = 0x00000000, Field3 = 0x00000000, Field4 = false, Field5 = -1, Field6 = -1, Field7 = -1, Field8 = -1, }, new HirelingInfo() { Field0 = 0x00000000, Field1 = -1, Field2 = 0x00000000, Field3 = 0x00000000, Field4 = false, Field5 = -1, Field6 = -1, Field7 = -1, Field8 = -1, }, }, Field1 = 0x00000000, Field2 = 0x00000000, }, #endregion Field5 = 0x00000000, #region LearnedLore Field6 = new LearnedLore() { Field0 = 0x00000000, m_snoLoreLearned = new int[256] { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, }, #endregion #region snoActiveSkills snoActiveSkills = new int[6] { 0x000176C4, 0x000216FA, -1, -1, -1, -1, }, #endregion #region snoTraits snoTraits = new int[3] { -1, -1, -1, }, #endregion #region SavePointData Field9 = new SavePointData() { snoWorld = -1, Field1 = -1, }, #endregion #region SeenTutorials m_SeenTutorials = new int[64] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, #endregion }, Field5 = 0x00000000, #region PlayerQuestRewardHistoryEntry tQuestRewardHistory = new PlayerQuestRewardHistoryEntry[0] { }, #endregion }, #endregion Field8 = false, //announce party join Field9 = 0x00000001, Field10 = 0x789E00E2, }); #endregion Console.WriteLine("Positioning character at " + currentToon.PosX + " " + currentToon.PosY + " " + currentToon.PosZ); #region ACDEnterKnown 0x789E00E2 PlayerId?? client.SendMessage(new ACDEnterKnownMessage() { Id = 0x003B, Field0 = 0x789E00E2, Field1 = currentToon.ClassSNO, //Player model? Field2 = 0x00000009, Field3 = 0x00000000, Field4 = new WorldLocationMessageData() { Field0 = 1.43f, Field1 = new PRTransform() { Field0 = new Quaternion() { Field0 = 0.05940768f, Field1 = new Vector3D() { Field0 = 0f, Field1 = 0f, Field2 = 0.9982339f, }, }, Field1 = new Vector3D() { Field0 = currentToon.PosX, Field1 = currentToon.PosY, Field2 = currentToon.PosZ, }, }, Field2 = currentToon.CurrentWorldID, }, Field5 = null, Field6 = new GBHandle() { Field0 = 0x00000007, Field1 = currentToon.ClassID, }, Field7 = -1, Field8 = -1, Field9 = 0x00000000, Field10 = 0x00, }); client.SendMessage(new ACDCollFlagsMessage() { Id = 0x00A6, Field0 = 0x789E00E2, Field1 = 0x00000000, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x01F8], // SkillKit Int = currentToon.SkillKit, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x00033C40, Attribute = GameAttribute.Attributes[0x01CC], // Buff_Active Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x00007545, Attribute = GameAttribute.Attributes[0x0041], // Skill Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x00007545, Attribute = GameAttribute.Attributes[0x0042], // Skill_Total Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x00000226, Attribute = GameAttribute.Attributes[0x003E], // Resistance_Total Int = 0x00000000, Float = 0.5f, }, new NetAttributeKeyValue() { Field0 = 0x00000226, Attribute = GameAttribute.Attributes[0x003C], // Resistance Int = 0x00000000, Float = 0.5f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00D7], // Immobolize Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00D6], // Untargetable Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000076B7, Attribute = GameAttribute.Attributes[0x0042], // Skill_Total Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000076B7, Attribute = GameAttribute.Attributes[0x0041], // Skill Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000006DF, Attribute = GameAttribute.Attributes[0x0041], // Skill Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x0000CE11, Attribute = GameAttribute.Attributes[0x01CC], // Buff_Active Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x01D2], // CantStartDisplayedPowers Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000216FA, Attribute = GameAttribute.Attributes[0x0042], // Skill_Total Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000176C4, Attribute = GameAttribute.Attributes[0x0041], // Skill Int = 0x00000001, Float = 0f, }, }, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue() { Field0 = 0x000216FA, Attribute = GameAttribute.Attributes[0x0041], // Skill Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000176C4, Attribute = GameAttribute.Attributes[0x0042], // Skill_Total Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000006DF, Attribute = GameAttribute.Attributes[0x0042], // Skill_Total Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000000DE, Attribute = GameAttribute.Attributes[0x003C], // Resistance Int = 0x00000000, Float = 0.5f, }, new NetAttributeKeyValue() { Field0 = 0x000000DE, Attribute = GameAttribute.Attributes[0x003E], // Resistance_Total Int = 0x00000000, Float = 0.5f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00C8], // Get_Hit_Recovery Int = 0x00000000, Float = 6f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00C7], // Get_Hit_Recovery_Per_Level Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00C6], // Get_Hit_Recovery_Base Int = 0x00000000, Float = 5f, }, new NetAttributeKeyValue() { Field0 = 0x00007780, Attribute = GameAttribute.Attributes[0x0041], // Skill Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00C5], // Get_Hit_Max Int = 0x00000000, Float = 60f, }, new NetAttributeKeyValue() { Field0 = 0x00007780, Attribute = GameAttribute.Attributes[0x0042], // Skill_Total Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00C4], // Get_Hit_Max_Per_Level Int = 0x00000000, Float = 10f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00C3], // Get_Hit_Max_Base Int = 0x00000000, Float = 50f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x003E], // Resistance_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000001, Attribute = GameAttribute.Attributes[0x003E], // Resistance_Total Int = 0x00000000, Float = 3.051758E-05f, }, }, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue() { Field0 = 0x00000002, Attribute = GameAttribute.Attributes[0x003E], // Resistance_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000003, Attribute = GameAttribute.Attributes[0x003E], // Resistance_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000004, Attribute = GameAttribute.Attributes[0x003E], // Resistance_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000005, Attribute = GameAttribute.Attributes[0x003E], // Resistance_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000006, Attribute = GameAttribute.Attributes[0x003E], // Resistance_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00BE], // Dodge_Rating_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x02BA], // IsTrialActor Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000FFFFF, Attribute = GameAttribute.Attributes[0x01B9], // Buff_Visual_Effect Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x00A8], // Crit_Percent_Cap Int = 0x3F400000, Float = 0f, }, new NetAttributeKeyValue() { Field0 = currentToon.ResourceID, Attribute = GameAttribute.Attributes[0x005E], // Resource_Cur Int = 0x43480000, Float = 0f, }, new NetAttributeKeyValue() { Field0 = currentToon.ResourceID, Attribute = GameAttribute.Attributes[0x005F], // Resource_Max Int = 0x00000000, Float = 200f, }, new NetAttributeKeyValue() { Field0 = currentToon.ResourceID, Attribute = GameAttribute.Attributes[0x0061], // Resource_Max_Total Int = 0x43480000, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x009D], // Damage_Weapon_Min_Total_All Int = 0x00000000, Float = 2f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0099], // Damage_Weapon_Delta_Total_All Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Field0 = currentToon.ResourceID, Attribute = GameAttribute.Attributes[0x0068], // Resource_Regen_Total Int = 0x00000000, Float = 3.051758E-05f, }, }, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue() { Field0 = currentToon.ResourceID, Attribute = GameAttribute.Attributes[0x006B], // Resource_Effective_Max Int = 0x00000000, Float = 200f, }, new NetAttributeKeyValue() { Field0 = 0x000FFFFF, Attribute = GameAttribute.Attributes[0x0092], // Damage_Min_Subtotal Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x000FFFFF, Attribute = GameAttribute.Attributes[0x0091], // Damage_Min_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x000FFFFF, Attribute = GameAttribute.Attributes[0x0190], // Damage_Weapon_Min_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x018F], // Attacks_Per_Second_Item_CurrentHand Int = 0x00000000, Float = 1.199219f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0189], // Attacks_Per_Second_Item_Total_MainHand Int = 0x00000000, Float = 1.199219f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0089], // Attacks_Per_Second_Total Int = 0x00000000, Float = 1.199219f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0087], // Attacks_Per_Second Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0187], // Attacks_Per_Second_Item_MainHand Int = 0x00000000, Float = 1.199219f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0086], // Attacks_Per_Second_Item_Total Int = 0x00000000, Float = 1.199219f, }, new NetAttributeKeyValue() { Field0 = 0x00033C40, Attribute = GameAttribute.Attributes[0x01BE], // Buff_Icon_End_Tick0 Int = 0x000003FB, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0084], // Attacks_Per_Second_Item_Subtotal Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0082], // Attacks_Per_Second_Item Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00033C40, Attribute = GameAttribute.Attributes[0x01BA], // Buff_Icon_Start_Tick0 Int = 0x00000077, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0081], // Hit_Chance Int = 0x00000000, Float = 1f, }, }, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x007F], // Casting_Speed_Total Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x007D], // Casting_Speed Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x007B], // Movement_Scalar_Total Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Field0 = 0x0002EC66, Attribute = GameAttribute.Attributes[0x0042], // Skill_Total Int = 0x00000000, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0079], // Movement_Scalar_Capped_Total Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0078], // Movement_Scalar_Subtotal Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0076], // Strafing_Rate_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0075], // Sprinting_Rate_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0074], // Running_Rate_Total Int = 0x00000000, Float = 0.3598633f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x018B], // Damage_Weapon_Min_Total_MainHand Int = 0x00000000, Float = 2f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0073], // Walking_Rate_Total Int = 0x00000000, Float = 0.2797852f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x018D], // Damage_Weapon_Delta_Total_MainHand Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Field0 = 0x00000001, Attribute = GameAttribute.Attributes[0x008E], // Damage_Delta_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000002, Attribute = GameAttribute.Attributes[0x008E], // Damage_Delta_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000003, Attribute = GameAttribute.Attributes[0x008E], // Damage_Delta_Total Int = 0x00000000, Float = 3.051758E-05f, }, }, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue() { Field0 = 0x00000004, Attribute = GameAttribute.Attributes[0x008E], // Damage_Delta_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000005, Attribute = GameAttribute.Attributes[0x008E], // Damage_Delta_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000006, Attribute = GameAttribute.Attributes[0x008E], // Damage_Delta_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x008E], // Damage_Delta_Total Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0070], // Running_Rate Int = 0x00000000, Float = 0.3598633f, }, new NetAttributeKeyValue() { Field0 = 0x00000001, Attribute = GameAttribute.Attributes[0x0190], // Damage_Weapon_Min_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000002, Attribute = GameAttribute.Attributes[0x0190], // Damage_Weapon_Min_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000003, Attribute = GameAttribute.Attributes[0x0190], // Damage_Weapon_Min_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000004, Attribute = GameAttribute.Attributes[0x0190], // Damage_Weapon_Min_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000005, Attribute = GameAttribute.Attributes[0x0190], // Damage_Weapon_Min_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000006, Attribute = GameAttribute.Attributes[0x0190], // Damage_Weapon_Min_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x0190], // Damage_Weapon_Min_Total_CurrentHand Int = 0x00000000, Float = 2f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x006F], // Walking_Rate Int = 0x00000000, Float = 0.2797852f, }, new NetAttributeKeyValue() { Field0 = 0x00000001, Attribute = GameAttribute.Attributes[0x0091], // Damage_Min_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000002, Attribute = GameAttribute.Attributes[0x0091], // Damage_Min_Total Int = 0x00000000, Float = 3.051758E-05f, }, }, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue() { Field0 = 0x00000003, Attribute = GameAttribute.Attributes[0x0091], // Damage_Min_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000004, Attribute = GameAttribute.Attributes[0x0091], // Damage_Min_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000005, Attribute = GameAttribute.Attributes[0x0091], // Damage_Min_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000006, Attribute = GameAttribute.Attributes[0x0091], // Damage_Min_Total Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000001, Attribute = GameAttribute.Attributes[0x0191], // Damage_Weapon_Delta_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000002, Attribute = GameAttribute.Attributes[0x0191], // Damage_Weapon_Delta_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000003, Attribute = GameAttribute.Attributes[0x0191], // Damage_Weapon_Delta_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000004, Attribute = GameAttribute.Attributes[0x0191], // Damage_Weapon_Delta_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000005, Attribute = GameAttribute.Attributes[0x0191], // Damage_Weapon_Delta_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000006, Attribute = GameAttribute.Attributes[0x0191], // Damage_Weapon_Delta_Total_CurrentHand Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x0091], // Damage_Min_Total Int = 0x00000000, Float = 2f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x0191], // Damage_Weapon_Delta_Total_CurrentHand Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x006E], // Movement_Scalar Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Field0 = 0x00000001, Attribute = GameAttribute.Attributes[0x0092], // Damage_Min_Subtotal Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000002, Attribute = GameAttribute.Attributes[0x0092], // Damage_Min_Subtotal Int = 0x00000000, Float = 3.051758E-05f, }, }, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue() { Field0 = 0x00000003, Attribute = GameAttribute.Attributes[0x0092], // Damage_Min_Subtotal Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000004, Attribute = GameAttribute.Attributes[0x0092], // Damage_Min_Subtotal Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000005, Attribute = GameAttribute.Attributes[0x0092], // Damage_Min_Subtotal Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000006, Attribute = GameAttribute.Attributes[0x0092], // Damage_Min_Subtotal Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x0092], // Damage_Min_Subtotal Int = 0x00000000, Float = 2f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x0094], // Damage_Weapon_Delta Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x0095], // Damage_Weapon_Delta_SubTotal Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x0096], // Damage_Weapon_Max Int = 0x00000000, Float = 3f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x0097], // Damage_Weapon_Max_Total Int = 0x00000000, Float = 3f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x0098], // Damage_Weapon_Delta_Total Int = 0x00000000, Float = 1f, }, new NetAttributeKeyValue() { Field0 = 0x0000CE11, Attribute = GameAttribute.Attributes[0x027B], // Trait Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x009B], // Damage_Weapon_Min Int = 0x00000000, Float = 2f, }, new NetAttributeKeyValue() { Field0 = 0x00000000, Attribute = GameAttribute.Attributes[0x009C], // Damage_Weapon_Min_Total Int = 0x00000000, Float = 2f, }, new NetAttributeKeyValue() { Field0 = 0x0000CE11, Attribute = GameAttribute.Attributes[0x0041], // Skill Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x0000CE11, Attribute = GameAttribute.Attributes[0x0042], // Skill_Total Int = 0x00000001, Float = 0f, }, }, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x005C], // Resource_Type_Primary Int = currentToon.ResourceID, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0056], // Hitpoints_Max_Total Int = 0x00000000, Float = 76f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0054], // Hitpoints_Max Int = 0x00000000, Float = 40f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0051], // Hitpoints_Total_From_Level Int = 0x00000000, Float = 3.051758E-05f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0050], // Hitpoints_Total_From_Vitality Int = 0x00000000, Float = 36f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x004F], // Hitpoints_Factor_Vitality Int = 0x00000000, Float = 4f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x004E], // Hitpoints_Factor_Level Int = 0x00000000, Float = 4f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x004D], // Hitpoints_Cur Int = 0x00000000, Float = 76f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x024C], // Disabled Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0046], // Loading Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0045], // Invulnerable Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0043], // TeamID Int = 0x00000002, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000FFFFF, Attribute = GameAttribute.Attributes[0x0042], // Skill_Total Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x000FFFFF, Attribute = GameAttribute.Attributes[0x0041], // Skill Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Field0 = 0x0000CE11, Attribute = GameAttribute.Attributes[0x0230], // Buff_Icon_Count0 Int = 0x00000001, Float = 0f, }, }, }); client.SendMessage(new AttributesSetValuesMessage() { Id = 0x004D, Field0 = 0x789E00E2, atKeyVals = new NetAttributeKeyValue[14] { new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x012C], // Hidden Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0027], // Level_Cap Int = 0x0000000D, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0026], // Level Int = currentToon.Level, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0022], // Experience_Next Int = 0x000004B0, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0021], // Experience_Granted Int = 0x000003E8, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0020], // Armor_Total Int = 0x00000000, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x000C], // Defense Int = 0x00000000, Float = 10f, }, new NetAttributeKeyValue() { Field0 = 0x00033C40, Attribute = GameAttribute.Attributes[0x0230], // Buff_Icon_Count0 Int = 0x00000001, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x000B], // Vitality Int = 0x00000000, Float = 9f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x000A], // Precision Int = 0x00000000, Float = 11f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0009], // Attack Int = 0x00000000, Float = 10f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0008], // Shared_Stash_Slots Int = 0x0000000E, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0007], // Backpack_Slots Int = 0x0000003C, Float = 0f, }, new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x0103], // General_Cooldown Int = 0x00000000, Float = 0f, }, }, }); client.SendMessage(new ACDGroupMessage() { Id = 0x00B8, Field0 = 0x789E00E2, Field1 = -1, Field2 = -1, }); client.SendMessage(new ANNDataMessage() { Id = 0x003E, Field0 = 0x789E00E2, }); client.SendMessage(new ACDTranslateFacingMessage() { Id = 0x0070, Field0 = 0x789E00E2, Field1 = 3.022712f, Field2 = false, }); client.SendMessage(new PlayerEnterKnownMessage() { Id = 0x003D, Field0 = 0x00000000, Field1 = 0x789E00E2, }); client.SendMessage(new VisualInventoryMessage() { Id = 0x004E, Field0 = 0x789E00E2, Field1 = new VisualEquipment() { Field0 = new VisualItem[8] { new VisualItem() //Head { Field0 = currentToon.Equipment.VisualItemList[0].Gbid, Field1 = 0x00000000, Field2 = 0x00000000, Field3 = -1, }, new VisualItem() //Chest { Field0 = currentToon.Equipment.VisualItemList[1].Gbid, Field1 = 0x00000000, Field2 = 0x00000000, Field3 = -1, }, new VisualItem() //Feet { Field0 = currentToon.Equipment.VisualItemList[2].Gbid, Field1 = 0x00000000, Field2 = 0x00000000, Field3 = -1, }, new VisualItem() //Hands { Field0 = currentToon.Equipment.VisualItemList[3].Gbid, Field1 = 0x00000000, Field2 = 0x00000000, Field3 = -1, }, new VisualItem() //Main hand { Field0 = currentToon.Equipment.VisualItemList[4].Gbid, Field1 = 0x00000000, Field2 = 0x00000000, Field3 = -1, }, new VisualItem() //Offhand { Field0 = currentToon.Equipment.VisualItemList[5].Gbid, Field1 = 0x00000000, Field2 = 0x00000000, Field3 = -1, }, new VisualItem() //Shoulders { Field0 = currentToon.Equipment.VisualItemList[6].Gbid, Field1 = 0x00000000, Field2 = 0x00000000, Field3 = -1, }, new VisualItem() //Legs { Field0 = currentToon.Equipment.VisualItemList[7].Gbid, Field1 = 0x00000000, Field2 = 0x00000000, Field3 = -1, }, }, }, }); client.SendMessage(new PlayerActorSetInitialMessage() { Id = 0x0039, Field0 = 0x789E00E2, Field1 = 0x00000000, }); client.SendMessage(new SNONameDataMessage() { Id = 0x00D3, Field0 = new SNOName() { Field0 = 0x00000001, Field1 = currentToon.ClassSNO, }, }); #endregion currentToon.Owner.LoggedInBNetClient.InGameClient.FlushOutgoingBuffer(); client.SendMessage(new DWordDataMessage() // TICK { Id = 0x0089, Field0 = 0x00000077, }); currentToon.Owner.LoggedInBNetClient.InGameClient.FlushOutgoingBuffer(); client.SendMessage(new AttributeSetValueMessage() { Id = 0x004C, Field0 = 0x789E00E2, Field1 = new NetAttributeKeyValue() { Attribute = GameAttribute.Attributes[0x005B], // Hitpoints_Healed_Target Int = 0x00000000, Float = 76f, }, }); client.SendMessage(new DWordDataMessage() // TICK { Id = 0x0089, Field0 = 0x0000007D, }); }
public void SpawnMob(GameClient Game, Vector3D position, Monster monster) { int nId = monster.SpawnID; int objectId = monster.ID; #region ACDEnterKnown Hittable Zombie Game.SendMessage(new ACDEnterKnownMessage() { Id = 0x003B, Field0 = objectId, Field1 = nId, Field2 = 0x8, Field3 = 0x0, Field4 = new WorldLocationMessageData() { Field0 = 1.35f, Field1 = new PRTransform() { Field0 = new Quaternion() { Field0 = 0.768145f, Field1 = new Vector3D() { Field0 = 0f, Field1 = 0f, Field2 = -0.640276f, }, }, Field1 = new Vector3D() { Field0 = position.Field0 + 5, Field1 = position.Field1 + 5, Field2 = position.Field2, }, }, Field2 = 0x772E0000, }, Field5 = null, Field6 = new GBHandle() { Field0 = 1, Field1 = 1, }, Field7 = 0x00000001, Field8 = nId, Field9 = 0x0, Field10 = 0x0, Field11 = 0x0, Field12 = 0x0, Field13 = 0x0 }); Game.SendMessage(new AffixMessage() { Id = 0x48, Field0 = objectId, Field1 = 0x1, aAffixGBIDs = new int[0] }); Game.SendMessage(new AffixMessage() { Id = 0x48, Field0 = objectId, Field1 = 0x2, aAffixGBIDs = new int[0] }); Game.SendMessage(new ACDCollFlagsMessage { Id = 0xa6, Field0 = objectId, Field1 = 0x1 }); Game.SendMessage(new AttributesSetValuesMessage { Id = 0x4d, Field0 = objectId, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[214], Int = 0 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[464], Int = 1 }, new NetAttributeKeyValue { Field0 = 1048575, Attribute = GameAttribute.Attributes[441], Int = 1 }, new NetAttributeKeyValue { Field0 = 30582, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30286, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30285, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30284, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30283, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30290, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 79486, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30286, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30285, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30284, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30283, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30290, Attribute = GameAttribute.Attributes[460], Int = 1 } } }); Game.SendMessage(new AttributesSetValuesMessage { Id = 0x4d, Field0 = objectId, atKeyVals = new NetAttributeKeyValue[9] { new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[86], Float = 100.0f }, new NetAttributeKeyValue { Field0 = 79486, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[84], Float = 100.0f }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[81], Int = 0 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[77], Float = 100.0f }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[69], Int = 1 }, new NetAttributeKeyValue { Field0 = 30582, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[67], Int = 10 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[38], Int = 1 } } }); Game.SendMessage(new ACDGroupMessage { Id = 0xb8, Field0 = objectId, Field1 = unchecked((int)0xb59b8de4), Field2 = unchecked((int)0xffffffff) }); Game.SendMessage(new ANNDataMessage { Id = 0x3e, Field0 = objectId }); Game.SendMessage(new ACDTranslateFacingMessage { Id = 0x70, Field0 = objectId, Field1 = (float)(RandomHelper.NextDouble() * 2.0 * Math.PI), Field2 = false }); Game.SendMessage(new SetIdleAnimationMessage { Id = 0xa5, Field0 = objectId, Field1 = 0x11150 }); Game.SendMessage(new SNONameDataMessage { Id = 0xd3, Field0 = new SNOName { Field0 = 0x1, Field1 = nId } }); #endregion /* _client.packetId += 30 * 2; Game.SendMessage(new DWordDataMessage() { Id = 0x89, Field0 = _client.packetId, }); _client.tick += 20; Game.SendMessage(new EndOfTickMessage() { Id = 0x008D, Field0 = _client.tick - 20, Field1 = _client.tick }); * */ }
public void SpawnMob(GameClient client, int mobId) // this shoudn't even rely on client or it's position though i know this is just a hack atm ;) /raist. { int nId = mobId; if (client.Position == null) return; if (client.ObjectIdsSpawned == null) { client.ObjectIdsSpawned = new List<int>(); client.ObjectIdsSpawned.Add(client.ObjectId - 100); client.ObjectIdsSpawned.Add(client.ObjectId); } client.ObjectId++; client.ObjectIdsSpawned.Add(client.ObjectId); #region ACDEnterKnown Hittable Zombie client.SendMessage(new ACDEnterKnownMessage() { Id = 0x003B, Field0 = client.ObjectId, Field1 = nId, Field2 = 0x8, Field3 = 0x0, Field4 = new WorldLocationMessageData() { Field0 = 1.35f, Field1 = new PRTransform() { Field0 = new Quaternion() { Field0 = 0.768145f, Field1 = new Vector3D() { Field0 = 0f, Field1 = 0f, Field2 = -0.640276f, }, }, Field1 = new Vector3D() { Field0 = client.Position.Field0 + 5, Field1 = client.Position.Field1 + 5, Field2 = client.Position.Field2, }, }, Field2 = 0x772E0000, }, Field5 = null, Field6 = new GBHandle() { Field0 = 1, Field1 = 1, }, Field7 = 0x00000001, Field8 = nId, Field9 = 0x0, Field10 = 0x0, Field11 = 0x0, Field12 = 0x0, Field13 = 0x0 }); client.SendMessage(new AffixMessage() { Id = 0x48, Field0 = client.ObjectId, Field1 = 0x1, aAffixGBIDs = new int[0] }); client.SendMessage(new AffixMessage() { Id = 0x48, Field0 = client.ObjectId, Field1 = 0x2, aAffixGBIDs = new int[0] }); client.SendMessage(new ACDCollFlagsMessage { Id = 0xa6, Field0 = client.ObjectId, Field1 = 0x1 }); client.SendMessage(new AttributesSetValuesMessage { Id = 0x4d, Field0 = client.ObjectId, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[214], Int = 0 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[464], Int = 1 }, new NetAttributeKeyValue { Field0 = 1048575, Attribute = GameAttribute.Attributes[441], Int = 1 }, new NetAttributeKeyValue { Field0 = 30582, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30286, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30285, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30284, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30283, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30290, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 79486, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30286, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30285, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30284, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30283, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30290, Attribute = GameAttribute.Attributes[460], Int = 1 } } }); client.SendMessage(new AttributesSetValuesMessage { Id = 0x4d, Field0 = client.ObjectId, atKeyVals = new NetAttributeKeyValue[9] { new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[86], Float = 4.546875f }, new NetAttributeKeyValue { Field0 = 79486, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[84], Float = 4.546875f }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[81], Int = 0 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[77], Float = 4.546875f }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[69], Int = 1 }, new NetAttributeKeyValue { Field0 = 30582, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[67], Int = 10 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[38], Int = 1 } } }); client.SendMessage(new ACDGroupMessage { Id = 0xb8, Field0 = client.ObjectId, Field1 = unchecked((int)0xb59b8de4), Field2 = unchecked((int)0xffffffff) }); client.SendMessage(new ANNDataMessage { Id = 0x3e, Field0 = client.ObjectId }); client.SendMessage(new ACDTranslateFacingMessage { Id = 0x70, Field0 = client.ObjectId, Field1 = (float)(RandomHelper.NextDouble() * 2.0 * Math.PI), Field2 = false }); client.SendMessage(new SetIdleAnimationMessage { Id = 0xa5, Field0 = client.ObjectId, Field1 = 0x11150 }); client.SendMessage(new SNONameDataMessage { Id = 0xd3, Field0 = new SNOName { Field0 = 0x1, Field1 = nId } }); #endregion client.PacketId += 30 * 2; client.SendMessage(new DWordDataMessage() { Id = 0x89, Field0 = client.PacketId, }); client.Tick += 20; client.SendMessage(new EndOfTickMessage() { Id = 0x008D, Field0 = client.Tick - 20, Field1 = client.Tick }); }
private void OnToonTargetChange(GameClient client, TargetMessage message) { if (message.Field1 == 0x77F20036) { this.EnterInn(client); return; } else if (client.ObjectIdsSpawned == null || !client.ObjectIdsSpawned.Contains(message.Field1)) return; client.ObjectIdsSpawned.Remove(message.Field1); var killAni = new int[]{ 0x2cd7, 0x2cd4, 0x01b378, 0x2cdc, 0x02f2, 0x2ccf, 0x2cd0, 0x2cd1, 0x2cd2, 0x2cd3, 0x2cd5, 0x01b144, 0x2cd6, 0x2cd8, 0x2cda, 0x2cd9 }; client.SendMessage(new PlayEffectMessage() { Id = 0x7a, Field0 = message.Field1, Field1 = 0x0, Field2 = 0x2, }); client.SendMessage(new PlayEffectMessage() { Id = 0x7a, Field0 = message.Field1, Field1 = 0xc, }); client.SendMessage(new PlayHitEffectMessage() { Id = 0x7b, Field0 = message.Field1, Field1 = 0x789E00E2, Field2 = 0x2, Field3 = false, }); client.SendMessage(new FloatingNumberMessage() { Id = 0xd0, Field0 = message.Field1, Field1 = 9001.0f, Field2 = 0, }); client.SendMessage(new ANNDataMessage() { Id = 0x6d, Field0 = message.Field1, }); int ani = killAni[RandomHelper.Next(killAni.Length)]; Logger.Info("Ani used: " + ani); client.SendMessage(new PlayAnimationMessage() { Id = 0x6c, Field0 = message.Field1, Field1 = 0xb, Field2 = 0, tAnim = new PlayAnimationMessageSpec[1] { new PlayAnimationMessageSpec() { Field0 = 0x2, Field1 = ani, Field2 = 0x0, Field3 = 1f } } }); client.PacketId += 10 * 2; client.SendMessage(new DWordDataMessage() { Id = 0x89, Field0 = client.PacketId, }); client.SendMessage(new ANNDataMessage() { Id = 0xc5, Field0 = message.Field1, }); client.SendMessage(new AttributeSetValueMessage { Id = 0x4c, Field0 = message.Field1, Field1 = new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[0x4d], Float = 0 } }); client.SendMessage(new AttributeSetValueMessage { Id = 0x4c, Field0 = message.Field1, Field1 = new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[0x1c2], Int = 1 } }); client.SendMessage(new AttributeSetValueMessage { Id = 0x4c, Field0 = message.Field1, Field1 = new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[0x1c5], Int = 1 } }); client.SendMessage(new PlayEffectMessage() { Id = 0x7a, Field0 = message.Field1, Field1 = 0xc, }); client.SendMessage(new PlayEffectMessage() { Id = 0x7a, Field0 = message.Field1, Field1 = 0x37, }); client.SendMessage(new PlayHitEffectMessage() { Id = 0x7b, Field0 = message.Field1, Field1 = 0x789E00E2, Field2 = 0x2, Field3 = false, }); client.PacketId += 10 * 2; client.SendMessage(new DWordDataMessage() { Id = 0x89, Field0 = client.PacketId, }); }
private void EnterInn(GameClient client) { client.SendMessage(new RevealWorldMessage() { Id = 0x037, Field0 = 0x772F0001, Field1 = 0x0001AB32, }); client.SendMessage(new WorldStatusMessage() { Id = 0x0B4, Field0 = 0x772F0001, Field1 = false, }); client.SendMessage(new EnterWorldMessage() { Id = 0x0033, Field0 = new Vector3D() { Field0 = 83.75f, Field1 = 123.75f, Field2 = 0.2000023f, }, Field1 = 0x772F0001, Field2 = 0x0001AB32, }); client.FlushOutgoingBuffer(); client.SendMessage(new RevealSceneMessage() { Id = 0x0034, WorldID = 0x772F0001, SceneSpec = new SceneSpecification() { Field0 = 0x00000000, Field1 = new IVector2D() { Field0 = 0x00000000, Field1 = 0x00000000, }, arSnoLevelAreas = new int[] { 0x0001AB91, unchecked((int)0xFFFFFFFF), unchecked((int)0xFFFFFFFF), unchecked((int)0xFFFFFFFF) }, snoPrevWorld = 0x000115EE, Field4 = 0x000000DF, snoPrevLevelArea = unchecked((int)0xFFFFFFFF), snoNextWorld = 0x00015348, Field7 = 0x000000AC, snoNextLevelArea = unchecked((int)0xFFFFFFFF), snoMusic = 0x000206F8, snoCombatMusic = unchecked((int)0xFFFFFFFF), snoAmbient = 0x0002C68A, snoReverb = 0x00021ABA, snoWeather = 0x00017869, snoPresetWorld = 0x0001AB32, Field15 = 0x00000000, Field16 = 0x00000000, Field17 = 0x00000000, Field18 = unchecked((int)0xFFFFFFFF), tCachedValues = new SceneCachedValues() { Field0 = 0x0000003F, Field1 = 0x00000060, Field2 = 0x00000060, Field3 = new AABB() { Field0 = new Vector3D() { Field0 = 120f, Field1 = 120f, Field2 = 26.61507f, }, Field1 = new Vector3D() { Field0 = 120f, Field1 = 120f, Field2 = 36.06968f, } }, Field4 = new AABB() { Field0 = new Vector3D() { Field0 = 120f, Field1 = 120f, Field2 = 26.61507f, }, Field1 = new Vector3D() { Field0 = 120f, Field1 = 120f, Field2 = 36.06968f, } }, Field5 = new int[] { 0x00000267, 0x00000000, 0x00000000, 0x00000000, }, Field6 = 0x00000001 } }, ChunkID = 0x78740120, snoScene = 0x0001AB2F, Position = new PRTransform() { Field0 = new Quaternion() { Field0 = 1f, Field1 = new Vector3D() { Field0 = 0f, Field1 = 0f, Field2 = 0f, } }, Field1 = new Vector3D() { Field0 = 0f, Field1 = 0f, Field2 = 0f, } }, ParentChunkID = unchecked((int)0xFFFFFFFF), snoSceneGroup = unchecked((int)0xFFFFFFFF), arAppliedLabels = new int[0] }); client.FlushOutgoingBuffer(); client.SendMessage(new MapRevealSceneMessage() { Id = 0x044, ChunkID = 0x78740120, snoScene = 0x0001AB2F, Field2 = new PRTransform() { Field0 = new Quaternion() { Field0 = 1f, Field1 = new Vector3D() { Field0 = 0f, Field1 = 0f, Field2 = 0f, } }, Field1 = new Vector3D() { Field0 = 0f, Field1 = 0f, Field2 = 0f, } }, Field3 = 0x772F0001, MiniMapVisibility = 0 }); client.FlushOutgoingBuffer(); client.SendMessage(new ACDEnterKnownMessage { Id = 0x3B, Field0 = 0x7A0800A2, Field1 = 0x0000157F, Field2 = 8, Field3 = 0, Field4 = new WorldLocationMessageData { Field0 = 1f, Field1 = new PRTransform { Field0 = new Quaternion { Field0 = 0.9909708f, Field1 = new Vector3D { Field0 = 0f, Field1 = 0f, Field2 = 0.1340775f } }, Field1 = new Vector3D { Field0 = 82.15131f, Field1 = 122.2867f, Field2 = 0.1000366f } }, Field2 = 0x772F0001 }, Field6 = new GBHandle { Field0 = -1, Field1 = unchecked((int)0xFFFFFFFF) }, Field7 = 0x00000001, Field8 = 0x0000157F, Field9 = 0, Field10 = 0x0, Field12 = 0x0001AB8C, Field13 = 0x00000000 }); client.FlushOutgoingBuffer(); client.SendMessage(new AffixMessage() { Id = 0x48, Field0 = 0x7A0800A2, Field1 = 1, aAffixGBIDs = new int[0] }); client.FlushOutgoingBuffer(); client.SendMessage(new AffixMessage() { Id = 0x48, Field0 = 0x7A0800A2, Field1 = 2, aAffixGBIDs = new int[0] }); client.FlushOutgoingBuffer(); client.SendMessage(new PlayerWarpedMessage() { Id = 0x0B1, Field0 = 9, Field1 = 0xf, }); client.FlushOutgoingBuffer(); client.SendMessage(new ACDWorldPositionMessage { Id = 0x3f, Field0 = 0x789E00E2, Field1 = new WorldLocationMessageData { Field0 = 1.43f, Field1 = new PRTransform { Field0 = new Quaternion { Field0 = 0.05940768f, Field1 = new Vector3D { Field0 = 0f, Field1 = 0f, Field2 = 0.9982339f, } }, Field1 = new Vector3D { Field0 = 82.15131f, Field1 = 122.2867f, Field2 = 0.1000366f } }, Field2 = 0x772F0001 } }); client.PacketId += 10 * 2; client.SendMessage(new DWordDataMessage() { Id = 0x89, Field0 = client.PacketId, }); client.FlushOutgoingBuffer(); }
public void Init(int objectId, ref GameClient g) { ID = objectId; Game = g; }
public void SendEncounters(GameClient client) { CreateEncounter(client, typeof(MonsterSkeleton), EncounterPoint.MedEncounter, 2504.14624f, 2864.31787f, 27.1f); CreateEncounter(client, typeof(MonsterSkeleton), EncounterPoint.MedEncounter, 2477.483f, 2835.02954f, 27.1000023f); }
private void OnAssignPassiveSkill(GameClient client, AssignPassiveSkillMessage message) { passiveSkills[message.Field1] = message.snoPower; }
public void ChangeToonWorld(GameClient client, int WorldID, Vector3D Pos) { Hero hero = client.Player.Hero; World newworld = null; //don't use getworld() here as that'd create a new empty world anyway foreach (var x in _worlds) if (x.WorldID == WorldID) newworld = x; World currentworld = null; //don't use getworld() here as that'd create a new empty world anyway foreach (var x in _worlds) if (x.WorldID == hero.WorldId) currentworld = x; if (newworld == null || currentworld==null) return; //don't go to a world we don't have in the universe currentworld.DestroyWorld(hero); hero.WorldId = newworld.WorldID; hero.CurrentWorldSNO = newworld.WorldSNO; hero.Position.X = Pos.X; hero.Position.Y = Pos.Y; hero.Position.Z = Pos.Z; newworld.Reveal(hero); client.SendMessage(new ACDWorldPositionMessage { Id = 0x3f, Field0 = 0x789E00E2, Field1 = new WorldLocationMessageData { Field0 = 1.43f, Field1 = new PRTransform { Field0 = new Quaternion { Amount = 0.05940768f, Axis = new Vector3D { X = 0f, Y = 0f, Z = 0.9982339f, } }, ReferencePoint = hero.Position, }, Field2 = newworld.WorldID, } }); client.FlushOutgoingBuffer(); client.SendMessage(new PlayerWarpedMessage() { Id = 0x0B1, Field0 = 9, Field1 = 0f, }); client.PacketId += 40 * 2; client.SendMessage(new DWordDataMessage() { Id = 0x89, Field0 = client.PacketId, }); client.FlushOutgoingBuffer(); }
public Hero(GameClient client, Universe universe, Toon toon) { RevealedWorlds = new List<World>(); RevealedScenes = new List<Scene>(); RevealedActors = new List<Actor>(); this.InGameClient = client; this.Universe = universe; this.Properties = toon; this.CurrentWorldSNO = 0x115EE; // actor values this.Id = 0x789E00E2; this.SnoId = this.ClassSNO; this.Field2 = 0x00000009; this.Field3 = 0x00000000; this.Scale = ModelScale; this.RotationAmount = 0.05940768f; this.RotationAxis = new Vector3D(0f, 0f, 0.9982339f); //initial world and position this.WorldId = 0x772E0000; //new char starter pos: this.Position.X = 3143.75f; this.Position.Y = 2828.75f; this.Position.Z = 59.075588f; //den of evil: //this.Position.X = 2526.250000f; //this.Position.Y = 2098.750000f; //this.Position.Z = -5.381495f; //inn: //this.Position.X = 2996.250000f; //this.Position.Y = 2793.750000f; //this.Position.Z = 24.045330f; // adrias hut //this.Position.X = 1768.750000f; //this.Position.Y = 2921.250000f; //this.Position.Z = 20.333143f; // cemetry of forsaken //this.Position.X = 2041.250000f; //this.Position.Y = 1778.750000f; //this.Position.Z = 0.426203f; //defiled crypt level 2 //this.WorldId = 2000289804; //this.Position.X = 158.750000f; //this.Position.Y = 76.250000f; //this.Position.Z = 0.100000f; this.GBHandle = new GBHandle() { Field0 = 0x00000007, Field1 = this.Properties.ClassID, }; this.Field7 = -1; this.Field8 = -1; this.Field9 = 0x00000000; this.Field10 = 0x0; }
public BasicNPC(int objectId, ref GameClient g) { ID = objectId; Client = g; //Game.SendMessage(new AffixMessage() //{ // Id = 0x48, // Field0 = objectId, // Field1 = 0x1, // aAffixGBIDs = new int[0] //}); //Game.SendMessage(new AffixMessage() //{ // Id = 0x48, // Field0 = objectId, // Field1 = 0x2, // aAffixGBIDs = new int[0] //}); //Game.SendMessage(new ACDCollFlagsMessage //{ // Id = 0xa6, // Field0 = objectId, // Field1 = 0x1 //}); Client.SendMessage(new AttributesSetValuesMessage { Id = 0x4d, Field0 = objectId, atKeyVals = new NetAttributeKeyValue[15] { new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[214], Int = 0 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[464], Int = 1 }, new NetAttributeKeyValue { Field0 = 1048575, Attribute = GameAttribute.Attributes[441], Int = 1 }, new NetAttributeKeyValue { Field0 = 30582, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30286, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30285, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30284, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30283, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30290, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 79486, Attribute = GameAttribute.Attributes[560], Int = 1 }, new NetAttributeKeyValue { Field0 = 30286, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30285, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30284, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30283, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Field0 = 30290, Attribute = GameAttribute.Attributes[460], Int = 1 } } }); Client.SendMessage(new AttributesSetValuesMessage { Id = 0x4d, Field0 = objectId, atKeyVals = new NetAttributeKeyValue[9] { new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[86], Float = 4.546875f }, new NetAttributeKeyValue { Field0 = 79486, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[84], Float = 4.546875f }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[81], Int = 0 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[77], Float = 4.546875f }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[69], Int = 1 }, new NetAttributeKeyValue { Field0 = 30582, Attribute = GameAttribute.Attributes[460], Int = 1 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[67], Int = 10 }, new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[38], Int = 1 } } }); //Game.SendMessage(new ACDGroupMessage //{ // Id = 0xb8, // Field0 = objectId, // Field1 = unchecked((int)0xb59b8de4), // Field2 = unchecked((int)0xffffffff) //}); //Game.SendMessage(new ANNDataMessage //{ // Id = 0x3e, // Field0 = objectId //}); //Game.SendMessage(new ACDTranslateFacingMessage //{ // Id = 0x70, // Field0 = objectId, // Field1 = (float)(RandomHelper.NextDouble() * 2.0 * Math.PI), // Field2 = false //}); //Game.SendMessage(new SetIdleAnimationMessage //{ // Id = 0xa5, // Field0 = objectId, // Field1 = 0x11150 //}); //Game.SendMessage(new SNONameDataMessage //{ // Id = 0xd3, // Field0 = new SNOName // { // Field0 = 0x1, // Field1 = 6652 // } //}); //Game.packetId += 30 * 2; //Game.SendMessage(new DWordDataMessage() //{ // Id = 0x89, // Field0 = Game.packetId, //}); //Game.tick += 20; //Game.SendMessage(new EndOfTickMessage() //{ // Id = 0x008D, // Field0 = Game.tick - 20, // Field1 = Game.tick //}); }
public void Tick(GameClient client) { bool updateTick = false; if (NPCs == null) return; foreach (BasicNPC npc in NPCs) { if (tick >= npc.nextThink) { updateTick = true; npc.Tick(); } } if (updateTick) { } tick++; }
private void OnToonTargetChange(GameClient client, TargetMessage message) { Logger.Info("Player interaction with " + message.AsText()); Portal p=GetPortal(message.Field1); if (p!=null) { //we have a transition between worlds here ChangeToonWorld(client, p.TargetWorldID, p.TargetPos); //targetpos will always be valid as otherwise the portal wouldn't be targetable return; } else if (client.ObjectIdsSpawned == null || !client.ObjectIdsSpawned.Contains(message.Field1)) return; client.ObjectIdsSpawned.Remove(message.Field1); var killAni = new int[]{ 0x2cd7, 0x2cd4, 0x01b378, 0x2cdc, 0x02f2, 0x2ccf, 0x2cd0, 0x2cd1, 0x2cd2, 0x2cd3, 0x2cd5, 0x01b144, 0x2cd6, 0x2cd8, 0x2cda, 0x2cd9 }; client.SendMessage(new PlayEffectMessage() { Id = 0x7a, Field0 = message.Field1, Field1 = 0x0, Field2 = 0x2, }); client.SendMessage(new PlayEffectMessage() { Id = 0x7a, Field0 = message.Field1, Field1 = 0xc, }); client.SendMessage(new PlayHitEffectMessage() { Id = 0x7b, Field0 = message.Field1, Field1 = 0x789E00E2, Field2 = 0x2, Field3 = false, }); client.SendMessage(new FloatingNumberMessage() { Id = 0xd0, Field0 = message.Field1, Field1 = 9001.0f, Field2 = 0, }); client.SendMessage(new ANNDataMessage() { Id = 0x6d, Field0 = message.Field1, }); int ani = killAni[RandomHelper.Next(killAni.Length)]; Logger.Info("Ani used: " + ani); client.SendMessage(new PlayAnimationMessage() { Id = 0x6c, Field0 = message.Field1, Field1 = 0xb, Field2 = 0, tAnim = new PlayAnimationMessageSpec[1] { new PlayAnimationMessageSpec() { Field0 = 0x2, Field1 = ani, Field2 = 0x0, Field3 = 1f } } }); client.PacketId += 10 * 2; client.SendMessage(new DWordDataMessage() { Id = 0x89, Field0 = client.PacketId, }); client.SendMessage(new ANNDataMessage() { Id = 0xc5, Field0 = message.Field1, }); client.SendMessage(new AttributeSetValueMessage { Id = 0x4c, Field0 = message.Field1, Field1 = new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[0x4d], Float = 0 } }); client.SendMessage(new AttributeSetValueMessage { Id = 0x4c, Field0 = message.Field1, Field1 = new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[0x1c2], Int = 1 } }); client.SendMessage(new AttributeSetValueMessage { Id = 0x4c, Field0 = message.Field1, Field1 = new NetAttributeKeyValue { Attribute = GameAttribute.Attributes[0x1c5], Int = 1 } }); client.SendMessage(new PlayEffectMessage() { Id = 0x7a, Field0 = message.Field1, Field1 = 0xc, }); client.SendMessage(new PlayEffectMessage() { Id = 0x7a, Field0 = message.Field1, Field1 = 0x37, }); client.SendMessage(new PlayHitEffectMessage() { Id = 0x7b, Field0 = message.Field1, Field1 = 0x789E00E2, Field2 = 0x2, Field3 = false, }); client.PacketId += 10 * 2; client.SendMessage(new DWordDataMessage() { Id = 0x89, Field0 = client.PacketId, }); }
public Player(GameClient client, Universe universe, Toon bnetToon) { this.Client = client; this.Universe = universe; this.Hero = new Hero(client, universe, bnetToon); }
public void UpdateClient(GameClient client) { client.SendMessage(new HeroStateMessage() { Id = 0x003A, Field0 = new HeroStateData() { Field0 = 0x00000000, Field1 = 0x00000000, Field2 = 0x00000000, Gender = client.BnetClient.CurrentToon.Gender, PlayerSavedData = new PlayerSavedData() { HotBarButtons = hotbarSkills, SkilKeyMappings = new SkillKeyMapping[15] { new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, new SkillKeyMapping() { Power = -1, Field1 = -1, Field2 = 0x00000000, }, }, Field2 = 0x00000000, Field3 = 0x00000001, Field4 = new HirelingSavedData() { HirelingInfos = new HirelingInfo[4] { new HirelingInfo() { Field0 = 0x00000000, Field1 = -1, Field2 = 0x00000000, Field3 = 0x00000000, Field4 = false, Field5 = -1, Field6 = -1, Field7 = -1, Field8 = -1, }, new HirelingInfo() { Field0 = 0x00000000, Field1 = -1, Field2 = 0x00000000, Field3 = 0x00000000, Field4 = false, Field5 = -1, Field6 = -1, Field7 = -1, Field8 = -1, }, new HirelingInfo() { Field0 = 0x00000000, Field1 = -1, Field2 = 0x00000000, Field3 = 0x00000000, Field4 = false, Field5 = -1, Field6 = -1, Field7 = -1, Field8 = -1, }, new HirelingInfo() { Field0 = 0x00000000, Field1 = -1, Field2 = 0x00000000, Field3 = 0x00000000, Field4 = false, Field5 = -1, Field6 = -1, Field7 = -1, Field8 = -1, }, }, Field1 = 0x00000000, Field2 = 0x00000000, }, Field5 = 0x00000000, LearnedLore = new LearnedLore() { Field0 = 0x00000000, m_snoLoreLearned = new int[256] { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, }, snoActiveSkills = activeSkills, snoTraits = passiveSkills, Field9 = new SavePointData() { snoWorld = -1, Field1 = -1, }, m_SeenTutorials = new int[64] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, }, Field5 = 0x00000000, tQuestRewardHistory = new PlayerQuestRewardHistoryEntry[0] { }, }, }); client.PacketId += 10 * 2; client.SendMessage(new DWordDataMessage() { Id = 0x89, Field0 = client.PacketId, }); }
private void CreateEncounter(GameClient client, Type type, int encounterSize, float x, float y, float z) { EncounterPoint encounter = new EncounterPoint(this, client, type, encounterSize, new Vector3D(x, y, z)); encounters.Add(encounter); }
private void OnPlayerChangeHotbarButtonMessage(GameClient client, PlayerChangeHotbarButtonMessage message) { hotbarSkills[message.Field0] = message.Field1; }
public void Consume(GameClient client, GameMessage message) { if (message is JoinBNetGameMessage) OnNewPlayer(client, (JoinBNetGameMessage)message); }
private void OnAssignActiveSkill(GameClient client, AssignActiveSkillMessage message) { foreach (HotbarButtonData button in hotbarSkills) { if (button.m_snoPower == activeSkills[message.Field1]) button.m_snoPower = message.snoPower; } activeSkills[message.Field1] = message.snoPower; }
public World(GameClient g) { Game = g; NPCs = new List<BasicNPC>(); }