예제 #1
0
    public int GetTouchObjID()
    {
        if (null == UnityEngine.Camera.main)
        {
            return(-1);
        }
        int   object_id          = -1;
        float skill_blear_radius = 2.5f;

        UnityEngine.Vector3    touch_pos = new UnityEngine.Vector3(position.x, position.y, 0);
        UnityEngine.Ray        ray       = UnityEngine.Camera.main.ScreenPointToRay(touch_pos);
        UnityEngine.RaycastHit hitInfo;
        UnityEngine.GameObject hitGameObj        = null;
        SkillController        player_skill_ctrl = null;

        if (null != player_skill_ctrl)
        {
            SkillInputData skill_input_data = player_skill_ctrl.GetSkillInputData(SkillTags);
            if (null != skill_input_data)
            {
                skill_blear_radius = skill_input_data.targetChooseRange;
            }
        }
        if (UnityEngine.Physics.Raycast(ray, out hitInfo, 200f, m_TerrainAndCharacterLayer))
        {
            UnityEngine.Collider[] hitObjs = UnityEngine.Physics.OverlapSphere(hitInfo.point, skill_blear_radius, m_CharacterLayer);
            if (hitObjs.Length > 0)
            {
                hitGameObj = hitObjs[0].gameObject;
                if (null != hitGameObj)
                {
                    if (WorldSystem.Instance.IsPureClientScene())
                    {
                        SignNpcType signNpcTypeScript = hitGameObj.GetComponent <SignNpcType>();
                        if (signNpcTypeScript != null)
                        {
                            LogicSystem.EventChannelForGfx.Publish("ge_npc_click", "ui", signNpcTypeScript.GetNpcType());
                        }
                        ///
                        SharedGameObjectInfo assit_target = LogicSystem.GetSharedGameObjectInfo(hitGameObj);
                        if (null != assit_target)
                        {
                            ClickNpcManager.Instance.Execute(assit_target.m_ActorId);
                        }
                    }
                    SharedGameObjectInfo selfInfo   = LogicSystem.PlayerSelfInfo;
                    SharedGameObjectInfo targetInfo = LogicSystem.GetSharedGameObjectInfo(hitGameObj);
                    if (null != targetInfo && null != selfInfo)
                    {
                        // camp
                        if (ArkCrossEngine.CharacterInfo.GetRelation(selfInfo.CampId, targetInfo.CampId) == ArkCrossEngine.CharacterRelation.RELATION_ENEMY && targetInfo.Blood > 0)
                        {
                            object_id = targetInfo.m_LogicObjectId;
                        }
                        if (WorldSystem.Instance.IsPureClientScene())
                        {
                            if (targetInfo.IsPlayer && targetInfo.m_ActorId != LogicSystem.PlayerSelfInfo.m_ActorId)
                            {
                                LogicSystem.EventChannelForGfx.Publish("check_player_info", "ui", targetInfo.m_ActorId);
                            }
                        }
                    }
                }
            }
        }

        if (-1 != object_id && null != hitGameObj)
        {
            GfxSystem.PublishGfxEvent("Op_InputEffect", "Input", GestureEvent.OnSingleTap, hitGameObj.transform.position.x, hitGameObj.transform.position.y, hitGameObj.transform.position.z, true, false);
        }

        return(object_id);
    }
예제 #2
0
 private void HandleFindTeamResult(int id, JsonData msg)
 {
     GfxSystem.GfxLog("HandleFindTeamResult");
 }
예제 #3
0
 internal void Destroy()
 {
     GfxSystem.DestroyGameObject(m_Actor);
 }
예제 #4
0
    void ManageExchangeGoods(int currency, bool refresh, ArkCrossEngine.Network.GeneralOperationResult result, int exchangeid, int exchangenum)
    {
        try
        {
            GfxSystem.PublishGfxEvent("ge_ui_connect_hint", "ui", false, false);
            if (currency != currencyId && currency != 0)
            {
                return;
            }
            if (refresh)
            {
                if (result == ArkCrossEngine.Network.GeneralOperationResult.LC_Succeed)
                {
                    DataDictionaryMgr <StoreConfig> storedata = ArkCrossEngine.StoreConfigProvider.Instance.StoreDictionaryMgr;
                    if (storedata != null)
                    {
                        MyDictionary <int, object> storedic = storedata.GetData();
                        if (storedic != null)
                        {
                            StoreConfig sc = null;
                            foreach (KeyValuePair <int, object> pair in storedic)
                            {
                                sc = pair.Value as StoreConfig;
                                if (sc != null)
                                {
                                    if (sc.m_Currency == currencyId || (currency == 0 && sc.m_Currency == currencyId))
                                    {
                                        AddItem(pair.Key, 0);
                                    }
                                }
                            }
                        }
                    }
                }
                else if (result == ArkCrossEngine.Network.GeneralOperationResult.LC_Failure_CostError)
                {
                    ArkCrossEngine.LogicSystem.EventChannelForGfx.Publish("ge_show_dialog", "ui", ArkCrossEngine.StrDictionaryProvider.Instance.GetDictString(123),
                                                                          ArkCrossEngine.StrDictionaryProvider.Instance.GetDictString(140), null, null, null, false);
                }
            }
            else
            {
                if (result == ArkCrossEngine.Network.GeneralOperationResult.LC_Succeed)
                {
                    AddItem(exchangeid, exchangenum);
                    ArkCrossEngine.StoreConfig sc = ArkCrossEngine.StoreConfigProvider.Instance.GetDataById(exchangeid);
                    if (sc != null)
                    {
                        ArkCrossEngine.ItemConfig ic = ArkCrossEngine.ItemConfigProvider.Instance.GetDataById(sc.m_ItemId);
                        if (ic != null)
                        {
                            GfxSystem.PublishGfxEvent("ge_screen_tip", "ui", ArkCrossEngine.StrDictionaryProvider.Instance.GetDictString(1005)
                                                      + ic.m_ItemName + "X" + sc.m_ItemNum, UIScreenTipPosEnum.AlignCenter, UnityEngine.Vector3.zero);
                        }
                    }
                }
                else
                {
                    //提示
                    int sign = 1003;
                    switch (result)
                    {
                    case ArkCrossEngine.Network.GeneralOperationResult.LC_Failure_CostError:
                        sign = 1000;
                        break;

                    case ArkCrossEngine.Network.GeneralOperationResult.LC_Failure_Overflow:
                        sign = 1001;
                        break;

                    case ArkCrossEngine.Network.GeneralOperationResult.LC_Failure_LevelError:
                        sign = 1002;
                        break;

                    default:
                        sign = 1003;
                        break;
                    }
                    GfxSystem.PublishGfxEvent("ge_screen_tip", "ui", ArkCrossEngine.StrDictionaryProvider.Instance.GetDictString(sign), UIScreenTipPosEnum.AlignCenter, UnityEngine.Vector3.zero);
                }
            }
            UIGrid ug = gridGo.GetComponent <UIGrid>();
            if (ug != null)
            {
                ug.repositionNow = true;
            }
        }
        catch (Exception ex)
        {
            ArkCrossEngine.LogicSystem.LogFromGfx("[Error]:Exception:{0}\n{1}", ex.Message, ex.StackTrace);
        }
    }
예제 #5
0
        private void SummonPartner()
        {
            RoleInfo roleself = LobbyClient.Instance.CurrentRole;

            if (null == roleself)
            {
                return;
            }
            roleself.PartnerStateInfo.ActivePartnerHpPercent = 1.0f;
            if (WorldSystem.Instance.IsPveScene())
            {
                UserInfo playerself = WorldSystem.Instance.GetPlayerSelf();
                if (null == playerself)
                {
                    return;
                }
                ///
                // summonpartner
                PartnerInfo partnerInfo = roleself.PartnerStateInfo.GetActivePartner();
                if (null != partnerInfo && (TimeUtility.GetServerMilliseconds() - playerself.LastSummonPartnerTime > partnerInfo.CoolDown || playerself.LastSummonPartnerTime == 0))
                {
                    Data_Unit data = new Data_Unit();
                    data.m_Id         = -1;
                    data.m_LinkId     = partnerInfo.LinkId;
                    data.m_CampId     = playerself.GetCampId();
                    data.m_Pos        = playerself.GetMovementStateInfo().GetPosition3D();
                    data.m_RotAngle   = 0;
                    data.m_AiLogic    = partnerInfo.GetAiLogic();
                    data.m_AiParam[0] = "";
                    data.m_AiParam[1] = "";
                    data.m_AiParam[2] = partnerInfo.GetAiParam().ToString();
                    data.m_IsEnable   = true;
                    NpcInfo npc = WorldSystem.Instance.NpcManager.AddNpc(data);
                    if (null != npc)
                    {
                        AppendAttributeConfig aac       = AppendAttributeConfigProvider.Instance.GetDataById(partnerInfo.GetAppendAttrConfigId());
                        float inheritAttackAttrPercent  = partnerInfo.GetInheritAttackAttrPercent();
                        float inheritDefenceAttrPercent = partnerInfo.GetInheritDefenceAttrPercent();
                        if (null != aac)
                        {
                            // attack
                            npc.GetBaseProperty().SetAttackBase(Operate_Type.OT_Absolute, (int)(playerself.GetActualProperty().AttackBase *inheritAttackAttrPercent));
                            npc.GetBaseProperty().SetFireDamage(Operate_Type.OT_Absolute, playerself.GetActualProperty().FireDamage *inheritAttackAttrPercent);
                            npc.GetBaseProperty().SetIceDamage(Operate_Type.OT_Absolute, playerself.GetActualProperty().IceDamage *inheritAttackAttrPercent);
                            npc.GetBaseProperty().SetPoisonDamage(Operate_Type.OT_Absolute, playerself.GetActualProperty().PoisonDamage *inheritAttackAttrPercent);
                            // defence
                            npc.GetBaseProperty().SetHpMax(Operate_Type.OT_Absolute, (int)(playerself.GetActualProperty().HpMax *inheritDefenceAttrPercent));
                            npc.GetBaseProperty().SetEnergyMax(Operate_Type.OT_Absolute, (int)(playerself.GetActualProperty().EnergyMax *inheritDefenceAttrPercent));
                            npc.GetBaseProperty().SetADefenceBase(Operate_Type.OT_Absolute, (int)(playerself.GetActualProperty().ADefenceBase *inheritDefenceAttrPercent));
                            npc.GetBaseProperty().SetMDefenceBase(Operate_Type.OT_Absolute, (int)(playerself.GetActualProperty().MDefenceBase *inheritDefenceAttrPercent));
                            npc.GetBaseProperty().SetFireERD(Operate_Type.OT_Absolute, playerself.GetActualProperty().FireERD *inheritDefenceAttrPercent);
                            npc.GetBaseProperty().SetIceERD(Operate_Type.OT_Absolute, playerself.GetActualProperty().IceERD *inheritDefenceAttrPercent);
                            npc.GetBaseProperty().SetPoisonERD(Operate_Type.OT_Absolute, playerself.GetActualProperty().PoisonERD *inheritDefenceAttrPercent);
                            // reset hp & energy
                            npc.SetHp(Operate_Type.OT_Absolute, npc.GetBaseProperty().HpMax);
                            npc.SetEnergy(Operate_Type.OT_Absolute, npc.GetBaseProperty().EnergyMax);
                        }
                        npc.SetAIEnable(true);
                        npc.GetSkillStateInfo().RemoveAllSkill();
                        npc.BornTime = TimeUtility.GetServerMilliseconds();
                        List <int> skillList = partnerInfo.GetSkillList();
                        if (null != skillList)
                        {
                            for (int i = 0; i < skillList.Count; ++i)
                            {
                                SkillInfo skillInfo = new SkillInfo(skillList[i]);
                                npc.GetSkillStateInfo().AddSkill(skillInfo);
                            }
                        }
                        playerself.LastSummonPartnerTime = TimeUtility.GetServerMilliseconds();
                        npc.SkillController  = new SwordManSkillController(npc, GfxModule.Skill.GfxSkillSystem.Instance);
                        npc.OwnerId          = playerself.GetId();
                        playerself.PartnerId = npc.GetId();
                        EntityManager.Instance.CreateNpcView(npc.GetId());
                        if (partnerInfo.BornSkill > 0)
                        {
                            SkillInfo skillInfo = new SkillInfo(partnerInfo.BornSkill);
                            npc.GetSkillStateInfo().AddSkill(skillInfo);
                            npc.SkillController.ForceStartSkill(partnerInfo.BornSkill);
                        }
                        CharacterView view = EntityManager.Instance.GetCharacterViewById(npc.GetId());
                        if (null != view)
                        {
                            GfxSystem.SetLayer(view.Actor, "PhysicObj");
                        }
                        GfxSystem.PublishGfxEvent("ge_partner_summon_result", "ui", true);
                    }
                    else
                    {
                        GfxSystem.PublishGfxEvent("ge_partner_summon_result", "ui", false);
                    }
                }
                else
                {
                    GfxSystem.PublishGfxEvent("ge_partner_summon_result", "ui", false);
                }
            }
            if (WorldSystem.Instance.IsPvpScene() || WorldSystem.Instance.IsMultiPveScene())
            {
                NetworkSystem.Instance.SummonPartner();
            }
        }
예제 #6
0
 private void SendMessage(string msgStr)
 {
     GfxSystem.GfxLog("Websocket Send Message ==> {0}", msgStr);
     m_WebsocketClient.Send(msgStr);
 }
예제 #7
0
 private void webSocketClient_Closed(object sender, EventArgs e)
 {
     GfxSystem.GfxLog("Websocket Closed ");
     CloseWebSocketClient();
 }
예제 #8
0
 private void webSocketClient_Error(object sender, EventArgs e)
 {
     GfxSystem.GfxLog("Websocket Error : " + e.ToString());
 }