/// <summary>
    /// 1.获取当前玩家的playerID
    /// 2.创建一个SceneEntityObject 作为Entity的renderObj
    /// </summary>
    /// <param name="entity"></param>
    public void onEnterWorld(KBEngine.Entity entity)
    {
        Debug.Log("实体进入世界 KBEEventProc::onEnterWorld  entityID:" + entity.id);
        if (entity.renderObj != null)
        {
            Debug.LogWarning("实体已经有renderObj 无法再次进入");
            return;
        }

        SceneEntityObject obj = new SceneEntityObject();

        obj.kbentity     = entity;
        entity.renderObj = obj;


        if (entity.isPlayer())
        {
            currentPlayerID = Convert.ToInt16(entity.getDefinedProperty("playerID"));
        }
        else
        {
        }

        obj.onEnterWorld(entity.getDefinedProperty("playerID"));
    }
Exemple #2
0
    public static void showTargetBar(SceneEntityObject seo)
    {
        if (seo == null || seo.kbentity == null || target_bar == null)
        {
            return;
        }

        NGUITools.SetActive(target_bar, true);

        KBEngine.Entity entity = seo.kbentity;
        string          name   = (string)entity.getDefinedProperty("name");
        object          level  = entity.getDefinedProperty("level");
        object          hp     = entity.getDefinedProperty("HP");
        object          hpmax  = entity.getDefinedProperty("HP_Max");
        object          mp     = entity.getDefinedProperty("MP");
        object          mpmax  = entity.getDefinedProperty("MP_Max");

        target_name_label.text = name;
        if (level != null)
        {
            target_level_label.text = "lv:" + level;
        }
        else
        {
            target_level_label.text = "";
        }

        updateTargetBar_HP(hp, hpmax);
        updateTargetBar_MP(mp, mpmax);
    }
Exemple #3
0
 public void getRenderObj(bool isSelf, SceneEntityObject obj)
 {
     if (isSelf)
     {
         obj.getRenderObj(initCard());
     }
 }
Exemple #4
0
 public void onEnterWorld(KBEngine.Entity entity)
 {
     if (enterSpace == false)
     {
         pendingEnterEntityIDs.Add(entity.id);
         return;
     }
     SceneEntityObject obj = SceneEntityObjectManager.CreateSceneEntityObject(entity);
 }
Exemple #5
0
 public void otherAvatarOnJump(KBEngine.Entity entity)
 {
     if (entity.renderObj != null)
     {
         SceneEntityObject seo = ((SceneEntityObject)entity.renderObj);
         seo.stopPlayAnimation("");
         seo.playJumpAnimation();
     }
 }
    public void set_isDivineShield(KBEngine.Entity entity, object v = null)
    {
        if (!hasRenderObj(entity))
        {
            return;
        }
        SceneEntityObject target = (SceneEntityObject)entity.renderObj;

        target.set_isDivineShield(entity.getDefinedProperty("isDivineShield"));
    }
    public virtual void set_isWindfury(KBEngine.Entity entity, object v = null)
    {
        if (!hasRenderObj(entity))
        {
            return;
        }
        SceneEntityObject target = (SceneEntityObject)entity.renderObj;

        target.set_isWindfury(entity.getDefinedProperty("isWindfury"));
    }
    public void set_CrystalSum(KBEngine.Entity entity, object v = null)
    {
        if (!hasRenderObj(entity))
        {
            return;
        }
        SceneEntityObject target = (SceneEntityObject)entity.renderObj;

        target.set_CrystalSum(entity.getDefinedProperty("CrystalSum"));
    }
    public virtual void onAtt(KBEngine.Entity entity, Int32 targetID)
    {
        if (!hasRenderObj(entity))
        {
            return;
        }
        SceneEntityObject target = (SceneEntityObject)entity.renderObj;

        target.onAtt(targetID);
    }
Exemple #10
0
    public void set_playerID(KBEngine.Entity entity, object v = null)
    {
        if (!hasRenderObj(entity))
        {
            return;
        }
        SceneEntityObject target = (SceneEntityObject)entity.renderObj;

        target.set_playerID(entity.getDefinedProperty("playerID"));
    }
Exemple #11
0
 public void getRenderObj(bool isSelf, SceneEntityObject obj)
 {
     if (isSelf)
     {
         followerManagers[0].getRenderObj(obj);
     }
     else
     {
         followerManagers[1].getRenderObj(obj);
     }
 }
Exemple #12
0
 public void getRenderObj(bool isSelf, SceneEntityObject obj)
 {
     if (isSelf)
     {
         obj.getRenderObj(heros[0]);
     }
     else
     {
         obj.getRenderObj(heros[1]);
     }
 }
Exemple #13
0
    public void set_HP(KBEngine.Entity entity, object v = null)
    {
        if (!hasRenderObj(entity))
        {
            return;
        }
        SceneEntityObject target = (SceneEntityObject)entity.renderObj;

        Debug.Log("设置hp" + entity.getDefinedProperty("HP").ToString());
        target.set_HP(entity.getDefinedProperty("HP"));
    }
    public static void autoAttack()
    {
        if (target == null || target.kbentity == null)
        {
            return;
        }

        KBEngine.Entity player = KBEngineApp.app.player();
        if (player == null || player == target.kbentity)
        {
            return;
        }

        float dist = Vector3.Distance(new Vector3(target.position.x, 0f, target.position.z),
                                      new Vector3(player.position.x, 0f, player.position.z));

        if (dist >= 30.0f)
        {
            cancelAutoAttack();
            target = null;
            CameraTargeting.inst.setTarget(null);
            return;
        }

        object combatv = null;

        if (target.kbentity.className == "Avatar")
        {
            combatv = ((KBEngine.Avatar)target.kbentity).HP_Max;
        }
        else if (target.kbentity.className == "Monster")
        {
            combatv = ((KBEngine.Monster)target.kbentity).HP_Max;
        }

        // 可战斗entity, 我们判断它当前可被攻击标记是否开放, 开放则攻击
        if (combatv != null)
        {
            /*
             * SceneEntityObject playerseo = ((SceneEntityObject)player.renderObj);
             * Vector3 dir = playerseo.position - target.position;
             * dir.y = 0f;
             * dir.Normalize();
             *
             * if(RPG_Controller.instance != null)
             *      RPG_Controller.instance.transform.Rotate(dir);
             */
            ((KBEngine.Avatar)player).useTargetSkill(1, target.kbentity.id);
        }
        else         // 否则只是跑到其跟前
        {
        }
    }
    public static void setTarget(SceneEntityObject seo)
    {
        Common.DEBUG_MSG("TargetManger::setTarget: current=" + seo.kbentity.id);

        if (target == seo)
        {
            startAutoAttack();
            return;
        }

        target = seo;
        onChangeTarget();
    }
	public static void setTarget(SceneEntityObject seo)
	{
		Common.DEBUG_MSG("TargetManger::setTarget: current=" + seo.kbentity.id);
		
		if(target == seo)
		{
			startAutoAttack();
			return;
		}
			
		target = seo;
		onChangeTarget();
	}
 public void getRenderObj(bool isSelf, SceneEntityObject obj)
 {
     if (isSelf)
     {
         weapons[0].gameObject.SetActive(true);
         obj.getRenderObj(weapons[0]);
     }
     else
     {
         weapons[1].gameObject.SetActive(true);
         obj.getRenderObj(weapons[1]);
     }
 }
Exemple #18
0
    public static void showTargetBar(SceneEntityObject seo)
    {
        if (seo == null || seo.kbentity == null || target_bar == null)
        {
            return;
        }

        NGUITools.SetActive(target_bar, true);

        KBEngine.Entity entity = seo.kbentity;
        string          name   = "";
        object          level  = 0;
        object          hp     = 0;
        object          hpmax  = 0;
        object          mp     = 0;
        object          mpmax  = 0;

        if (entity.className == "Avatar")
        {
            name  = ((KBEngine.Avatar)entity).name;
            level = ((KBEngine.Avatar)entity).level;
            hp    = ((KBEngine.Avatar)entity).HP;
            hpmax = ((KBEngine.Avatar)entity).HP_Max;
            mp    = ((KBEngine.Avatar)entity).MP;
            mpmax = ((KBEngine.Avatar)entity).MP_Max;
        }
        else if (entity.className == "Monster")
        {
            name = ((KBEngine.Monster)entity).name;
            //level = ((KBEngine.Monster)entity).level;
            hp    = ((KBEngine.Monster)entity).HP;
            hpmax = ((KBEngine.Monster)entity).HP_Max;
            mp    = ((KBEngine.Monster)entity).MP;
            mpmax = ((KBEngine.Monster)entity).MP_Max;
        }

        target_name_label.text = name;
        if (level != null)
        {
            target_level_label.text = "lv:" + level;
        }
        else
        {
            target_level_label.text = "";
        }

        updateTargetBar_HP(hp, hpmax);
        updateTargetBar_MP(mp, mpmax);
    }
    public static void autoAttack()
    {
        if(target == null || target.kbentity == null)
            return;

        KBEngine.Entity player = KBEngineApp.app.player();
        if(player == null || player == target.kbentity)
            return;

        float dist = Vector3.Distance(new Vector3(target.position.x, 0f, target.position.z),
                    new Vector3(player.position.x, 0f, player.position.z));

        if(dist >= 30.0f)
        {
            cancelAutoAttack();
            target = null;
            CameraTargeting.inst.setTarget(null);
            return;
        }

        object combatv = target.kbentity.getDefinedProperty("HP_Max");

        // 可战斗entity, 我们判断它当前可被攻击标记是否开放, 开放则攻击
        if(combatv != null)
        {
            /*
            SceneEntityObject playerseo = ((SceneEntityObject)player.renderObj);
            Vector3 dir = playerseo.position - target.position;
            dir.y = 0f;
            dir.Normalize();

            if(RPG_Controller.instance != null)
                RPG_Controller.instance.transform.Rotate(dir);
            */
            ((KBEngine.Avatar)player).useTargetSkill(1, target.kbentity.id);
        }
        else // 否则只是跑到其跟前
        {

        }
    }
	void Start() 
	{
		seo = (SceneEntityObject)KBEngineApp.app.player().renderObj;

		if(seo != null)
		{
			if(seo.gameObject != null && seo.gameObject != transform.gameObject)
			{
				Transform parent = transform.parent;
				seo.gameObject.transform.rotation = transform.rotation;
				UnityEngine.GameObject.Destroy(transform.gameObject);
				seo.gameObject.transform.parent = parent;
				seo.gameObject.name = "entity";
				seo.gameObject.layer = LayerMask.NameToLayer("kbentity");
				this.transform.gameObject.layer = LayerMask.NameToLayer("kbentity");
				seo.gameObject.tag = "Player";
			}
			
			if(seo.gameObject != null && seo.gameObject == transform.gameObject)
				instance = this;
		}
	}
    public void attack(Int32 skillID, Int32 damageType, SceneEntityObject receiver)
    {
        //if(gameEntity != null)
        if (!System.Object.ReferenceEquals(gameEntity, null))
        {
            gameEntity.playAttackAnimation();
        }

        if (receiver == null || receiver.gameEntity == null)
        {
            return;
        }

        //if(particles.inst != null)
        if (!System.Object.ReferenceEquals(particles.inst, null))
        {
            Vector3 v = position;
            UnityEngine.GameObject pobj = null;

            switch (skillID)
            {
            case 7000101:
                pobj = (UnityEngine.GameObject)UnityEngine.GameObject.Instantiate(particles.inst.allpartis[37], gameEntity.gameObject.transform.FindChild("attackPoint").transform.position, rotation);
                SM_moveToEntity sm = pobj.GetComponent <SM_moveToEntity>();
                sm.moveSpeed = 10.0f;
                sm.target    = receiver.gameEntity.gameObject;
                break;

            default:
                break;
            }
            ;

            if (pobj)
            {
                pobj.transform.localScale = new Vector3(2.5f, 2.5f, 2.5f);
            }
        }
    }
    public static void showTargetBar(SceneEntityObject seo)
    {
        if(seo == null || seo.kbentity == null || target_bar == null)
            return;

        NGUITools.SetActive(target_bar, true);

        KBEngine.Entity entity = seo.kbentity;
        string name = (string)entity.getDefinedProperty("name");
        object level = entity.getDefinedProperty("level");
        object hp = entity.getDefinedProperty("HP");
        object hpmax = entity.getDefinedProperty("HP_Max");
        object mp = entity.getDefinedProperty("MP");
        object mpmax = entity.getDefinedProperty("MP_Max");

        target_name_label.text = name;
        if(level != null)
            target_level_label.text = "lv:" + level;
        else
            target_level_label.text = "";

        updateTargetBar_HP(hp, hpmax);
        updateTargetBar_MP(mp, mpmax);
    }
    void Start()
    {
        seo = (SceneEntityObject)KBEngineApp.app.player().renderObj;

        if (seo != null)
        {
            if (seo.gameObject != null && seo.gameObject != transform.gameObject)
            {
                Transform parent = transform.parent;
                seo.gameObject.transform.rotation = transform.rotation;
                UnityEngine.GameObject.Destroy(transform.gameObject);
                seo.gameObject.transform.parent = parent;
                seo.gameObject.name             = "entity";
                seo.gameObject.layer            = LayerMask.NameToLayer("kbentity");
                this.transform.gameObject.layer = LayerMask.NameToLayer("kbentity");
                seo.gameObject.tag = "Player";
            }

            if (seo.gameObject != null && seo.gameObject == transform.gameObject)
            {
                instance = this;
            }
        }
    }
Exemple #24
0
 public void getRenderObj(SceneEntityObject obj)
 {
     obj.getRenderObj(initFollower());
 }
    public void onEnterWorld(KBEngine.Entity entity)
    {
        if (enterSpace == false)
        {
            pendingEnterEntityIDs.Add(entity.id);
            return;
        }

        int    modelID = 0;
        string name = "";
        int    hp = -1, hpmax = -1;
        object state      = null;
        object modelScale = null;
        object moveSpeed  = null;

        // 底层使用了插件生成技术, 此处临时这么获得。
        if (entity.className == "Avatar")
        {
            modelID    = (int)((KBEngine.Avatar)entity).modelID;
            modelScale = ((KBEngine.Avatar)entity).modelScale;
            name       = ((KBEngine.Avatar)entity).name;
            hp         = (int)((KBEngine.Avatar)entity).HP;
            hpmax      = (int)((KBEngine.Avatar)entity).HP_Max;
            state      = ((KBEngine.Avatar)entity).state;
            moveSpeed  = ((KBEngine.Avatar)entity).moveSpeed;
        }
        else if (entity.className == "Monster")
        {
            modelID    = (int)((KBEngine.Monster)entity).modelID;
            modelScale = ((KBEngine.Monster)entity).modelScale;
            name       = ((KBEngine.Monster)entity).name;
            hp         = (int)((KBEngine.Monster)entity).HP;
            hpmax      = (int)((KBEngine.Monster)entity).HP_Max;
            state      = ((KBEngine.Monster)entity).state;
            moveSpeed  = ((KBEngine.Monster)entity).moveSpeed;
        }
        else if (entity.className == "NPC")
        {
            modelID    = (int)((KBEngine.NPC)entity).modelID;
            modelScale = ((KBEngine.NPC)entity).modelScale;
            name       = ((KBEngine.NPC)entity).name;
            moveSpeed  = ((KBEngine.NPC)entity).moveSpeed;
        }
        else if (entity.className == "Gate")
        {
            modelID    = (int)((KBEngine.Gate)entity).modelID;
            modelScale = ((KBEngine.Gate)entity).modelScale;
            name       = ((KBEngine.Gate)entity).name;
        }

        Asset newasset = Scene.findAsset(modelID + ".unity3d", true, "");

        newasset.createAtScene = loader.inst.currentSceneName;

        SceneEntityObject obj = new SceneEntityObject();

        obj.kbentity = entity;

        if (entity.isPlayer())
        {
            obj.createPlayer();
        }
        else
        {
            obj.create();
        }

        entity.renderObj = obj;

        Scene scene = null;

        if (!loader.inst.scenes.TryGetValue(loader.inst.currentSceneName, out scene))
        {
            Common.ERROR_MSG("KBEEventProc::onEnterWorld: not found scene(" + loader.inst.currentSceneName + ")!");
            return;
        }

        newasset.loadLevel = Asset.LOAD_LEVEL.LEVEL_IDLE;
        obj.asset          = newasset;
        obj.idkey          = "_entity_" + entity.id;

        obj.position      = entity.position;
        obj.eulerAngles   = new Vector3(entity.direction.y, entity.direction.z, entity.direction.x);
        obj.destDirection = obj.eulerAngles;

        if (name != "")
        {
            obj.setName((string)name);
        }

        if (hp != -1)
        {
            obj.updateHPBar((Int32)hp, (Int32)hpmax);
        }

        if (state != null)
        {
            set_state(entity, state);
        }

        if (modelScale != null)
        {
            set_modelScale(entity, modelScale);
        }

        if (moveSpeed != null)
        {
            set_moveSpeed(entity, moveSpeed);
        }

        if (entity.className == "Avatar")
        {
            newasset.unloadLevel = Asset.UNLOAD_LEVEL.LEVEL_FORBID;
        }

        newasset.refs.Add(obj.idkey);
        scene.addSceneObject(obj.idkey, obj);

        if (newasset.isLoaded || newasset.bundle != null)
        {
            obj.Instantiate();
            newasset.refs.Remove(obj.idkey);
        }
        else
        {
            loader.inst.loadPool.addLoad(newasset);
            loader.inst.loadPool.start();
        }
    }
	public void attack(Int32 skillID, Int32 damageType, SceneEntityObject receiver)
	{
		if(gameEntity != null)
		{
			gameEntity.playAttackAnimation();
		}
		
		if(receiver == null || receiver.gameEntity == null)
			return;

		if(particles.inst != null)
		{
			Vector3 v = position;
			UnityEngine.GameObject pobj = null;
			
			switch(skillID)
			{
				case 7000101:
					pobj = (UnityEngine.GameObject)UnityEngine.GameObject.Instantiate(particles.inst.allpartis[37], gameEntity.gameObject.transform.FindChild("attackPoint").transform.position, rotation);
					SM_moveToEntity sm = pobj.GetComponent<SM_moveToEntity>();
					sm.moveSpeed = 10.0f;
					sm.target = receiver.gameEntity.gameObject;
					break;
				default:
					break;
			};
			
			if(pobj)
				pobj.transform.localScale = new Vector3(2.5f, 2.5f, 2.5f);
		}
	}
    public void onEnterWorld(KBEngine.Entity entity)
    {
        if(enterSpace == false)
        {
            pendingEnterEntityIDs.Add(entity.id);
            return;
        }

        Asset newasset = Scene.findAsset(entity.getDefinedPropterty("modelID") + ".unity3d", true, "");
        newasset.createAtScene = loader.inst.currentSceneName;

        SceneEntityObject obj = new SceneEntityObject();
        obj.kbentity = entity;

        if(entity.isPlayer())
            obj.createPlayer();
        else
            obj.create();

        entity.renderObj = obj;

        Scene scene = null;
        if(!loader.inst.scenes.TryGetValue(loader.inst.currentSceneName, out scene))
        {
            Common.ERROR_MSG("KBEEventProc::onEnterWorld: not found scene(" + loader.inst.currentSceneName + ")!");
            return;
        }

        newasset.loadLevel = Asset.LOAD_LEVEL.LEVEL_IDLE;
        obj.asset = newasset;
        obj.idkey = "_entity_" + entity.id;

        Vector3 pos = obj.position;
        Common.calcPositionY(pos, out pos.y, false);
        if(entity.getDefinedPropterty("modelID") == "20002001")
            pos.y += 15.0f;

        obj.position = pos;

        obj.position = entity.position;
        obj.eulerAngles = new Vector3(entity.direction.y, entity.direction.z, entity.direction.x);
        obj.destDirection = obj.eulerAngles;

        object name = entity.getDefinedPropterty("name");
        if(name != null)
            obj.setName((string)name);

        object hp = entity.getDefinedPropterty("HP");
        if(hp != null)
            obj.updateHPBar((Int32)hp, (Int32)entity.getDefinedPropterty("HP_Max"));

        object state = entity.getDefinedPropterty("state");
        if(state != null)
            set_state(entity, state);

        object modelScale = entity.getDefinedPropterty("modelScale");
        if(modelScale != null)
            set_modelScale(entity, modelScale);

        object speed = entity.getDefinedPropterty("moveSpeed");
        if(speed != null)
        {
            set_moveSpeed(entity, speed);
        }

        if(entity.className == "Avatar")
            newasset.unloadLevel = Asset.UNLOAD_LEVEL.LEVEL_FORBID;

        newasset.refs.Add(obj.idkey);
        scene.addSceneObject(obj.idkey, obj);

        if(newasset.isLoaded || newasset.bundle != null)
        {
            obj.Instantiate();
            newasset.refs.Remove(obj.idkey);
        }
        else
        {
            loader.inst.loadPool.addLoad(newasset);
            loader.inst.loadPool.start();
        }
    }
Exemple #28
0
    public void onEnterWorld(KBEngine.Entity entity)
    {
        if (enterSpace == false)
        {
            pendingEnterEntityIDs.Add(entity.id);
            return;
        }

        Asset newasset = Scene.findAsset(entity.getDefinedPropterty("modelID") + ".unity3d", true, "");

        newasset.createAtScene = loader.inst.currentSceneName;

        SceneEntityObject obj = new SceneEntityObject();

        obj.kbentity = entity;

        if (entity.isPlayer())
        {
            obj.createPlayer();
        }
        else
        {
            obj.create();
        }

        entity.renderObj = obj;

        Scene scene = null;

        if (!loader.inst.scenes.TryGetValue(loader.inst.currentSceneName, out scene))
        {
            Common.ERROR_MSG("KBEEventProc::onEnterWorld: not found scene(" + loader.inst.currentSceneName + ")!");
            return;
        }

        newasset.loadLevel = Asset.LOAD_LEVEL.LEVEL_IDLE;
        obj.asset          = newasset;
        obj.idkey          = "_entity_" + entity.id;

        Vector3 pos = obj.position;

        Common.calcPositionY(pos, out pos.y, false);
        if (entity.getDefinedPropterty("modelID") == "20002001")
        {
            pos.y += 15.0f;
        }

        obj.position = pos;

        obj.position      = entity.position;
        obj.eulerAngles   = new Vector3(entity.direction.y, entity.direction.z, entity.direction.x);
        obj.destDirection = obj.eulerAngles;

        object name = entity.getDefinedPropterty("name");

        if (name != null)
        {
            obj.setName((string)name);
        }

        object hp = entity.getDefinedPropterty("HP");

        if (hp != null)
        {
            obj.updateHPBar((Int32)hp, (Int32)entity.getDefinedPropterty("HP_Max"));
        }

        object state = entity.getDefinedPropterty("state");

        if (state != null)
        {
            set_state(entity, state);
        }

        object modelScale = entity.getDefinedPropterty("modelScale");

        if (modelScale != null)
        {
            set_modelScale(entity, modelScale);
        }

        object speed = entity.getDefinedPropterty("moveSpeed");

        if (speed != null)
        {
            set_moveSpeed(entity, speed);
        }

        if (entity.className == "Avatar")
        {
            newasset.unloadLevel = Asset.UNLOAD_LEVEL.LEVEL_FORBID;
        }

        newasset.refs.Add(obj.idkey);
        scene.addSceneObject(obj.idkey, obj);

        if (newasset.isLoaded || newasset.bundle != null)
        {
            obj.Instantiate();
            newasset.refs.Remove(obj.idkey);
        }
        else
        {
            loader.inst.loadPool.addLoad(newasset);
            loader.inst.loadPool.start();
        }
    }