void CheckAddCheatItem(string msg) { if (null == MainPlayer.Instance.entity) { return; } CheatData data = CheatData.GetData(msg); if (null != data) { if (1 == data.addType) { if (MainPlayer.Instance.entity.packageCmpt.Add(data.itemID, 1) && "0" != data.successNotice) { PeTipMsg.Register(data.successNotice, PeTipMsg.EMsgLevel.HighLightRed); } } else if (2 == data.addType) { if (0 == VCEditor.MakeCreation("Isos/Mission/" + data.isoName) && "0" != data.successNotice) { PeTipMsg.Register(data.successNotice, PeTipMsg.EMsgLevel.HighLightRed); } } } }
public override void Do() { if (null != entityInfo && null != entityInfo.faceTex) { PeTipMsg.Register(PELocalization.GetString(contentIDs[Random.Range(0, contentIDs.Length)]), entityInfo.faceTex, PeTipMsg.EMsgLevel.Norm, PeTipMsg.EMsgType.Misc); } }
protected override void CheckOperate() { base.CheckOperate(); if (PeInput.Get(PeInput.LogicFunction.InteractWithItem) && CanCmd()) { if (EntityMonsterBeacon.IsRunning()) { PeTipMsg.Register(PELocalization.GetString(8000596), PeTipMsg.EMsgLevel.Warning); return; } if (!Operatable()) { return; } Pathea.OperateCmpt operateCmpt = Pathea.MainPlayer.Instance.entity.operateCmpt; if (null != operateCmpt && operateCmpt.HasOperate) { return; } Pathea.MotionMgrCmpt mmc = Pathea.MainPlayer.Instance.entity.motionMgr; if (null != mmc && (mmc.IsActionRunning(Pathea.PEActionType.Sleep) || !mmc.CanDoAction(Pathea.PEActionType.Sleep))) { return; } GameUI.Instance.mItemOp.ShowSleepWnd(true, this, bedView.peSleep, Pathea.MainPlayer.Instance.entity); // GameUI.Instance.mItemOp.SleepImmediately(bedView.peSleep, Pathea.MainPlayer.Instance.entity); } }
void OnRightMouseCliked(Grid_N grid) { ActiveWnd(); GameUI.Instance.mItemPackageCtrl.Show(); if (grid.ItemObj != null && playerPackage != null) { if (PeGameMgr.IsMulti) { if (_wareObj != null) { _wareObj._objNet.GetItem(grid.ItemObj.instanceId); } } else { if (playerPackage.Add(grid.ItemObj)) { SetItemWithIndex(null, grid.ItemIndex); } else //lz-2016.09.14 提示背包已满 { PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning); } } } }
public bool RemoveEqByIndex(int index) { if (null != mEquipmentList && index >= 0 && index < mEquipmentList.Count && null != mEquipmentList[index].ItemObj) { if (GameConfig.IsMultiMode) { if (equipmentCmpt.TryTakeOffEquipment(mEquipmentList[index].ItemObj)) { return(true); } } else { if (equipmentCmpt.TakeOffEquipment(mEquipmentList[index].ItemObj, false)) { //lz-2016.08.30 脱下装备成功播放音效 GameUI.Instance.PlayTakeOffEquipAudio(); return(true); } } } //lz-2016.10.09 提示正在使用此装备,无法操作 PeTipMsg.Register(PELocalization.GetString(8000594), PeTipMsg.EMsgLevel.Error); return(false); }
public override bool CanDoAction(PEActionParam para = null) { if (motionMgr.IsActionRunning(PEActionType.Build)) { PeTipMsg.Register(PELocalization.GetString(9500246), PeTipMsg.EMsgLevel.Warning); return(false); } PEActionParamDrive paramDrive = para as PEActionParamDrive; m_DrivingController = paramDrive.controller; if (m_DrivingController == null) { return(false); } ItemAsset.ItemObject item = m_DrivingController.itemObject; if (item != null && skillTreeMgr != null && RandomMapConfig.useSkillTree) { if (!skillTreeMgr.CheckDriveEnable(item.protoData.itemClassId, item.protoData.level)) { return(false); } } return(true); }
void OnRightMouseClicked(Grid_N grid) { if (!CSUI_MainWndCtrl.IsWorking()) { return; } if (!m_IsWorking) { if (OpStatusEvent != null) { OpStatusEvent(EEventType.CantWork, CSUtils.GetEntityName(CSConst.etStorage), null); } return; } if (!GameUI.Instance.mItemPackageCtrl.IsOpen()) { GameUI.Instance.mItemPackageCtrl.Show(); } if (grid.ItemObj == null) { return; } //lz-2016.10.26 不允许操作正在操作的东西 if (EqualUsingItem(grid.Item, false)) { return; } if (GameConfig.IsMultiMode) { if (m_storage == null) { PlayerNetwork.mainPlayer.RequestPersonalStorageFetch(grid.ItemObj.instanceId, -1); } else { m_storage._ColonyObj._Network.STO_Fetch(grid.ItemObj.instanceId, -1); } } else { if (PeCreature.Instance.mainPlayer.GetCmpt <PackageCmpt>().Add(grid.ItemObj)) { GameUI.Instance.mItemPackageCtrl.ResetItem(); RemoveOriginItem(grid); } else { //lz-2016.09.14 提示背包已满 PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning); } } }
bool CheckMonsterBeaconEnable() { ItemScript_MonsterBeacon monsterBeacon = GetComponent <ItemScript_MonsterBeacon>(); if (null != monsterBeacon && EntityMonsterBeacon.IsRunning()) { PeTipMsg.Register(PELocalization.GetString(82201076), PeTipMsg.EMsgLevel.Warning); return(false); } return(true); }
IEnumerator WarningOne(int count, float intervals, float delayTime) { for (int i = 0; i < count; i++) { string content = !m_IsReady?PELocalization.GetString(8000189) : PELocalization.GetString(8000190); PeTipMsg.Register(content, PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Colony, 800); yield return(new WaitForSeconds(intervals)); } yield return(new WaitForSeconds(delayTime)); }
public override void DoGetItem() { if (null == pkg || null == itemObj || !pkg.CanAdd(itemObj)) { PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning); return; } PeMap.TowerMark findMask = PeMap.TowerMark.Mgr.Instance.Find(tower => itemObjectId == tower.ID); if (null != findMask) { PeMap.LabelMgr.Instance.Remove(findMask); PeMap.TowerMark.Mgr.Instance.Remove(findMask); } base.DoGetItem(); }
public override void DoGetItem() { ItemAsset.MaterialItem[] items = itemList.GetItems(); if (null == pkg || !pkg.CanAdd(items)) { PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning); return; } if (!GameConfig.IsMultiMode) { for (int i = 0; i < items.Length; ++i) { pkgCmpt.Add(items[i].protoId, items[i].count); } ItemAsset.ItemMgr.Instance.DestroyItem(itemObjectId); DragItemAgent agent = DragItemAgent.GetById(id); if (agent != null) { DragItemAgent.Destory(agent); } GameUI.Instance.mItemPackageCtrl.ResetItem(); } else { //CommonInterface target = GetComponentInChildren<CommonInterface>(); //if (null == target || null == target.Netlayer) // return; //if (null != target.OwnerView) // PlayerFactory.mMainPlayer.RPCServer(EPacketType.PT_InGame_GetItemListBack, m_ItemID, // itemObjectId, target.OwnerView.viewID, mItemIDList.ToArray(), mNumList.ToArray()); if (null != PlayerNetwork.mainPlayer) { var getItems = items.Select(iter => new ItemAsset.ItemSample(iter.protoId, iter.count)).ToArray(); PlayerNetwork.mainPlayer.RequestGetItemListBack(itemObjectId, getItems); } } GameUI.Instance.mItemOp.Hide(); }
public virtual void DoGetItem() { if (null == itemObj) { return; } if (!GameConfig.IsMultiMode) { if (Pathea.PlayerPackageCmpt.LockStackCount && !ItemMgr.IsCreationItem(itemObj.protoId)) { ItemMgr.Instance.DestroyItem(itemObj.instanceId); } else if (null != pkg) { if (ItemPackage.InvalidIndex == pkg.AddItem(itemObj)) { PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning); return; } if (MissionManager.Instance != null && Pathea.PeCreature.Instance != null && Pathea.PeCreature.Instance.mainPlayer != null) { MissionManager.Instance.ProcessUseItemMissionByID(itemObj.protoId, Pathea.PeCreature.Instance.mainPlayer.position, -1); } } DragItemAgent agent = DragItemAgent.GetById(id); if (agent != null) { DragItemAgent.Destory(agent); } GameUI.Instance.mItemPackageCtrl.ResetItem(); } else { if (null != PlayerNetwork.mainPlayer) { PlayerNetwork.mainPlayer.RequestGetItemBack(itemObjectId); } } HideItemOpGui(); }
public void AddToDropList(int packTab, int Index, Grid_N grid, Grid_N curDropItem = null) { if (curDropItem == null) { curDropItem = GetEmptyGrid(); if (null == curDropItem) { PeTipMsg.Register(PELocalization.GetString(82209001), PeTipMsg.EMsgLevel.Warning); return; } } RemoveFromDropList(curDropItem); curDropItem.SetItem(grid.Item); DropItemInfo info = new DropItemInfo(); info.SetInfo(packTab, Index, grid, grid.ItemObj); mDropInfoList.Add(info); ResetPackageWnd(packTab, Index); }
/// <summary> /// lz-2016.10.26 用来检测某个Item是不是玩家正在操作的东西 /// </summary> /// <returns></returns> public bool EqualUsingItem(ItemSample item, bool showUsingTip = true) { if (null == item || null == CurOperateItem) { return(false); } if (CurOperateItem == item) { if (showUsingTip) { PeTipMsg.Register(PELocalization.GetString(8000623), PeTipMsg.EMsgLevel.Error); } return(true); } else { return(false); } }
public override bool OnDragging(Ray cameraRay) { if (RandomDungenMgrData.InDungeon) { //lz-2016.09.29 在副本中提示可以使用Iso載具和机器人 if (!_inDungeonMsgTip) { PeTipMsg.Register(PELocalization.GetString(8000732), PeTipMsg.EMsgLevel.Warning); _inDungeonMsgTip = true; } return(false); } // 限制只能拖出一个机器人 if (RobotController.playerFollower && controller.category == EVCCategory.cgRobot) { _valid = false; mTooFar = true; return(false); } // 因为 collidable 已经关闭,所以射线检测不需要排除自身 if (Physics.Raycast(cameraRay, out fhitInfo, DraggingDistance, PEVCConfig.instance.creationDraggingLayerMask, QueryTriggerInteraction.Ignore)) { mTooFar = false; _valid = SetPos(fhitInfo.point); if (!rootGameObject.activeSelf) { rootGameObject.SetActive(true); } return(_valid); } else { _valid = false; mTooFar = true; return(false); } }
protected override void InitCmd(CmdList cmdList) { cmdList.Add("Turn", Turn90Degree); cmdList.Add("Get", OnGetBtn); //if (!GameConfig.IsMultiMode) { if (bedView.peSleep.CanOperateMask(Pathea.Operate.EOperationMask.Sleep)) { cmdList.Add("Sleep", () => { if (EntityMonsterBeacon.IsRunning()) { PeTipMsg.Register(PELocalization.GetString(8000596), PeTipMsg.EMsgLevel.Warning); return; } if (!bedView.peSleep.CanOperateMask(Pathea.Operate.EOperationMask.Sleep)) { return; } Pathea.OperateCmpt operateCmpt = Pathea.MainPlayer.Instance.entity.operateCmpt; if (null != operateCmpt && operateCmpt.HasOperate) { return; } Pathea.MotionMgrCmpt mmc = Pathea.MainPlayer.Instance.entity.GetCmpt <Pathea.MotionMgrCmpt>(); if (null != mmc && (mmc.IsActionRunning(Pathea.PEActionType.Sleep) || !mmc.CanDoAction(Pathea.PEActionType.Sleep))) { return; } //if (GameConfig.IsMultiMode) // GameUI.Instance.mItemOp.SleepImmediately(bedView.peSleep, Pathea.MainPlayer.Instance.entity); //else GameUI.Instance.mItemOp.ShowSleepWnd(true, this, bedView.peSleep, Pathea.MainPlayer.Instance.entity); }); } } }
private void TryExecAction() { if (null == _playerOperate || null == _monsterEntity) { return; } _rideTime = Time.realtimeSinceStartup; //lw:怪物血量高于50%不能乘骑 if (_monsterEntity.HPPercent > 0.5f) { PeTipMsg.Register(PELocalization.GetString(LowHpTipsID), PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Misc); return; } //lw:玩家有规定物品才能乘骑怪物 PlayerPackageCmpt playerPackage = MainPlayer.Instance.entity.packageCmpt as PlayerPackageCmpt; ItemAsset.ItemObject item = playerPackage.package.FindItemByProtoId(RideItemID); if (item == null || MainPlayer.Instance.entity.UseItem.GetCdByItemProtoId(RideItemID) > PETools.PEMath.Epsilon) { PeTipMsg.Register(PELocalization.GetString(LackRideItemTipsID), PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Misc); return; } //lz-2017.02.23 多人的时候先发消息请求控制权,请求回来再执行骑,避免坐骑系统Ai等运行不正常 if (PeGameMgr.IsMulti) { //PlayerNetwork.RequestuseItem(item.instanceId); PlayerNetwork.RequestReqMonsterCtrl(_monsterEntity.Id); } else { if (ExecRide(Pathea.MainPlayer.Instance.entity)) { //MainPlayer.Instance.entity.UseItem.Use(item); playerPackage.DestroyItem(item.instanceId, 1); } } }
public void OnLeftMouseCliked_Equip(Grid_N grid) { if (m_NpcCmpt == null || null == equipmentCmpt) { return; } if (null == grid || null == grid.ItemObj) { return; } if (equipmentCmpt.TryTakeOffEquipment(grid.ItemObj)) { SelectItem_N.Instance.SetItemGrid(grid); } else { //lz-2016.10.09 提示正在使用此装备,无法操作 PeTipMsg.Register(PELocalization.GetString(8000594), PeTipMsg.EMsgLevel.Error); } }
public bool IsChargeable(ItemObject itemObj) { if (null == itemObj) { return(false); } ItemAsset.Energy energy = itemObj.GetCmpt <ItemAsset.Energy>(); if (null == energy || itemObj.protoData.unchargeable) { if (m_bUseMsgBox) { //lz-2016.10.24 把对话框的提示改成左上角提示 PeTipMsg.Register(PELocalization.GetString(8000094), PeTipMsg.EMsgLevel.Error); } else { CSUI_MainWndCtrl.ShowStatusBar(PELocalization.GetString(8000094), Color.red); } return(false); } if ((!(energy is ItemAsset.EnergySmall)) && !m_bCanChargeLargedItem) { if (m_bUseMsgBox) { //lz-2016.10.24 把对话框的提示改成左上角提示 PeTipMsg.Register(PELocalization.GetString(8000095), PeTipMsg.EMsgLevel.Warning); } else { CSUI_MainWndCtrl.ShowStatusBar(PELocalization.GetString(8000095), Color.red); } return(false); } return(true); }
public override void OnGetBtn() { //base.OnGetBtn (); //if (!GameConfig.IsMultiMode) //{ CSEntityObject ceo = GetComponent <CSEntityObject>(); if (ceo == null) { return; } if (EntityMonsterBeacon.IsRunning()) { PeTipMsg.Register(PELocalization.GetString(8000622), PeTipMsg.EMsgLevel.Warning); CloseOn(); return; } if (ceo.m_Entity.BaseData.m_Durability < ceo.m_Entity.m_Info.m_Durability * 0.15f) { MessageBox_N.ShowOkBox(PELocalization.GetString(8000084)); } else { if (ceo as CSDwellingsObject != null) { MessageBox_N.ShowYNBox(PELocalization.GetString(8000085), GetOn, CloseOn); } else { MessageBox_N.ShowYNBox(PELocalization.GetString(8000086), GetOn, CloseOn); } } //} }
public override void DoGetItem() { if (null == pkg || null == itemObj || !pkg.CanAdd(itemObj)) { PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning); return; } CSEntityObject ceo = GetComponent <CSEntityObject>(); if (ceo != null) { float dura = ceo.m_Entity.BaseData.m_Durability; float maxDura = ceo.m_Entity.m_Info.m_Durability; ceo.m_Entity.BaseData.m_Durability = dura - Mathf.Floor(maxDura * 0.1f); if (ceo.m_Creator.RemoveEntity(ceo.m_Entity.ID, false) != null) { base.DoGetItem(); } } if (!PeGameMgr.IsMulti) { SendMessage("OnRemoveGo", itemObjectId, SendMessageOptions.DontRequireReceiver); } }
bool PlaySounds(AudioClip clip) { if (null != m_AudioSource) { if (null != clip) { if (null != m_AudioSource.clip) { m_AudioSource.Stop(); } m_AudioSource.clip = clip; m_AudioSource.Play(); PlayState = SoundPlayState.Playing; return(true); } else { PeTipMsg.Register(string.Format("{0}:{1}", CurSoundInfo.Name, PELocalization.GetString(9500106)), PeTipMsg.EMsgLevel.Error); } } m_SwitchSound = true; return(false); }
public bool PutOnEquipment(ItemObject itemObj, bool addToReceiver = true, Receiver receiver = null, bool netRequest = false) { if (!netRequest && null != mViewCmpt && mViewCmpt.IsRagdoll) { return(false); } Receiver currentReceiver = (null == receiver)?mItemReciver:receiver; if (null == itemObj) { return(false); } ItemAsset.Equip equip = itemObj.GetCmpt <ItemAsset.Equip>(); if (null == equip) { return(false); } if (!Pathea.PeGender.IsMatch(equip.sex, Entity.ExtGetSex())) { return(false); } if (mItemList.Contains(itemObj)) { return(false); } SkillTreeUnitMgr learntSkills = Entity.GetCmpt <SkillTreeUnitMgr>(); if (!netRequest && learntSkills != null && RandomMapConfig.useSkillTree) { if (!learntSkills.CheckEquipEnable(equip.protoData.itemClassId, equip.itemObj.level)) { return(false); } } m_TakeOffEquip.Clear(); for (int i = 0; i < mItemList.Count; ++i) { ItemObject item = mItemList[i]; ItemAsset.Equip existEquip = item.GetCmpt <ItemAsset.Equip>(); if (null != existEquip) { if (System.Convert.ToBoolean(equip.equipPos & existEquip.equipPos)) { m_TakeOffEquip.Add(item); } } } for (int i = 0; i < mEquipments.Count; ++i) { if (m_TakeOffEquip.Contains(mEquipments[i].m_ItemObj) && !netRequest && !mEquipments[i].CanTakeOff()) { return(false); } } if (!netRequest && addToReceiver && null != currentReceiver) { if (!currentReceiver.CanAddItemList(m_TakeOffEquip)) { //lz-2016.08.15 如果是NPC的背包满了要单独提示 if (currentReceiver is NpcPackageCmpt) { PeTipMsg.Register(PELocalization.GetString(82209013), PeTipMsg.EMsgLevel.Warning); } else { PeTipMsg.Register(PELocalization.GetString(82209001), PeTipMsg.EMsgLevel.Warning); } return(false); } } for (int i = mItemList.Count - 1; i >= 0; i--) { if (m_TakeOffEquip.Contains(mItemList[i] as ItemObject)) { mItemList.RemoveAt(i); } } mItemList.Add(itemObj); if (addToReceiver && null != currentReceiver) { currentReceiver.AddItemList(m_TakeOffEquip); } //Do change for (int i = 0; i < m_TakeOffEquip.Count; ++i) { ItemObject item = m_TakeOffEquip[i]; RemoveItemEff(item); RemoveModel(item); mEquipType &= ~item.protoData.equipType; EventArg removeEvtArg = new EventArg(); removeEvtArg.isAdd = false; removeEvtArg.itemObj = item; changeEventor.Dispatch(removeEvtArg, this); } ApplyItemEff(itemObj); AddModel(itemObj); mEquipType |= itemObj.protoData.equipType; EventArg evtArg = new EventArg(); evtArg.isAdd = true; evtArg.itemObj = itemObj; changeEventor.Dispatch(evtArg, this); if (0 != (itemObj.protoData.equipPos & (1 << 4))) { mainHandEquipment = itemObj; } if (OnEquipmentChange != null) { OnEquipmentChange(); } //lz-2016.08.22 引导检测玩家穿装备 if (Entity.IsMainPlayer) { InGameAidData.CheckPutOnEquip(itemObj.protoId); } m_EquipmentDirty = true; return(true); }
public bool TakeOffEquipment(ItemObject itemObj, bool addToReceiver = true, Receiver receiver = null, bool netRequest = false) { if (!netRequest && null != mViewCmpt && mViewCmpt.IsRagdoll) { return(false); } Receiver currentReceiver = (null == receiver)?mItemReciver:receiver; if (null == currentReceiver) { return(false); } if (mItemList.Contains(itemObj)) { for (int i = 0; i < mEquipments.Count; ++i) { if (mEquipments[i].m_ItemObj == itemObj && !netRequest && !mEquipments[i].CanTakeOff()) { return(false); } } m_TakeOffEquip.Clear(); m_TakeOffEquip.Add(itemObj); if (addToReceiver && !currentReceiver.CanAddItemList(m_TakeOffEquip)) { //lz-2016.08.15 如果是NPC的背包满了要单独提示 if (currentReceiver is NpcPackageCmpt) { PeTipMsg.Register(PELocalization.GetString(82209013), PeTipMsg.EMsgLevel.Warning); } else { PeTipMsg.Register(PELocalization.GetString(82209001), PeTipMsg.EMsgLevel.Warning); } return(false); } mItemList.Remove(itemObj); if (addToReceiver) { currentReceiver.AddItemList(m_TakeOffEquip); } RemoveItemEff(itemObj); RemoveModel(itemObj); mEquipType &= ~itemObj.protoData.equipType; EventArg evtArg = new EventArg(); evtArg.isAdd = false; evtArg.itemObj = itemObj; changeEventor.Dispatch(evtArg, this); if (0 != (itemObj.protoData.equipPos & (1 << 4))) { mainHandEquipment = null; } if (OnEquipmentChange != null) { OnEquipmentChange(); } m_EquipmentDirty = true; return(true); } return(false); }
public void BuyItem(int instanceId, int count) { int shopID = -1; int cost = 0; ItemObject itemObj = ItemAsset.ItemMgr.Instance.Get(instanceId); if (itemObj == null) { UpdateShop(); return; } if (PeGameMgr.IsMulti) { cost = count * Mathf.RoundToInt(ShopRespository.GetPriceBuyItemId(itemObj.protoId) * (1 + ColonyConst.TRADE_POST_CHARGE_RATE)); if (PlayerMoney.current < cost) { PeTipMsg.Register(PELocalization.GetString(Money.Digital? 8000092:8000073), PeTipMsg.EMsgLevel.Warning); return; } _ColonyObj._Network.RPCServer(EPacketType.PT_CL_TRD_BuyItem, instanceId, count); return; } else { foreach (KeyValuePair <int, stShopData> kvp in mShopList) { if (kvp.Value.ItemObjID == instanceId) { shopID = kvp.Key; break; } } if (shopID < 0) { UpdateShop(); return; } ShopData data = ShopRespository.GetShopData(shopID); if (data != null) { cost = Mathf.RoundToInt(data.m_Price * (1 + ColonyConst.TRADE_POST_CHARGE_RATE)) * count; } else { PeTipMsg.Register(PELocalization.GetString(8000496), PeTipMsg.EMsgLevel.Warning); return; } if (!Buy(itemObj, count, data, false)) { return; } } colonyMoney += cost; RemoveBuyItem(itemObj, count); //--to do: updateUi; UpdateBuyDataToUI(); }
public bool Buy(ItemObject itemObj, int count, ShopData data, bool isRepurchase) { int price; if (!isRepurchase) { price = Mathf.RoundToInt(data.m_Price * (1 + ColonyConst.TRADE_POST_CHARGE_RATE)); } else { price = itemObj.GetSellPrice(); } int cost = price * count; if (PlayerMoney.current < cost) { PeTipMsg.Register(PELocalization.GetString(Money.Digital? 8000092:8000073), PeTipMsg.EMsgLevel.Warning); return(false); } ItemObject addItem = null; PlayerPackageCmpt pkg = PeCreature.Instance.mainPlayer.GetCmpt <PlayerPackageCmpt>(); if (null == pkg) { PeTipMsg.Register(PELocalization.GetString(8000496), PeTipMsg.EMsgLevel.Warning); return(false); } if (!pkg.package.CanAdd(itemObj.protoId, count)) { PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning); return(false); } if (itemObj.protoData.maxStackNum == 1) { int NUM = count; for (int i = 0; i < NUM; i++) { count = 1; if (count < itemObj.GetCount()) { addItem = ItemMgr.Instance.CreateItem(itemObj.protoId); // single addItem.SetStackCount(count); } else { addItem = itemObj; if (!isRepurchase) { mShopList[data.m_ID].ItemObjID = -1; } } pkg.package.AddItem(addItem, !isRepurchase); } PlayerMoney.current -= cost; GameUI.Instance.mItemPackageCtrl.ResetItem(); } else { if (count == itemObj.GetCount()) { if (!isRepurchase) { mShopList[data.m_ID].ItemObjID = -1; } } pkg.package.Add(itemObj.protoId, count, !isRepurchase); PlayerMoney.current -= cost; GameUI.Instance.mItemPackageCtrl.ResetItem(); } return(true); }
public override void DoGetItem() { if (!GameConfig.IsMultiMode) { plant.UpdateStatus(); int itemGetNum = (int)(((int)(plant.mLife / 20f) + 1) * 0.2f * plant.mPlantInfo.mItemGetNum); Dictionary <int, int> retItems = new Dictionary <int, int>(); for (int i = 0; i < itemGetNum; i++) { float randomVar = Random.Range(0f, 1f); for (int j = 0; j < plant.mPlantInfo.mItemGetPro.Count; j++) { if (randomVar < plant.mPlantInfo.mItemGetPro[j].m_probablity) { if (!retItems.ContainsKey(plant.mPlantInfo.mItemGetPro[j].m_id)) { retItems[plant.mPlantInfo.mItemGetPro[j].m_id] = 0; } retItems[plant.mPlantInfo.mItemGetPro[j].m_id] += 1; } } } List <MaterialItem> items = new List <MaterialItem>(); foreach (int protoTypeId in retItems.Keys) { MaterialItem item = new MaterialItem(); item.protoId = protoTypeId; item.count = retItems[protoTypeId]; items.Add(item); //ItemSample addItem = new ItemSample(itemid, retItems[itemid]); //PlayerFactory.mMainPlayer.AddItem(addItem); // Pathea.PeCreature.Instance.mainPlayer.GetCmpt<Pathea.PlayerPackageCmpt>().Add(protoTypeId, retItems[protoTypeId]); } if (null == pkg || !pkg.CanAdd(items)) { PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning); return; } pkg.Add(items); FarmManager.Instance.RemovePlant(itemObjectId); //ItemMgr.Instance.DestroyItem(mItemObj.instanceId); DragArticleAgent.Destory(id); GameUI.Instance.mItemPackageCtrl.ResetItem(); HideItemOpGui(); } else { if (null != PlayerNetwork.mainPlayer) { PlayerNetwork.mainPlayer.RPCServer(EPacketType.PT_InGame_Plant_GetBack, itemObjectId); } GameUI.Instance.mItemPackageCtrl.ResetItem(); HideItemOpGui(); } //UpdateCmdList(); }
public void OnDropItem(Grid_N grid) { if (this.mRepairMachine.m_Repair != null && this.mRepairMachine.m_Repair.IsRepairingM) { return; } if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_HotKeyBar || SelectItem_N.Instance.Place == ItemPlaceType.IPT_Repair) { return; } //lz-2016.09.19 如果是ISO就返回,营地修理机不支持修ISO if (WhiteCat.CreationHelper.GetCreationItemClass(SelectItem_N.Instance.ItemObj) != WhiteCat.CreationItemClass.None) { //lz-2016.10.23 增加只能在基地修理的提示 PeTipMsg.Register(PELocalization.GetString(8000843), PeTipMsg.EMsgLevel.Warning); return; } ActiveWnd(); Repair dragRepairItem = SelectItem_N.Instance.ItemObj.GetCmpt <Repair>(); if (dragRepairItem == null) { return; } if (dragRepairItem.protoData.repairMaterialList == null || dragRepairItem.protoData.repairMaterialList.Count == 0) { return; } //多人模式 if (Pathea.PeGameMgr.IsMulti) { int[] itemlist = new int[1]; itemlist[0] = SelectItem_N.Instance.ItemObj.instanceId; _net.InsertItemList(itemlist); return; } else { //lz-2016.07.29 在修理机拖入物品的时候,如果里面有东西就先尝试取出里面的物品到背包,执行成功的时候再放进新的物品 if (null == mRepairItem.ItemObj) { UpdateItem(dragRepairItem); SelectItem_N.Instance.RemoveOriginItem(); SelectItem_N.Instance.SetItem(null); } else { //lz-2016.10.19 如果拖动的Item和放置的Item是同一类型,就直接交换ItemObj数据 ItemPackage.ESlotType dropType = ItemPackage.GetSlotType(mRepairItem.ItemObj.protoId); ItemPackage.ESlotType dragType = ItemPackage.GetSlotType(dragRepairItem.itemObj.protoId); if (dropType == dragType && null != SelectItem_N.Instance.Grid) { if (SelectItem_N.Instance.Grid.onGridsExchangeItem != null) { SelectItem_N.Instance.Grid.onGridsExchangeItem(SelectItem_N.Instance.Grid, mRepairItem.ItemObj); UpdateItem(dragRepairItem); SelectItem_N.Instance.SetItem(null); } } //lz-2016.10.19 如果不是同一类型,或者没有Grid,就先添加,后移除 else { if (TryAddCurRepairItemToPlayerPackage()) { UpdateItem(dragRepairItem); SelectItem_N.Instance.RemoveOriginItem(); SelectItem_N.Instance.SetItem(null); } } } } }