public void OnCharCreateResult(uint charID, SM_CHAR_CREATE_RESULT.Results Result) { if (Result == SM_CHAR_CREATE_RESULT.Results.OK) { createdPC.CharID = charID; Common.Quests.Quest q = new Common.Quests.Quest() { QuestID = 250, Step = 1, NextStep = 1 }; createdPC.Quests[q.QuestID] = q; CharacterSession.Instance.CharacterSave(createdPC); SM_CHAR_CREATE p = new SM_CHAR_CREATE() { Character = createdPC }; Network.SendPacket(p); chars[createdPC.SlotID] = createdPC; } else { SM_CHAR_CREATE_FAILED p1 = new SM_CHAR_CREATE_FAILED() { SlotID = Utils.slot2GuidBytes(createdPC.SlotID), Reason = SM_CHAR_CREATE_FAILED.Reasons.NameAlreadyExists }; Network.SendPacket(p1); } }
private void LoadQuest(ActorPC pc) { string sqlstr = string.Format("SELECT * FROM `quest` WHERE `char_id` = '{0}';", pc.CharID); DataRowCollection result; lock (pc.Quests) { pc.Quests.Clear(); if (SQLExecuteQuery(sqlstr, out result)) { for (int i = 0; result.Count > i; i++) { Common.Quests.Quest q = new Common.Quests.Quest() { QuestID = (ushort)result[i]["quest_id"], Step = (byte)result[i]["step"], StepStatus = (byte)result[i]["step_status"], NextStep = (byte)result[i]["next_step"], Flag1 = (short)result[i]["flag1"], Flag2 = (short)result[i]["flag2"], Flag3 = (short)result[i]["flag3"] }; q.Count[0] = (int)result[i]["count1"]; q.Count[1] = (int)result[i]["count2"]; q.Count[2] = (int)result[i]["count3"]; q.Count[3] = (int)result[i]["count4"]; q.Count[4] = (int)result[i]["count5"]; pc.Quests[q.QuestID] = q; } } } sqlstr = string.Format("SELECT * FROM `quest_completed` WHERE `char_id` = '{0}';", pc.CharID); if (SQLExecuteQuery(sqlstr, out result)) { for (int i = 0; result.Count > i; i++) { pc.QuestsCompleted.Add((ushort)result[i]["quest_id"]); } } }
public void OnCharCreateResult(uint charID, SM_CHAR_CREATE_RESULT.Results Result) { if (Result == SM_CHAR_CREATE_RESULT.Results.OK) { createdPC.CharID = charID; Common.Quests.Quest q = new Common.Quests.Quest() { QuestID = 250, Step = 1, NextStep = 1 }; createdPC.Quests[q.QuestID] = q; CharacterSession.Instance.CharacterSave(createdPC); BNSLoginPacket p = new BNSLoginPacket() { Command = "STS/1.0 200 OK", Serial = characterSerial, Content = string.Format("<bns>\n<protocol>Game.bns.{1}</protocol>\n<command>CreatePc</command>\n<result>OK</result>\n<slotid>{0}</slotid>\n</bns>\n", ((uint)createdPC.SlotID).ToGUID(), createdPC.WorldID) }; p.WritePacket(); Network.SendPacket(p); if (!chars.ContainsKey(createdPC.SlotID)) { chars[createdPC.SlotID] = createdPC; } } else { BNSLoginPacket p = new BNSLoginPacket() { Command = "STS/1.0 200 OK", Serial = characterSerial, Content = string.Format("<bns>\n<protocol>Game.bns.{1}</protocol>\n<command>CreatePc</command>\n<result>Fail</result>\n<slotid>{0}</slotid>\n<reason>202</reason>\n</bns>\n", ((uint)createdPC.SlotID).ToGUID(), createdPC.WorldID) }; p.WritePacket(); Network.SendPacket(p); } }