public IEnumerator PlayerCharactersRoutine(string playerId, IAdminApi caller) { string uri = NetworkSettings.instance.BaseUri() + "/api/characters/list"; var form = new WWWForm(); form.AddField("playerId", NetworkSettings.instance.username); form.AddField("authtoken", NetworkSettings.instance.authtoken); form.AddField("get_playerId", playerId); WWW www = new WWW(uri, form.data, form.headers); yield return(www); if (www.error != null) { caller.OnPlayerCharactersError(www.error); } else { MemoryStream stream = new MemoryStream(www.bytes); Characters characters = Serializer.Deserialize <Characters>(stream); caller.OnPlayerCharacters(characters); } }
private void CreateNpcs() { Characters characters = new Characters(); int createdCount = 0; int npcCount = prefabNames.Count * gameEntitiesPerPrefab; Queue<string> names = NpcName.GetNames(npcCount); foreach (string prefabName in prefabNames) { for (int i = 0; i < gameEntitiesPerPrefab; i++) { string playerId = prefabName + i; string characterId = names.Dequeue(); CharacterApi.instance.CreateNpc(playerId, characterId, Vitals.Template.NpcTemplate, prefabName, (Character character) => { characters.characters.Add(character); createdCount++; if (createdCount == npcCount) { Save(characters); } }); } } Debug.Log("Creating characters"); }
private static void Save(Characters characters) { MemoryStream stream = new MemoryStream(); GmSerializer serializer = new GmSerializer(); serializer.Serialize(stream, characters); PlayerPrefs.SetString("npcs", Convert.ToBase64String(stream.ToArray())); Debug.Log(characters.characters.Count + " npc characters saved"); }