public void Fetch(string[] commandStrings) { #region // cmd pour update des states apres la cloture du combat et les states de mon joueur seulement // commandStrings[0] = Pseudo#ClasseName#Spirit#SpiritLvl#Pvp#village#MaskColors#Orientation#Level#map#rang //#CurrentPdv#totalPdv#xp#TotalXp#doton#katon#futon#raiton#suiton#chakralvl2 //#chakralvl3#chakralvl4#chakralvl5#chakralvl6#usingDoton#usingKaton#usingFuton#usingRaiton#usingSuiton#equipedDoton //#equipedKaton#equipedFuton#equipedRaiton#suitonEquiped#pc#pm#pe#cd#invoc#Initiative //#job1#job2#specialite1#specialite2#TotalPoid#CurrentPoid#Ryo#resiDoton#resiKaton#resiFuton //#resiRaiton#resiSuiton#esquivePC#esquivePM#esquivePE#esquiveCD#retraitPC#retraitPM#retraitPE#retraitCD //#evasion#blocage#_sorts#resiDotonFix#resiKatonFix#resiFutonFix#resiRaitonFix#resiSuitonFix#resiFix#domDotonFix //#domKatonFix#domFutonFix#domRaitonFix#domSuitonFix#domFix#puissance#puissanceEquiped" // commandStrings[1]= quete // commandStrings[2] = spellPointLeft string[] states = commandStrings[0].Split('#'); string actorName = states[0]; Enums.ActorClass.ClassName className = (Enums.ActorClass.ClassName)Enum.Parse(typeof(Enums.ActorClass.ClassName), states[1]); Enums.Spirit.Name spirit = (Enums.Spirit.Name)Enum.Parse(typeof(Enums.Spirit.Name), states[2]); int spiritLevel = int.Parse(states[3]); bool pvpEnabled = bool.Parse(states[4]); Enums.HiddenVillage.Names hiddenVillage = (Enums.HiddenVillage.Names)Enum.Parse(typeof(Enums.HiddenVillage.Names), states[5]); string maskColorsString = states[6]; string[] maskColors = states[6].Split('/'); int orientation = int.Parse(states[7]); int level = int.Parse(states[8]); string map = states[9]; Enums.Rang.official officialRang = (Enums.Rang.official)Enum.Parse(typeof(Enums.Rang.official), states[10]); int currentHealth = int.Parse(states[11]); int maxHealth = int.Parse(states[12]); int currentXp = int.Parse(states[13]); int maxXp = int.Parse(states[14]); int doton = int.Parse(states[15]); int katon = int.Parse(states[16]); int futon = int.Parse(states[17]); int raiton = int.Parse(states[18]); int suiton = int.Parse(states[19]); int chakra1Level = int.Parse(states[20]); int chakra2Level = int.Parse(states[21]); int chakra3Level = int.Parse(states[22]); int chakra4Level = int.Parse(states[23]); int chakra5Level = int.Parse(states[24]); int usingDoton = int.Parse(states[25]); int usingKaton = int.Parse(states[26]); int usingFuton = int.Parse(states[27]); int usingRaiton = int.Parse(states[28]); int usingSuiton = int.Parse(states[29]); int equipedDoton = int.Parse(states[30]); int equipedKaton = int.Parse(states[31]); int equipedFuton = int.Parse(states[32]); int equipedRaiton = int.Parse(states[33]); int equipedSuiton = int.Parse(states[34]); int originalPc = int.Parse(states[35]); int originalPm = int.Parse(states[36]); int pe = int.Parse(states[37]); int cd = int.Parse(states[38]); int summons = int.Parse(states[39]); int initiative = int.Parse(states[40]); string job1 = states[41]; string job2 = states[42]; string specialty1 = states[43]; string specialty2 = states[44]; int maxWeight = int.Parse(states[45]); int currentWeight = int.Parse(states[46]); int ryo = int.Parse(states[47]); int resiDotonPercent = int.Parse(states[48]); int resiKatonPercent = int.Parse(states[49]); int resiFutonPercent = int.Parse(states[50]); int resiRaitonPercent = int.Parse(states[51]); int resiSuitonPercent = int.Parse(states[52]); int dodgePc = int.Parse(states[53]); int dodgePm = int.Parse(states[54]); int dodgePe = int.Parse(states[55]); int dodgeCd = int.Parse(states[56]); int removePc = int.Parse(states[57]); int removePm = int.Parse(states[58]); int removePe = int.Parse(states[59]); int removeCd = int.Parse(states[60]); int escape = int.Parse(states[61]); int blocage = int.Parse(states[62]); string spells = states[63]; int resiDotonFix = int.Parse(states[64]); int resiKatonFix = int.Parse(states[65]); int resiFutonFix = int.Parse(states[66]); int resiRaitonFix = int.Parse(states[67]); int resiSuitonFix = int.Parse(states[68]); int resiFix = int.Parse(states[69]); int domDotonFix = int.Parse(states[70]); int domKatonFix = int.Parse(states[71]); int domFutonFix = int.Parse(states[72]); int domRaitonFix = int.Parse(states[73]); int domSuitonFix = int.Parse(states[74]); int domFix = int.Parse(states[75]); int power = int.Parse(states[76]); int equipedPower = int.Parse(states[77]); string questString = commandStrings[1]; int spellPointLeft = int.Parse(commandStrings[2]); // creation d'une instance Bmp vide just pour contenir les infos dans le tag CommonCode.MyPlayerInfo.instance.ibPlayer = new Bmp(); CommonCode.MyPlayerInfo.instance.ibPlayer.tag = new Actor(); Actor pi = CommonCode.MyPlayerInfo.instance.ibPlayer.tag as Actor; pi.pseudo = actorName; pi.className = className; pi.spirit = spirit; pi.spiritLevel = spiritLevel; pi.pvpEnabled = pvpEnabled; pi.hiddenVillage = hiddenVillage; pi.maskColorString = maskColorsString; pi.directionLook = orientation; pi.level = level; pi.map = map; pi.officialRang = officialRang; pi.currentHealth = currentHealth; pi.maxHealth = maxHealth; pi.currentXp = currentXp; pi.maxXp = maxXp; pi.doton = doton; pi.katon = katon; pi.futon = futon; pi.raiton = raiton; pi.suiton = suiton; // association des données des chakralvl2,3,4,5 CommonCode.chakra1Level = chakra1Level; CommonCode.chakra2Level = chakra2Level; CommonCode.chakra3Level = chakra3Level; CommonCode.chakra4Level = chakra4Level; CommonCode.chakra5Level = chakra5Level; pi.usingDoton = usingDoton; pi.usingKaton = usingKaton; pi.usingFuton = usingFuton; pi.usingRaiton = usingRaiton; pi.usingSuiton = usingSuiton; pi.equipedDoton = equipedDoton; pi.equipedKaton = equipedKaton; pi.equipedFuton = equipedFuton; pi.equipedRaiton = equipedRaiton; pi.equipedSuiton = equipedSuiton; pi.originalPc = originalPc; pi.originalPm = originalPm; pi.pe = pe; pi.cd = cd; pi.summons = summons; pi.initiative = initiative; pi.job1 = job1; pi.job2 = job2; pi.specialty1 = specialty1; pi.specialty2 = specialty2; pi.maxWeight = maxWeight; pi.currentWeight = currentWeight; pi.ryo = ryo; pi.resiDotonPercent = resiDotonPercent; pi.resiKatonPercent = resiKatonPercent; pi.resiFutonPercent = resiFutonPercent; pi.resiRaitonPercent = resiRaitonPercent; pi.resiSuitonPercent = resiSuitonPercent; pi.dodgePc = dodgePc; pi.dodgePm = dodgePm; pi.dodgePe = dodgePe; pi.dodgeCd = dodgeCd; pi.removePc = removePc; pi.removePm = removePm; pi.removePe = removePe; pi.removeCd = removeCd; pi.escape = escape; pi.blocage = blocage; if (spells != "") { for (int cnt = 0; cnt < spells.Split('|').Length; cnt++) { string tmp_data = spells.Split('|')[cnt]; Actor.SpellsInformations _info_sorts = new Actor.SpellsInformations(); _info_sorts.sortID = Convert.ToInt32(tmp_data.Split(':')[0].ToString()); _info_sorts.emplacement = Convert.ToInt32(tmp_data.Split(':')[1].ToString()); _info_sorts.level = Convert.ToInt32(tmp_data.Split(':')[2]); _info_sorts.colorSort = Convert.ToInt32(tmp_data.Split(':')[3]); pi.spells.Add(_info_sorts); } } pi.resiDotonFix = resiDotonFix; pi.resiKatonFix = resiKatonFix; pi.resiFutonFix = resiFutonFix; pi.resiRaitonFix = resiRaitonFix; pi.resiSuitonFix = resiSuitonFix; pi.resiFix = resiFix; pi.domDotonFix = domDotonFix; pi.domKatonFix = domKatonFix; pi.domFutonFix = domFutonFix; pi.domRaitonFix = domRaitonFix; pi.domSuitonFix = domSuitonFix; pi.domFix = domFix; pi.power = power; pi.equipedPower = equipedPower; // convertir la list de quete en string if (questString != "") { for (int cnt = 0; cnt < questString.Split('/').Length; cnt++) { string _quest = questString.Split('/')[cnt]; Actor.QuestInformations qi = new Actor.QuestInformations(); qi.nom_quete = _quest.Split(':')[0]; qi.totalSteps = Convert.ToInt16(_quest.Split(':')[1]); qi.currentStep = Convert.ToInt16(_quest.Split(':')[2]); qi.submited = Convert.ToBoolean(_quest.Split(':')[3]); pi.Quests.Add(qi); } } CommonCode.CurMap = pi.map; // level MenuStats.StatsLevel.Text = CommonCode.TranslateText(50) + " " + pi.level; // affichage du rang général MenuStats.Rang.Text = CommonCode.officialRangToCurrentLangTranslation(pi.officialRang); // affichage du level Pvp MenuStats.LevelPvp.Text = pi.spiritLevel.ToString(); // affichage du grade Pvp if (spirit != Enums.Spirit.Name.neutral) { MenuStats.GradePvp = new Bmp(@"gfx\general\obj\2\" + pi.spirit + @"\" + MenuStats.LevelPvp.Text + ".dat", new Point(276 + (15 - Convert.ToInt16(MenuStats.LevelPvp.Text)), 2), new Size(40 + Convert.ToInt16(MenuStats.LevelPvp.Text), 20 + Convert.ToInt16(MenuStats.LevelPvp.Text)), "PlayerStats." + pi.spirit, Manager.TypeGfx.Top, true, 1); MenuStats.StatsImg.Child.Add(MenuStats.GradePvp); } // update des pdv HudHandle.UpdateHealth(); MenuStats.Flag = new Bmp(@"gfx\general\obj\1\pays_thumbs.dat", new Point(240, 8), "__Flag", Manager.TypeGfx.Top, true, 1, SpriteSheet.GetSpriteSheet("pays_" + pi.hiddenVillage + "_thumbs", 0)); MenuStats.StatsImg.Child.Add(MenuStats.Flag); MenuStats.LFlag.Text = hiddenVillage.ToString(); MenuStats.Fusion1.Text = CommonCode.TranslateText(75); MenuStats.Fusion2.Text = CommonCode.TranslateText(75); MenuStats.NiveauGaugeTxt.Text = CommonCode.TranslateText(50) + " " + pi.level; // NiveauGaugeRecPercent, barre de progression du niveau // calcule du pourcentage du niveau en progression int CurrentProgressLevel = pi.currentXp; int TotalProgressLevel = pi.maxXp; int PercentProgressLevel = 0; if (TotalProgressLevel != 0) { PercentProgressLevel = (CurrentProgressLevel * 100) / TotalProgressLevel; } else { PercentProgressLevel = 100; } MenuStats.NiveauGaugeRecPercent.size.Width = (258 * PercentProgressLevel) / 100; // affichage du label progression lvl MenuStats.NiveauGaugeTxtCurrent.Text = CurrentProgressLevel + "/" + TotalProgressLevel + " (" + PercentProgressLevel + "%)"; MenuStats.NiveauGaugeTxtCurrent.point = new Point(MenuStats.NiveauGaugeRec2.point.X + (MenuStats.NiveauGaugeRec2.size.Width / 2) - (TextRenderer.MeasureText(MenuStats.NiveauGaugeTxtCurrent.Text, MenuStats.NiveauGaugeTxtCurrent.font).Width / 2), MenuStats.NiveauGaugeRec2.point.Y); // raffrechissement du text pour des mesures de changement de langue MenuStats.AffiniteElementaireTxt.Text = CommonCode.TranslateText(76); MenuStats.terreStats.Text = "(" + CommonCode.TranslateText(77) + ")"; MenuStats.FeuStats.Text = "(" + CommonCode.TranslateText(78) + ")"; MenuStats.VentStats.Text = "(" + CommonCode.TranslateText(79) + ")"; MenuStats.FoudreStats.Text = "(" + CommonCode.TranslateText(80) + ")"; MenuStats.EauStats.Text = "(" + CommonCode.TranslateText(81) + ")"; MenuStats.TerrePuissance.Text = "(" + pi.doton + "+" + pi.equipedDoton + ")=" + (pi.doton + pi.equipedDoton); MenuStats.FeuPuissance.Text = "(" + pi.katon + "+" + pi.equipedKaton + ")=" + (pi.katon + pi.equipedKaton); MenuStats.VentPuissance.Text = "(" + pi.futon + "+" + pi.equipedFuton + ")=" + (pi.futon + pi.equipedFuton); MenuStats.FoudrePuissance.Text = "(" + pi.raiton + "+" + pi.equipedRaiton + ")=" + (pi.raiton + pi.equipedRaiton); MenuStats.EauPuissance.Text = "(" + pi.suiton + "+" + pi.equipedSuiton + ")=" + (pi.suiton + pi.equipedSuiton); MenuStats.Lvl1RegleTxt.Text = CommonCode.TranslateText(82); MenuStats.Lvl2RegleTxt.Text = CommonCode.TranslateText(83); MenuStats.Lvl3RegleTxt.Text = CommonCode.TranslateText(84); MenuStats.Lvl4RegleTxt.Text = CommonCode.TranslateText(85); MenuStats.Lvl5RegleTxt.Text = CommonCode.TranslateText(86); MenuStats.Lvl6RegleTxt.Text = CommonCode.TranslateText(87); // affichage de la gauge lvl chakra selon les points MenuStats.Lvl2ReglePts.Text = CommonCode.chakra1Level.ToString(); MenuStats.Lvl3ReglePts.Text = CommonCode.chakra2Level.ToString(); MenuStats.Lvl4ReglePts.Text = CommonCode.chakra3Level.ToString(); MenuStats.Lvl5ReglePts.Text = CommonCode.chakra4Level.ToString(); MenuStats.Lvl6ReglePts.Text = CommonCode.chakra5Level.ToString(); // modification du lvl de l'utilisation de l'element CommonCode.UpdateUsingElement(Enums.Chakra.Element.doton, pi.usingDoton); CommonCode.UpdateUsingElement(Enums.Chakra.Element.katon, pi.usingKaton); CommonCode.UpdateUsingElement(Enums.Chakra.Element.futon, pi.usingFuton); CommonCode.UpdateUsingElement(Enums.Chakra.Element.raiton, pi.usingRaiton); CommonCode.UpdateUsingElement(Enums.Chakra.Element.suiton, pi.equipedSuiton); MenuStats.DotonLvl.Text = pi.usingDoton.ToString(); MenuStats.KatonLvl.Text = pi.usingKaton.ToString(); MenuStats.FutonLvl.Text = pi.usingFuton.ToString(); MenuStats.RaitonLvl.Text = pi.usingRaiton.ToString(); MenuStats.SuitonLvl.Text = pi.usingSuiton.ToString(); // bar de vie selon les pdv 11 current, 12 total int TotalPdv = pi.maxHealth; int CurrentPdv = pi.currentHealth; int X = 0; if (TotalPdv != 0) { X = (CurrentPdv * 100) / TotalPdv; } MenuStats.VieBar.size.Width = (236 * X) / 100; // point de vie dans Menustats MenuStats.VieLabel.Text = CommonCode.TranslateText(88); MenuStats.ViePts.Text = CurrentPdv.ToString() + " / " + TotalPdv + " (" + X + "%)"; //MenuStats.PCLabel.Text = common1.TranslateText(89); MenuStats.PC.Text = pi.originalPc.ToString(); //MenuStats.PMLabel.Text = common1.TranslateText(90); MenuStats.PM.Text = pi.originalPm.ToString(); //MenuStats.PELabel.Text = common1.TranslateText(91); MenuStats.PE.Text = pi.pe.ToString(); //MenuStats.CDLabel.Text = common1.TranslateText(92); MenuStats.CD.Text = pi.cd.ToString(); //MenuStats.InvocLabel.Text = common1.TranslateText(93); MenuStats.Invoc.Text = pi.summons.ToString(); //MenuStats.InitiativeLabel.Text = common1.TranslateText(94); MenuStats.Initiative.Text = pi.initiative.ToString(); MenuStats.Job1Label.Text = CommonCode.TranslateText(95) + " 1"; MenuStats.Specialite1Label.Text = CommonCode.TranslateText(96) + " 1"; MenuStats.Job2Labe1.Text = CommonCode.TranslateText(95) + " 2"; MenuStats.Specialite2Label.Text = CommonCode.TranslateText(96) + " 2"; //////// playerData[41] = job1 //////// playerdata[42] = job2 //////// playerdata[43] = specialite1 //////// playerdata[44] = specialite2 MenuStats.PoidLabel.Text = CommonCode.TranslateText(97); int TotalPoid = pi.maxWeight; int CurrentPoid = pi.currentWeight; int PercentPoid = (CurrentPoid * 100) / TotalPoid; MenuStats.PoidRec.size.Width = (116 * PercentPoid) / 100; MenuStats.Poid.Text = CurrentPoid + " / " + TotalPoid + " (" + PercentPoid + "%)"; MenuStats.Poid.point.X = MenuStats.PoidRec.point.X + 58 - (TextRenderer.MeasureText(MenuStats.Poid.Text, MenuStats.Poid.font).Width / 2); MenuStats.Ryo.Text = CommonCode.MoneyThousendSeparation(pi.ryo.ToString()); MenuStats.resiDotonTxt.Text = pi.resiDotonPercent.ToString() + "%"; MenuStats.resiKatonTxt.Text = pi.resiKatonPercent.ToString() + "%"; MenuStats.resiFutonTxt.Text = pi.resiFutonPercent.ToString() + "%"; MenuStats.resiRaitonTxt.Text = pi.resiRaitonPercent.ToString() + "%"; MenuStats.resiSuitonTxt.Text = pi.resiSuitonPercent.ToString() + "%"; MenuStats.__esquivePC_Txt.Text = pi.dodgePc.ToString(); MenuStats.__esquivePM_Txt.Text = pi.dodgePm.ToString(); MenuStats.__retraitPC_Txt.Text = pi.removePc.ToString(); MenuStats.__retraitPM_Txt.Text = pi.removePm.ToString(); pi.spellPointLeft = spellPointLeft; #endregion }
public void Fetch(string[] commandStrings) { /*SelectActorGrantedResponseMessage• * string buffer = actor.Pseudo + "#" + actor.ClasseName + "#" + actor.Spirit + "#" + * actor.SpiritLvl.ToString() + "#" + actor.Pvp.ToString() + "#" + actor.village + "#" + actor.MaskColors + "#" + * actor.Orientation.ToString() + "#" + actor.Level.ToString() + "#" + actor.map + "#" + actor.rang.ToString() + * "#" + actor.currentHealth.ToString() + "#" + actor.totalHealth.ToString() + "#" + actor.xp.ToString() + * "#" + totalXp + "#" + actor.doton.ToString() + "#" + actor.katon.ToString() + "#" + * actor.futon.ToString() + "#" + actor.raiton.ToString() + "#" + actor.suiton.ToString() + "#" + * MainClass.chakralvl2 + "#" + MainClass.chakralvl3 + "#" + MainClass.chakralvl4 + "#" + * MainClass.chakralvl5 + "#" + MainClass.chakralvl6 + "#" + actor.usingDoton.ToString() + "#" + * actor.usingKaton.ToString() + "#" + actor.usingFuton.ToString() + "#" + actor.usingRaiton.ToString() + * "#" + actor.usingSuiton.ToString() + "#" + actor.equipedDoton.ToString() + "#" + * actor.equipedKaton.ToString() + "#" + actor.equipedFuton.ToString() + "#" + * actor.equipedRaiton.ToString() + "#" + actor.suitonEquiped.ToString() + "#" + * actor.original_Pc.ToString() + "#" + actor.original_Pm.ToString() + "#" + actor.pe.ToString() + "#" + * actor.cd.ToString() + "#" + actor.invoc.ToString() + "#" + actor.Initiative.ToString() + "#" + * actor.job1 + "#" + actor.job2 + "#" + actor.specialite1 + "#" + * actor.specialite2 + "#" + actor.TotalPoid.ToString() + "#" + actor.CurrentPoid.ToString() + * "#" + actor.Ryo.ToString() + "#" + actor.resiDotonPercent.ToString() + "#" + * actor.resiKatonPercent.ToString() + "#" + actor.resiFutonPercent.ToString() + "#" + * actor.resiRaitonPercent.ToString() + "#" + actor.resiSuitonPercent.ToString() + "#" + * actor.dodgePC.ToString() + "#" + actor.dodgePM.ToString() + "#" + actor.dodgePE.ToString() + "#" + * actor.dodgeCD.ToString() + "#" + actor.removePC.ToString() + "#" + actor.removePM.ToString() + "#" + * actor.removePE.ToString() + "#" + actor.removeCD.ToString() + "#" + actor.escape.ToString() + "#" + * actor.blocage.ToString() + "#" + _sorts + "#" + actor.resiDotonFix + "#" + actor.resiKatonFix + "#" + * actor.resiFutonFix + "#" + actor.resiRaitonFix + "#" + actor.resiSuitonFix + "#" + actor.resiFix + "#" + * actor.domDotonFix + "#" + actor.domKatonFix + "#" + actor.domFutonFix + "#" + actor.domRaitonFix + "#" + * actor.domSuitonFix + "#" + actor.domFix + "#" + actor.power + "#" + actor.powerEquiped + * "•" + quete + * "•inBattle•" + actor.spellPointLeft; */ #region reception des données du joueur qui a été selectionné dans la liste des joueurs // cmd[2] = Pseudo#ClasseName#Spirit#SpiritLvl#Pvp#village#MaskColors#Orientation#Level#map#rang#CurrentPdv#totalPdv#CurrentXP#TotalXp#doton#katon#futon#raiton#suiton#chakralvl2#chakralvl3#chakralvl4#chakralvl5#chakralvl6#usingDoton#usingKaton#usingFuton#usingRaiton#usingSuiton#equipedDoton#equipedKaton#equipedFuton#equipedRaiton#suitonEquiped#pc#pm#pe#cd#invoc#Initiative#job1#job2#specialite1#specialite2#TotalPoid#CurrentPoid#Ryo#resiDoton#resiKaton#resiFuton#resiRaiton#resiSuiton#evasion#blockage#sorts#resiDotonFix#resiKatonFix#resiFutonFix#resiRaitonFix#resiSuitonFix#resiFix#domDotonFix#domKatonFix#domFutonFix#domRaitonFix#domSuitonFix#domFix#puissance#puissanceEquiped string[] playerData = commandStrings[1].Split('#'); string actorName = playerData[0]; Enums.ActorClass.ClassName className = (Enums.ActorClass.ClassName)Enum.Parse(typeof(Enums.ActorClass.ClassName), playerData[1]); Enums.Spirit.Name spirit = (Enums.Spirit.Name)Enum.Parse(typeof(Enums.Spirit.Name), playerData[2]); int spiritLevel = int.Parse(playerData[3]); bool pvpEnabled = bool.Parse(playerData[4]); Enums.HiddenVillage.Names hiddenVillage = (Enums.HiddenVillage.Names)Enum.Parse(typeof(Enums.HiddenVillage.Names), playerData[5]); string maskColorsString = playerData[6]; string[] maskColors = playerData[6].Split('/'); int orientation = int.Parse(playerData[7]); int level = int.Parse(playerData[8]); string map = playerData[9]; Enums.Rang.official officialRang = (Enums.Rang.official)Enum.Parse(typeof(Enums.Rang.official), playerData[10]); int currentHealth = int.Parse(playerData[11]); int maxHealth = int.Parse(playerData[12]); int currentXp = int.Parse(playerData[13]); int maxXp = int.Parse(playerData[14]); int doton = int.Parse(playerData[15]); int katon = int.Parse(playerData[16]); int futon = int.Parse(playerData[17]); int raiton = int.Parse(playerData[18]); int suiton = int.Parse(playerData[19]); int chakra1Level = int.Parse(playerData[20]); int chakra2Level = int.Parse(playerData[21]); int chakra3Level = int.Parse(playerData[22]); int chakra4Level = int.Parse(playerData[23]); int chakra5Level = int.Parse(playerData[24]); int usingDoton = int.Parse(playerData[25]); int usingKaton = int.Parse(playerData[26]); int usingFuton = int.Parse(playerData[27]); int usingRaiton = int.Parse(playerData[28]); int usingSuiton = int.Parse(playerData[29]); int equipedDoton = int.Parse(playerData[30]); int equipedKaton = int.Parse(playerData[31]); int equipedFuton = int.Parse(playerData[32]); int equipedRaiton = int.Parse(playerData[33]); int equipedSuiton = int.Parse(playerData[34]); int originalPc = int.Parse(playerData[35]); int originalPm = int.Parse(playerData[36]); int pe = int.Parse(playerData[37]); int cd = int.Parse(playerData[38]); int summon = int.Parse(playerData[39]); int initiative = int.Parse(playerData[40]); string job1 = playerData[41]; string job2 = playerData[42]; string specialty1 = playerData[43]; string specialty2 = playerData[44]; int maxWeight = int.Parse(playerData[45]); int currentWeight = int.Parse(playerData[46]); int ryo = int.Parse(playerData[47]); int resiDotonPercent = int.Parse(playerData[48]); int resiKatonPercent = int.Parse(playerData[49]); int resiFutonPercent = int.Parse(playerData[50]); int resiRaitonPercent = int.Parse(playerData[51]); int resiSuitonPercent = int.Parse(playerData[52]); int dodgePc = int.Parse(playerData[53]); int dodgePm = int.Parse(playerData[54]); int dodgePe = int.Parse(playerData[55]); int dodgeCd = int.Parse(playerData[56]); int removePc = int.Parse(playerData[57]); int removePm = int.Parse(playerData[58]); int removePe = int.Parse(playerData[59]); int removeCd = int.Parse(playerData[60]); int escape = int.Parse(playerData[61]); int blocage = int.Parse(playerData[62]); string spells = playerData[63]; int resiDotonFix = int.Parse(playerData[64]); int resiKatonFix = int.Parse(playerData[65]); int resiFutonFix = int.Parse(playerData[66]); int resiRaitonFix = int.Parse(playerData[67]); int resiSuitonFix = int.Parse(playerData[68]); int resiFix = int.Parse(playerData[69]); int domDotonFix = int.Parse(playerData[70]); int domKatonFix = int.Parse(playerData[71]); int domFutonFix = int.Parse(playerData[72]); int domRaitonFix = int.Parse(playerData[73]); int domSuitonFix = int.Parse(playerData[74]); int domFix = int.Parse(playerData[75]); int power = int.Parse(playerData[76]); int equipedPower = int.Parse(playerData[77]); string quest = commandStrings[2]; bool inBattle = bool.Parse(commandStrings[3]); // ce variable est controlé dans chaque map "Start + _0_0_0" pour voir si le joueur est en combat, c'est au niveau des map que le system decoReco fonction, il faut penser a retirer ce systeme des map et de le mettre ici, voir map Start "if (CommonCode.MyPlayerInfo.instance.Event == "inBattle")" et map _0_0_0 int spellPointLeft = int.Parse(commandStrings[4]); new System.Threading.Thread((() => { // on affiche une fenetre de chargement // compteur pour voir si le temps passé est sufisant pour voir le chargement, si non on oblige le joueur a patienter le reste du temps détérminé pour l'animation qui est de 300 miliseconds Benchmark.Start(); Bmp loadingParent = new Bmp(@"gfx\general\artwork\loading\" + className + ".dat", new Point(0, 0), "__loadingParent", Manager.TypeGfx.Bgr, true, 1); loadingParent.zindex = 100; Manager.manager.GfxTopList.Add(loadingParent); // barre de chargement Bmp loadingGif = new Bmp(@"gfx\general\obj\1\loading1.dat", Point.Empty, "__loadingGif", Manager.TypeGfx.Bgr, true); loadingGif.point = new Point((ScreenManager.WindowWidth / 2) - (loadingGif.rectangle.Width / 2), ScreenManager.WindowHeight - 50); loadingParent.Child.Add(loadingGif); Txt loadingLabel = new Txt(CommonCode.TranslateText(187), Point.Empty, "__loadingLabel", Manager.TypeGfx.Top, true, new Font("Verdana", 10, FontStyle.Bold), Brushes.White); loadingLabel.point = new Point((ScreenManager.WindowWidth / 2) - (TextRenderer.MeasureText(loadingLabel.Text, loadingLabel.font).Width / 2), 610); loadingParent.Child.Add(loadingLabel); Anim LoadingSystemStart = new Anim(15, 1); for (int cnt = 0; cnt < 15; cnt++) { LoadingSystemStart.AddCell(@"gfx\general\obj\1\LoadingSystem.dat", 0, 300 + (cnt * 12), 550, 25 + (cnt * 2), 25 + (cnt * 2), 0.1F * (Convert.ToSingle(cnt)), 15); } LoadingSystemStart.AddCell(@"gfx\general\obj\1\LoadingSystem.dat", 0, 300 + (15 * 12), 550, 25 + (15 * 2), 25 + (15 * 2), 0.1F * (Convert.ToSingle(15)), 15); LoadingSystemStart.Ini(Manager.TypeGfx.Top, "__LoadingSystemStart", true); LoadingSystemStart.AutoResetAnim = false; LoadingSystemStart.Start(); loadingParent.Child.Add(LoadingSystemStart); ///////////////////////////////////////////////////////////// CommonCode.MyPlayerInfo.instance.ibPlayer = new Bmp(); CommonCode.MyPlayerInfo.instance.ibPlayer.tag = new Actor(); Actor actor = (Actor)CommonCode.MyPlayerInfo.instance.ibPlayer.tag; actor.pseudo = actorName; actor.className = className; actor.spirit = spirit; actor.spiritLevel = spiritLevel; actor.pvpEnabled = pvpEnabled; actor.hiddenVillage = hiddenVillage; actor.maskColorString = maskColorsString; actor.directionLook = orientation; actor.level = level; actor.map = map; actor.officialRang = officialRang; actor.currentHealth = currentHealth; actor.maxHealth = maxHealth; actor.currentXp = currentXp; actor.maxXp = maxXp; actor.doton = doton; actor.katon = katon; actor.futon = futon; actor.raiton = raiton; actor.suiton = suiton; // association des données des chakralvl2,3,4,5 CommonCode.chakra1Level = chakra1Level; CommonCode.chakra2Level = chakra2Level; CommonCode.chakra3Level = chakra3Level; CommonCode.chakra4Level = chakra4Level; CommonCode.chakra5Level = chakra5Level; actor.usingDoton = usingDoton; actor.usingKaton = usingKaton; actor.usingFuton = usingFuton; actor.usingRaiton = usingRaiton; actor.usingSuiton = usingSuiton; actor.equipedDoton = equipedDoton; actor.equipedKaton = equipedKaton; actor.equipedFuton = equipedFuton; actor.equipedRaiton = equipedRaiton; actor.equipedSuiton = equipedSuiton; actor.originalPc = originalPc; actor.originalPm = originalPm; actor.pe = pe; actor.cd = cd; actor.summons = summon; actor.initiative = initiative; actor.job1 = job1; actor.job2 = job2; actor.specialty1 = specialty1; actor.specialty2 = specialty2; actor.maxWeight = maxWeight; actor.currentWeight = currentWeight; actor.ryo = ryo; actor.resiDotonPercent = resiDotonPercent; actor.resiKatonPercent = resiKatonPercent; actor.resiFutonPercent = resiFutonPercent; actor.resiRaitonPercent = resiRaitonPercent; actor.resiSuitonPercent = resiSuitonPercent; actor.dodgePc = dodgePc; actor.dodgePm = dodgePm; actor.dodgePe = dodgePe; actor.dodgeCd = dodgeCd; actor.removePc = removePc; actor.removePm = removePm; actor.removePe = removePe; actor.removeCd = removeCd; actor.escape = escape; actor.blocage = blocage; string _sorts = spells; if (_sorts != "") { for (int cnt = 0; cnt < _sorts.Split('|').Length; cnt++) { string tmp_data = _sorts.Split('|')[cnt]; Actor.SpellsInformations _info_sorts = new Actor.SpellsInformations(); _info_sorts.sortID = Convert.ToInt32(tmp_data.Split(':')[0]); _info_sorts.emplacement = Convert.ToInt32(tmp_data.Split(':')[1]); _info_sorts.level = Convert.ToInt32(tmp_data.Split(':')[2]); _info_sorts.colorSort = Convert.ToInt32(tmp_data.Split(':')[3]); actor.spells.Add(_info_sorts); } } actor.resiDotonFix = resiDotonFix; actor.resiKatonFix = resiKatonFix; actor.resiFutonFix = resiFutonFix; actor.resiRaitonFix = resiRaitonFix; actor.resiSuitonFix = resiSuitonFix; actor.resiFix = resiFix; // supression des sorts s'il sont déja été affiché avant if (HudHandle.all_sorts.Child.Count > 0) { HudHandle.all_sorts.Child.Clear(); } // affichage des sorts foreach (Actor.SpellsInformations t in actor.spells) { Bmp __spell = new Bmp(@"gfx\general\obj\1\spells.dat", new Point(MMORPG.spells.spellPositions[t.emplacement].X, MMORPG.spells.spellPositions[t.emplacement].Y), "__spell", Manager.TypeGfx.Top, true, 1, SpriteSheet.GetSpriteSheet(t.sortID + "_spell", 0)); // attachement des infos du sort au tag de l'image __spell.tag = t; __spell.MouseMove += MMORPG.Battle.__spell_MouseMove; __spell.MouseOut += CommonCode.CursorDefault_MouseOut; __spell.MouseClic += MMORPG.Battle.__spell_MouseClic; HudHandle.all_sorts.Child.Add(__spell); } actor.domDotonFix = domDotonFix; actor.domKatonFix = domKatonFix; actor.domFutonFix = domFutonFix; actor.domRaitonFix = domRaitonFix; actor.domSuitonFix = domSuitonFix; actor.domFix = domFix; actor.power = power; actor.equipedPower = equipedPower; CommonCode.CurMap = actor.map; Benchmark.End(); System.Threading.Thread.Sleep(225); loadingLabel.Text = CommonCode.TranslateText(188); loadingLabel.point = new Point((ScreenManager.WindowWidth / 2) - (TextRenderer.MeasureText(loadingLabel.Text, loadingLabel.font).Width / 2), 610); ////////////////// mode designe LoadingSystemStart.Visible(false); loadingParent.Child.Remove(LoadingSystemStart); Anim LoadingSystemEnd = new Anim(15, 1); for (int cnt = 0; cnt < 15; cnt++) { LoadingSystemEnd.AddCell(@"gfx\general\obj\1\LoadingSystem.dat", 0, LoadingSystemStart.img.point.X + (cnt * 12), 550, 25 + ((15 - cnt) * 2), 25 + ((15 - cnt) * 2), 0.1F * (Convert.ToSingle(15 - cnt)), 15); } LoadingSystemEnd.Ini(Manager.TypeGfx.Top, "__LoadingSystemEnd", true); LoadingSystemEnd.AutoResetAnim = false; LoadingSystemEnd.Start(); loadingParent.Child.Add(LoadingSystemEnd); Anim LoadingGfxStart = new Anim(15, 1); for (int cnt = 0; cnt < 15; cnt++) { LoadingGfxStart.AddCell(@"gfx\general\obj\1\GrayPaletteColor.dat", 0, 300 + (cnt * 12), 550, 25 + (cnt * 2), 25 + (cnt * 2), 0.1F * (Convert.ToSingle(cnt)), 15); } LoadingGfxStart.AddCell(@"gfx\general\obj\1\paletteColor.dat", 0, 300 + (15 * 12), 550, 25 + (15 * 2), 25 + (15 * 2), 0.1F * (Convert.ToSingle(15)), 15); LoadingGfxStart.Ini(Manager.TypeGfx.Top, "__paletteColor", true); LoadingGfxStart.AutoResetAnim = false; LoadingGfxStart.Start(); loadingParent.Child.Add(LoadingGfxStart); loadingLabel.Text = CommonCode.TranslateText(189); loadingLabel.point = new Point((ScreenManager.WindowWidth / 2) - (TextRenderer.MeasureText(loadingLabel.Text, loadingLabel.font).Width / 2), 610); ///////////////// affichage des composants du tableau stats // affichage de l'avatar MenuStats.ThumbsAvatar = new Bmp(@"gfx\general\classes\" + actor.className + ".dat", new Point(15, 10), "ThumbsAvatar", Manager.TypeGfx.Top, true, 1, SpriteSheet.GetSpriteSheet("avatar_" + actor.className, 0)); MenuStats.ThumbsAvatar.tag = CommonCode.MyPlayerInfo.instance.ibPlayer.tag; CommonCode.ApplyMaskColorToClasse(MenuStats.ThumbsAvatar); MenuStats.StatsImg.Child.Add(MenuStats.ThumbsAvatar); // affichage du nom du personnage MenuStats.StatsPlayerName.Text = actor.pseudo[0].ToString().ToUpper() + actor.pseudo.Substring(1, actor.pseudo.Length - 1); // level MenuStats.StatsLevel.Text = CommonCode.TranslateText(50) + " " + actor.level; // affichage du rang général MenuStats.Rang.Text = CommonCode.officialRangToCurrentLangTranslation(actor.officialRang); // affichage du level Pvp MenuStats.LevelPvp.Text = actor.spiritLevel.ToString(); // affichage du grade Pvp if (spirit != Enums.Spirit.Name.neutral) { MenuStats.GradePvp = new Bmp(@"gfx\general\obj\2\" + actor.spirit + @"\" + MenuStats.LevelPvp.Text + ".dat", new Point(276 + (15 - Convert.ToInt16(MenuStats.LevelPvp.Text)), 2), new Size(40 + Convert.ToInt16(MenuStats.LevelPvp.Text), 20 + Convert.ToInt16(MenuStats.LevelPvp.Text)), "PlayerStats." + actor.spirit, Manager.TypeGfx.Top, true, 1); MenuStats.StatsImg.Child.Add(MenuStats.GradePvp); } // update des pdv,Pc HudHandle.UpdateHealth(); HudHandle.UpdatePc(); HudHandle.UpdatePm(); MenuStats.Flag = new Bmp(@"gfx\general\obj\1\pays_thumbs.dat", new Point(240, 8), "__Flag", Manager.TypeGfx.Top, true, 1, SpriteSheet.GetSpriteSheet("pays_" + actor.hiddenVillage + "_thumbs", 0)); MenuStats.StatsImg.Child.Add(MenuStats.Flag); MenuStats.LFlag.Text = playerData[5]; MenuStats.Fusion1.Text = CommonCode.TranslateText(75); MenuStats.Fusion2.Text = CommonCode.TranslateText(75); MenuStats.NiveauGaugeTxt.Text = CommonCode.TranslateText(50) + " " + actor.level; // NiveauGaugeRecPercent, barre de progression du niveau // calcule du pourcentage du niveau en progression int CurrentProgressLevel = actor.currentXp; int TotalProgressLevel = actor.maxXp; int PercentProgressLevel; if (TotalProgressLevel != 0) { PercentProgressLevel = (CurrentProgressLevel * 100) / TotalProgressLevel; } else { PercentProgressLevel = 100; } MenuStats.NiveauGaugeRecPercent.size.Width = (258 * PercentProgressLevel) / 100; // affichage du label progression lvl MenuStats.NiveauGaugeTxtCurrent.Text = CurrentProgressLevel + "/" + TotalProgressLevel + " (" + PercentProgressLevel + "%)"; MenuStats.NiveauGaugeTxtCurrent.point = new Point(MenuStats.NiveauGaugeRec2.point.X + (MenuStats.NiveauGaugeRec2.size.Width / 2) - (TextRenderer.MeasureText(MenuStats.NiveauGaugeTxtCurrent.Text, MenuStats.NiveauGaugeTxtCurrent.font).Width / 2), MenuStats.NiveauGaugeRec2.point.Y); // raffrechissement du text pour des mesures de changement de langue MenuStats.AffiniteElementaireTxt.Text = CommonCode.TranslateText(76); MenuStats.terreStats.Text = "(" + CommonCode.TranslateText(77) + ")"; MenuStats.FeuStats.Text = "(" + CommonCode.TranslateText(78) + ")"; MenuStats.VentStats.Text = "(" + CommonCode.TranslateText(79) + ")"; MenuStats.FoudreStats.Text = "(" + CommonCode.TranslateText(80) + ")"; MenuStats.EauStats.Text = "(" + CommonCode.TranslateText(81) + ")"; MenuStats.TerrePuissance.Text = "(" + actor.doton + "+" + actor.equipedDoton + ")=" + (actor.doton + actor.equipedDoton); MenuStats.FeuPuissance.Text = "(" + actor.katon + "+" + actor.equipedKaton + ")=" + (actor.katon + actor.equipedKaton); MenuStats.VentPuissance.Text = "(" + actor.futon + "+" + actor.equipedFuton + ")=" + (actor.futon + actor.equipedFuton); MenuStats.FoudrePuissance.Text = "(" + actor.raiton + "+" + actor.equipedRaiton + ")=" + (actor.raiton + actor.equipedRaiton); MenuStats.EauPuissance.Text = "(" + actor.suiton + "+" + actor.equipedSuiton + ")=" + (actor.suiton + actor.equipedSuiton); MenuStats.Lvl1RegleTxt.Text = CommonCode.TranslateText(82); MenuStats.Lvl2RegleTxt.Text = CommonCode.TranslateText(83); MenuStats.Lvl3RegleTxt.Text = CommonCode.TranslateText(84); MenuStats.Lvl4RegleTxt.Text = CommonCode.TranslateText(85); MenuStats.Lvl5RegleTxt.Text = CommonCode.TranslateText(86); MenuStats.Lvl6RegleTxt.Text = CommonCode.TranslateText(87); // affichage de la gauge lvl chakra selon les points MenuStats.Lvl2ReglePts.Text = CommonCode.chakra1Level.ToString(); MenuStats.Lvl3ReglePts.Text = CommonCode.chakra2Level.ToString(); MenuStats.Lvl4ReglePts.Text = CommonCode.chakra3Level.ToString(); MenuStats.Lvl5ReglePts.Text = CommonCode.chakra4Level.ToString(); MenuStats.Lvl6ReglePts.Text = CommonCode.chakra5Level.ToString(); // modification du lvl de l'utilisation de l'element CommonCode.UpdateUsingElement(Enums.Chakra.Element.doton, actor.usingDoton); CommonCode.UpdateUsingElement(Enums.Chakra.Element.katon, actor.usingKaton); CommonCode.UpdateUsingElement(Enums.Chakra.Element.futon, actor.usingFuton); CommonCode.UpdateUsingElement(Enums.Chakra.Element.raiton, actor.usingRaiton); CommonCode.UpdateUsingElement(Enums.Chakra.Element.suiton, actor.equipedSuiton); MenuStats.DotonLvl.Text = actor.usingDoton.ToString(); MenuStats.KatonLvl.Text = actor.usingKaton.ToString(); MenuStats.FutonLvl.Text = actor.usingFuton.ToString(); MenuStats.RaitonLvl.Text = actor.usingRaiton.ToString(); MenuStats.SuitonLvl.Text = actor.usingSuiton.ToString(); // bar de vie selon les pdv 11 current, 12 total int _maxHealth = actor.maxHealth; int _currentHealth = actor.currentHealth; int X = 0; if (_maxHealth != 0) { X = (_currentHealth * 100) / _maxHealth; } MenuStats.VieBar.size.Width = (236 * X) / 100; // point de vie dans Menustats MenuStats.VieLabel.Text = CommonCode.TranslateText(88); MenuStats.ViePts.Text = _currentHealth.ToString() + " / " + _maxHealth + " (" + X + "%)"; MenuStats.PC.Text = actor.originalPc.ToString(); MenuStats.PM.Text = actor.originalPm.ToString(); MenuStats.PE.Text = actor.pe.ToString(); MenuStats.CD.Text = actor.cd.ToString(); MenuStats.Invoc.Text = actor.summons.ToString(); MenuStats.Initiative.Text = actor.initiative.ToString(); MenuStats.Puissance.Text = (actor.power + actor.equipedPower).ToString(); MenuStats.DomFix.Text = actor.domFix.ToString(); MenuStats.Job1Label.Text = CommonCode.TranslateText(95) + " 1"; MenuStats.Specialite1Label.Text = CommonCode.TranslateText(96) + " 1"; MenuStats.Job2Labe1.Text = CommonCode.TranslateText(95) + " 2"; MenuStats.Specialite2Label.Text = CommonCode.TranslateText(96) + " 2"; MenuStats.PoidLabel.Text = CommonCode.TranslateText(97); int TotalPoid = actor.maxWeight; int CurrentPoid = actor.currentWeight; int PercentPoid = (CurrentPoid * 100) / TotalPoid; MenuStats.PoidRec.size.Width = (116 * PercentPoid) / 100; MenuStats.Poid.Text = CurrentPoid + " / " + TotalPoid + " (" + PercentPoid + "%)"; MenuStats.Poid.point.X = MenuStats.PoidRec.point.X + 58 - (TextRenderer.MeasureText(MenuStats.Poid.Text, MenuStats.Poid.font).Width / 2); MenuStats.Ryo.Text = CommonCode.MoneyThousendSeparation(actor.ryo.ToString()); MenuStats.resiDotonTxt.Text = actor.resiDotonPercent.ToString() + "%"; MenuStats.resiKatonTxt.Text = actor.resiKatonPercent.ToString() + "%"; MenuStats.resiFutonTxt.Text = actor.resiFutonPercent.ToString() + "%"; MenuStats.resiRaitonTxt.Text = actor.resiRaitonPercent.ToString() + "%"; MenuStats.resiSuitonTxt.Text = actor.resiSuitonPercent.ToString() + "%"; MenuStats.__esquivePC_Txt.Text = actor.dodgePc.ToString(); MenuStats.__esquivePM_Txt.Text = actor.dodgePm.ToString(); MenuStats.__retraitPC_Txt.Text = actor.removePc.ToString(); MenuStats.__retraitPM_Txt.Text = actor.removePm.ToString(); // quete // convertir la list de quete en string if (quest != "") { for (int cnt = 0; cnt < quest.Split('/').Length; cnt++) { string quete = quest.Split('/')[cnt]; Actor.QuestInformations qi = new Actor.QuestInformations(); qi.nom_quete = quete.Split(':')[0]; qi.totalSteps = Convert.ToInt16(quete.Split(':')[1]); qi.currentStep = Convert.ToInt16(quete.Split(':')[2]); qi.submited = Convert.ToBoolean(quete.Split(':')[3]); actor.Quests.Add(qi); } } // verification si le joueur été en combat pour le rediriger vers ce joueur if (inBattle) { CommonCode.MyPlayerInfo.instance.pseudo = actor.pseudo; CommonCode.MyPlayerInfo.instance.Event = "inBattle"; } actor.spellPointLeft = spellPointLeft; ///// effacement du menu loading loadingLabel.Text = CommonCode.TranslateText(190); loadingLabel.point = new Point((ScreenManager.WindowWidth / 2) - (TextRenderer.MeasureText(loadingLabel.Text, loadingLabel.font).Width / 2), 610); System.Threading.Thread.Sleep(2000); // changement de map Manager.manager.mainForm.BeginInvoke((Action)(() => { CommonCode.ChangeMap(actor.map); // affichage du hud Manager.manager.GfxTopList.Remove(loadingParent); })); //////////////////////// affichage du hud Manager.manager.mainForm.BeginInvoke((Action)(() => { //////////// menu des sorts MainForm.drawSpellStatesMenuOnce(); HudHandle.HudVisibility(true); // affichage du hud })); })).Start(); #endregion }