private void Awake() { //add m_nview = GetComponent <ZNetView>(); if (m_nview.GetZDO() == null) { DBG.blogWarning("Mark Report zdo null"); return; } if (m_nview.GetZDO().GetBool("LocMarkUsed", false)) { MarkList.Remove(ID); Destroy(this); return; } else { ID = ZoneSystem.instance.GetZone(transform.position).Pak(); if (MarkList.ContainsKey(ID)) { DubList.Add(ID, this); } else { MarkList.Add(ID, this); } DBG.blogInfo("locmark placed at zone : " + ID); } }
public void ReigsterRpc() { MyQuests = new Dictionary <string, Quest>(); ZRoutedRpc.instance.Register <string, Vector3>("RPC_CreateQuestSucced", new Action <long, string, Vector3>(RPC_CreateQuestSucced)); ZRoutedRpc.instance.Register("RPC_CreateQuestFailed", new Action <long>(RPC_CreateQuestFailed)); DBG.blogWarning("QuestManager rpc reged"); }
public static void HackingFarm() { Transform t = PrefabManager.Root.transform; var a = ZoneSystem.instance.m_locations; foreach (var item in a) { if (item.m_prefabName == "WoodFarm1") { t = item.m_prefab.transform; break; } } var guard = ZNetScene.instance.GetPrefab("GuardVillager" + "Spawner"); var msg = ZNetScene.instance.GetPrefab("MessageNPCHuman" + "Spawner"); var rsc = ZNetScene.instance.GetPrefab("MatNPCHuman" + "Spawner"); rsc = Instantiate(rsc, new Vector3(5, 0, 5) + t.position, Quaternion.identity, t); msg = Instantiate(msg, new Vector3(5.5f, 0, 5.5f) + t.position, Quaternion.identity, t); for (int i = 0; i < 9; i++) { guard = Instantiate(guard, new Vector3(10.RollDices(), 0, 10.RollDices()) + t.position, Quaternion.identity, t); } rsc.name = rsc.name.RemoveClone(); msg.name = msg.name.RemoveClone(); guard.name = guard.name.RemoveClone(); DBG.blogWarning("Hacking Village"); }
public static void saveOdinData(string name) { if (DevTool.DisableSaving) { OdinPlus.m_instance.isLoaded = true; return; } #region Save QuestManager.instance.Save(); Data.Credits = Credits; #endregion Save #region Serialize string file = Path.Combine(Application.persistentDataPath, (name + ".odinplus")); if (File.Exists(@file)) { //add Backup } FileStream fileStream = new FileStream(@file, FileMode.Create, FileAccess.Write); string dat = JsonConvert.SerializeObject(Data); BinaryWriter binaryWriter = new BinaryWriter(fileStream); binaryWriter.Write(dat); binaryWriter.Flush(); binaryWriter.Close(); //BinaryFormatter formatter = new BinaryFormatter(); //formatter.Serialize(fileStream, Data); fileStream.Close(); #endregion Serialize DBG.blogWarning("OdinDataSaved:" + name); }
private void Awake() { if (DevTool.DisableSaving) { Credits = 1000; } Data = new DataTable(); Data.Quests = new List <Quest>(); if (Plugin.CFG_ItemSellValue.Value == "") { return; } string[] l1 = Plugin.CFG_ItemSellValue.Value.Split(new char[] { ';' }); for (int i = 0; i < l1.Length; i++) { string[] c = l1[i].Split(new char[] { ':' }); if (c.Length == 0) { continue; } try { ItemSellValue.Add(c[0], int.Parse(c[1])); } catch (Exception e) { DBG.blogWarning("CFG Error,Check Your ItemSellValue"); DBG.blogWarning(e); } } }
public static void HackLoctaions() { if (!ZNet.instance.IsServer()) { return; } var locPar = GameObject.Find("/_Locations").transform; for (int i = 0; i < locPar.childCount; i++) { var par = locPar.GetChild(i); for (int k = 0; k < par.childCount; k++) { var par2 = par.GetChild(k); var dgg = par2.GetComponentInChildren <DungeonGenerator>(); if (dgg) { var go = Instantiate(Prefab, dgg.transform); go.name = ("LocMark"); DBG.blogWarning("Hack Dungeon: " + par2.name); } else { var go2 = Instantiate(Prefab, par2); go2.name = ("LocMark"); DBG.blogWarning("Hack Location: " + par2.name); } } } }
public static void DestroyCTN(Vector3 pos, float p_range) { Collider[] array = Physics.OverlapBox(pos, Vector3.one * p_range); foreach (var col in array) { var ctn = col.GetComponent <Container>(); var ctn2 = col.transform.parent.GetComponent <Container>(); var ctn3 = col.transform.parent.parent.GetComponent <Container>(); if (ctn) { ctn.gameObject.GetComponent <ZNetView>().Destroy(); DBG.blogWarning("Find destroyable ctn"); return; } if (ctn2) { col.transform.parent.GetComponent <ZNetView>().Destroy(); DBG.blogWarning("Find destroyable ctn parent"); return; } if (ctn3) { ctn3.GetComponent <ZNetView>().Destroy(); DBG.blogWarning("Find destroyable ctn grandparent"); return; } } }
private static void PrintMeadsLoc() { foreach (var item in OdinMeads.MeadList.Keys) { DBG.blogWarning("op_" + item + "_name"); DBG.blogWarning("op_" + item + "_desc"); DBG.blogWarning("op_" + item + "_tooltip"); } }
private void Reg() { if (ZNet.instance.IsServer()) { ZRoutedRpc.instance.Register <string>("RPC_ServerSetGlobalKey", new Action <long, string>(RPC_ServerSetGlobalKey)); ZRoutedRpc.instance.Register("RPC_ServerResetGlobalKey", new Action <long>(RPC_ServerResetGlobalKey)); DBG.blogWarning("Server Reg:cheat Global Key"); } }
private void Rpc_GetStartPos(long sender) { DBG.blogWarning("Server got odin postion request"); if (Plugin.CFG_OdinPosition.Value != Vector3.zero) { OdinPostion = Plugin.CFG_OdinPosition.Value; } ZRoutedRpc.instance.InvokeRoutedRPC(sender, "RPC_SetStartPos", new object[] { OdinPostion }); }
private static void PrintMeadsList() { string s = ""; foreach (var item in OdinMeads.MeadList.Keys) { s += item + ","; } DBG.blogWarning(s); }
public void RPC_CreateQuestSucced(long sender, string id, Vector3 pos) { CancelWaitError(); var quest = WaitQuest; quest.ID = id; quest.m_realPostion = pos; questProcesser.Begin(); DBG.blogWarning(string.Format("Client :Create Quest {0} {1} at {2}", id, quest.locName, pos)); }
public static void CreateNPC <T>(string pname, string goname) where T : Component { var go = Instantiate(BasicHuman, OdinPlus.PrefabParent.transform); CreatePreset(go, pname); go.AddComponent <T>(); go.name = goname; PrefabList.Add(go.name, go.gameObject); HumanList.Add(go.name, go.gameObject); DBG.blogWarning("Create Human" + go.name); }
public static void SpawnFloor(Vector3 position, Quaternion rotation, GameObject piece) { try { UnityEngine.Object.Instantiate <GameObject>(piece, position, rotation); } catch (Exception e) { DBG.blogWarning("SpawnFloor Failed:" + e); } }
public static object InvokePrivate(object instance, string name, object[] args = null) { MethodInfo method = instance.GetType().GetMethod(name, BindingFlags.NonPublic | BindingFlags.Instance); if (method == null) { DBG.blogWarning("Method " + name + " does not exist on type: " + instance.GetType()); return(null); } return(method.Invoke(instance, args)); }
public static void SetPrivateField(object instance, string name, object value) { FieldInfo var = instance.GetType().GetField(name, BindingFlags.NonPublic | BindingFlags.Instance); if (var == null) { DBG.blogWarning("Variable " + name + " does not exist on type: " + instance.GetType()); return; } var.SetValue(instance, value); }
public static T GetPrivateField <T>(object instance, string name) { FieldInfo var = instance.GetType().GetField(name, BindingFlags.NonPublic | BindingFlags.Instance); if (var == null) { DBG.blogWarning("Variable " + name + " does not exist on type: " + instance.GetType()); return(default(T)); } return((T)var.GetValue(instance)); }
public static bool CheckPlayerNull(bool log = false) { if (Player.m_localPlayer == null) { if (log) { DBG.blogWarning("Player is Null"); } return(true); } return(false); }
private void Update() { if (m_container.GetInventory() == null) { DBG.blogWarning("Cant find inv"); return; } if (m_container.GetInventory().NrOfItems() == 0) { Instantiate(NpcManager.RavenPrefab.GetComponent <Raven>().m_despawnEffect.m_effectPrefabs[0].m_prefab, gameObject.transform.position, Quaternion.identity); ZNetScene.instance.Destroy(gameObject); } }
public static void Place(Vector3 pos, string monster, string id, string _owner, int p_key, int p_lvl) { float y = 0; ZoneSystem.instance.FindFloor(pos, out y); pos = new Vector3(pos.x, y + 2, pos.z + 5); var Reward = Instantiate(ZNetScene.instance.GetPrefab(monster + "Hunt"), pos, Quaternion.identity); Reward.GetComponent <HuntTarget>().ID = id; Reward.GetComponent <HuntTarget>().m_ownerName = _owner; Reward.GetComponent <HuntTarget>().Setup(p_key, p_lvl); DBG.blogWarning("Placed Hunt " + monster + " at : " + Reward.transform.localPosition); }
private void PlaceQuestHuman(string key, Vector3 pos) { var pgo = ZNetScene.instance.GetPrefab("WorkerNPCHuman"); var go = Instantiate(pgo, PrefabManager.Root.transform); go.GetComponent <HumanVis>().m_name = key; float y; ZoneSystem.instance.FindFloor(pos, out y); pos = new Vector3(pos.x, y + 2, pos.z); go.transform.localPosition = pos; go.transform.SetParent(transform.parent.parent); DBG.blogWarning("Place Quest Worker at " + pos); }
public static string GetNameByPeerId(long uid) { var peers = Traverse.Create(ZNet.instance).Field <List <ZNetPeer> >("m_peers").Value; foreach (var peer in peers) { if (peer.m_uid == uid) { return(peer.m_playerName); } } DBG.blogWarning("Cant find player name"); return(null); }
public static void RemoveFlora(float radius, Vector3 pos) { Collider[] array = Physics.OverlapBox(pos, new Vector3(radius, radius, radius)); List <string> list = new List <string>(); list.Add("tree"); list.Add("rock"); list.Add("beech"); list.Add("log"); list.Add("bush"); Collider[] array2 = array; if (array.Length == 0) { return; } for (int i = 0; i < array2.Length; i++) { GameObject gameObject = array2[i].gameObject; GameObject gameObject2 = gameObject.transform.parent.gameObject; GameObject gameObject3 = null; string text = gameObject2.name.ToLower(); string text2 = gameObject.name.ToLower(); foreach (string value in list) { if (text2.Contains(value)) { gameObject3 = gameObject; break; } if (!(gameObject2 == null) && text.Contains(value)) { gameObject3 = gameObject2; break; } } if (!(gameObject3 == null)) { try { ZNetScene.instance.Destroy(gameObject3); } catch (Exception e) { DBG.blogWarning("terrain flora:" + e); return; } } } }
//OPT definitely need a thread pool !! struct[] quenee //notice public static void RPC_ServerFindLocation(long sender, string sender_locName, Vector3 sender_pos) { var _id = "0_0"; var _pos = Vector3.zero; if (FindClosestLocation(sender_locName, sender_pos, out _id, out _pos)) { DBG.blogWarning(string.Format("Server Location found location {0} at {1}", sender_locName, _pos.ToString())); ZRoutedRpc.instance.InvokeRoutedRPC(sender, "RPC_CreateQuestSucced", new object[] { _id, _pos }); Remove(_id); return; } ZRoutedRpc.instance.InvokeRoutedRPC(sender, "RPC_CreateQuestFailed", new object[] {}); DBG.blogWarning(String.Format("Location cant find location {0} at {1}", sender_locName, sender_pos)); }
private Vector3 FindSpawnPoint() { var a = UnityEngine.Random.Range(10, 10); var b = UnityEngine.Random.Range(10, 10); var c = ZoneSystem.instance.GetGroundHeight(new Vector3(a, 500, b)); ZoneSystem.LocationInstance locationInstance; if (ZoneSystem.instance.FindClosestLocation("StartTemple", Vector3.zero, out locationInstance)) { var p = locationInstance.m_position + new Vector3(-6, 0.2f, -8); return(p); } DBG.blogWarning("Cant Find a point to Spawn Odin use /odin respawn"); //notice return(new Vector3(a, c, b)); }
public static void UpdateDictinary() { string missing = "Missing Words:"; foreach (var el in english) { if (t.ContainsKey(el.Key)) { AddWord(new object[] { el.Key, t[el.Key] }); continue; } AddWord(new object[] { el.Key, el.Value }); missing += el.Key; } DBG.blogInfo("Translation added"); DBG.blogWarning(missing); }
public static void CreateSpawner(string cname) { var go = new GameObject(cname + "Spawner"); go.transform.SetParent(PrefabManager.Root.transform); var znv = go.AddComponent <ZNetView>(); var spn = go.AddComponent <CreatureSpawner>(); spn.m_creaturePrefab = PrefabList[cname]; znv.m_persistent = true; spn.m_respawnTimeMinuts = 0; spn.m_levelupChance = 10; spn.m_setPatrolSpawnPoint = true; PrefabList.Add(go.name, go); DBG.blogWarning("Create Spawner " + go.name); }
public override void Place(LocationMarker lm) { var pos = lm.GetPosition(); float y = -2f; float x = 4f; float z = 3.999f; if (quest.Key == 0) { y = 0; x = 2f; z = 1.999f; } pos += new Vector3(x.RollDice(), y, z.RollDice()); var chest = LegacyChest.Place(pos, quest.ID, quest.m_ownerName, quest.Key); DBG.blogWarning("Client Placed LegacyChest at : " + pos); base.Place(lm); }
public static GameObject Place(Vector3 pos, string p_id, string p_owner, int p_key, Quaternion rot, bool sphy = true) { GameObject chest; chest = Instantiate(ZNetScene.instance.GetPrefab("LegacyChest" + (p_key + 1).ToString()), pos, rot, OdinPlus.PrefabParent.transform); var lc = chest.GetComponent <LegacyChest>(); lc.Placing = true; lc.m_id = p_id; lc.m_sphy = sphy; lc.m_ownerName = p_owner; if (!sphy) { DestroyImmediate(chest.GetComponent <StaticPhysics>()); } DBG.blogWarning("Placed Chest at " + pos); chest.transform.SetParent(OdinPlus.Root.transform); return(chest); }
public static void UnRegister() { var odb = ObjectDB.instance; var zns = ZNetScene.instance; var m_itemByHash = Traverse.Create(odb).Field <Dictionary <int, GameObject> >("m_itemByHash").Value; var m_namedPrefabs = Traverse.Create(ZNetScene.instance).Field <Dictionary <int, GameObject> >("m_namedPrefabs").Value; odb.m_items.RemoveList <int, GameObject>(odbRegList); m_itemByHash.RemoveList <int, GameObject>(odbRegList); zns.m_prefabs.RemoveList <int, GameObject>(odbRegList); m_namedPrefabs.RemoveList <int, GameObject>(odbRegList); zns.m_prefabs.RemoveList <int, GameObject>(znsRegList); m_namedPrefabs.RemoveList <int, GameObject>(znsRegList); foreach (var item in OdinSE.SElist.Values) { odb.m_StatusEffects.Remove(item); } isRegistered = false; m_instance.isLoaded = false; DBG.blogWarning("UnRegister all list"); }