void LVL_Npc::Activate()
{
    if(is_activity)
        activationTimeout = setup->deactivetionDelay;
    else
        activationTimeout = 150;

    if(isActivated) return;
    setPaused(false);

    deActivatable = ((setup->deactivation)||(!setup->activity)); //!< Allow deactivation of this NPC when it going offscreen
    wasDeactivated=false;

    animator.start();
    isActivated=true;

    if(!data.event_activate.isEmpty())
        LvlSceneP::s->events.triggerEvent(data.event_activate);

    if(isLuaNPC){
        try{
            lua_onActivated();
        } catch (luabind::error& e) {
            LvlSceneP::s->getLuaEngine()->postLateShutdownError(e);
        }
    }
}
示例#2
0
void LVL_Npc::Activate()
{
    if(is_activity)
        activationTimeout = setup->setup.deactivationDelay;
    else
        activationTimeout = 150;

    if(isActivated)
        return;

    setPaused(false);
    deActivatable = ((setup->setup.deactivation) || (!setup->setup.activity)); //!< Allow deactivation of this NPC when it going offscreen
    wasDeactivated = false;

    if(m_spawnedGeneratorType != LevelScene::GENERATOR_PROJECTILE)
        setSpeed(0.0, 0.0);

    animator.start();
    isActivated = true;

    if(!data.event_activate.isEmpty())
        m_scene->events.triggerEvent(data.event_activate);

    if(isLuaNPC)
    {
        try
        {
            lua_onActivated();
        }
        catch(luabind::error &e)
        {
            m_scene->getLuaEngine()->postLateShutdownError(e);
        }
    }

    lua_activate_neighbours();//Also activate neighours
}