private void on_map_dpitem_res(Variant msg_data) { debug.Log("!!!!!!!!!!on_map_dpitem_res!" + msg_data.dump()); float x = msg_data["x"]._float / 53.333f; float z = msg_data["y"]._float / 53.333f; bool flag = msg_data.ContainsKey("owner_see"); if (flag) { bool flag2 = msg_data["owner_see"] != ModelBase <PlayerModel> .getInstance().cid; if (flag2) { return; } } Vector3 pos = new Vector3(x, 0f, z); List <Variant> arr = msg_data["itms"]._arr; List <DropItemdta> list = new List <DropItemdta>(); long curServerTimeStampMS = NetClient.instance.CurServerTimeStampMS; foreach (Variant current in arr) { DropItemdta dropItemdta = new DropItemdta(); dropItemdta.init(current, curServerTimeStampMS); list.Add(dropItemdta); } bool flag3 = BaseRoomItem.instance != null; if (flag3) { BaseRoomItem.instance.showDropItem(pos, list, false); } }
public void onChangeLevel(Variant svrconf, Variant cursvrmsg) { bool flag = this.curRoom != null; if (flag) { this.curRoom.onEnd(); this.curRoom = null; } uint key = svrconf["id"]; bool flag2 = this.dRooms.ContainsKey(key); if (flag2) { this.curRoom = this.dRooms[key]; } else { bool flag3 = MapModel.getInstance().curLevelId > 0u; if (flag3) { this.curRoom = this.dRooms[9999999u]; } else { this.curRoom = this.dRooms[0u]; } } this.curRoom.onStart(svrconf); bool flag4 = cursvrmsg != null && cursvrmsg.ContainsKey("dpitms"); if (flag4) { List <Variant> arr = cursvrmsg["dpitms"]._arr; Dictionary <string, List <DropItemdta> > dictionary = new Dictionary <string, List <DropItemdta> >(); long curServerTimeStampMS = NetClient.instance.CurServerTimeStampMS; foreach (Variant current in arr) { int num = current["x"]; int num2 = current["y"]; string key2 = num + "+" + num2; bool flag5 = !dictionary.ContainsKey(key2); if (flag5) { dictionary[key2] = new List <DropItemdta>(); } DropItemdta dropItemdta = new DropItemdta(); dropItemdta.init(current, curServerTimeStampMS); dropItemdta.x = num; dropItemdta.y = num2; dictionary[key2].Add(dropItemdta); } foreach (List <DropItemdta> current2 in dictionary.Values) { Vector3 pos = new Vector3((float)current2[0].x / 53.333f, 0f, (float)current2[0].y / 53.333f); BaseRoomItem.instance.showDropItem(pos, current2, false); } } }
public static DropItem create(DropItemdta item) { GameObject gameObject = new GameObject(); DropItem dropItem = gameObject.AddComponent <DropItem>(); dropItem.itemdta = item; dropItem.init(); return(dropItem); }
public static DropItem getDropItem(Vector3 vec, Vector3 eulerAngles, DropItemdta item, bool isfake = false) { DropItem dropitem = DropItem.create(item); dropitem.lastGetTimer = 0; dropitem.transform.position = vec; dropitem.transform.eulerAngles = dropitem.transform.eulerAngles + eulerAngles; dropitem.isFake = isfake; return(dropitem); }
private GameObject getWeapom(DropItemdta item) { GameObject gameObject = new GameObject(); int @int = item.itemXml.getInt("job_limit"); uint @uint = item.itemXml.getUint("obj"); GameObject gameObject2 = Resources.Load <GameObject>(DropItem.weaponDorpPath[@int] + @uint); bool flag = gameObject2 == null; GameObject result; if (flag) { result = null; } else { GameObject gameObject3 = UnityEngine.Object.Instantiate <GameObject>(gameObject2); Transform transform = gameObject3.transform.FindChild("eff"); bool flag2 = transform != null; if (flag2) { UnityEngine.Object.Destroy(transform.gameObject); } bool flag3 = @int == 5; if (flag3) { GameObject gameObject4 = UnityEngine.Object.Instantiate <GameObject>(gameObject2); gameObject4.transform.SetParent(gameObject.transform, false); gameObject4.transform.eulerAngles = DropItem.weaponDorpRot[@int] * 1.4f; gameObject4.transform.position = DropItem.weaponDorpOffset[@int]; gameObject4.gameObject.layer = EnumLayer.LM_MAP_ITEM; Transform[] componentsInChildren = gameObject4.GetComponentsInChildren <Transform>(); for (int i = 0; i < componentsInChildren.Length; i++) { Transform transform2 = componentsInChildren[i]; transform2.gameObject.layer = EnumLayer.LM_MAP_ITEM; } } gameObject3.gameObject.layer = EnumLayer.LM_MAP_ITEM; Transform[] componentsInChildren2 = gameObject3.GetComponentsInChildren <Transform>(); for (int j = 0; j < componentsInChildren2.Length; j++) { Transform transform3 = componentsInChildren2[j]; transform3.gameObject.layer = EnumLayer.LM_MAP_ITEM; } gameObject3.transform.SetParent(gameObject.transform, false); gameObject3.transform.eulerAngles = DropItem.weaponDorpRot[@int]; gameObject.transform.localScale = Vector3.one; gameObject3.transform.position = DropItem.weaponDorpOffset[@int]; result = gameObject; } return(result); }
private GameObject getWeapom(DropItemdta item) { GameObject go = new GameObject(); int job = item.itemXml.getInt("job_limit"); string path = ""; uint modelid = item.itemXml.getUint("obj"); Vector3 rot; GameObject obj_prefab = GAMEAPI.ABModel_LoadNow_GameObject(weaponDorpPath[job] + modelid); if (obj_prefab == null) { return(null); } GameObject m_dropWeapon_LObj = GameObject.Instantiate(obj_prefab) as GameObject; Transform eff = m_dropWeapon_LObj.transform.FindChild("eff"); if (eff != null) { GameObject.Destroy(eff.gameObject); } if (job == 5) { GameObject m_dropWeapon_LObj2 = GameObject.Instantiate(obj_prefab) as GameObject; m_dropWeapon_LObj2.transform.SetParent(go.transform, false); m_dropWeapon_LObj2.transform.eulerAngles = weaponDorpRot[job] * 1.4f; m_dropWeapon_LObj2.transform.position = weaponDorpOffset[job]; m_dropWeapon_LObj2.gameObject.layer = EnumLayer.LM_MAP_ITEM; foreach (Transform tran in m_dropWeapon_LObj2.GetComponentsInChildren <Transform>()) { tran.gameObject.layer = EnumLayer.LM_MAP_ITEM;; //更改物体的Layer层 } } m_dropWeapon_LObj.gameObject.layer = EnumLayer.LM_MAP_ITEM; foreach (Transform tran in m_dropWeapon_LObj.GetComponentsInChildren <Transform>()) { tran.gameObject.layer = EnumLayer.LM_MAP_ITEM;; //更改物体的Layer层 } m_dropWeapon_LObj.transform.SetParent(go.transform, false); m_dropWeapon_LObj.transform.eulerAngles = weaponDorpRot[job]; go.transform.localScale = Vector3.one; //weaponDorpScale[job];//TODO:测试用,之前的有的物品有点小,xuyin add m_dropWeapon_LObj.transform.position = weaponDorpOffset[job]; // go.transform.eulerAngles = new Vector3(0, ConfigUtil.getRandom(-45, 45), 0); return(go); }
public void flygetText(DropItem item) { bool flag = item.itemdta.tpid == 0; if (flag) { MediaClient.instance.PlaySoundUrl("audio/common/collect_coin", false, null); bool flag2 = GameRoomMgr.getInstance().curRoom != null; if (flag2) { GameRoomMgr.getInstance().curRoom.onPickMoney(item.itemdta.count); } bool flag3 = a3_insideui_fb.instance != null; if (flag3) { this.goldnum = (uint)a3_insideui_fb.instance.addmoney; } else { this.goldnum += (uint)item.itemdta.count; } } else { string @string = item.itemdta.itemXml.getString("item_name"); int @int = item.itemdta.itemXml.getInt("quality"); flytxt.instance.fly(string.Concat(new object[] { ContMgr.getCont("gameroom_pick", null), Globle.getColorStrByQuality(@string, @int), "x", item.itemdta.count }), 0, default(Color), null); DropItemdta dropItemdta = new DropItemdta(); dropItemdta.tpid = item.itemdta.itemXml.getInt("id"); dropItemdta.num = item.itemdta.count; foreach (DropItemdta current in this.list2) { bool flag4 = dropItemdta.tpid == current.tpid; if (flag4) { current.num += item.itemdta.count; return; } } this.list2.Add(dropItemdta); } }
public void flygetText(DropItem item) { if (item.itemdta.tpid == 0) { MediaClient.instance.PlaySoundUrl("audio_common_collect_coin", false, null); // flytxt.instance.fly("拾取金币 " + item.itemdta.count); //已有金币添加飘字 // if (a3_insideui_fb.instance != null) a3_insideui_fb.instance.SetInfMoney(item.itemdta.count); if (GameRoomMgr.getInstance().curRoom != null) { GameRoomMgr.getInstance().curRoom.onPickMoney(item.itemdta.count); } //记录拾取金币 //goldnum += (uint)item.itemdta.count; if (a3_insideui_fb.instance != null) { goldnum = (uint)a3_insideui_fb.instance.addmoney; } else { goldnum += (uint)item.itemdta.count; } } else { string name = item.itemdta.itemXml.getString("item_name"); int quality = item.itemdta.itemXml.getInt("quality"); flytxt.instance.fly(ContMgr.getCont("gameroom_pick") + Globle.getColorStrByQuality(name, quality) + "x" + item.itemdta.count); DropItemdta v = new DropItemdta(); v.tpid = item.itemdta.itemXml.getInt("id"); v.num = item.itemdta.count; foreach (var it in list2) { if (v.tpid == it.tpid) { it.num += item.itemdta.count; return; } } list2.Add(v); } }
//地图掉落金币 private void on_map_dpitem_res(Variant msg_data) { // BaseRoomItem.instance.showDropItem(); // DropItemdta debug.Log("!!!!!!!!!!on_map_dpitem_res!" + msg_data.dump()); float x = msg_data["x"]._float / GameConstant.PIXEL_TRANS_UNITYPOS; float y = msg_data["y"]._float / GameConstant.PIXEL_TRANS_UNITYPOS; if (msg_data.ContainsKey("owner_see")) { if (msg_data["owner_see"] != PlayerModel.getInstance().cid) { return; } } Vector3 pos = new Vector3(x, 0f, y); List <Variant> l = msg_data["itms"]._arr; List <DropItemdta> lDropItm = new List <DropItemdta>(); long timer = NetClient.instance.CurServerTimeStampMS; foreach (Variant v in l) { DropItemdta d = new DropItemdta(); d.init(v, timer); lDropItm.Add(d); } if (BaseRoomItem.instance != null) { BaseRoomItem.instance.showDropItem(pos, lDropItm); } }
private int showDrop(Vector3 dropPos, int wrongcount, int idx, DropItemdta item, bool isfake = false) { if (lDropOffset.Count <= idx) { idx = 0; } Vector3 vec = dropPos + lDropOffset[idx]; // GameObject go = GameObject.Find("coin"); Vector3 begin = vec; begin.y = -99; NavMeshHit hit; //if (NavMesh.Raycast(begin, vec, out hit, NavMesh.GetNavMeshLayerFromName("Default"))) NavMesh.SamplePosition(vec, out hit, 100f, NavmeshUtils.allARE); Vector3 pos = hit.position; if (pos.x == vec.x && pos.z == vec.z) { vec.y = pos.y; DropItem itm = getDropItem(vec, Vector3.zero, item, isfake); DropItemUIMgr.getInstance().show(itm, itm.itemdta.getDropItemName()); if (!isfake) { dDropItem[item.dpid] = itm; if (item.ownerId == PlayerModel.getInstance().cid || item.ownerId == 0 || (TeamProxy.getInstance().MyTeamData != null && item.ownerId == TeamProxy.getInstance().MyTeamData.teamId)) { dDropItem_own[item.dpid] = itm; } } else { item.dpid = fakeItemIdx; dDropFakeItem[item.dpid] = itm; fakeItemIdx++; } return(idx + 1); } else if (wrongcount >= 3) { debug.Log(":" + item.dpid); DropItem itm = getDropItem(pos, Vector3.zero, item); DropItemUIMgr.getInstance().show(itm, itm.itemdta.getDropItemName()); if (!isfake) { dDropItem[item.dpid] = itm; //if (item.ownerId == PlayerModel.getInstance().cid) //{ //dDropItem_own[item.dpid] = itm; if (item.ownerId == PlayerModel.getInstance().cid || item.ownerId == 0 || (TeamProxy.getInstance().MyTeamData != null && item.ownerId == TeamProxy.getInstance().MyTeamData.teamId)) { dDropItem_own[item.dpid] = itm; } //} } else { item.dpid = fakeItemIdx; dDropFakeItem[item.dpid] = itm; fakeItemIdx++; } return(idx + 1); } wrongcount++; return(showDrop(dropPos, wrongcount, idx + 1, item, isfake)); }
public void onChangeLevel(Variant svrconf, Variant cursvrmsg) { if (curRoom != null) { curRoom.onEnd(); curRoom = null; } // debug.Log("!!!!:::::::::::"+cursvrmsg.dump()); //skillbar.setAutoFightType(0); uint curId = svrconf["id"]; if (dRooms.ContainsKey(curId)) { curRoom = dRooms[curId]; } else if (MapModel.getInstance().curLevelId > 0) { curRoom = dRooms[9999999]; } else { curRoom = dRooms[0]; } curRoom.onStart(svrconf); if (cursvrmsg != null && cursvrmsg.ContainsKey("dpitms")) { List <Variant> dps = cursvrmsg["dpitms"]._arr; Dictionary <string, List <DropItemdta> > ll = new Dictionary <string, List <DropItemdta> >(); long curtimer = NetClient.instance.CurServerTimeStampMS; foreach (Variant v in dps) { int x = v["x"]; int y = v["y"]; string strpos = x + "+" + y; if (!ll.ContainsKey(strpos)) { ll[strpos] = new List <DropItemdta>(); } DropItemdta d = new DropItemdta(); d.init(v, curtimer); d.x = x; d.y = y; ll[strpos].Add(d); } foreach (List <DropItemdta> l in ll.Values) { Vector3 ve = new Vector3((float)l[0].x / GameConstant.PIXEL_TRANS_UNITYPOS, 0f, (float)l[0].y / GameConstant.PIXEL_TRANS_UNITYPOS); BaseRoomItem.instance.showDropItem(ve, l); } } //if (curId == 0) //{ // if (skillbar.instance != null) // { // skillbar.instance.autifight.visiable = false; // } // InterfaceMgr.getInstance().close(InterfaceMgr.MONSTER_DICT); // InterfaceMgr.getInstance().changeState(InterfaceMgr.STATE_NORMAL); // return; //} //if (expbar.instance != null) //{ // skillbar.instance.autifight.visiable = true; //} //SXML xml = XMLMgr.instance.GetSXML("worldcfg.world", "level_id==" + MapModel.getInstance().curLevelId); //bool b = xml.hasFound; //if (xml.hasFound) //{ // skillbar.setAutoFightType(); // InterfaceMgr.getInstance().open(InterfaceMgr.MONSTER_DICT); // InterfaceMgr.getInstance().changeState(InterfaceMgr.STATE_FB_BATTLE); //} //else if (dRooms.ContainsKey(curId)) //{ // dRooms[curId].onStart(); // curRoom = dRooms[curId]; //} //MapProxy.getInstance().sendShowMapObj(); }
private int showDrop(Vector3 dropPos, int wrongcount, int idx, DropItemdta item, bool isfake = false) { bool flag = this.lDropOffset.Count <= idx; if (flag) { idx = 0; } Vector3 vector = dropPos + this.lDropOffset[idx]; Vector3 vector2 = vector; vector2.y = -99f; NavMeshHit navMeshHit; NavMesh.SamplePosition(vector, out navMeshHit, 100f, NavmeshUtils.allARE); Vector3 position = navMeshHit.position; bool flag2 = position.x == vector.x && position.z == vector.z; int result; if (flag2) { vector.y = position.y; DropItem dropItem = BaseRoomItem.getDropItem(vector, Vector3.zero, item, isfake); DropItemUIMgr.getInstance().show(dropItem, dropItem.itemdta.getDropItemName()); bool flag3 = !isfake; if (flag3) { this.dDropItem[item.dpid] = dropItem; bool flag4 = item.ownerId == ModelBase <PlayerModel> .getInstance().cid || item.ownerId == 0u || (BaseProxy <TeamProxy> .getInstance().MyTeamData != null && item.ownerId == BaseProxy <TeamProxy> .getInstance().MyTeamData.teamId); if (flag4) { this.dDropItem_own[item.dpid] = dropItem; } } else { item.dpid = this.fakeItemIdx; this.dDropFakeItem[item.dpid] = dropItem; this.fakeItemIdx += 1u; } result = idx + 1; } else { bool flag5 = wrongcount >= 3; if (flag5) { debug.Log(":" + item.dpid); DropItem dropItem2 = BaseRoomItem.getDropItem(position, Vector3.zero, item, false); DropItemUIMgr.getInstance().show(dropItem2, dropItem2.itemdta.getDropItemName()); bool flag6 = !isfake; if (flag6) { this.dDropItem[item.dpid] = dropItem2; bool flag7 = item.ownerId == ModelBase <PlayerModel> .getInstance().cid || item.ownerId == 0u || (BaseProxy <TeamProxy> .getInstance().MyTeamData != null && item.ownerId == BaseProxy <TeamProxy> .getInstance().MyTeamData.teamId); if (flag7) { this.dDropItem_own[item.dpid] = dropItem2; } } else { item.dpid = this.fakeItemIdx; this.dDropFakeItem[item.dpid] = dropItem2; this.fakeItemIdx += 1u; } result = idx + 1; } else { wrongcount++; result = this.showDrop(dropPos, wrongcount, idx + 1, item, isfake); } } return(result); }