Come prima cosa apriamo il nostro progetto, e rechiamoci in ---> OpenNos.Handler.FamilyPacketHandler -> CreateFamily
Subito dopo creiamo un nuovo Case per questo item in --> (OpenNos.GameObject.SpecialItem)
Ringrazione AfterLife per le fonti!
C#:
else if (createFamilyPacket.CharacterName != null && Session.Character.Group == null && Session.Character.Inventory.Any(x => x.Item.VNum == 1638)) // Enter Item VNum
if (createFamilyPacket.CharacterName.Length< 4 || createFamilyPacket.CharacterName.Length> 14)
{
Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("INVALID_CHARNAME")}");
}
else
{
private Regex rg = new Regex(@"^[A-Za-z0-9_äÄöÖüÜß~*<>°+-.!_-Й¤£±†‡×ßø^\S]+$");
if (rg.Matches(createFamilyPacket.CharacterName).Count == 1)
{
if (DAOFactory.CharacterDAO.LoadByName(createFamilyPacket.CharacterName) == null)
{
Session.Character.Name = createFamilyPacket.CharacterName;
if (Session.Character.Miniland == Session.Character.MapInstance)
{
ServerManager.Instance.JoinMiniland(Session, Session);
}
else
{
ServerManager.Instance.ChangeMapInstance(Session.Character.CharacterId, Session.Character.MapInstanceId, Session.Character.PositionX, Session.Character.PositionY, true);
Session.SendPacket(StaticPacketHelper.Cancel(2));
}
Session.Character.Inventory.RemoveItemFromInventory(Session.Character.Inventory.LoadByVNum<ItemInstance>(1638).Id);
Session.Character.Save();
}
else
{
Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("ALREADY_TAKEN")}");
}
}
else
{
Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("INVALID_CHARNAME")}");
}
}
}
Subito dopo creiamo un nuovo Case per questo item in --> (OpenNos.GameObject.SpecialItem)
C#:
//Namechange
case 1638:
if (session.Character.Group != null && session.Character.Inventory.Any(x => x.Item.VNum == 1638)) // Enter VNum
{
session.SendPacket(UserInterfaceHelper.GenerateMsg("Leave your group to change your name", 0));
}
else
{
session.SendPacket(UserInterfaceHelper.GenerateInbox($"#glmk^ 14 1 Charactername Charactername"));
}
break;
Ringrazione AfterLife per le fonti!