public override void Init() { if (_init) { return; } Process process = Process.ThisProcess(); if (oCNpc.Player(process).MagBook.Address == 0) { oCMag_Book magBook = oCMag_Book.Create(process); oCNpc.Player(process).MagBook = magBook; magBook.SetOwner(oCNpc.Player(process)); } NPCSpawnMessage.Write(); StealContainer sc = new StealContainer(Process.ThisProcess()); sc.Enable(); pkm = PlayerKeyMessage.getPlayerKeyMessage(); _init = true; }
public static Int32 Spell_Invest(String message) { Process Process = Process.ThisProcess(); try { int address = Convert.ToInt32(message); oCMag_Book magBook = new oCMag_Book(Process, Process.ReadInt(address)); if (oCNpc.Player(Process).MagBook.Address == magBook.Address) { BitStream stream = Program.client.sentBitStream; stream.Reset(); stream.Write((byte)RakNet.DefaultMessageIDTypes.ID_USER_PACKET_ENUM); stream.Write((byte)NetworkID.SpellInvestMessage); stream.Write(Player.Hero.ID); Program.client.client.Send(stream, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, true); oCSpell spell = oCNpc.Player(Process).MagBook.GetSelectedSpell(); //zERROR.GetZErr(Process).Report(2, 'G', "Spell Invest: "+spell.Caster.ObjectName+"; "+spell.NPC.ObjectName+"; "+spell.Target.ObjectName, 0, "Program.cs", 0); } } catch (Exception ex) { zERROR.GetZErr(Process).Report(2, 'G', "Exception: " + ex.Message + " " + ex.StackTrace + " " + ex.Source, 0, "Program.cs", 0); } return(0); }
public static Int32 MagBook_Spell_Cast(String message) { try { Process process = Process.ThisProcess(); int address = Convert.ToInt32(message); oCMag_Book magBook = new oCMag_Book(process, process.ReadInt(address)); oCNpc player = oCNpc.Player(process); if (player.MagBook.Address != magBook.Address) { return(0); } //int spellID = player.GetActiveSpellNr(); oCSpell gSpell = magBook.GetSelectedSpell(); if (gSpell.Caster == null || gSpell.Caster.Address != player.Address) { return(0); } NPCProto caster = Player.Hero; Vob target = null; if (gSpell.Target != null && gSpell.Target.Address != 0) { sWorld.SpawnedVobDict.TryGetValue(gSpell.Target.Address, out target); } int castLevel = 0; Externals.npcProcessManaList.TryGetValue(player.Address, out castLevel); //Item: oCItem spellItem = magBook.GetSpellItem(magBook.GetSelectedSpellNr()); Vob spellI = null; sWorld.SpawnedVobDict.TryGetValue(spellItem.Address, out spellI); int itemID = 0; if (spellI != null && spellI is Item) { itemID = spellI.ID; } BitStream stream = Program.client.sentBitStream; stream.Reset(); stream.Write((byte)RakNet.DefaultMessageIDTypes.ID_USER_PACKET_ENUM); stream.Write((byte)NetworkID.CastSpell); stream.Write(itemID); stream.Write(caster.ID); if (target == null) { stream.Write(0); } else { stream.Write(target.ID); } stream.Write(gSpell.GetSpellID()); stream.Write(castLevel); Program.client.client.Send(stream, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, true); } catch (Exception ex) { zERROR.GetZErr(Process.ThisProcess()).Report(4, 'G', "Hook oCStartAnim_ModelAnim: " + ex.ToString(), 0, "Hooks.zCModelHook.cs", 0); } return(0); }