Add profiles

This commit is contained in:
SilicaAndPina 2021-03-04 00:34:30 +13:00
parent 4758fd0200
commit 524c7f2214
7 changed files with 295 additions and 63 deletions

View file

@ -920,7 +920,7 @@
}, },
"stats_page":{ "stats_page":{
"stats_bar_format":"^ATPlayer %USERNAME%'s Details^H", "stats_bar_format":"^ATPlayer %USERNAME%'s Details^H",
"stats_area_format":"Currently %AREA%", "stats_area_format":"Currently%AREA%",
"stats_money_format":"<BR>Money: <FONT COLOR='#003300'>$%MONEY%</FONT>", "stats_money_format":"<BR>Money: <FONT COLOR='#003300'>$%MONEY%</FONT>",
"stats_freetime_format":"<BR>Today's Free Time Remaining: <B>%FREEMINUTES% minutes.</B>", "stats_freetime_format":"<BR>Today's Free Time Remaining: <B>%FREEMINUTES% minutes.</B>",
"stats_description_format":"<BR>Description: <B>%PLAYERDESC%</B>", "stats_description_format":"<BR>Description: <B>%PLAYERDESC%</B>",
@ -939,16 +939,26 @@
"stats_awards":"^T5Your Horse Isle Awards:^D24|VIEW AWARDS^R1", "stats_awards":"^T5Your Horse Isle Awards:^D24|VIEW AWARDS^R1",
"stats_misc":"^T5Your Horse Isle Misc Tracked Stats:^D53|VIEW STATS^R1", "stats_misc":"^T5Your Horse Isle Misc Tracked Stats:^D53|VIEW STATS^R1",
"competition_gear":{ "competition_gear":{
"head_format":"^R1^I%ICON%^T7%ITEM% on your head.^B4X1", "head_format":"^R1^I%ICON%^T7%ITEM% on %PRONOUN% head.",
"body_format":"^R1^I%ICON%^T7%ITEM% on your body.^B4X2", "body_format":"^R1^I%ICON%^T7%ITEM% on %PRONOUN% body.",
"legs_format":"^R1^I%ICON%^T7%ITEM% on your legs.^B4X3", "legs_format":"^R1^I%ICON%^T7%ITEM% on %PRONOUN% legs.",
"feet_format":"^R1^I%ICON%^T7%ITEM% on your feet.^B4X4" "feet_format":"^R1^I%ICON%^T7%ITEM% on %PRONOUN% feet.",
"remove_head":"^B4X1",
"remove_body":"^B4X2",
"remove_legs":"^B4X3",
"remove_feet":"^B4X4",
}, },
"jewelry":{ "jewelry":{
"slot_1":"^I%ICON%^T7%ITEM%^B4X5^R1", "slot_1":"^I%ICON%^T7%ITEM%%BUTTON%^R1",
"slot_2":"^I%ICON%^T7%ITEM%^B4X6^R1", "slot_2":"^I%ICON%^T7%ITEM%%BUTTON%^R1",
"slot_3":"^I%ICON%^T7%ITEM%^B4X7^R1", "slot_3":"^I%ICON%^T7%ITEM%%BUTTON%^R1",
"slot_4":"^I%ICON%^T7%ITEM%^B4X8^R1" "slot_4":"^I%ICON%^T7%ITEM%%BUTTON%^R1",
"remove_slot_1":"^B4X5",
"remove_slot_2":"^B4X6",
"remove_slot_3":"^B4X7",
"remove_slot_4":"^B4X8"
}, },
"hunger_stat_name":"hungry", "hunger_stat_name":"hungry",
"thirst_stat_name":"thirsty", "thirst_stat_name":"thirsty",
@ -960,9 +970,30 @@
], ],
"msg":{ "msg":{
"no_jewelry_equipped":"You have no Jewelry on.", "no_jewelry_equipped":"You have no Jewelry on.",
"no_jewelry_other":"%PRONOUN% has no Jewelry on.",
"no_competition_gear":"^LYou have nothing interesting for special competition gear.", "no_competition_gear":"^LYou have nothing interesting for special competition gear.",
"no_competition_gear_other":"^L%PRONOUN% has nothing interesting for special competition gear.",
"competition_gear_selected":"^LYou have the following selected for competition gear:", "competition_gear_selected":"^LYou have the following selected for competition gear:",
"competition_gear_other_selected":"^L%PRONOUN% has the following selected for competition gear:",
"jewelry_selected":"You have the following lovely jewelry on:", "jewelry_selected":"You have the following lovely jewelry on:",
"jewelry_other":"%PRONOUN% has no Jewelry on.",
"other_horses":"^R1^LHere are %PRONOUN% horses:^R1"
},
"pronouns":{
"female_she":"She",
"female_her":"her",
"male_he":"He",
"male_his":"his",
"you_your":"your"
} }
}, },

View file

@ -339,6 +339,15 @@ namespace HISP.Game
public static string RakeNothing; public static string RakeNothing;
public static string ShovelNothing; public static string ShovelNothing;
// Pronouns
public static string PronounMaleHe;
public static string PronounMaleHis;
public static string PronounFemaleShe;
public static string PronounFemaleHer;
public static string PronounYouYour;
// Stats Page // Stats Page
public static string StatsBarFormat; public static string StatsBarFormat;
public static string StatsAreaFormat; public static string StatsAreaFormat;
@ -359,11 +368,21 @@ namespace HISP.Game
public static string JewelrySlot3Format; public static string JewelrySlot3Format;
public static string JewelrySlot4Format; public static string JewelrySlot4Format;
public static string JewelryRemoveSlot1Button;
public static string JewelryRemoveSlot2Button;
public static string JewelryRemoveSlot3Button;
public static string JewelryRemoveSlot4Button;
public static string CompetitionGearHeadFormat; public static string CompetitionGearHeadFormat;
public static string CompetitionGearBodyFormat; public static string CompetitionGearBodyFormat;
public static string CompetitionGearLegsFormat; public static string CompetitionGearLegsFormat;
public static string CompetitionGearFeetFormat; public static string CompetitionGearFeetFormat;
public static string CompetitionGearRemoveHeadButton;
public static string CompetitionGearRemoveBodyButton;
public static string CompetitionGearRemoveLegsButton;
public static string CompetitionGearRemoveFeetButton;
public static string StatsPrivateNotesButton; public static string StatsPrivateNotesButton;
public static string StatsQuestsButton; public static string StatsQuestsButton;
public static string StatsMinigameRankingButton; public static string StatsMinigameRankingButton;
@ -371,14 +390,23 @@ namespace HISP.Game
public static string StatsMiscButton; public static string StatsMiscButton;
public static string NoJewerlyEquipped; public static string NoJewerlyEquipped;
public static string NoJewerlyEquippedOther;
public static string NoCompetitionGear; public static string NoCompetitionGear;
public static string NoCompetitionGearOther;
public static string JewelrySelected; public static string JewelrySelected;
public static string JewelrySelectedOther;
public static string CompetitionGearSelected; public static string CompetitionGearSelected;
public static string CompetitionGearSelectedOther;
public static string StatHunger; public static string StatHunger;
public static string StatThirst; public static string StatThirst;
public static string StatTired; public static string StatTired;
public static string StatsOtherHorses;
public static string[] StatPlayerFormats; public static string[] StatPlayerFormats;
// Misc Stats // Misc Stats
@ -992,6 +1020,28 @@ namespace HISP.Game
// Click // Click
public static string NothingInterestingHere; public static string NothingInterestingHere;
public static string FormatOtherNoCompetitionGear(string pronoun)
{
return NoCompetitionGearOther.Replace("%PRONOUN%", pronoun);
}
public static string FormatOtherCompetitionGear(string pronoun)
{
return CompetitionGearSelectedOther.Replace("%PRONOUN%", pronoun);
}
public static string FormatOtherJewelerySelected(string pronoun)
{
return JewelrySelectedOther.Replace("%PRONOUN%", pronoun);
}
public static string FormatOtherNoJewelery(string pronoun)
{
return NoJewerlyEquippedOther.Replace("%PRONOUN%", pronoun);
}
public static string FormatOtherHorsesMeta(string pronoun)
{
return StatsOtherHorses.Replace("%PRONOUN%", pronoun);
}
// Socials // Socials
public static string FormatSocialButton(int socialId, string buttonName) public static string FormatSocialButton(int socialId, string buttonName)
{ {
@ -2095,38 +2145,38 @@ namespace HISP.Game
{ {
return statFormat.Replace("%STAT%", statName); return statFormat.Replace("%STAT%", statName);
} }
public static string FormatJewelrySlot1(string itemName, int icon) public static string FormatJewelrySlot1(string itemName, int icon, bool other)
{ {
return JewelrySlot1Format.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()); return JewelrySlot1Format.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()).Replace("%BUTTON%", other ? "" : Messages.JewelryRemoveSlot1Button);
} }
public static string FormatJewelrySlot2(string itemName, int icon) public static string FormatJewelrySlot2(string itemName, int icon, bool other)
{ {
return JewelrySlot2Format.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()); return JewelrySlot2Format.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()).Replace("%BUTTON%", other ? "" : Messages.JewelryRemoveSlot2Button);
} }
public static string FormatJewelrySlot3(string itemName, int icon) public static string FormatJewelrySlot3(string itemName, int icon, bool other)
{ {
return JewelrySlot3Format.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()); return JewelrySlot3Format.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()).Replace("%BUTTON%", other ? "" : Messages.JewelryRemoveSlot3Button);
} }
public static string FormatJewelrySlot4(string itemName, int icon) public static string FormatJewelrySlot4(string itemName, int icon, bool other)
{ {
return JewelrySlot4Format.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()); return JewelrySlot4Format.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()).Replace("%BUTTON%", other ? "" : Messages.JewelryRemoveSlot4Button);
} }
public static string FormatCompetitionGearHead(string itemName, int icon) public static string FormatCompetitionGearHead(string itemName, string pronoun, int icon, bool other)
{ {
return CompetitionGearHeadFormat.Replace("%ITEM%", itemName).Replace("%ICON%",icon.ToString()); return CompetitionGearHeadFormat.Replace("%ITEM%", itemName).Replace("%ICON%",icon.ToString()).Replace("%PRONOUN%", pronoun) + (other ? "" : Messages.CompetitionGearRemoveHeadButton);
} }
public static string FormatCompetitionGearBody(string itemName, int icon) public static string FormatCompetitionGearBody(string itemName, string pronoun, int icon, bool other)
{ {
return CompetitionGearBodyFormat.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()); return CompetitionGearBodyFormat.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()).Replace("%PRONOUN%", pronoun) + (other ? "" : Messages.CompetitionGearRemoveBodyButton); ;
} }
public static string FormatCompetitionGearLegs(string itemName, int icon) public static string FormatCompetitionGearLegs(string itemName, string pronoun, int icon, bool other)
{ {
return CompetitionGearLegsFormat.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()); return CompetitionGearLegsFormat.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()).Replace("%PRONOUN%", pronoun) + (other ? "" : Messages.CompetitionGearRemoveLegsButton);
} }
public static string FormatCompetitionGearFeet(string itemName, int icon) public static string FormatCompetitionGearFeet(string itemName, string pronoun, int icon, bool other)
{ {
return CompetitionGearFeetFormat.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()); return CompetitionGearFeetFormat.Replace("%ITEM%", itemName).Replace("%ICON%", icon.ToString()).Replace("%PRONOUN%", pronoun) + (other ? "" : Messages.CompetitionGearRemoveFeetButton );
} }
public static string FormatStatsBar(string username) public static string FormatStatsBar(string username)
{ {

View file

@ -246,20 +246,59 @@ namespace HISP.Game
return message; return message;
} }
private static string buildWornJewelery(User user) private static string buildWornJewelery(User user, bool other)
{ {
string message = Messages.JewelrySelected; string message = "";
if (user.EquipedJewelry.Slot1 != null)
message += Messages.FormatJewelrySlot1(user.EquipedJewelry.Slot1.Name, user.EquipedJewelry.Slot1.IconId); // Insert LGBT Patch here
if (user.EquipedJewelry.Slot2 != null)
message += Messages.FormatJewelrySlot2(user.EquipedJewelry.Slot2.Name, user.EquipedJewelry.Slot2.IconId); string pronoun = "";
if (user.EquipedJewelry.Slot3 != null) if (other)
message += Messages.FormatJewelrySlot3(user.EquipedJewelry.Slot3.Name, user.EquipedJewelry.Slot3.IconId); {
if (user.EquipedJewelry.Slot4 != null) if (user.Gender == "FEMALE")
message += Messages.FormatJewelrySlot4(user.EquipedJewelry.Slot4.Name, user.EquipedJewelry.Slot4.IconId); pronoun = Messages.PronounFemaleShe;
if (user.Gender == "MALE")
pronoun = Messages.PronounMaleHe;
}
if (!other)
message += Messages.JewelrySelected;
else
message += Messages.FormatOtherJewelerySelected(pronoun);
bool hasMsg = false;
if (user.EquipedJewelry.Slot1 != null)
{
message += Messages.FormatJewelrySlot1(user.EquipedJewelry.Slot1.Name, user.EquipedJewelry.Slot1.IconId, other);
hasMsg = true;
}
if (user.EquipedJewelry.Slot2 != null)
{
message += Messages.FormatJewelrySlot2(user.EquipedJewelry.Slot2.Name, user.EquipedJewelry.Slot2.IconId, other);
hasMsg = true;
}
if (user.EquipedJewelry.Slot3 != null)
{
message += Messages.FormatJewelrySlot3(user.EquipedJewelry.Slot3.Name, user.EquipedJewelry.Slot3.IconId, other);
hasMsg = true;
}
if (user.EquipedJewelry.Slot4 != null)
{
message += Messages.FormatJewelrySlot4(user.EquipedJewelry.Slot4.Name, user.EquipedJewelry.Slot4.IconId, other);
hasMsg = true;
}
if (!hasMsg)
{
if (!other)
message = Messages.NoJewerlyEquipped;
else
message = Messages.FormatOtherNoJewelery(pronoun);
}
if (message == Messages.JewelrySelected)
message = Messages.NoJewerlyEquipped;
return message; return message;
} }
@ -297,20 +336,57 @@ namespace HISP.Game
message += Messages.MetaTerminator; message += Messages.MetaTerminator;
return message; return message;
} }
private static string buildEquippedCompetitionGear(User user) private static string buildEquippedCompetitionGear(User user, bool other = false)
{ {
string message = Messages.CompetitionGearSelected; string message = "";
if (user.EquipedCompetitionGear.Head != null)
message += Messages.FormatCompetitionGearHead(user.EquipedCompetitionGear.Head.Name, user.EquipedCompetitionGear.Head.IconId);
if (user.EquipedCompetitionGear.Body != null)
message += Messages.FormatCompetitionGearBody(user.EquipedCompetitionGear.Body.Name, user.EquipedCompetitionGear.Body.IconId);
if (user.EquipedCompetitionGear.Legs != null)
message += Messages.FormatCompetitionGearLegs(user.EquipedCompetitionGear.Legs.Name, user.EquipedCompetitionGear.Legs.IconId);
if (user.EquipedCompetitionGear.Feet != null)
message += Messages.FormatCompetitionGearFeet(user.EquipedCompetitionGear.Feet.Name, user.EquipedCompetitionGear.Feet.IconId);
if (message == Messages.CompetitionGearSelected) if (!other)
message = Messages.NoCompetitionGear; message = Messages.CompetitionGearSelected;
// Insert LGBT Patch Here
string pronoun = Messages.PronounYouYour;
if(other)
{
if (user.Gender == "FEMALE")
pronoun = Messages.PronounFemaleShe;
if (user.Gender == "MALE")
pronoun = Messages.PronounMaleHe;
message = Messages.FormatOtherCompetitionGear(pronoun);
}
bool hasMsg = false;
if (user.EquipedCompetitionGear.Head != null)
{
message += Messages.FormatCompetitionGearHead(user.EquipedCompetitionGear.Head.Name, pronoun, user.EquipedCompetitionGear.Head.IconId, other);
hasMsg = true;
}
if (user.EquipedCompetitionGear.Body != null)
{
message += Messages.FormatCompetitionGearBody(user.EquipedCompetitionGear.Body.Name, pronoun, user.EquipedCompetitionGear.Body.IconId, other);
hasMsg = true;
}
if (user.EquipedCompetitionGear.Legs != null)
{
message += Messages.FormatCompetitionGearLegs(user.EquipedCompetitionGear.Legs.Name, pronoun, user.EquipedCompetitionGear.Legs.IconId, other);
hasMsg = true;
}
if (user.EquipedCompetitionGear.Feet != null)
{
message += Messages.FormatCompetitionGearFeet(user.EquipedCompetitionGear.Feet.Name, pronoun, user.EquipedCompetitionGear.Feet.IconId, other);
hasMsg = true;
}
if (!hasMsg)
{
if (!other)
message = Messages.NoCompetitionGear;
else
message = Messages.FormatOtherNoCompetitionGear(pronoun);
}
return message; return message;
@ -897,14 +973,15 @@ namespace HISP.Game
message += Messages.MetaTerminator; message += Messages.MetaTerminator;
return message; return message;
} }
public static string BuildStatsMenu(User user) public static string BuildStatsMenu(User user, bool other=false)
{ {
string message = Messages.FormatStatsBar(user.Username); string message = Messages.FormatStatsBar(user.Username);
string areaString = buildAreaString(user.X, user.Y); string areaString = buildAreaString(user.X, user.Y);
if (areaString != "") if (areaString != "")
message += Messages.FormatStatsArea(areaString); message += Messages.FormatStatsArea(areaString);
message += Messages.FormatMoneyStat(user.Money); if(!other)
message += Messages.FormatMoneyStat(user.Money);
if (!user.Subscribed) if (!user.Subscribed)
message += Messages.FormatFreeTime(user.FreeMinutes); message += Messages.FormatFreeTime(user.FreeMinutes);
message += Messages.FormatPlayerDescriptionForStatsMenu(user.ProfilePage); message += Messages.FormatPlayerDescriptionForStatsMenu(user.ProfilePage);
@ -913,13 +990,36 @@ namespace HISP.Game
message += Messages.FormatThirstStat(Messages.FormatPlayerStat(SelectPlayerStatFormat(user.Thirst), Messages.StatThirst)); message += Messages.FormatThirstStat(Messages.FormatPlayerStat(SelectPlayerStatFormat(user.Thirst), Messages.StatThirst));
message += Messages.FormatTiredStat(Messages.FormatPlayerStat(SelectPlayerStatFormat(user.Tiredness), Messages.StatTired)); message += Messages.FormatTiredStat(Messages.FormatPlayerStat(SelectPlayerStatFormat(user.Tiredness), Messages.StatTired));
message += Messages.FormatGenderStat(user.Gender); message += Messages.FormatGenderStat(user.Gender);
message += Messages.FormatJewelryStat(buildWornJewelery(user)); message += Messages.FormatJewelryStat(buildWornJewelery(user, other));
message += Messages.FormatCompetitionGearStat(buildEquippedCompetitionGear(user)); message += Messages.FormatCompetitionGearStat(buildEquippedCompetitionGear(user, other));
message += Messages.StatsPrivateNotesButton;
message += Messages.StatsQuestsButton; if(!other)
message += Messages.StatsMinigameRankingButton; {
message += Messages.StatsAwardsButton; message += Messages.StatsPrivateNotesButton;
message += Messages.StatsMiscButton; message += Messages.StatsQuestsButton;
message += Messages.StatsMinigameRankingButton;
message += Messages.StatsAwardsButton;
message += Messages.StatsMiscButton;
}
else
{
// Insert LGBT Patch here
string pronoun = "";
if (other)
{
if (user.Gender == "FEMALE")
pronoun = Messages.PronounFemaleHer;
if (user.Gender == "MALE")
pronoun = Messages.PronounMaleHis;
}
message += Messages.FormatOtherHorsesMeta(pronoun);
message += buildHorseList(user, false);
}
message += Messages.BackToMap; message += Messages.BackToMap;
message += Messages.MetaTerminator; message += Messages.MetaTerminator;

View file

@ -330,11 +330,10 @@ namespace HISP.Game
return quest; return quest;
} }
} }
throw new KeyNotFoundException("QuestId: " + id + " Dont exist."); throw new KeyNotFoundException("Quest Id: " + id + " Dont exist.");
} }
public static bool UseTool(User user, string tool, int x, int y) public static bool UseTool(User user, string tool, int x, int y)
{ {
if (tool == Quest.Shovel) if (tool == Quest.Shovel)
{ {
// check Treasures // check Treasures

View file

@ -1152,6 +1152,15 @@ namespace HISP.Server
Messages.LoginMessageFormat = gameData.messages.login_format; Messages.LoginMessageFormat = gameData.messages.login_format;
Messages.LogoutMessageFormat = gameData.messages.logout_format; Messages.LogoutMessageFormat = gameData.messages.logout_format;
// Pronoun
Messages.PronounFemaleShe = gameData.messages.meta.stats_page.pronouns.female_she;
Messages.PronounFemaleHer = gameData.messages.meta.stats_page.pronouns.female_her;
Messages.PronounMaleHe = gameData.messages.meta.stats_page.pronouns.male_he;
Messages.PronounMaleHis = gameData.messages.meta.stats_page.pronouns.male_his;
Messages.PronounYouYour = gameData.messages.meta.stats_page.pronouns.you_your;
// Stats // Stats
Messages.StatsBarFormat = gameData.messages.meta.stats_page.stats_bar_format; Messages.StatsBarFormat = gameData.messages.meta.stats_page.stats_bar_format;
Messages.StatsAreaFormat = gameData.messages.meta.stats_page.stats_area_format; Messages.StatsAreaFormat = gameData.messages.meta.stats_page.stats_area_format;
@ -1172,11 +1181,21 @@ namespace HISP.Server
Messages.JewelrySlot3Format = gameData.messages.meta.stats_page.jewelry.slot_3; Messages.JewelrySlot3Format = gameData.messages.meta.stats_page.jewelry.slot_3;
Messages.JewelrySlot4Format = gameData.messages.meta.stats_page.jewelry.slot_4; Messages.JewelrySlot4Format = gameData.messages.meta.stats_page.jewelry.slot_4;
Messages.JewelryRemoveSlot1Button = gameData.messages.meta.stats_page.competition_gear.remove_slot_1;
Messages.JewelryRemoveSlot2Button = gameData.messages.meta.stats_page.competition_gear.remove_slot_2;
Messages.JewelryRemoveSlot3Button = gameData.messages.meta.stats_page.competition_gear.remove_slot_3;
Messages.JewelryRemoveSlot4Button = gameData.messages.meta.stats_page.competition_gear.remove_slot_4;
Messages.CompetitionGearHeadFormat = gameData.messages.meta.stats_page.competition_gear.head_format; Messages.CompetitionGearHeadFormat = gameData.messages.meta.stats_page.competition_gear.head_format;
Messages.CompetitionGearBodyFormat = gameData.messages.meta.stats_page.competition_gear.body_format; Messages.CompetitionGearBodyFormat = gameData.messages.meta.stats_page.competition_gear.body_format;
Messages.CompetitionGearLegsFormat = gameData.messages.meta.stats_page.competition_gear.legs_format; Messages.CompetitionGearLegsFormat = gameData.messages.meta.stats_page.competition_gear.legs_format;
Messages.CompetitionGearFeetFormat = gameData.messages.meta.stats_page.competition_gear.feet_format; Messages.CompetitionGearFeetFormat = gameData.messages.meta.stats_page.competition_gear.feet_format;
Messages.CompetitionGearRemoveHeadButton = gameData.messages.meta.stats_page.competition_gear.remove_head;
Messages.CompetitionGearRemoveBodyButton = gameData.messages.meta.stats_page.competition_gear.remove_body;
Messages.CompetitionGearRemoveLegsButton = gameData.messages.meta.stats_page.competition_gear.remove_legs;
Messages.CompetitionGearRemoveFeetButton = gameData.messages.meta.stats_page.competition_gear.remove_feet;
Messages.StatsPrivateNotesButton = gameData.messages.meta.stats_page.stats_private_notes; Messages.StatsPrivateNotesButton = gameData.messages.meta.stats_page.stats_private_notes;
Messages.StatsQuestsButton = gameData.messages.meta.stats_page.stats_quests; Messages.StatsQuestsButton = gameData.messages.meta.stats_page.stats_quests;
Messages.StatsMinigameRankingButton = gameData.messages.meta.stats_page.stats_minigame_ranking; Messages.StatsMinigameRankingButton = gameData.messages.meta.stats_page.stats_minigame_ranking;
@ -1184,14 +1203,23 @@ namespace HISP.Server
Messages.StatsMiscButton = gameData.messages.meta.stats_page.stats_misc; Messages.StatsMiscButton = gameData.messages.meta.stats_page.stats_misc;
Messages.JewelrySelected = gameData.messages.meta.stats_page.msg.jewelry_selected; Messages.JewelrySelected = gameData.messages.meta.stats_page.msg.jewelry_selected;
Messages.JewelrySelectedOther = gameData.messages.meta.stats_page.msg.jewelry_other;
Messages.NoJewerlyEquipped = gameData.messages.meta.stats_page.msg.no_jewelry_equipped; Messages.NoJewerlyEquipped = gameData.messages.meta.stats_page.msg.no_jewelry_equipped;
Messages.NoJewerlyEquippedOther = gameData.messages.meta.stats_page.msg.no_jewelry_other;
Messages.NoCompetitionGear = gameData.messages.meta.stats_page.msg.no_competition_gear; Messages.NoCompetitionGear = gameData.messages.meta.stats_page.msg.no_competition_gear;
Messages.NoCompetitionGearOther = gameData.messages.meta.stats_page.msg.no_competition_gear_other;
Messages.CompetitionGearSelected = gameData.messages.meta.stats_page.msg.competition_gear_selected; Messages.CompetitionGearSelected = gameData.messages.meta.stats_page.msg.competition_gear_selected;
Messages.CompetitionGearSelectedOther = gameData.messages.meta.stats_page.msg.competition_gear_other_selected;
Messages.StatHunger = gameData.messages.meta.stats_page.hunger_stat_name; Messages.StatHunger = gameData.messages.meta.stats_page.hunger_stat_name;
Messages.StatThirst = gameData.messages.meta.stats_page.thirst_stat_name; Messages.StatThirst = gameData.messages.meta.stats_page.thirst_stat_name;
Messages.StatTired = gameData.messages.meta.stats_page.tired_stat_name; Messages.StatTired = gameData.messages.meta.stats_page.tired_stat_name;
Messages.StatsOtherHorses = gameData.messages.meta.stats_page.msg.other_horses;
Messages.StatPlayerFormats = gameData.messages.meta.stats_page.player_stats.ToObject<string[]>(); Messages.StatPlayerFormats = gameData.messages.meta.stats_page.player_stats.ToObject<string[]>();
// Misc Stats // Misc Stats

View file

@ -235,13 +235,36 @@ namespace HISP.Server
if (sender.LoggedinUser.TradingWith != null) if (sender.LoggedinUser.TradingWith != null)
sender.LoggedinUser.TradingWith.AcceptTrade(); sender.LoggedinUser.TradingWith.AcceptTrade();
break; break;
case PacketBuilder.PLAYER_INTERACTION_PROFILE:
string packetStr = Encoding.UTF8.GetString(packet);
string playerIdStr = packetStr.Substring(2, packetStr.Length - 4);
int playerId = -1;
try
{
playerId = int.Parse(playerIdStr);
}
catch (FormatException)
{
Logger.ErrorPrint(sender.LoggedinUser.Username + " tried to trade with User ID NaN.");
break;
}
if(IsUserOnline(playerId))
{
User user = GetUserById(playerId);
sender.LoggedinUser.MetaPriority = true;
byte[] metaTag = PacketBuilder.CreateMetaPacket(Meta.BuildStatsMenu(user, true));
sender.SendPacket(metaTag);
}
break;
case PacketBuilder.PLAYER_INTERACTION_ADD_ITEM: case PacketBuilder.PLAYER_INTERACTION_ADD_ITEM:
if (sender.LoggedinUser.TradingWith == null) if (sender.LoggedinUser.TradingWith == null)
break; break;
if (packet.Length < 5) if (packet.Length < 5)
break; break;
string packetStr = Encoding.UTF8.GetString(packet); packetStr = Encoding.UTF8.GetString(packet);
string idStr = packetStr.Substring(2, packetStr.Length - 4); string idStr = packetStr.Substring(2, packetStr.Length - 4);
char firstChar = idStr[0]; char firstChar = idStr[0];
switch(firstChar) switch(firstChar)
@ -313,8 +336,8 @@ namespace HISP.Server
break; break;
case PacketBuilder.PLAYER_INTERACTION_TRADE: case PacketBuilder.PLAYER_INTERACTION_TRADE:
packetStr = Encoding.UTF8.GetString(packet); packetStr = Encoding.UTF8.GetString(packet);
string playerIdStr = packetStr.Substring(2, packetStr.Length - 4); playerIdStr = packetStr.Substring(2, packetStr.Length - 4);
int playerId = -1; playerId = -1;
try try
{ {
playerId = int.Parse(playerIdStr); playerId = int.Parse(playerIdStr);

View file

@ -56,6 +56,7 @@ namespace HISP.Server
public const byte SOCIALS_MENU = 0x14; public const byte SOCIALS_MENU = 0x14;
public const byte SOCIALS_USE = 0x15; public const byte SOCIALS_USE = 0x15;
public const byte PLAYER_INTERACTION_PROFILE = 0x14;
public const byte PLAYER_INTERACTION_TRADE = 0x28; public const byte PLAYER_INTERACTION_TRADE = 0x28;
public const byte PLAYER_INTERACTION_ADD_ITEM = 0x29; public const byte PLAYER_INTERACTION_ADD_ITEM = 0x29;
public const byte PLAYER_INTERACTION_ACCEPT = 0x2A; public const byte PLAYER_INTERACTION_ACCEPT = 0x2A;