void OnCreateCharacter(NetworkConnection conn, CreateCharacterMessage createCharacterMessage) { GameObject characterObject = playerSpawns != null && playerSpawns.Capacity >= 3 ? Instantiate(playerPrefab, playerSpawns[players++ % 3].transform.position, playerSpawns[players++ % 3].transform.rotation) : Instantiate(playerPrefab); NetworkServer.AddPlayerForConnection(conn, characterObject); }
private void OnCreateCharacter(NetworkConnection conn, CreateCharacterMessage createCharacterMessage) { Player player = Instantiate(playerPrefab).GetComponent <Player>(); player.Name = createCharacterMessage.Name; // assing player name CharacterData data = Database.LoadCharacter(player.Name); // load data from database if (data != null) { Dictionary <Vector2Byte, ItemData> inventoryData = Database.StringToItemData(data.inventory); foreach (var key in inventoryData.Keys) // add items to inventory { player.inventoryData.Add(key, inventoryData[key]); } Dictionary <EquipmentSlot, ItemData> equipmentData = Database.StringToEquipmentData(data.equipment); foreach (var key in equipmentData.Keys) // add equipment ant its bonuses to player { EquipmentSlot ID = key; ItemData itemData = equipmentData[key]; if (ID < 0 || (int)ID > 4) { continue; } Item item = ObjectDatabase.GetItem(itemData.ID); if (item && item is Equipment) { Equipment equipment = (Equipment)item; player.equipmentData.Add(key, equipmentData[key]); player.Armor += equipment.ArmorBonus; player.maxHealth += equipment.HealthBonus; player.Strength += equipment.StrengthBonus; player.Intelligence += equipment.IntelligenceBonus; player.Stamina += equipment.StaminaBonus; if (item.GetType() == typeof(Weapon)) { player.usedWeapon = (Weapon)item; player.usedWeaponID = item.ID; } } } player.transform.position = data.position; // move player to his last position player.Health = data.Health; // set player's health player.Experience = data.experience; // set player's experience player.usedWeapon = ObjectDatabase.GetWeapon(data.usedWeapon); // set player's weapon } ObjectDatabase.AddEntity(player); // add player to entity database NetworkServer.AddPlayerForConnection(conn, player.gameObject); } // Load character data from database
public static void HandleCreateCharacterMessage(SimpleClient client, CreateCharacterMessage message) { ErrorEnum error = CharacterManager.Instance.CreateCharacter(client, message); SendCreateCharacterResultMessage(client, error); if (error == ErrorEnum.ERR_SUCCESS) { SendCharacterSlotMessage(client, client.Character, client.Account.Characters.Count(x => x.DeletedDate.HasValue)); } }
public override void OnClientConnect(NetworkConnection conn) { CreateCharacterMessage message = new CreateCharacterMessage { playerName = NetworkManagerButton.PlayerName, character = -1, role = -1 }; conn.Send(message); }
private void OnCreatePlayer(INetworkPlayer player, CreateCharacterMessage createCharacterMessage) { // create a gameobject using the name supplied by client GameObject playergo = Instantiate(playerPrefab).gameObject; playergo.GetComponent <Player>().playerName = createCharacterMessage.name; // set it as the player ServerObjectManager.AddCharacter(player, playergo); chatWindow.gameObject.SetActive(true); }
public void OnCharacterCreation(object sender, CreateCharacterMessage message) { //if (player != null) //{ // ManagerPlayer.Instance.Player = player; // ManagerState.Instance.ChangeState(EnumState.CHARACTER_SELECT); //} //else //{ // _btn_create.ButtonDisabled = false; //} }
public override void OnClientConnect(NetworkConnection conn) { base.OnClientConnect(conn); // load player nickname from PlayerPrefs and send connect request to server CreateCharacterMessage characterMessage = new CreateCharacterMessage { ID = 0, Name = PlayerPrefs.GetString("nickname") }; conn.Send(characterMessage); }
public static void HandleCreateCharacterMessage(SimpleClient client, CreateCharacterMessage message) { ErrorEnum error = CharacterManager.Instance.CreateCharacter(client, message, client.Account.Characters.Count()); SendCreateCharacterResultMessage(client, error); if (error == ErrorEnum.ERR_SUCCESS) { CharacterHandler.SendCharactersListMessage(client, DateTime.UtcNow.GetUnixTimeStamp(), 0, 0, 0, (byte)client.Account.Characters.Count, 0, 0, client.Account.Characters.Where(x => !x.DeletedDate.HasValue).ToArray(), client.Account.Characters.Count(x => x.DeletedDate.HasValue), 1, 1, 0); foreach (var character in client.Account.Characters.Where(x => !x.DeletedDate.HasValue)) { CharacterHandler.SendCharacterSlotMessage(client, character, client.Account.Characters.Count(x => x.DeletedDate.HasValue)); } } }
private void OnCreateCharacter(NetworkConnection conn, CreateCharacterMessage message) { if (currentPlayers == maxPlayers) { conn.Disconnect(); return; } int character = message.character; if (character < 0) { character = AvailableCharacter; } int roleInt = message.role; if (roleInt < 0) { roleInt = Random.Range(0, availableRoles.Count); } Role role = roles[availableRoles[roleInt]]; availableRoles.RemoveAt(roleInt); GameObject player = Instantiate(spawnPrefabs[character]); PlayerController playerController = player.GetComponent <PlayerController>(); playerController.Role = role; playerController.PlayerNumber = availableSpots[0]; playerController.PlayerName = message.playerName; availableSpots.RemoveAt(0); NetworkServer.AddPlayerForConnection(conn, playerController.gameObject); players.Add(conn, playerController); playerController.TargetSetLocalPlayer(conn, maxPlayers); if (++currentPlayers == maxPlayers) { GameController gc = FindObjectOfType <GameController>(); gc.SetMatch(players.Values.ToArray()); } }
public ErrorEnum CreateCharacter(SimpleClient client, CreateCharacterMessage message) { if (!m_nameCheckerRegex.IsMatch(message.name)) { return(ErrorEnum.ERR_NOCREATE); } if (IsCharacterNameExist(message.name)) { return(ErrorEnum.ERR_PLAYER_EXIST); } BreedRecord breed = BreedManager.Instance.GetBreedByJobId(message.job); if (breed == null) { return(ErrorEnum.ERR_NOCREATE); } CharacterRecord record = new CharacterRecord() { AccountId = client.Account.Id, Name = message.name, HD_MD5 = message.hd_md5, SceneId = breed.StartMap, Sex = message.sex == 1, X = breed.StartX, Y = breed.StartY, Z = breed.StartZ, Level = 1, Experience = 60, Job = breed.Job, Money = (uint)breed.StartMoney, HP = breed.StartHP, DamageTaken = 0, Strenght = breed.StartStrenght, Stamina = breed.StartStamina, Dexterity = breed.StartDexterity, Intelligence = breed.StartIntelligence, SPI = breed.StartSPI, HairMesh = message.hair_mesh, HairColor = (uint)message.hair_color, HeadMesh = message.head_mesh, City_Code = message.city_code, Constellation = message.constellation, Country = message.country, SN_Card = message.sn_card, Card_Type = message.card_type, HD_SN = message.hd_sn, Bin_Account = message.bin_account, BlockTime = DateTime.MinValue, DeletedDate = null }; var closets = message.closets.Select(x => new ClosetItemRecord() { ClosetItemId = x.id, Equipped = true, OwnerId = record.Id }); try { Database.Insert(record); foreach (var closet in closets) { Database.Insert(closet); } } catch { return(ErrorEnum.ERR_NOCREATE); } client.Character = new Character(record); client.Character.Client = client; client.Account.LoadRecord(); return(ErrorEnum.ERR_SUCCESS); }
public virtual void OnCreateCharacter(object sender, CreateCharacterMessage message) { }