Esempio n. 1
0
 public static void DebuffBank(PacketContent pc, ref Bank bankToFill)
 {
     for (int i = 0; i < Constants.MAX_BANK; i++)
     {
         bankToFill.items[i].id = pc.ReadLong();
         bankToFill.items[i].amount = pc.ReadLong();
     }
 }
Esempio n. 2
0
        public static void DebuffPlayer(PacketContent pc, ref Player playerToFill)
        {
            playerToFill.PlayerName = pc.ReadUnicode(Constants.PLAYER_NAME_LENGTH);
            playerToFill.sex = (byte)pc.ReadLong();
            playerToFill.playerClass = pc.ReadLong();

            playerToFill.sprite = pc.ReadLong();
            playerToFill.level = (byte)pc.ReadLong();
            playerToFill.exp = pc.ReadLong();
            playerToFill.access = pc.ReadByte();
            playerToFill.isPK = pc.ReadByte();
            pc.readOffset += 2;

            playerToFill.hair = pc.ReadLong();
            playerToFill.eyes = pc.ReadLong();

            playerToFill.ryo = pc.ReadLong();
            playerToFill.vitals[(int)Vitals.HP] = pc.ReadLong();
            playerToFill.vitals[(int)Vitals.MP] = pc.ReadLong();

            for (int i = 0; i < (int)Stats.counter; i++)
            {
                playerToFill.stats[i] = pc.ReadInteger();
            }
            pc.readOffset += 2;

            playerToFill.points = pc.ReadLong();
            //Inventory
            for (int i = 0; i < (int)Equipment.counter; i++)
            {
                playerToFill.equipment[i] = pc.ReadLong();
            }

            for (int i = 0; i < Constants.MAX_INV; i++)
            {
                playerToFill.inventory[i].id = pc.ReadLong();
                playerToFill.inventory[i].amount = pc.ReadLong();
            }
            //Spells
            for (int i = 0; i < Constants.MAX_PLAYER_SPELLS; i++)
            {
                playerToFill.spells[i] = pc.ReadLong();
            }

            //Hotbar
            for (int i = 0; i < Constants.MAX_HOTBAR; i++)
            {
                playerToFill.hotbar[i].slot = pc.ReadLong();
                playerToFill.hotbar[i].sType = (byte)pc.ReadLong();
            }

            //Map
            playerToFill.currentMap = pc.ReadLong();
            playerToFill.x = pc.ReadByte();
            playerToFill.y = pc.ReadByte();
            playerToFill.dir = pc.ReadByte();

            //Switches
            for (int i = 0; i < Constants.MAX_SWITCHES; i++)
            {
                playerToFill.switches[i] = pc.ReadByte();
            }

            //Variables
            for (int i = 0; i < Constants.MAX_VARIABLES; i++)
            {
                playerToFill.variables[i] = pc.ReadLong();
            }
            //PlayerQuests
            for (int i = 0; i < Constants.MAX_PLAYER_QUESTS; i++)
            {
                playerToFill.quests[i].currentObjective = pc.ReadByte();

                playerToFill.quests[i].completed[0] = pc.ReadByte();
                playerToFill.quests[i].completed[1] = pc.ReadByte();
                playerToFill.quests[i].completed[2] = pc.ReadByte();

                playerToFill.quests[i].id = pc.ReadLong();

                playerToFill.quests[i].counter[0] = pc.ReadLong();
                playerToFill.quests[i].counter[1] = pc.ReadLong();
                playerToFill.quests[i].counter[2] = pc.ReadLong();
            }
            //Completed Quest
            for (int i = 0; i < Constants.MAX_QUESTS; i++)
            {
                playerToFill.completedQuest[i] = pc.ReadLong();
            }
            //Guild
            playerToFill.guild = pc.ReadLong();

            playerToFill.minutes = pc.ReadLong();
            playerToFill.hours = pc.ReadLong();
            playerToFill.attackAnimation = pc.ReadLong();

            //Friends
            for (int i = 0; i < Constants.MAX_PLAYER_FRIENDS; i++)
            {
                playerToFill.friends[i].name = pc.ReadUnicode(Constants.PLAYER_NAME_LENGTH);
            }
            //Elements
            for (int i = 0; i < Constants.MAX_ELEMENTS; i++)
            {
                playerToFill.elements[i] = pc.ReadByte();
            }

            playerToFill.isMuted = pc.ReadByte();
            playerToFill.IsDonor = pc.ReadByte();

            pc.readOffset += 1;

            //HasChar
            Int16 hasChar = pc.ReadInteger();
            playerToFill.HasChar = (hasChar == (-1) ? true : false);
        }
Esempio n. 3
0
 private static void RegisterServer(PacketContent pc, ServerDetails serverDetails)
 {
     appendLog(".::Received server connection::. ");
     serverDetails.serverIndex = pc.ReadLong();
     serverDetails.name = pc.ReadString();
     serverDetails.ip = pc.ReadString();
     serverDetails.port = pc.ReadLong();
     serverDetails.location = pc.ReadString();
     serverDetails.donorOnly = pc.ReadFlag();
     serverDetails.registered = true;
     appendLog(".::Name: " + serverDetails.name);
     appendLog(".::IP: " + serverDetails.ip);
     appendLog(".::Port: " + serverDetails.port);
 }
Esempio n. 4
0
        private static void PreSavePlayer(PacketContent pc)
        {
            //byte[] temp = data.getContent();
            //AccountsManager.SavePacket("davemax", ref temp);
            AccountsManager file = new AccountsManager(_form);
            string playerLoginName = pc.ReadString();
            Player playerToSave = new Player(0);
            DebuffPlayer(pc, ref playerToSave);
            file.SavePlayer(playerLoginName, ref playerToSave);

            Bank bankToSave = new Bank(0);
            DebuffBank(pc, ref bankToSave);
            file.SavePlayerBank(playerLoginName, ref bankToSave);

            if (!updatingPlayers) appendLog(playerLoginName + "'s account & bank saved.");
            else updatedPlayerList += playerLoginName + ", ";
        }
Esempio n. 5
0
 private static void CheckAdmission(PacketContent data)
 {
     string loginName = data.ReadString();
     GamePlayerAdmission status = (GamePlayerAdmission)data.ReadLong();
     switch (status)
     {
         case GamePlayerAdmission.Accepted:
             AllowPlayerToJoinTheServer(loginName);
             break;
         case GamePlayerAdmission.Rejected_Multilogin:
             appendLog("Server has rejected " + loginName + " due to multilogin attempt!");
             PlayerClient.PlayerRejected(loginName, "Multiple logins are not authorized.");
             break;
         case GamePlayerAdmission.Rejected_TooManyPlayers:
             appendLog("Server has rejected " + loginName + " due to max players limit!");
             PlayerClient.PlayerRejected(loginName, "Theres too many players in game. Please try again later.");
             break;
         default:
             break;
     }
 }
Esempio n. 6
0
 public static void Received(AuthenticationServer form, PacketContent pc, ServerDetails serverDetails)
 {
     _form = form;
     GameRecvPackets msgType = (GameRecvPackets)pc.GetMsgType();
     switch (msgType)
     {
         case GameRecvPackets.RegisterServer:
             RegisterServer(pc, serverDetails);
             break;
         case GameRecvPackets.UpdatePlayer:
             PreSavePlayer(pc);
             break;
         case GameRecvPackets.PlayerAcknowledged:
             CheckAdmission(pc);
             break;
         case GameRecvPackets.BeginPlayerUpdate:
             updatingPlayers = true;
             break;
         case GameRecvPackets.FinishPlayerUpdate:
             if (updatedPlayerList.Length == 0) return;
             updatedPlayerList = updatedPlayerList.Remove(updatedPlayerList.Length - 2, 2);
             appendLog("Saved accounts & banks for:\n" + updatedPlayerList);
             updatingPlayers = false;
             updatedPlayerList = "";
             SendServer_SaveConfirmation(serverDetails);
             break;
         default:
             break;
     }
 }