예제 #1
0
 public void otherAvatarOnJump(KBEngine.Entity entity)
 {
     if (entity.renderObj != null)
     {
         SceneMonsterObject seo = ((SceneMonsterObject)entity.renderObj);
         seo.stopPlayAnimation("");
         seo.playJumpAnimation();
     }
 }
예제 #2
0
    public static void CreateMonsterObject(Entity entity)
    {
        Asset newasset = Scene.findAsset(entity.getDefinedPropterty("modelID") + ".unity3d", true, "");

        newasset.createAtScene = loader.inst.currentSceneName;
        SceneMonsterObject smo = new SceneMonsterObject();

        smo.kbentity = entity;
        if (entity.isPlayer())
        {
            smo.createPlayer();
        }
        else
        {
            smo.create();
        }
        entity.renderObj = smo;
        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;
        smo.asset          = newasset;
        smo.idkey          = "_entity_" + entity.id;

        Vector3 pos = smo.position;

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

        smo.position = pos;

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

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

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

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

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

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

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

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

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

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

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

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

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

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