/// <summary> /// 获取当前预览的物体,更新预览界面的角色灯光 /// </summary> public void UpdatePreviewLight(GameObject preview_object) { var role_ids = GameConstHelper.GetUintList("GAME_AVAILABLE_ROLE_ID"); var type_ids = new List <uint>(role_ids.Count); foreach (var rid in role_ids) { type_ids.Add(ActorHelper.RoleIdToTypeId(rid)); } uint actor_type_id = 0; var client_model = preview_object.GetComponentInChildren <ActorMono>(true); if (client_model != null && client_model.BindActor != null) { actor_type_id = client_model.BindActor.TypeIdx; } if (type_ids.Contains(actor_type_id)) { PreviewLight.SelectLight(0, ActorHelper.TypeIdToRoleId(actor_type_id)); } else { PreviewLight.SelectLight(0, 0); } }
public void Reset() { foreach (Dictionary <string, string> row in DBManager.Instance.QuerySqliteTable <string>(GlobalConfig.DBFile, "data_persional_default")) { uint id = 0; uint.TryParse(row["id"], out id); uint defaultValue = 0; uint.TryParse(row["default"], out defaultValue); switch (id) { case GameConst.SETTING_KEY_HOOK_USE_HP_DRUG_HP_RATIO: { mUseHPDrugHPRatio = ((float)defaultValue) / 100f; break; } case GameConst.SETTING_KEY_HOOK_USE_MP_DRUG_MP_RATIO: { mUseMPDrugMPRatio = ((float)defaultValue) / 100f; break; } case GameConst.SETTING_KEY_HOOK_RANGE_TYPE: { mRangeType = (EHookRangeType)defaultValue; break; } case GameConst.SETTING_KEY_HOOK_AUTO_BUY_DRUG: { mAutoBuyDrug = (defaultValue > 0) ? true : false; break; } case GameConst.SETTING_KEY_HOOK_AUTO_SWALLOW: { mAutoSwallow = (defaultValue > 0) ? true : false; break; } case GameConst.SETTING_KEY_HOOK_AUTO_REVIVE: { mAutoRevive = (defaultValue > 0) ? true : false; break; } case GameConst.SETTING_KEY_HOOK_AUTO_SELL_GOODS: { mAutoSellGoods = (defaultValue > 0) ? true : false; break; } case GameConst.SETTING_KEY_HOOK_AUTO_PICK_DROP_PREFIX: { mAutoPickDrop = (defaultValue > 0) ? true : false; break; } default: break; } } mAutoBuyHPDrugGoodsId = 0; mAutoBuyHPDrugMoneyType = 0; mAutoBuyHPDrugPrice = 0; mAutoBuyMPDrugGoodsId = 0; mAutoBuyMPDrugMoneyType = 0; mAutoBuyMPDrugPrice = 0; mIsBuyingDrug = false; mIsSellingGoods = false; mIsUsingHPDrug = false; mIsUsingMPDrug = false; if (mTimer != null) { mTimer.Destroy(); mTimer = null; } mTimer = new Utils.Timer(5000, true, Mathf.Infinity, UpdateTimer); mUseHPDrugGoodsIds = GameConstHelper.GetUintList("GAME_HOOK_USE_HP_DRUG_GOODS_ID"); mUseMPDrugGoodsIds = GameConstHelper.GetUintList("GAME_HOOK_USE_MP_DRUG_GOODS_ID"); mAutoBuyHPDrugNum = GameConstHelper.GetUint("GAME_HOOK_BUY_HP_DRUG_NUM"); mAutoBuyMPDrugNum = GameConstHelper.GetUint("GAME_HOOK_BUY_MP_DRUG_NUM"); }
public void ProcessCharacterInfo(S2CPlayerSyncAttrs attrs) { // 有变化的属性 ActorAttribute actorAttributeOffset = new ActorAttribute(); actorAttributeOffset.Clear(); // 同步服务端数据 foreach (PkgAttrElm attrElm in attrs.attr_elm) { // 属性赋值 IActorAttribute attr = null; if (LocalActorAttribute.Attribute.TryGetValue(attrElm.attr, out attr)) { if ((ushort)attrElm.attr != GameConst.AR_BAT_PW) { // 属性增加才显示 if (attrElm.value > attr.Value) { actorAttributeOffset.Add(attrElm.attr, attrElm.value - attr.Value); } } attr.Value = attrElm.value; } else { if ((ushort)attrElm.attr != GameConst.AR_BAT_PW) { actorAttributeOffset.Add(attrElm.attr, attrElm.value); } //包含其他字段赋值 LocalActorAttribute.Attribute.Add(attrElm.attr, attrElm.value); } if ((ushort)attrElm.attr == GameConst.AR_BAT_PW)//战斗力赋值 { long new_battlepower = attrElm.value; long delta = new_battlepower - mLastBattlePower; if (new_battlepower != 0 && mLastBattlePower != 0) { //if (delta > 0) if (delta != 0) { TryShowFightRankAnim(delta); } } mLastBattlePower = new_battlepower; LocalActorAttribute.BattlePower = new_battlepower; if (delta != 0) { ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_LOCALPLAYER_BATTLE_POWER_CHANGED, null); } } // 移动速度的同步需要特殊处理 Actor actor = Game.GetInstance().GetLocalPlayer(); if (null != actor) { if ((ushort)attrElm.attr == GameConst.AR_SPEED || (ushort)attrElm.attr == GameConst.AR_SPEED_ADD) { actor.SetMoveSpeedScale(LocalActorAttribute.MoveSpeedScale * GlobalConst.AttrConvert, LocalActorAttribute.MoveSpeedAdd); } } } if (mUpdateTipsShowLevelRange == null) { mUpdateTipsShowLevelRange = GameConstHelper.GetUintList("GAME_ATTR_UPDATE_TIPS_SHOW_LEVEL_RANGE"); } if (mUpdateTipsShowReasons == null) { mUpdateTipsShowReasons = GameConstHelper.GetUintList("GAME_ATTR_UPDATE_TIPS_SHOW_REASONS"); } bool meetShowReason = false; foreach (uint reason in mUpdateTipsShowReasons) { if (reason == attrs.reason) { meetShowReason = true; } } if (meetShowReason == true && Level >= mUpdateTipsShowLevelRange[0] && Level <= mUpdateTipsShowLevelRange[1] && attrs.init != 1 && actorAttributeOffset.Count > 0) { // 属性变化界面的弹出,如果战力提升界面正在显示,则等该界面关闭后再弹出属性变化界面 if (xc.ui.ugui.UIManager.Instance.GetExistingWindow("UIAttributeTipsWindow") != null) { ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_SHOW_ATTRS_UPDATE_WINDOW, new CEventBaseArgs(actorAttributeOffset)); } else { xc.ui.ugui.UIManager.Instance.ShowWindow("UIAttributeTipsWindow", actorAttributeOffset); } } // 设置本地玩家的属性 Actor local_player = Game.GetInstance().GetLocalPlayer(); if (null != local_player) { bool need_update_hp = false; if (mLastHp != LocalActorAttribute.HP || mLastHpMax != LocalActorAttribute.HPMax) { need_update_hp = true; mLastHp = LocalActorAttribute.HP; mLastHpMax = LocalActorAttribute.HPMax; } local_player.SetActorAttribute(LocalActorAttribute); ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_ACTOR_BASEINFO_UPDATE, new CEventActorArgs(local_player)); if (need_update_hp) { ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_LOCAL_PLAYER_NWAR_CHANGED, new CEventEventParamArgs("hp", LocalActorAttribute.HP)); local_player.CurLife = local_player.CurLife;// 强制更新下当前血量, 发送相关的消息 local_player.FullLife = LocalActorAttribute.HPMax; } } }