Esempio n. 1
0
        public void doClassChange(byte classId)
        {
            //load hotbars
            //Calculate stats
            //Calculate hp/mp

            //Get Potenciel ??????

            //Set HP/MP/TP PARAMS

            //Set mainskill and level

            //Set Parameters

            //Set current EXP

            //Set Hotbar Commands 1
            //Set Hotbar Commands 2
            //Set Hotbar Commands 3

            //Check if bonus point available... set

            //Set rested EXP

            charaWork.parameterSave.state_mainSkill[0]   = classId;
            charaWork.parameterSave.state_mainSkillLevel = charaWork.battleSave.skillLevel[classId - 1];

            playerWork.restBonusExpRate = 0.0f;

            ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("charaWork/stateForAll", this, actorId);

            propertyBuilder.addProperty("charaWork.parameterSave.state_mainSkill[0]");
            propertyBuilder.addProperty("charaWork.parameterSave.state_mainSkillLevel");
            propertyBuilder.newTarget("playerWork/expBonus");
            propertyBuilder.addProperty("playerWork.restBonusExpRate");

            List <SubPacket> packets = propertyBuilder.done();

            foreach (SubPacket packet in packets)
            {
                broadcastPacket(packet, true);
            }

            Database.savePlayerCurrentClass(this);
        }
Esempio n. 2
0
        public override BasePacket getInitPackets(uint playerActorId)
        {
            ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this, playerActorId);

            //Properties
            for (int i = 0; i < charaWork.property.Length; i++)
            {
                if (charaWork.property[i] != 0)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.property[{0}]", i));
                }
            }

            //Parameters
            propPacketUtil.addProperty("charaWork.parameterSave.hp[0]");
            propPacketUtil.addProperty("charaWork.parameterSave.hpMax[0]");
            propPacketUtil.addProperty("charaWork.parameterSave.mp");
            propPacketUtil.addProperty("charaWork.parameterSave.mpMax");
            propPacketUtil.addProperty("charaWork.parameterTemp.tp");

            if (charaWork.parameterSave.state_mainSkill[0] != 0)
            {
                propPacketUtil.addProperty("charaWork.parameterSave.state_mainSkill[0]");
            }
            if (charaWork.parameterSave.state_mainSkill[1] != 0)
            {
                propPacketUtil.addProperty("charaWork.parameterSave.state_mainSkill[1]");
            }
            if (charaWork.parameterSave.state_mainSkill[2] != 0)
            {
                propPacketUtil.addProperty("charaWork.parameterSave.state_mainSkill[2]");
            }
            if (charaWork.parameterSave.state_mainSkill[3] != 0)
            {
                propPacketUtil.addProperty("charaWork.parameterSave.state_mainSkill[3]");
            }

            propPacketUtil.addProperty("charaWork.parameterSave.state_mainSkillLevel");

            //Status Times
            for (int i = 0; i < charaWork.statusShownTime.Length; i++)
            {
                if (charaWork.statusShownTime[i] != 0xFFFFFFFF)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.statusShownTime[{0}]", i));
                }
            }

            //General Parameters
            for (int i = 3; i < charaWork.battleTemp.generalParameter.Length; i++)
            {
                if (charaWork.battleTemp.generalParameter[i] != 0)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.battleTemp.generalParameter[{0}]", i));
                }
            }

            propPacketUtil.addProperty("npcWork.hateType");

            return(BasePacket.createPacket(propPacketUtil.done(), true, false));
        }
Esempio n. 3
0
        public override BasePacket getInitPackets(uint playerActorId)
        {
            ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("/_init", this, playerActorId);

            propPacketUtil.addProperty("charaWork.eventSave.bazaarTax");
            propPacketUtil.addProperty("charaWork.battleSave.potencial");

            //Properties
            for (int i = 0; i < charaWork.property.Length; i++)
            {
                if (charaWork.property[i] != 0)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.property[{0}]", i));
                }
            }

            //Parameters
            propPacketUtil.addProperty("charaWork.parameterSave.hp[0]");
            propPacketUtil.addProperty("charaWork.parameterSave.hpMax[0]");
            propPacketUtil.addProperty("charaWork.parameterSave.mp");
            propPacketUtil.addProperty("charaWork.parameterSave.mpMax");
            propPacketUtil.addProperty("charaWork.parameterTemp.tp");
            propPacketUtil.addProperty("charaWork.parameterSave.state_mainSkill[0]");
            propPacketUtil.addProperty("charaWork.parameterSave.state_mainSkillLevel");

            //Status Times
            for (int i = 0; i < charaWork.statusShownTime.Length; i++)
            {
                if (charaWork.statusShownTime[i] != 0xFFFFFFFF)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.statusShownTime[{0}]", i));
                }
            }

            //General Parameters
            for (int i = 3; i < charaWork.battleTemp.generalParameter.Length; i++)
            {
                if (charaWork.battleTemp.generalParameter[i] != 0)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.battleTemp.generalParameter[{0}]", i));
                }
            }

            propPacketUtil.addProperty("charaWork.battleTemp.castGauge_speed[0]");
            propPacketUtil.addProperty("charaWork.battleTemp.castGauge_speed[1]");

            //Battle Save Skillpoint

            //Commands
            propPacketUtil.addProperty("charaWork.commandBorder");


            for (int i = 0; i < charaWork.command.Length; i++)
            {
                if (charaWork.command[i] != 0)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.command[{0}]", i));
                }
            }


            for (int i = 0; i < charaWork.commandCategory.Length; i++)
            {
                charaWork.commandCategory[i] = 1;
                if (charaWork.commandCategory[i] != 0)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.commandCategory[{0}]", i));
                }
            }

            for (int i = 0; i < charaWork.commandAcquired.Length; i++)
            {
                if (charaWork.commandAcquired[i] != false)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.commandAcquired[{0}]", i));
                }
            }


            for (int i = 0; i < charaWork.additionalCommandAcquired.Length; i++)
            {
                if (charaWork.additionalCommandAcquired[i] != false)
                {
                    propPacketUtil.addProperty(String.Format("charaWork.additionalCommandAcquired[{0}]", i));
                }
            }

            for (int i = 0; i < charaWork.parameterSave.commandSlot_compatibility.Length; i++)
            {
                charaWork.parameterSave.commandSlot_compatibility[i] = true;
                if (charaWork.parameterSave.commandSlot_compatibility[i])
                {
                    propPacketUtil.addProperty(String.Format("charaWork.parameterSave.commandSlot_compatibility[{0}]", i));
                }
            }

            /*
             * for (int i = 0; i < charaWork.parameterSave.commandSlot_recastTime.Length; i++)
             * {
             * if (charaWork.parameterSave.commandSlot_recastTime[i] != 0)
             *   propPacketUtil.addProperty(String.Format("charaWork.parameterSave.commandSlot_recastTime[{0}]", i));
             * }
             */

            //System
            propPacketUtil.addProperty("charaWork.parameterTemp.forceControl_float_forClientSelf[0]");
            propPacketUtil.addProperty("charaWork.parameterTemp.forceControl_float_forClientSelf[1]");
            propPacketUtil.addProperty("charaWork.parameterTemp.forceControl_int16_forClientSelf[0]");
            propPacketUtil.addProperty("charaWork.parameterTemp.forceControl_int16_forClientSelf[1]");

            charaWork.parameterTemp.otherClassAbilityCount[0] = 4;
            charaWork.parameterTemp.otherClassAbilityCount[1] = 5;
            charaWork.parameterTemp.giftCount[1] = 5;

            propPacketUtil.addProperty("charaWork.parameterTemp.otherClassAbilityCount[0]");
            propPacketUtil.addProperty("charaWork.parameterTemp.otherClassAbilityCount[1]");
            propPacketUtil.addProperty("charaWork.parameterTemp.giftCount[1]");

            propPacketUtil.addProperty("charaWork.depictionJudge");

            //Scenario
            for (int i = 0; i < playerWork.questScenario.Length; i++)
            {
                if (playerWork.questScenario[i] != 0)
                {
                    propPacketUtil.addProperty(String.Format("playerWork.questScenario[{0}]", i));
                }
            }

            //Guildleve - Local
            for (int i = 0; i < playerWork.questGuildleve.Length; i++)
            {
                if (playerWork.questGuildleve[i] != 0)
                {
                    propPacketUtil.addProperty(String.Format("playerWork.questGuildleve[{0}]", i));
                }
            }

            //Guildleve - Regional
            for (int i = 0; i < work.guildleveId.Length; i++)
            {
                if (work.guildleveId[i] != 0)
                {
                    propPacketUtil.addProperty(String.Format("work.guildleveId[{0}]", i));
                }
                if (work.guildleveDone[i] != false)
                {
                    propPacketUtil.addProperty(String.Format("work.guildleveDone[{0}]", i));
                }
                if (work.guildleveChecked[i] != false)
                {
                    propPacketUtil.addProperty(String.Format("work.guildleveChecked[{0}]", i));
                }
            }

            //NPC Linkshell
            for (int i = 0; i < playerWork.npcLinkshellChatCalling.Length; i++)
            {
                if (playerWork.npcLinkshellChatCalling[i] != false)
                {
                    propPacketUtil.addProperty(String.Format("playerWork.npcLinkshellChatCalling[{0}]", i));
                }
                if (playerWork.npcLinkshellChatExtra[i] != false)
                {
                    propPacketUtil.addProperty(String.Format("playerWork.npcLinkshellChatExtra[{0}]", i));
                }
            }

            propPacketUtil.addProperty("playerWork.restBonusExpRate");

            //Profile
            propPacketUtil.addProperty("playerWork.tribe");
            propPacketUtil.addProperty("playerWork.guardian");
            propPacketUtil.addProperty("playerWork.birthdayMonth");
            propPacketUtil.addProperty("playerWork.birthdayDay");
            propPacketUtil.addProperty("playerWork.initialTown");

            return(BasePacket.createPacket(propPacketUtil.done(), true, false));
        }