public static RECTAPI calClientToScreen() { RECTAPI ClientRectHwnd = new RECTAPI(); //下面代码限制鼠标在窗口 //RECTAPI rectHwnd = new RECTAPI(); //bool resultWindowRect = GameLogicAPI.GetWindowRect(m_WindowHwnd, ref rectHwnd); //下面代码限制鼠标在窗口客户区 bool resultGetClientRect = GameLogicAPI.GetClientRect(Initialize.m_WindowHwnd, out ClientRectHwnd); //编辑器下要减去顶部工具栏高度 #if !UNITY_STANDALONE_WIN ClientRectHwnd.top += 24; #endif POINTAPI pointCTS = new POINTAPI(); pointCTS.x = ClientRectHwnd.left; pointCTS.y = ClientRectHwnd.top; bool resultCTS = GameLogicAPI.ClientToScreen(Initialize.m_WindowHwnd, ref pointCTS); ClientRectHwnd.left = pointCTS.x; ClientRectHwnd.top = pointCTS.y; pointCTS.x = ClientRectHwnd.right - 1; pointCTS.y = ClientRectHwnd.bottom - 1; resultCTS = GameLogicAPI.ClientToScreen(Initialize.m_WindowHwnd, ref pointCTS); ClientRectHwnd.right = pointCTS.x; ClientRectHwnd.bottom = pointCTS.y; return(ClientRectHwnd); }
/// <summary> /// 格式化MapID,从配置里读取数据时,对传进来的主城地图ID都转换成1 /// </summary> /// <param name="nMapID"></param> public static void formatMapID(ref int nMapID) { if (GameLogicAPI.isMainMap(nMapID)) { nMapID = 1; } }
private void applyAccelerate(bool acc) { if (!m_pFSM.isHero) { return; } cmd_creature_set_wing_state data; data.nEncounterFlag = 0; if (acc) { data.nType = WING_STATE_TYPE.WING_STATE_ACCELERATION; } else { data.nType = WING_STATE_TYPE.WING_STATE_NORMAL_FLIGHT; } IntPtrHelper helper = new IntPtrHelper(); int len = Marshal.SizeOf(data); IntPtr ptr = helper.toPtr <cmd_creature_set_wing_state>(ref data); int eventID = (int)EntityLogicDef.ENTITY_CMD_SET_WING_STATE; GameLogicAPI.onEntityEvent(m_pFSM.entityID, eventID, len, "", ptr, len); }
/// <summary> /// 向逻辑层发送智能施法状态数据 /// </summary> private void SendSmartDataToLogic() { cmd_entity_set_smart_cast tempSmartData = new cmd_entity_set_smart_cast(); int smartDataSize = Marshal.SizeOf(tempSmartData); cmd_entity_set_smart_cast_head tempSmartDataHead = new cmd_entity_set_smart_cast_head(); int smartDateHeadSize = Marshal.SizeOf(tempSmartDataHead); tempSmartDataHead.nCount = slotSmartDatas.Count; int len = slotSmartDatas.Count * smartDataSize + smartDateHeadSize; IntPtr ptrBytes = Marshal.AllocHGlobal(len); Int64 pBytes = ptrBytes.ToInt64(); IntPtr ptr = new IntPtr(pBytes); if (ptr == null || ptr == IntPtr.Zero) { return; } Marshal.StructureToPtr(tempSmartDataHead, ptr, false); pBytes += smartDateHeadSize; foreach (DictionaryEntry keypair in slotSmartDatas) { int id = (int)keypair.Key; cmd_entity_set_smart_cast data = (cmd_entity_set_smart_cast)keypair.Value; IntPtr ptrInfo = new IntPtr(pBytes); Marshal.StructureToPtr(data, ptrInfo, false); pBytes += smartDataSize; } GameLogicAPI.onEntityEvent(EntityFactory.MainHeroID, (int)EntityLogicDef.ENTITY_CMD_SET_SMART_CAST, len, "", ptrBytes, len); Marshal.FreeHGlobal(ptrBytes); }
/// <summary> /// 检测功能按键是否有按下 /// </summary> /// <param name="keyCtrlIndex">功能按键槽位序号</param> /// <returns></returns> public static bool CheckFunctionShortcutKeyDown(FuntionShortCutSlotIndex keyCtrlIndex) { if (!FuntionShortCutCtrl.GetInstance().dicCombinationShortcutKey.ContainsKey((int)keyCtrlIndex)) { return(false); } //获取此槽位权限Flag, 如果为0代表全局开启,不限制 //不为0则与场景保姆中的快捷键方案标识做&运算,判断当前是否有权限使用该槽位 //如果无权限使用,则直接return掉 int flag = SlotKeyCodeConfig.Instance.GetSlotFlag((int)SlotType.Function, (int)keyCtrlIndex); if (flag != 0 && (flag & GameLogicAPI.getHotkeyIndex()) == 0) { return(false); } if (FuntionShortCutCtrl.GetInstance().dicCombinationShortcutKey[(int)keyCtrlIndex].ModifierKeyCodeList.Count <= 0)//((int)keyCtrlIndex < (int)FuntionShortCutSlotIndex.Com_UpgradeSpellSlot0) { return(FuntionShortCutCtrl.GetInstance().CheckKeyCodeKeyStatus(keyCtrlIndex, KeyStatus.Down)); } else { return(FuntionShortCutCtrl.GetInstance().CheckCombinationKeyStatus(keyCtrlIndex, KeyStatus.Down)); } }
private void GetDefaultRotateInfo(int _nCamp, out int _nAngle, out int _nXOffset, out int _nYOffset) { // 获取小地图信息 SMinimapInfo sInfo = new SMinimapInfo(); if (GameLogicAPI.getMinimapInfo(this.mMapID, ref sInfo) == false) { _nAngle = _nXOffset = _nYOffset = 0; return; } string[] strRotation = ((string)(sInfo.szDefaultRotation)).Split(';'); for (int idx = 0; idx + 1 < strRotation.Length; idx = idx + 4) { int nCamp = Convert.ToInt32(strRotation[idx]); if (_nCamp == nCamp) { _nAngle = Convert.ToInt32(strRotation[idx + 1]); _nXOffset = Convert.ToInt32(strRotation[idx + 2]); _nYOffset = Convert.ToInt32(strRotation[idx + 3]); return; } } _nAngle = _nXOffset = _nYOffset = 0; return; }
void OnCameraModeChange(CameraMode mode) { if (BaseStageManager.Instance.CurSubState == EStage_SubState.ESSS_WAREND) { return; } isOcclusFadingEnabled_GodEye = false; if (!hostResManager.IsActive) { UpdateOcclusFading(); return; } if (GameLogicAPI.isInWarScene() > 0 && AlwaysVisible && !isTerrain) { if (ObjectHeight > HightObj) { if (mode == CameraMode.TopControl || mode == CameraMode.MapGodControl || mode == CameraMode.DeadControl) { isOcclusFadingEnabled_GodEye = true; } } } UpdateOcclusFading(); }
public void setHeroInfo(cmd_entity_hero_info cmdInfo, int nMaxExp) { nHeroID = cmdInfo.nHeroID; // 此处由于可能找不到对应的头像,策划特别提出随便加一个先 heroIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_PLAYERFRAME, 1, 6, cmdInfo.nHeroID); if (heroIcon.sprite == null) { heroIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_PLAYERFRAME, 1, 6, 10); } heroName.text = cmdInfo.chHeroName; heroStarLv.text = cmdInfo.byStarLv.ToString(); heroWinPro.text = cmdInfo.usWinPro.ToString() + "%"; matchCount.text = cmdInfo.nGameCount.ToString(); heroUseTimeSlider.maxValue = nMaxExp; heroUseTimeSlider.value = cmdInfo.nGameCount; int nStarLvLimit = GameLogicAPI.getHeroStarLvLimit(nHeroID); int nHeroStar = cmdInfo.byStarLv; nHeroStar = nHeroStar > nStarLvLimit ? nStarLvLimit : nHeroStar; heroStarItem.SetData(nHeroID, nHeroStar, false, false); setVisible(true); }
bool isMatchWnd(IUIWnd wnd) { int loadMask; EGameMode gameMode = GameLogicAPI.getCurGameMode(); switch (gameMode) { case EGameMode.EGM_Moba: loadMask = (int)WndLoadMaskDef.WND_LoadMask_Moba; break; case EGameMode.EGM_MCAMP: loadMask = (int)WndLoadMaskDef.WND_LoadMask_MCAMP; break; case EGameMode.EGM_RPG: default: loadMask = (int)WndLoadMaskDef.WND_LoadMask_RPG; break; } int permissionMask = (int)WndPermissionMaskDef.WND_PM_Normal; if (StageManager.Instance.CurPermissionState == EStage_PermissionState.ESPS_OB) { permissionMask = (int)WndPermissionMaskDef.WND_PM_OB; } return((wnd.GetLoadMask() & loadMask) != 0 && (wnd.GetPermissionMask() & permissionMask) != 0); }
public bool JudgeIsMouseLock() { bool bMouseLock = false; switch (m_eMouseLockState) { case EMouseLockModelType.EMLMT_OFF: { bMouseLock = false; } break; case EMouseLockModelType.EMLMT_INALL: { bMouseLock = true; } break; case EMouseLockModelType.EMLMT_INWAR: { bMouseLock = GameLogicAPI.isInWarScene() > 0; } break; default: break; } //UnityEngine.Debug.Log( "bMouseLock" + bMouseLock); return(bMouseLock); }
/// <summary> /// 截取耗时并打印 /// </summary> /// <param name="_strDebugInfo">额外信息打印</param> /// <param name="_nCostThreshold">耗时阀值</param> /// <param name="_bStart">重置耗时</param> public static void PrintTickCheck(string _strDebugInfo, uint _nCostThreshold = CostThreshold_Lv1, bool _bStart = false) { #if TickCheck if (!UnityEngine.Debug.isDebugBuild) { return; } uint newCount = 0; if (_bStart) { Instance.m_nTickCheckCount = GameLogicAPI.getTickCount(); newCount = Instance.m_nTickCheckCount; } else { newCount = GameLogicAPI.getTickCount(); } uint deltaCount = newCount - Instance.m_nTickCheckCount; Instance.m_nTickCheckCount = newCount; if (deltaCount >= _nCostThreshold) { Trace.LogWarning("截取计时, " + _strDebugInfo + " ,阀值: " + _nCostThreshold + ",耗时:" + deltaCount); } #endif }
public void StopAutoMove(bool userStop = true) { if (!isAutoMoving) { return; } isAutoMoving = false; if (m_autoMoveNavModeFollow) { SoldierCamera.MainInstance <SoldierCamera>().exitNavMode(CameraNavMode.Follow); m_autoMoveNavModeFollow = false; } if (m_pFSM.showLog) { Trace.Log("StopAutoMove"); } if (userStop) { cmd_creature_operation_type type = new cmd_creature_operation_type(); type.nType = 0; IntPtrHelper helper = new IntPtrHelper(); IntPtr ptr = helper.toPtr <cmd_creature_operation_type>(ref type); int len = Marshal.SizeOf(type); GameLogicAPI.onEntityEvent(m_pFSM.entityID, (int)EntityLogicDef.ENTITY_CMD_OPERATION_TYPE, len, "", ptr, len); } enableAutoMoveEffect(false); }
public void OnTimer(int nTimerID) { switch (nTimerID) { case (int)EN_GameHud_Timer.ENGT_GameTimer: { uint nWarGameTimeMs = GameLogicAPI.getSyncTickCount() - LogicDataCenter.warInfoDataManager.WarStartTime; LogicDataCenter.warInfoDataManager.WarPlayTimeSec = nWarGameTimeMs / 1000; uint nMin, nSec; string strMin, strSec; nMin = LogicDataCenter.warInfoDataManager.WarPlayTimeSec / 60; nSec = LogicDataCenter.warInfoDataManager.WarPlayTimeSec % 60; strMin = nMin.ToString("00"); strSec = nSec.ToString("00"); //更新游戏时间 gameTime.text = strMin + ":" + strSec; } break; default: break; } }
public void SetXPSkillInfo(int nSpellID) { if (nSpellID <= 0) { Debug.LogWarning("XPSKill," + nSpellID); return; } IntPtr Ptr = GameLogicAPI.getSpellData(nSpellID); if (Ptr == IntPtr.Zero) { Debug.LogWarning("XPSKill,Ptr == IntPtr.Zero," + nSpellID); return; } SPELL.SPELL_DATA spellData = IntPtrHelper.toData <SPELL.SPELL_DATA>(Ptr); IntPtr strPtr = GameLogicAPI.getSpellStrData(nSpellID, (int)SPELL_DATA_ID.SPDATA_DESC); String szDesc = IntPtrHelper.Ptr2Str(strPtr); Debug.Log("XPSKill," + spellData.nID + "," + szDesc + "," + nSpellID); UBB.toHtml(ref szDesc, UBB_FORMAT_TYPE.UGUI); slotTooltipTrigger.SetText(UTooltipParamName.BodyText, szDesc); slotTooltipTrigger.enabled = true; skillImage.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_Skill, WndID.WND_ID_WAR_XPSKILL, 1, spellData.nIcon); skillImage.gameObject.SetActive(true); xpSkillName = spellData.szName; }
public void Update() { needUpdate = true; uint tick = GameLogicAPI.getTickCount(); if (manager) { UpdateBehaviourOnTimerManager.UpdateBehaviourOnTimerLayer info = manager.getLayerInfo(layer); if (lastUpdateTick > info.roundStartTick) { //I am already updated in this round needUpdate = false; } else if (tick > manager.getFrameStartTick() + m_frameTickThread) { //update time for this frame is run out, wait for the next frame needUpdate = false; } if (m_indexOnLayer == info.componentCount - 1) { //the component[info.componentCount] is always valid. When it is destroyed, info.componentCount-- manager.setRoundStartTick(layer); } } if (needUpdate) { OnUpdate(); lastUpdateTick = tick; } }
public override bool LateUpdate() { if (!Valid) { return(false); } uint tick = GameLogicAPI.getTickCount(); if (needClose == true || (areaConfig.effectTotalTick > 0) && (tick > mEndTick)) { return(false); } if (tick < mStartTick) { return(true); } if (tick >= mNextCreateTick) { mNextCreateTick = tick + (uint)areaConfig.effectIntervalTick; createEffect(); mEffectLeftCount--; } if (mEffectLeftCount == 0) { needClose = true; return(false); } return(true); }
private static void SoundDeleteHandle(SoundDeleteEventArgs e) { if (null == e) { return; } switch (e.soundType) { case SoundSystem.EMSoundType.Environment: { if (GameLogicAPI.isInWarScene() > 0) { CutToNextSceneSound(); } } break; case SoundSystem.EMSoundType.Skill: { if (e.entityID > 0) { DeleteRandomSound(e.soundID, e.entityID); } } break; default: break; } }
public override bool Begin() { if (!cameraConfig || null == EffectParam) { return(false); } base.Begin(); uint tick = GameLogicAPI.getTickCount(); mStartTick = tick; mEndTick = mStartTick + (uint)cameraConfig.effectLiveTick + (uint)cameraConfig.delayTick; if (cameraConfig.effectRad > 0.01f && EntityFactory.MainHero) { Vector3 deta = EffectParam.targetPos - EntityFactory.MainHero.transform.position; if (deta.magnitude > cameraConfig.effectRad) { //创建失败,要进行回收,要不然缓存无法更新 LightingEffectBehavior temp = this; LightingEffectFactory.Instance.CacheEffectBehavior(ref temp); return(false); } } bStartEffect = true; return(true); }
private static void OnSceneLoadFinish(string sceneName) { isHaveData = false; //如果是非吃鸡场景,卸载. if (GameLogicAPI.getCurGameMode() != Game_ManagedDef.EGameMode.EGM_MCAMP) { AssetBundleManager.DeleteAssets(ref SafeZoneEffectRes, true); SafeZoneEffectInstance = null; return; } if (null == SafeZoneEffectRes) { SafeZoneEffectRes = AssetBundleManager.GetAssets(AssetType.Asset_Prefab, SafeZoneEffectGUID, true); if (!ResNode.isNullOrEmpty(SafeZoneEffectRes)) { SafeZoneEffectInstance = SafeZoneEffectRes.InstanceMainRes <Effect.EffectNode>(); if (SafeZoneEffectInstance) { SafeZoneEffectInstance.Init(); SafeZoneEffectInstance.StopEffect(); SafeZoneTransform = SafeZoneEffectInstance.transform; SafeZoneTransform.SetParent(EntityFactory.EffectGroup.transform); GenerateZoneMaterial(SafeZoneEffectInstance); } } } if (SafeZoneEffectInstance) { SafeZoneEffectInstance.StopEffect(); } }
private void SetAllGoodsTileDataSource(ObservableList <UWarGoodsStoreItem> _datSource) { AllGoodsTile.SelectedIndex = -1; AllGoodsTile.OnDeselect.RemoveListener(OnAllGoodsOnDeselect); AllGoodsTile.OnSelect.RemoveListener(OnMobaGoodsSelected); AllGoodsTile.onDoubleClick.RemoveListener(OnMobaGoodsBuy); AllGoodsTile.onRightClick.RemoveListener(OnMobaGoodsBuy); int nHeroId = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_VOCATION); PersonSkinModelItem ModelItem = new PersonSkinModelItem(); GameLogicAPI.GetPersonModel((UInt16)nHeroId, ref ModelItem); //移除英雄限制的装备 var list = _datSource.Select(d => d).Where(s => (s.SchemeGoodsInfo.GoodsVocationLimit != 0 && s.SchemeGoodsInfo.GoodsVocationLimit == ModelItem.nTraits)).ToList(); foreach (var i in list) { _datSource.Remove(i); } AllGoodsTile.DataSource = _datSource; AllGoodsTile.OnDeselect.AddListener(OnAllGoodsOnDeselect); AllGoodsTile.OnSelect.AddListener(OnMobaGoodsSelected); AllGoodsTile.onDoubleClick.AddListener(OnMobaGoodsBuy); AllGoodsTile.onRightClick.AddListener(OnMobaGoodsBuy); }
public void ToggleHideWindow() { if (contentCanvasGroup.gameObject.activeSelf) { contentCanvasGroup.gameObject.SetActive(false); borderCanvasGroup.gameObject.SetActive(false); resizerImage.gameObject.SetActive(false); channelCanvasGroup.gameObject.SetActive(false); minimunCanvasGroup.alpha = 1f; m_isMin = true; } else { contentCanvasGroup.gameObject.SetActive(true); borderCanvasGroup.gameObject.SetActive(true); resizerImage.gameObject.SetActive(true); // 战场内不显示频道选择按钮组 if (GameLogicAPI.isInWarScene() > 0) { channelCanvasGroup.gameObject.SetActive(false); } else { channelCanvasGroup.gameObject.SetActive(true); } m_isMin = false; } }
// 小地图点击响应 public bool OnMinimapClick(float xPos, float yPos, float zPos) { //if (InputManager.GetKey(KeyCode.LeftAlt) && m_teamCommandStart == false) //{ // m_teamCommandStart = true; // m_teamCommandShow = false; // m_commandStartScreenPos = getMousePosition(); // m_commandStartWorldPos.x = xPos; // m_commandStartWorldPos.z = zPos; // m_commandTryAttackFlag = true; // return true; //} //关闭fps英雄的alt点解小地图发信号功能 if (EntityFactory.MainHeroView != null) { PersonSkinModelItem item = new PersonSkinModelItem(); int heroID = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_VOCATION); GameLogicAPI.GetPersonModel((UInt16)heroID, ref item); if (m_currentAttachType == MouseAttachFuncType.AltAttackSign && item.nPlayMode == 1) { return(false); } } if (GetAttachType() > (int)MouseAttachFuncType.None) { DoMouseAttachFunc(xPos, yPos, zPos); return(true); } return(false); }
public void SetData(UTileItemClanSelfHero item, UTileClanSelfHero parentList) { cmd_clan_request_selfhero cmdData = item.data; heroIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, WndID.WND_ID_CLAN_SELECTREQUESTCARD, 1, 7, cmdData.nHeroID); heroStarItem.SetData(cmdData.nHeroID, cmdData.nHeroStar, false, false); float fValue = cmdData.nNeedCardCount != 0 ? (float)item.data.nCardCount / item.data.nNeedCardCount : 0.0f; Vector2 baseVec2 = cardValue.rectTransform.sizeDelta; if (fValue >= 1) { baseVec2.x = cardBase.rectTransform.sizeDelta.x; cardValue.sprite = parentList.cardValueSprites[1]; } else { baseVec2.x = fValue * cardBase.rectTransform.sizeDelta.x; cardValue.sprite = parentList.cardValueSprites[0]; } cardValue.rectTransform.sizeDelta = baseVec2; int nStarLvLimit = GameLogicAPI.getHeroStarLvLimit(cmdData.nHeroID); if (cmdData.nHeroStar >= nStarLvLimit) { cardText.text = cmdData.nCardCount.ToString(); maxBg.gameObject.SetActive(true); } else { cardText.text = cmdData.nCardCount.ToString() + "/" + cmdData.nNeedCardCount.ToString(); maxBg.gameObject.SetActive(false); } }
void EnterBattle() { Game_ManagedDef.EGameMode gamemode = GameLogicAPI.getCurGameMode(); IsMoba = gamemode == Game_ManagedDef.EGameMode.EGM_MCAMP ? false : true; IsReConnect = GameLogicAPI.IsContinuePlay(); UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_COMMON_BATTLESTATE_ENTER, null); if (IsReConnect | IsMoba) { UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_COMMON_BATTLESTATE_ENTER_PlayMovie, null); } else { //实体还未创建 if (EntityFactory.MainHeroView == null) { Debug.Log("EnterBattle 实体还未创建"); EntityFactory.CreateMainHeroEntityEvent += OnHeroEntityLoadComplete; } else { //实体已创建 Debug.Log("EnterBattle 实体已创建"); OnHeroEntityLoadCompleteLoacl(EntityFactory.MainHeroView); } } }
public static void Update() { if (!isSpreadStarted) { return; } if (SpreadTimeInSecond < 0.03f) { m_currPos = dstCenter; m_currRadius = dstRadius; isSpreadStarted = false; return; } uint tick = GameLogicAPI.getSyncTickCount(); m_currTimes += (tick - m_currTicks) * 0.001f; m_currTicks = tick; float t = m_currTimes / SpreadTimeInSecond;; m_currPos = Vector3.Lerp(srcCenter, dstCenter, t); m_currRadius = Mathf.Lerp(srcRadius, dstRadius, t); if (m_currTimes >= SpreadTimeInSecond) { m_currPos = dstCenter; m_currRadius = dstRadius; isSpreadStarted = false; } }
//#region 指示器 ///// <summary> ///// 指示器对象显示半径 ///// </summary> //public float BillboardRadius = 600; ///// <summary> ///// 指示器对象在这个角度内以直线方式绘制 ///// </summary> //public int BillboardAngle = 30; ///// <summary> ///// 指示器坐标缓存 ///// </summary> //protected UIBillboardCache BillboardCache = new UIBillboardCache(); ///// <summary> ///// 临时实体数据 ///// </summary> //private List<UIBillboardQueryResult> tmpAroundEntitys = new List<UIBillboardQueryResult>(); ///// <summary> ///// 范围内活动的实体 ///// </summary> //protected Dictionary<Int32, EntityView> RangeActivityEntity = new Dictionary<int, EntityView>(); ///// <summary> ///// 需要隐藏的实体 ///// </summary> //List<int> HideHeroList = new List<int>(); ////保存附近玩家 //public void saveAroundPlayer() //{ // EntityView ev = EntityFactory.getMainPlayer(); // if (ev == null) // { // return; // } // List<Int32> TmpEntityIDList = new List<int>(RangeActivityEntity.Keys); // IList<EntityView> AroundEntitiesList = MapFinderManager.Nearest(ev.StateMachine.transform.position, ev.Sight, SPELL.CampFlag.CampFlag_Enemy); // if (AroundEntitiesList == null) // { // return; // } // Int32 nTmpEntityID = 0; // foreach (EntityView Entity_Ev in AroundEntitiesList) // { // nTmpEntityID = Entity_Ev.ID; // if (Entity_Ev == null || Entity_Ev.StateMachine == null || Entity_Ev.StateMachine.GetState() == EntityState.Dead || Entity_Ev.Type != ENTITY_TYPE.TYPE_PLAYER_ROLE) // continue; // if (!RangeActivityEntity.ContainsKey(nTmpEntityID)) // { // RangeActivityEntity.Add(nTmpEntityID, Entity_Ev); // } // else // { // TmpEntityIDList.Remove(nTmpEntityID); // } // } // while (TmpEntityIDList.Count > 0) // { // nTmpEntityID = TmpEntityIDList[0]; // RangeActivityEntity.Remove(nTmpEntityID); // TmpEntityIDList.RemoveAt(0); // } //} ////更新指示器公告板信息 //private void UpdateBillboard(System.Collections.Generic.List<UIBillboardQueryResult> entitys) //{ // BillboardCache.BeginProcessing(); // SFDisplayInfo info; // UIBillboardMC tmpBillboard; // for (int i = 0; i < entitys.Count; i++) // { // //从缓冲列表里获取可用的对象 // if (BillboardCache.GetUnusedBillboardMovieclip(entitys[i].entityID, out tmpBillboard)) // { // info = tmpBillboard.Billboard.GetDisplayInfo(); // info.Visible = true; // info.X = entitys[i].x; // info.Y = entitys[i].y; // tmpBillboard.Billboard.SetDisplayInfo(info); // EntityView targetEntityView = EntityFactory.getEntityViewByID(entitys[i].entityID); // int nEntityHeroID = targetEntityView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_VOCATION); // int nTargetCamp = (int)targetEntityView.CampFlag; // //public function SetHeroBearing(_nTargetHeroPortraitID:int,_nTargetCamp:int,_strTargetDistance:String) // if (tmpBillboard.Billboard.Invoke("SetHeroBearing", nEntityHeroID, nTargetCamp, entitys[i].angle,entitys[i].distance+"米") == null) // { // Trace.LogError("call SetHeroBearing failed."); // } // } // } // BillboardCache.EndProcessing(); //} //private void GetPlayerAndUpdate() //{ // //移除上次调用存储的数据 // tmpAroundEntitys.Clear(); // if (RangeActivityEntity.Count > 0 && EntityFactory.MainHeroView.StateMachine.GetState() != EntityState.Dead) // { // foreach (KeyValuePair<int, EntityView> keypair in RangeActivityEntity) // { // GetQueryTarget(keypair.Key, keypair.Value.gameObject.transform); // } // } // UpdateBillboard(tmpAroundEntitys); //} ////计算英雄与附近的玩家目标的角度并映射到UI上 //private void GetQueryTarget(Int32 entityID, Transform TargetEntityTrans) //{ // Transform CameraTransform = SoldierCamera.MainInstance.getCameraTransform(); // //计算位置应该是计算英雄的位置,而不是相机的位置 // float checkDis = Vector3.Distance(TargetEntityTrans.position, EntityFactory.MainHero.transform.position); // if (checkDis > EntityFactory.MainHeroView.Sight || ScreenRaycast.isInScreen(TargetEntityTrans.position)) // return; // Vector3 vecHeroPos = EntityFactory.MainHeroView.gameObject.transform.position; // Vector3 DirHeroToTarget = TargetEntityTrans.position - vecHeroPos; // Vector3 DirHeroToCamera = CameraTransform.position - vecHeroPos; // DirHeroToTarget.y = DirHeroToCamera.y = 0; // //判断目标在相机的左右方,-1左方,+1右方 // Vector3 vecCross = Vector3.Cross(DirHeroToTarget.normalized, DirHeroToCamera.normalized); // float fLorR = Mathf.Sign(-vecCross.y); // //计算之间的夹角 // float angle = Vector3.Angle(DirHeroToTarget.normalized, DirHeroToCamera.normalized); // float relAngle = (angle * fLorR + 90) % 360; // float MovieWidth = MovieDef.GetWidth(); // float MovieHeight = MovieDef.GetHeight(); // UIBillboardQueryResult qr = new UIBillboardQueryResult(); // qr.entityID = entityID; // qr.x = (MovieWidth / 2) + BillboardRadius * (Mathf.Cos(Mathf.Deg2Rad * (relAngle))); // qr.y = (MovieHeight / 2) + BillboardRadius * (Mathf.Sin(Mathf.Deg2Rad * (relAngle))); // //在这个角度范围内图标水平移动 // if (relAngle > BillboardAngle && relAngle < BillboardAngle + 120) // { // qr.y = (MovieHeight / 2) + BillboardRadius * (Mathf.Sin(Mathf.Deg2Rad * BillboardAngle)); // } // qr.distance = Convert.ToUInt32(checkDis); // qr.angle = Convert.ToInt32(relAngle+90); // tmpAroundEntitys.Add(qr); //} //public void ClearBillboardCache() //{ // if (BillboardCache != null) // { // BillboardCache.ClearCache(); // BillboardCache = null; // } // if (RangeActivityEntity == null) // { // RangeActivityEntity.Clear(); // RangeActivityEntity = null; // } // if (tmpAroundEntitys != null) // { // tmpAroundEntitys.Clear(); // tmpAroundEntitys = null; // } // if (HideHeroList != null) // { // HideHeroList.Clear(); // HideHeroList = null; // } //} //public void OnTimer(int nTimerID) //{ // switch( nTimerID ) // { // case (int)EN_GameHud_Timer.ENGT_Pointer: // { // saveAroundPlayer(); // int nCount = HideHeroList.Count; // for (int i = 0; i < nCount; ++i ) // { // if (RangeActivityEntity.ContainsKey(HideHeroList[i])) // { // RangeActivityEntity.Remove(HideHeroList[i]); // } // } // } // break; // default: // break; // } //} //public void OnEvent(U3D_Render.Utility.EVENT eventID, int sourceID, System.Object objEvent) //{ // switch( eventID ) // { // case EVENT.ENTITY_SHOW_HERO: // { // if ( objEvent == null ) // return; // SEntityShowHero event_data = (SEntityShowHero)objEvent; // int nId = event_data.ev.ID; // if (event_data.bIsHide && !HideHeroList.Contains(nId)) // HideHeroList.Add(nId); // else if (!event_data.bIsHide && HideHeroList.Contains(nId)) // HideHeroList.Remove(nId); // } // break; // default: // break; // } //} //#endregion #region 技能提示 public void CreatureShowPormptUI(cmd_creature_ShowPromptUI data) { if (vSpellPrompt == null) { vSpellPrompt = new Value(); MyRoot.AttachMovie(ref vSpellPrompt, "Com.Scaleform.WarGameHud.WGH_SpellPrompt", "vSpellPrompt", 0); SFDisplayInfo di = vSpellPrompt.GetDisplayInfo(); di.X = 1920 / 2 + 100; di.Y = 1080 - 300; vSpellPrompt.SetDisplayInfo(di); } IntPtr DesPtr, IconPtr; //R ASpeedGame.Data.GameMobaSchemes.SSchemeShowSpellPrompt SchemesSpellPrompt = ASpeedGame.Data.GameMobaSchemes.GameMobaSchemesManager.Instance.GetSpellPromptInfo(data.nPromptID); if (SchemesSpellPrompt != null) { DesPtr = GameLogicAPI.getShortcutDes(SchemesSpellPrompt.nSlotID, (int)SLOT_TYPE.SLOT_TYPE_SKILL); IconPtr = GameLogicAPI.getSpellData(SchemesSpellPrompt.nSpellID); if (DesPtr != IntPtr.Zero && IconPtr != IntPtr.Zero) { string des = IntPtrHelper.Ptr2Str(DesPtr); SPELL.SPELL_DATA spellData = IntPtrHelper.toData <SPELL.SPELL_DATA>(IconPtr); if (vSpellPrompt == null || vSpellPrompt.Invoke("SetSpellPromptInfo", spellData.nIcon, des.ToUpper(), Convert.ToBoolean(data.nType)) == null) { Trace.LogWarning("SetSpellPromptInfo failed."); } } } }
// 进入状态 public bool OnEnter(IntPtr lParam) { cmd_Entity_Change_Wing_State param = IntPtrHelper.toData <cmd_Entity_Change_Wing_State>(lParam); currWing_State = param; m_bWing = false; tr = m_pFSM.transform; lastFrameTick = GameLogicAPI.getTickCount(); ApplyAnimation(); floatingState = FloatingState.Float; fMinFloatHeight = param.fMinFlyHeight; if (fMinFloatHeight < 0.01f) //2016-09-01暂时方案,param可能还没有参数传过来,所以变成0,此时先取预制体的浮空最低高度 { Debug.Log(fMinFloatHeight); fMinFloatHeight = m_pFSM.creaturePropety.floatingMinHeight; } fUpSpeed = param.fUpSpeed; //m_pFSM.creaturePropety.floatUpSpeed; m_pFSM.groundNormal = Vector3.zero; m_ySpeed = 0.0f; m_lastvelocity = Vector3.zero; m_maxSpeed = param.fSpeed; m_accSpeed = param.fAcceleration; m_maxHeight = param.fMaxFlyHeight; m_lastFrameDeltaTime = 0.0f; startHeight = m_pFSM.transform.position.y; return(true); }
private static void SetResolution(int _nNewWidth, int _nNewHeight, bool bFullScreen) { //全屏 if (bFullScreen && isSupportFullScreen) { Screen.SetResolution(_nNewWidth, _nNewHeight, false); screenPosition = new Rect(0, 0, _nNewWidth, _nNewHeight); //设定一个新的窗口风格 GameLogicAPI.SetWindowLong(Initialize.m_WindowHwnd, GWL_STYLE, NEW_LONG); GameLogicAPI.SetWindowPos(Initialize.m_WindowHwnd, HWND_NORMAL, (int)screenPosition.x, (int)screenPosition.y, (int)screenPosition.width, (int)screenPosition.height, SWP_SHOWWINDOW); GameLogicAPI.SetWindowLong(Initialize.m_WindowHwnd, GWL_STYLE, NEW_LONG); GameLogicAPI.SetWindowPos(Initialize.m_WindowHwnd, HWND_NORMAL, (int)screenPosition.x, (int)screenPosition.y, (int)screenPosition.width, (int)screenPosition.height, SWP_SHOWWINDOW); GameLogicAPI.SetWindowLong(Initialize.m_WindowHwnd, GWL_STYLE, NEW_LONG); GameLogicAPI.SetWindowPos(Initialize.m_WindowHwnd, HWND_NORMAL, (int)screenPosition.x, (int)screenPosition.y, (int)screenPosition.width, (int)screenPosition.height, SWP_SHOWWINDOW); } //非全屏 else { Screen.SetResolution(_nNewWidth, _nNewHeight, false); GameLogicAPI.SetWindowPos(Initialize.m_WindowHwnd, HWND_NORMAL, 0, 0, 0, 0, 0x0001 | 0x0002); GameLogicAPI.SetWindowPos(Initialize.m_WindowHwnd, HWND_NORMAL, 0, 0, 0, 0, 0x0001 | 0x0002 | 0x0020); } if (USpeedUI.UISystem.Instance) { USpeedUI.UISystem.Instance.SetResolution(_nNewWidth, _nNewHeight); } SceneResInfoManager.API_OnResolutionChanged(_nNewWidth, _nNewHeight); }
protected override void Start() { base.Start(); lastPos = transform.position; NotReleaseFromCache = SceneManager.Instance ? !GameLogicAPI.isMainMap(SceneManager.Instance.m_curMapID) : false; SkinManager.PushSkinControlToManager(this); }
public void OnTalentPagePointsInfo(int nPageIndex, string szPointsData, string szTalentId, string szTalentPageName, int nAttackPoints, int nTrickPoints, int nHelpPoints) { // 请求保存当前页数据 TalentPageInfo talentPageInfo = new TalentPageInfo(); talentPageInfo.szTalentPageName = szTalentPageName; talentPageInfo.nAttackPointAll = nAttackPoints; talentPageInfo.nTrickPointAll = nTrickPoints; talentPageInfo.nHelpPointAll = nHelpPoints; this.dTalentPageInfo[nPageIndex] = talentPageInfo; cmd_TalentPage_Points_Single cmdSinglePoint = new cmd_TalentPage_Points_Single(); cmdSinglePoint.nCurPageIndex = nPageIndex; string[] sTalentIdArray = ((string)(szTalentId)).Split(';'); int nArrayLen = sTalentIdArray.Length - 1; cmdSinglePoint.nTalentId = new int[nArrayLen]; cmdSinglePoint.nTalentPoints = new int[nArrayLen]; for (int i = 0; i < nArrayLen; i++) { cmdSinglePoint.nTalentId[i] = int.Parse(sTalentIdArray[i]); cmdSinglePoint.nTalentPoints[i] = int.Parse(szPointsData[i].ToString());; } cmdSinglePoint.nTalentNum = (byte)nArrayLen; cmdSinglePoint.szTalentPageName = szTalentPageName; IntPtrHelper helper = new IntPtrHelper(); IntPtr ptr = helper.toPtr <cmd_TalentPage_Points_Single>(ref cmdSinglePoint); int len = Marshal.SizeOf(cmdSinglePoint); GameLogicAPI.onEntityEvent(EntityFactory.MainHeroID, (int)EntityLogicDef.ENTITY_CMD_SAVE_TALENT_PAGE_SINGLE, len, "", ptr, len); }