示例#1
0
        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;
        }
示例#2
0
        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);
        }
示例#3
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);
        }