Exemple #1
0
    public void set_position(KBEngine.Entity entity)
    {
        if (entity.renderObj == null)
            return;

        Vector3 v = (Vector3)entity.getDefinedProperty("position");
        ((UnityEngine.GameObject)entity.renderObj).GetComponent<GameEntity>().destPosition = v;
        ((UnityEngine.GameObject)entity.renderObj).GetComponent<GameEntity>().position = v;

        if (entity.isPlayer())//第一次主角获取位置时,调整摄像头
        {
            Camera.main.GetComponent<SmoothFollow>().FollowUpdate();
            if (isFirstPos)
            {
                Camera.main.GetComponent<SmoothFollow>().ResetView();
                isFirstPos = false;
            }
        }
    }
Exemple #2
0
    public void onEnterWorld(KBEngine.Entity entity)
    {
        if (entity.isPlayer())
            return;

        float y = entity.position.y;
        if (entity.isOnGround)
            y = 0.0f;

        if (entity.className == "Gate")
        {
            entity.renderObj = Instantiate(gatePerfab, new Vector3(entity.position.x, y, entity.position.z),
            Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject;
            ((UnityEngine.GameObject)(entity.renderObj)).GetComponent<GameEntity>().entityDisable();
        }
        else if (entity.className == "Monster")
        {
            entity.renderObj = Instantiate(otherPlayerPerfab, new Vector3(entity.position.x, y, entity.position.z),
            Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject;

        }
        else if (entity.className == "DroppedItem")
        {
            entity.renderObj = Instantiate(droppedItemPerfab, new Vector3(entity.position.x, y, entity.position.z),
            Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject;
        }
        else if (entity.className == "Avatar")
        {
            entity.renderObj = Instantiate(otherPlayerPerfab, new Vector3(entity.position.x, y, entity.position.z),
            Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject;
        }
        else if (entity.className == "NPC")
        {
            entity.renderObj = Instantiate(otherPlayerPerfab, new Vector3(entity.position.x, y, entity.position.z),
            Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject;
        }

        ((UnityEngine.GameObject)entity.renderObj).name = entity.className + "_" + entity.id;

        set_position(entity);
        set_direction(entity);

        //object speed = entity.getDefinedProperty("moveSpeed");
        //if (speed != null)
        //    set_moveSpeed(entity, speed);

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

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

        object name = entity.getDefinedProperty("name");
        if (name != null)
            set_entityName(entity, (string)name);

        object hp = entity.getDefinedProperty("HP");
        if (hp != null)
            set_HP(entity, hp);

        object hpMax = entity.getDefinedProperty("HP_Max");
        if (hpMax != null)
            set_HP_Max(entity, hpMax);

        object equipWeapon = entity.getDefinedProperty("equipWeapon");
        if (equipWeapon != null)
            set_equipWeapon(entity, (Int32)equipWeapon);
    }
Exemple #3
0
    public void set_HP_Max(KBEngine.Entity entity, object v)
    {
        if (entity.renderObj != null)
        {
            GameEntity ge = ((UnityEngine.GameObject)entity.renderObj).GetComponent<GameEntity>();
            ge.hpMax = (Int32)v;
            ge.hp = (Int32)entity.getDefinedProperty("HP");

            if (getUITarget() && getUITarget().GE_target == ge)
                getUITarget().UpdateTargetUI();
            else if (ui_targetPlayer && ui_targetPlayer.GE_target == ge)
                ui_targetPlayer.UpdateTargetUI();
        }
    }
 public void set_HP_Max(KBEngine.Entity entity, object v)
 {
     if(entity.renderObj != null)
     {
         ((UnityEngine.GameObject)entity.renderObj).GetComponent<GameEntity>().hp = (Int32)entity.getDefinedProperty("HP") + "/" + (Int32)v;
     }
 }
Exemple #5
0
    public void onAvatarEnterWorld(UInt64 rndUUID, Int32 eid, KBEngine.Avatar avatar)
    {
        if (!avatar.isPlayer())
        {
            return;
        }
        createPlayer();
        //UI.inst.info("loading scene...(加载场景中...)");
        Debug.Log("loading scene...");

        //object speed = avatar.getDefinedProperty("moveSpeed");
        //if (speed != null)
        //    set_moveSpeed(avatar, speed);

        object state = avatar.getDefinedProperty("state");
        if (state != null)
            set_state(avatar, state);

        //object modelScale = avatar.getDefinedProperty("modelScale");
        //if (modelScale != null)
        //    set_modelScale(avatar, modelScale);

        object name = avatar.getDefinedProperty("name");
        if (name != null)
            set_entityName(avatar, (string)name);

        object hp = avatar.getDefinedProperty("HP");
        if (hp != null)
            set_HP(avatar, hp);

        object hpMax = avatar.getDefinedProperty("HP_Max");
        if (hpMax != null)
            set_HP_Max(avatar, hpMax);

        //设置头像属性
        UnityEngine.GameObject ptarget = UnityEngine.GameObject.FindGameObjectWithTag("TargetPlayer");

        if (ptarget)
        {
            ui_targetPlayer = ptarget.GetComponent<UI_Target>();
        }
        if (ui_targetPlayer)
        {
            ui_targetPlayer.GE_target = player.GetComponent<GameEntity>();
            ui_targetPlayer.UpdateTargetUI();
        }
        //end
        UnityEngine.GameObject canvas = UnityEngine.GameObject.FindGameObjectWithTag("Canvas");
        UnityEngine.GameObject panel_state = null;
        if (canvas.transform.Find("Panel - State") != null)
            panel_state = canvas.transform.Find("Panel - State").gameObject;
        if (panel_state != null)
        {
            UI_AvatarState avaterState = panel_state.GetComponent<UI_AvatarState>();
            object attack_max = avatar.getDefinedProperty("attack_Max");
            if (attack_max != null)
                avaterState.setAttackMax((Int32)attack_max);

            object attack_min = avatar.getDefinedProperty("attack_Min");
            if (attack_min != null)
                avaterState.setAttackMin((Int32)attack_min);

            object defence = avatar.getDefinedProperty("defence");
            if (defence != null)
                avaterState.setDefence((Int32)defence);

            object rating = avatar.getDefinedProperty("rating");
            if (rating != null)
                avaterState.setRating((Int32)rating);

            object dodge = avatar.getDefinedProperty("dodge");
            if (dodge != null)
                avaterState.setDodge((Int32)dodge);

            object strength = avatar.getDefinedProperty("strength");
            if (strength != null)
                avaterState.setStrength((Int32)strength);

            object dexterity = avatar.getDefinedProperty("dexterity");
            if (dexterity != null)
                avaterState.setDexterity((Int32)dexterity);

            object stamina = avatar.getDefinedProperty("stamina");
            if (stamina != null)
                avaterState.setStamina((Int32)stamina);

            object exp = avatar.getDefinedProperty("exp");
            if (exp != null)
                avaterState.setExp((UInt64)exp);

            object level = avatar.getDefinedProperty("level");
            if (level != null)
                avaterState.setLevel((UInt16)level);
        }

        object equipWeapon = avatar.getDefinedProperty("equipWeapon");
        if (equipWeapon != null)
            set_equipWeapon(avatar, (Int32)equipWeapon);

        SkillBox.inst.initSkillDisplay();
    }
Exemple #6
0
        //1: 太远, 2:冷却,3:已死亡
        public int validCast(KBEngine.Entity caster, SCObject target)
        {
            float dist = Vector3.Distance(target.getPosition(), caster.position);
            if (dist > canUseDistMax)
                return 1;
            if (restCoolTimer < coolTime)
                return 2;
            if (((SByte)(caster.getDefinedProperty("state"))) == 1)
                return 3;

            return 0;
        }
    public void onEnterWorld(KBEngine.Entity entity)
    {
        if(enterSpace == false)
        {
            pendingEnterEntityIDs.Add(entity.id);
            return;
        }

        Asset newasset = Scene.findAsset(entity.getDefinedProperty("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;

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

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

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

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

        object speed = entity.getDefinedProperty("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();
        }
    }
    public void set_position(KBEngine.Entity entity)
    {
        if(entity.renderObj != null)
        {
            Common.calcPositionY(entity.position, out entity.position.y, false);
            ((SceneObject)entity.renderObj).position = entity.position;
            ((SceneEntityObject)entity.renderObj).destPosition = entity.position;
        }

        if(entity.isPlayer() == false)
            return;

        entity.position = (Vector3)entity.getDefinedProperty("position");

        RPG_Controller.initPos.x = entity.position.x;
        RPG_Controller.initPos.y = entity.position.y;
        RPG_Controller.initPos.z = entity.position.z;

        if(RPG_Controller.instance != null)
        {
            RPG_Controller.instance.transform.position = RPG_Controller.initPos;
            Common.DEBUG_MSG("KBEEventProc::set_position: entity.position=" + entity.position + " " + entity.getDefinedProperty("position") + ", RPG_Controller.position=" + RPG_Controller.instance.transform.position);
        }
    }
 public void set_MP_Max(KBEngine.Entity entity, object v)
 {
     object vv = entity.getDefinedProperty("MP");
     if(entity.isPlayer())
     {
         game_ui_autopos.updatePlayerBar_MP(vv, v);
     }
     else
     {
         game_ui_autopos.updateTargetBar_MP(vv, v);
     }
 }
    public void set_MP(KBEngine.Entity entity, object v)
    {
        object vv = entity.getDefinedProperty("MP_Max");

        if(entity.renderObj != null)
        {
            object oldvv = entity.getDefinedProperty("old_MP");
            if(oldvv != null)
            {
                Int32 diff = (Int32)vv - (Int32)oldvv;

                if(diff > 0)
                {
                    ((SceneEntityObject)entity.renderObj).addMP(diff);
                }

                entity.setDefinedProperty("old_MP", vv);
            }
            else
                entity.addDefinedProperty("old_MP", vv);
        }

        if(entity.isPlayer())
        {
            game_ui_autopos.updatePlayerBar_MP(v, vv);
        }
        else
        {
            game_ui_autopos.updateTargetBar_MP(v, vv);
        }
    }