Code:
/// <summary>
/// Char_NEW_JOB character creation character
/// </summary>
/// <param name="characterCreateNewJobPacket"></param>
public void CreateCharacterWrestler(MartialArtistCreatePacket characterCreatePacket)
{
if (Session.HasCurrentMapInstance)
{
return;
}
// TODO: Hold Account Information in Authorized object
long accountId = Session.Account.AccountId;
Logger.LogUserEvent("CREATECHARACTER", Session.GenerateIdentity(),
$"[CreateCharacter]Name: {characterCreatePacket.Name} Slot: {characterCreatePacket.Slot} Gender: {characterCreatePacket.Gender} HairStyle: {characterCreatePacket.HairStyle} HairColor: {characterCreatePacket.HairColor}");
if (characterCreatePacket.Slot <= 3
&& DAOFactory.CharacterDAO.LoadBySlot(accountId, characterCreatePacket.Slot) == null
&& characterCreatePacket.Name.Length > 3 && characterCreatePacket.Name.Length < 15)
{
Regex rg = new Regex(@"^[A-Za-z0-9_äÄöÖüÜß~*<>°+-.!_-Й¤£±†‡×ßø^\S]+$");
if (rg.Matches(characterCreatePacket.Name).Count == 1)
{
if (DAOFactory.CharacterDAO.LoadByName(characterCreatePacket.Name) == null)
{
if (characterCreatePacket.Slot > 3)
{
return;
}
CharacterDTO newCharacter = new CharacterDTO
{
Class = ClassType.Fighter,
Gender = characterCreatePacket.Gender,
HairColor = characterCreatePacket.HairColor,
HairStyle = characterCreatePacket.HairStyle,
Hp = 221,
JobLevel = 1,
Level = 81,
MapId = 129,
MapX = 120,
MapY = 129,
Mp = 221,
MaxMateCount = 10,
SpPoint = 2000,
SpAdditionPoint = 0,
Name = characterCreatePacket.Name,
Slot = characterCreatePacket.Slot,
AccountId = accountId,
MinilandMessage = "Welcome",
State = CharacterState.Active,
MinilandPoint = 2000,
Reputation = 50001,
};
DAOFactory.CharacterDAO.InsertOrUpdate(ref newCharacter);
//CharacterQuestDTO firstQuest = new CharacterQuestDTO { CharacterId = newCharacter.CharacterId, QuestId = 1531, IsMainQuest = true };
CharacterSkillDTO sk1 =
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1525 };
CharacterSkillDTO sk2 =
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1529 };
CharacterSkillDTO sk3 =
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 236 };
// init skills
List<CharacterSkillDTO> wSkills = new List<CharacterSkillDTO>
{
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1525 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1526 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1527 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1528 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1529 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1530 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1531 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1532 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1533 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1534 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1535 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1536 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1537 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1538 },
new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 1539 }
};
QuicklistEntryDTO qlst1 = new QuicklistEntryDTO
{
CharacterId = newCharacter.CharacterId,
Type = 1,
Slot = 1,
Pos = 1
};
QuicklistEntryDTO qlst2 = new QuicklistEntryDTO
{
CharacterId = newCharacter.CharacterId,
Q2 = 1,
Slot = 2
};
QuicklistEntryDTO qlst3 = new QuicklistEntryDTO
{
CharacterId = newCharacter.CharacterId,
Q2 = 8,
Type = 1,
Slot = 1,
Pos = 16
};
QuicklistEntryDTO qlst4 = new QuicklistEntryDTO
{
CharacterId = newCharacter.CharacterId,
Q2 = 9,
Type = 1,
Slot = 3,
Pos = 1
};
//DAOFactory.CharacterQuestDao.InsertOrUpdate(firstQuest);
DAOFactory.CharacterSkillDAO.InsertOrUpdate(wSkills);
DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst1);
DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst2);
DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst3);
DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst4);
DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk1);
DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk2);
DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk3);
using (Inventory startupInventory = new Inventory(new Character(newCharacter)))
{
startupInventory.AddNewToInventory(4757, 1, InventoryType.Wear, 8, 10);
startupInventory.AddNewToInventory(4756, 1, InventoryType.Wear, 8, 10);
startupInventory.AddNewToInventory(4758, 1, InventoryType.Wear, 8, 10);
startupInventory.AddNewToInventory(1907, 1, InventoryType.Main);
startupInventory.AddNewToInventory(800, 1, InventoryType.Equipment);
startupInventory.AddNewToInventory(801, 1, InventoryType.Equipment);
startupInventory.AddNewToInventory(802, 1, InventoryType.Equipment);
startupInventory.AddNewToInventory(803, 1, InventoryType.Equipment);
startupInventory.AddNewToInventory(5131, 1, InventoryType.Equipment);
startupInventory.ForEach(i => DAOFactory.IteminstanceDAO.InsertOrUpdate(i));
LoadCharacters(characterCreatePacket.OriginalContent);
}
}
else
{
Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("ALREADY_TAKEN")}");
}
}
else
{
Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("INVALID_CHARNAME")}");
}
}
}