/// <summary> /// Sends the Create Character message to the server with a collection of properties /// to save to the new character. /// </summary> public virtual void CreateCharacter() { if (characterName == "") { return; } Dictionary <string, object> properties = new Dictionary <string, object>(); properties.Add("characterName", characterName); if (gender == "Male") { properties.Add("prefab", race.maleCharacterPrefab.name); } else if (gender == "Female") { properties.Add("prefab", race.femaleCharacterPrefab.name); } properties.Add("race", race.raceName); properties.Add("aspect", aspect.className); properties.Add("gender", gender); if (PortraitManager.Instance.portraitType == PortraitType.Custom) { Sprite[] icons = null;//= { new Sprite() }; icons = AtavismSettings.Instance.Avatars(race.raceName, gender, aspect.className); /* if (gender == "Male") * icons = AtavismSettings.Instance.meleAvatars; * if (gender == "Female") * icons = AtavismSettings.Instance.femaleAvatars;*/ if (icons != null && icons.Length > 0) { if (avatarList == null) { Debug.LogError("CharacterSelectionCreationManager avatarList is null", gameObject); } else { if (icons.Length > avatarList.Selected()) { if (icons[avatarList.Selected()] == null) { Debug.LogError("CharacterSelectionCreationManager icons for " + race.raceName + " " + gender + " " + aspect.className + " is null ; avatarList selected " + avatarList.Selected(), gameObject); } else { properties.Add("custom:portrait", icons[avatarList.Selected()].name); // properties.Add("portrait", icons[avatarList.Selected()].name); } } } } } if (PortraitManager.Instance.portraitType == PortraitType.Class) { Sprite portraitSprite = PortraitManager.Instance.GetCharacterSelectionPortrait(gender, race.raceName, aspect.className, PortraitType.Class); properties.Add("custom:portrait", portraitSprite.name); } // If the character has the customisable hair, save the property /*if (character.GetComponent<CustomisedHair>() != null) { * CustomisedHair customHair = character.GetComponent<CustomisedHair>(); * properties.Add("custom:" + customHair.hairPropertyName, customHair.ActiveHair.name); * }*/ #if AT_I2LOC_PRESET dialogMessage = I2.Loc.LocalizationManager.GetTranslation("Please wait..."); #else dialogMessage = "Please wait..."; #endif errorMessage = ""; characterSelected = AtavismClient.Instance.NetworkHelper.CreateCharacter(properties); if (characterSelected == null) { errorMessage = "Unknown Error"; } else { if (!characterSelected.Status) { if (characterSelected.ContainsKey("errorMessage")) { errorMessage = (string)characterSelected["errorMessage"]; } } } dialogMessage = ""; if (errorMessage == "") { StartCharacterSelection(); //nameUI.text = characterName; // Have to rename all the properties. This seems kind of pointless. Dictionary <string, object> newProps = new Dictionary <string, object>(); foreach (string prop in properties.Keys) { if (prop.Contains(":")) { string[] newPropParts = prop.Split(':'); if (newPropParts.Length > 2 && newPropParts[2] != null) { string newProp = "uma" + newPropParts[2]; newProps.Add(newProp, properties[prop]); } } } foreach (string prop in newProps.Keys) { if (!characterSelected.ContainsKey(prop)) { characterSelected.Add(prop, newProps[prop]); } } } else { #if AT_I2LOC_PRESET ShowDialog(I2.Loc.LocalizationManager.GetTranslation(errorMessage), true); #else ShowDialog(errorMessage, true); #endif } }
public virtual void CharacterSelected(CharacterEntry entry) { characterSelected = entry; foreach (UGUICharacterSelectSlot charSlot in characterSlots) { charSlot.CharacterSelected(characterSelected); } if (character != null) { Destroy(character); } race = GetRaceDataByName((string)characterSelected["race"]); gender = (string)characterSelected["gender"]; Dictionary <string, object> appearanceProps = new Dictionary <string, object>(); foreach (string key in entry.Keys) { if (key.StartsWith("custom:appearanceData:")) { appearanceProps.Add(key.Substring(23), entry[key]); } } // Dna settings string prefabName = (string)characterSelected["model"]; if (prefabName.Contains(".prefab")) { int resourcePathPos = prefabName.IndexOf("Resources/"); prefabName = prefabName.Substring(resourcePathPos + 10); prefabName = prefabName.Remove(prefabName.Length - 7); } GameObject prefab = (GameObject)Resources.Load(prefabName); if (prefab != null) { character = (GameObject)Instantiate(prefab, spawnPosition.position, spawnPosition.rotation); } else { Debug.LogError("prefab = null model: " + prefabName + " Loading ExampleCharacter"); prefab = (GameObject)Resources.Load("ExampleCharacter"); if (prefab != null) { character = (GameObject)Instantiate(prefab, spawnPosition.position, spawnPosition.rotation); } } //SetCharacter (prefab); // Set equipment if (characterSelected.ContainsKey("weaponDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("weaponDisplayID", (string)characterSelected["weaponDisplayID"]); } if (characterSelected.ContainsKey("weapon2DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("weapon2DisplayID", (string)characterSelected["weapon2DisplayID"]); } // UMA-equipment properties if (characterSelected.ContainsKey("legDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("legDisplayID", (string)characterSelected["legDisplayID"]); } if (characterSelected.ContainsKey("chestDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("chestDisplayID", (string)characterSelected["chestDisplayID"]); } if (characterSelected.ContainsKey("headDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("headDisplayID", (string)characterSelected["headDisplayID"]); } if (characterSelected.ContainsKey("feetDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("feetDisplayID", (string)characterSelected["feetDisplayID"]); } if (characterSelected.ContainsKey("handDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("handDisplayID", (string)characterSelected["handDisplayID"]); } if (characterSelected.ContainsKey("capeDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("capeDisplayID", (string)characterSelected["capeDisplayID"]); } if (characterSelected.ContainsKey("shoulderDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("shoulderDisplayID", (string)characterSelected["shoulderDisplayID"]); } if (characterSelected.ContainsKey("beltDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("beltDisplayID", (string)characterSelected["beltDisplayID"]); } if (characterSelected.ContainsKey("ringDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("ringDisplayID", (string)characterSelected["ringDisplayID"]); } if (characterSelected.ContainsKey("ring2DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("ring2DisplayID", (string)characterSelected["ring2DisplayID"]); } if (characterSelected.ContainsKey("earringDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("earringDisplayID", (string)characterSelected["earringDisplayID"]); } if (characterSelected.ContainsKey("earring2DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("earring2DisplayID", (string)characterSelected["earring2DisplayID"]); } if (characterSelected.ContainsKey("rangedDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("rangedDisplayID", (string)characterSelected["rangedDisplayID"]); } if (characterSelected.ContainsKey("neckDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("neckDisplayID", (string)characterSelected["neckDisplayID"]); } if (characterSelected.ContainsKey("slot1DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot1DisplayID", (string)characterSelected["slot1DisplayID"]); } if (characterSelected.ContainsKey("slot2DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot2DisplayID", (string)characterSelected["slot2DisplayID"]); } if (characterSelected.ContainsKey("slot3DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot3DisplayID", (string)characterSelected["slot3DisplayID"]); } if (characterSelected.ContainsKey("slot4DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot4DisplayID", (string)characterSelected["slot4DisplayID"]); } if (characterSelected.ContainsKey("slot5DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot5DisplayID", (string)characterSelected["slot5DisplayID"]); } if (characterSelected.ContainsKey("slot6DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot6DisplayID", (string)characterSelected["slot6DisplayID"]); } if (characterSelected.ContainsKey("slot7DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot7DisplayID", (string)characterSelected["slot7DisplayID"]); } if (characterSelected.ContainsKey("slot8DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot8DisplayID", (string)characterSelected["slot8DisplayID"]); } if (characterSelected.ContainsKey("slot9DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot9DisplayID", (string)characterSelected["slot9DisplayID"]); } if (characterSelected.ContainsKey("slot10DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot10DisplayID", (string)characterSelected["slot10DisplayID"]); } if (characterSelected.ContainsKey("slot11DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot11DisplayID", (string)characterSelected["slot11DisplayID"]); } if (characterSelected.ContainsKey("slot12DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot12DisplayID", (string)characterSelected["slot12DisplayID"]); } if (characterSelected.ContainsKey("slot13DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot13DisplayID", (string)characterSelected["slot13DisplayID"]); } if (characterSelected.ContainsKey("slot14DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot14DisplayID", (string)characterSelected["slot14DisplayID"]); } if (characterSelected.ContainsKey("slot15DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot15DisplayID", (string)characterSelected["slot15DisplayID"]); } if (characterSelected.ContainsKey("slot16DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot16DisplayID", (string)characterSelected["slot16DisplayID"]); } if (characterSelected.ContainsKey("slot17DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot17DisplayID", (string)characterSelected["slot17DisplayID"]); } if (characterSelected.ContainsKey("slot18DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot18DisplayID", (string)characterSelected["slot18DisplayID"]); } if (characterSelected.ContainsKey("slot19DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot19DisplayID", (string)characterSelected["slot19DisplayID"]); } if (characterSelected.ContainsKey("slot20DisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot20DisplayID", (string)characterSelected["slot20DisplayID"]); } if (characterSelected.ContainsKey("fashionDisplayID")) { character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("fashionDisplayID", (string)characterSelected["fashionDisplayID"]); } // Name if (nameUI != null) { nameUI.text = (string)entry["characterName"]; } if (TMPNameUI != null) { TMPNameUI.text = (string)entry["characterName"]; } // Temp if (character != null && character.GetComponent <CustomisedHair>() != null) { CustomisedHair customHair = character.GetComponent <CustomisedHair>(); if (characterSelected.ContainsKey(customHair.hairPropertyName)) { customHair.UpdateHairModel((string)characterSelected[customHair.hairPropertyName]); } } }