internal static void Packet_QuestMessage(ref byte[] data) { ByteStream buffer = new ByteStream(data); QuestNum = buffer.ReadInt32(); QuestMessage = buffer.ReadString().Trim(); QuestMessage = QuestMessage.Replace("$playername$", C_Player.GetPlayerName(C_Variables.Myindex)); QuestNumForStart = buffer.ReadInt32(); UpdateQuestChat = true; buffer.Dispose(); }
public static void Packet_Visit(ref byte[] data) { int i = 0; ByteStream buffer = new ByteStream(data); i = buffer.ReadInt32(); C_Variables.DialogType = C_Constants.DialogueTypeVisit; C_Variables.DialogMsg1 = "You have been invited to visit " + C_Player.GetPlayerName(i).Trim() + "'s house."; C_Variables.DialogMsg2 = ""; C_Variables.DialogMsg3 = ""; buffer.Dispose(); C_Variables.UpdateDialog = true; }
// //////////////////////// // // Visual Interaction // // //////////////////////// internal static void LoadQuestlogBox() { int questNum = 0; int curTask = 0; int I = 0; if (SelectedQuest == 0) { return; } for (I = 1; I <= MaxQuests; I++) { if (QuestNames[SelectedQuest].Trim() == Quest[I].Name.Trim()) { questNum = I; } } if (questNum == 0) { return; } curTask = C_Types.Player[C_Variables.Myindex].PlayerQuest[questNum].ActualTask; if (curTask >= Quest[questNum].Task.Length) { return; } //Quest Log (Main Task) QuestTaskLogText = Quest[questNum].QuestLog.Trim(); //Actual Task QuestTaskLogText = Quest[questNum].Task[curTask].TaskLog.Trim(); //Last dialog if (C_Types.Player[C_Variables.Myindex].PlayerQuest[questNum].ActualTask > 1) { if (System.Convert.ToString(Quest[questNum].Task[curTask - 1].Speech).Trim().Length > 0) { QuestDialogText = System.Convert.ToString(System.Convert.ToString(Quest[questNum].Task[curTask - 1].Speech).Trim().Replace("$playername$", C_Player.GetPlayerName(C_Variables.Myindex))); } else { QuestDialogText = System.Convert.ToString(Quest[questNum].Chat[1].Replace("$playername$", C_Player.GetPlayerName(C_Variables.Myindex))).Trim(); } } else { QuestDialogText = System.Convert.ToString(Quest[questNum].Chat[1].Replace("$playername$", C_Player.GetPlayerName(C_Variables.Myindex))).Trim(); } //Quest Status if (C_Types.Player[C_Variables.Myindex].PlayerQuest[questNum].Status == (int)Enums.QuestStatusType.Started) { QuestStatus2Text = Strings.Get("quests", "queststarted"); AbandonQuestText = Strings.Get("quests", "questcancel"); AbandonQuestVisible = true; } else if (C_Types.Player[C_Variables.Myindex].PlayerQuest[questNum].Status == (int)Enums.QuestStatusType.Completed) { QuestStatus2Text = Strings.Get("quests", "questcomplete"); AbandonQuestVisible = false; } else { QuestStatus2Text = "???"; AbandonQuestVisible = false; } switch (Quest[questNum].Task[curTask].TaskType) { //defeat x amount of Npc case (int)Enums.QuestType.Slay: int curCount_1 = C_Types.Player[C_Variables.Myindex].PlayerQuest[questNum].CurrentCount; int maxAmount_1 = Quest[questNum].Task[curTask].Amount; string npcName_1 = Types.Npc[Quest[questNum].Task[curTask].Npc].Name; ActualTaskText = Strings.Get("quests", "questgoslay", curCount_1, maxAmount_1, npcName_1); //"Defeat " & CurCount & "/" & MaxAmount & " " & NpcName break; //gather x amount of items case (int)Enums.QuestType.Collect: int curCount_2 = C_Types.Player[C_Variables.Myindex].PlayerQuest[questNum].CurrentCount; int maxAmount_2 = Quest[questNum].Task[curTask].Amount; string itemName_1 = Types.Item[Quest[questNum].Task[curTask].Item].Name; ActualTaskText = Strings.Get("quests", "questgocollect", curCount_2, maxAmount_2, itemName_1); //"Collect " & CurCount & "/" & MaxAmount & " " & ItemName break; //go talk to npc case (int)Enums.QuestType.Talk: string npcName_2 = Types.Npc[Quest[questNum].Task[curTask].Npc].Name; ActualTaskText = Strings.Get("quests", "questtalkto", npcName_2); //"Go talk to " & NpcName break; //reach certain map case (int)Enums.QuestType.Reach: string mapName = C_Types.MapNames[Quest[questNum].Task[curTask].Map]; ActualTaskText = Strings.Get("quests", "questgoto", mapName); //"Go to " & MapName break; case (int)Enums.QuestType.Give: //give x amount of items to npc string npcName_3 = Types.Npc[Quest[questNum].Task[curTask].Npc].Name; int curCount_3 = C_Types.Player[C_Variables.Myindex].PlayerQuest[questNum].CurrentCount; int maxAmount_3 = Quest[questNum].Task[curTask].Amount; string itemName_2 = Types.Item[Quest[questNum].Task[curTask].Item].Name; ActualTaskText = Strings.Get("quests", "questgive", npcName_3, itemName_2, curCount_3, maxAmount_3); //"Give " & NpcName & " the " & ItemName & CurCount & "/" & MaxAmount & " they requested" break; //defeat certain amount of players case (int)Enums.QuestType.Kill: int curCount_4 = C_Types.Player[C_Variables.Myindex].PlayerQuest[questNum].CurrentCount; int maxAmount_4 = Quest[questNum].Task[curTask].Amount; ActualTaskText = Strings.Get("quests", "questkill", curCount_4, maxAmount_4); //"Defeat " & CurCount & "/" & MaxAmount & " Players in Battle" break; //go collect resources case (int)Enums.QuestType.Gather: int curCount = C_Types.Player[C_Variables.Myindex].PlayerQuest[questNum].CurrentCount; int maxAmount_5 = Quest[questNum].Task[curTask].Amount; string resourceName = Types.Resource[Quest[questNum].Task[curTask].Resource].Name; ActualTaskText = Strings.Get("quests", "questgather", curCount, maxAmount_5, resourceName); //"Gather " & CurCount & "/" & MaxAmount & " " & ResourceName break; //fetch x amount of items from npc case (int)Enums.QuestType.Fetch: string npcName = Types.Item[Quest[questNum].Task[curTask].Npc].Name; int maxAmount = Quest[questNum].Task[curTask].Amount; string itemName = Types.Item[Quest[questNum].Task[curTask].Item].Name; ActualTaskText = Strings.Get("quests", "questfetch", itemName, maxAmount, npcName); //"Fetch " & ItemName & "X" & MaxAmount & " from " & NpcName break; default: //ToDo ActualTaskText = "errr..."; break; } //Rewards QuestRewardsText = new string[Quest[questNum].RewardCount + 1 + 1]; for (I = 1; I <= Quest[questNum].RewardCount; I++) { QuestRewardsText[I] = Types.Item[Quest[questNum].RewardItem[I]].Name + " X" + Conversion.Str(Quest[questNum].RewardItemAmount[I]); } QuestRewardsText[I] = Conversion.Str(Quest[questNum].RewardExp) + " EXP"; }
internal static void DrawParty() { int I = 0; int x = 0; int y = 0; int barwidth = 0; int playerNum = 0; string theName = ""; Rectangle[] rec = new Rectangle[2]; // render the window // draw the bars if (Party.Leader > 0) // make sure we're in a party { // draw leader playerNum = Party.Leader; // name theName = C_Player.GetPlayerName(playerNum).Trim(); // draw name y = 100; x = 10; C_Text.DrawText(x, y, theName, SFML.Graphics.Color.Yellow, SFML.Graphics.Color.Black, C_Graphics.GameWindow); // draw hp if (C_Types.Player[playerNum].Vital[(byte)Enums.VitalType.HP] > 0) { // calculate the width to fill barwidth = System.Convert.ToInt32(C_Types.Player[playerNum].Vital[(byte)Enums.VitalType.HP] / (C_Player.GetPlayerMaxVital(playerNum, Enums.VitalType.HP)) * 64); // draw bars rec[1] = new Rectangle(x, y, barwidth, 6); RectangleShape rectShape = new RectangleShape(new Vector2f(barwidth, 6)) { Position = new Vector2f(x, y + 15), FillColor = SFML.Graphics.Color.Red }; C_Graphics.GameWindow.Draw(rectShape); } // draw mp if (C_Types.Player[playerNum].Vital[(byte)Enums.VitalType.MP] > 0) { // calculate the width to fill barwidth = System.Convert.ToInt32(C_Types.Player[playerNum].Vital[(byte)Enums.VitalType.MP] / (C_Player.GetPlayerMaxVital(playerNum, Enums.VitalType.MP)) * 64); // draw bars rec[1] = new Rectangle(x, y, barwidth, 6); RectangleShape rectShape2 = new RectangleShape(new Vector2f(barwidth, 6)) { Position = new Vector2f(x, y + 24), FillColor = SFML.Graphics.Color.Blue }; C_Graphics.GameWindow.Draw(rectShape2); } // draw members for (I = 1; I <= Constants.MAX_PARTY_MEMBERS; I++) { if (Party.Member[I] > 0) { if (Party.Member[I] != Party.Leader) { // cache the index playerNum = Party.Member[I]; // name theName = C_Player.GetPlayerName(playerNum).Trim(); // draw name y = 100 + ((I - 1) * 30); C_Text.DrawText(x, y, theName, SFML.Graphics.Color.White, SFML.Graphics.Color.Black, C_Graphics.GameWindow); // draw hp y = 115 + ((I - 1) * 30); // make sure we actually have the data before rendering if (C_Player.GetPlayerVital(playerNum, Enums.VitalType.HP) > 0 && C_Player.GetPlayerMaxVital(playerNum, Enums.VitalType.HP) > 0) { barwidth = System.Convert.ToInt32(C_Types.Player[playerNum].Vital[(byte)Enums.VitalType.HP] / (C_Player.GetPlayerMaxVital(playerNum, Enums.VitalType.HP)) * 64); } rec[1] = new Rectangle(x, y, barwidth, 6); RectangleShape rectShape = new RectangleShape(new Vector2f(barwidth, 6)) { Position = new Vector2f(x, y), FillColor = SFML.Graphics.Color.Red }; C_Graphics.GameWindow.Draw(rectShape); // draw mp y = 115 + ((I - 1) * 30); // make sure we actually have the data before rendering if (C_Player.GetPlayerVital(playerNum, Enums.VitalType.MP) > 0 && C_Player.GetPlayerMaxVital(playerNum, Enums.VitalType.MP) > 0) { barwidth = System.Convert.ToInt32(C_Types.Player[playerNum].Vital[(byte)Enums.VitalType.MP] / (C_Player.GetPlayerMaxVital(playerNum, Enums.VitalType.MP)) * 64); } rec[1] = new Rectangle(x, y, barwidth, 6); RectangleShape rectShape2 = new RectangleShape(new Vector2f(barwidth, 6)) { Position = new Vector2f(x, y + 8), FillColor = SFML.Graphics.Color.Blue }; C_Graphics.GameWindow.Draw(rectShape2); } } } } }