Example #1
0
        private static bool CheckIfNewSp(int Index_, ulong SEXP)
        {
            ulong tmpLong = Player.Stats[Index_].SkillpointBar + SEXP;

            if (tmpLong >= 400)
            {
                ulong tmpDiv = tmpLong / 400;
                Player.Stats[Index_].SkillpointBar = (ushort)(tmpLong - 400 * tmpDiv);
                Player.Stats[Index_].Skillpoints  += (ushort)tmpDiv;
                Mastery.SPUpdate(Index_);
                return(true);
            }
            else
            {
                Player.Stats[Index_].SkillpointBar += (ushort)SEXP;
                return(false);
            }
        }
Example #2
0
        unsafe public static void ProcessData(byte[] buffer, int Index)
        {
            reader = new PacketReader(buffer, buffer.Length);
            reader.ModifyIndex(6);

            TPacket *tmpPacket = Silkroad.ToTPacket(buffer);

            if (debug)
            {
                Console.WriteLine("[ProcessData][{0:X}][{1} bytes][Index {2}]\n{3}\n", tmpPacket->opcode, tmpPacket->size, Index, BitConverter.ToString(buffer, 6, tmpPacket->size).Replace('-', ' '));
            }

            //Console.WriteLine("{0}", tmpPacket->opcode);

            switch (tmpPacket->opcode)
            {
            case CLIENT_OPCODES.GAME_CLIENT_KEEP_ALIVE:
            case CLIENT_OPCODES.GAME_CLIENT_ACCEPT_HANDSHAKE:
                /*if(debug)
                 *  Debugx.DumpBuffer(buffer, 1, tmpPacket->opcode, tmpPacket->size);*/
                //hansh(Index);
                Auth.SendServerInfo(Index);      //force cliente acept xD
                break;

            case CLIENT_OPCODES.GAME_CLIENT_INFO:
                Auth.SendServerInfo(Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_PATCH_REQUEST:
                Auth.SendPatchInfo(Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_AUTH:
                Auth.OnAuth(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_CHARACTER:
                Character.OnCharacter(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_INGAME_REQUEST:
                Character.OnIngameRequest(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_INGAME_NOTIFY:
                Players.OnIngameNotify(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_CHARACTER_STATE:
                Character.OnState(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_MOVEMENT:
                Movement.OnMovement(tmpPacket->data, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_CLOSE:
                OnGameQuit(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_EMOTION:
                PlayerAction.OnEmotion(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_ITEM_MOVE:
                Items.MoveItem(tmpPacket->data, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_CHAT:
                Chat.OnChat(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_TARGET:
                Players.OnTarget(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_MASTERYUPDATE:
                Mastery.OnMasteryUpdate(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_SKILLUPDATE:
                Mastery.OnSkillUpdate(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_STR_UPDATE:
                Stats.STRUpdate(Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_INT_UPDATE:
                Stats.INTUpdate(Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_PLAYER_ACTION:
                PlayerAction.Action(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_RESPAWN:
                Character.ReSpawnMe(Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_GM:
                GameMaster.OnGM(reader, Index);
                break;

            case CLIENT_OPCODES.GAME_CLIENT_ITEM_USE:
                Items.OnUseItem(reader, Index);
                break;

            default:
                Console.WriteLine("Default Opcode:{0}", tmpPacket->opcode);
                break;
            }
        }