Day & Night
É uma uma função que faz com que o jogo fique de Dia ou Noite, ilusórios (ou seja, o jogo não vai estar, mas ele vai apresentar que está, momentâneo [Até logout]).
Eu criei essa função porque necessitava tirar SSs e precisava da luz da noite, esse foi o único motivo de ter criado essa função... então, não aconselho a utilizarem isso se não for dessa maneira, porque... as horas do jogo não vão mudar, é ilusório. [Não tive motivos para criar dessa maneira.
]
Vamos lá!
Primeiramente, adicione no final de game.cpp:
void Game::setWorldTime(bool type, Player* player) {
LightInfo lightInfo;
if(!type) {
lightInfo.level = LIGHT_LEVEL_NIGHT;
} else {
lightInfo.level = LIGHT_LEVEL_DAY;
}
lightInfo.color = 0xD7;
player->sendWorldLight(lightInfo);
}
Em game.h, antes de:
void setWorldType(WorldType_t type) {worldType = type;}
Adicione:
void setWorldTime(bool type, Player* player);
Em luascript.cpp, antes de:
int32_t LuaScriptInterface::luaGetItemAttribute(lua_State* L)
Adicione:
int32_t LuaScriptInterface::luaSetWorldState(lua_State* L)
{
bool type = popBoolean(L);
ScriptEnviroment* env = getEnv();
Player* player = env->getPlayerByUID(popNumber(L));
if(player) {
g_game.setWorldTime(type, player);
lua_pushnumber(L, true);
return 1;
}
lua_pushnumber(L, false);
return 1;
}
Ainda em luascript.cpp, antes de:
//getItemAttribute(uid, key)
Adicione:
//setWorldState(uid, state = false)
lua_register(m_luaState, "setWorldState", LuaScriptInterface::luaSetWorldState);
E por último em luascript.h, antes de:
static int32_t luaGetItemAttribute(lua_State* L);
Adicione:
static int32_t luaSetWorldState(lua_State* L);
Como usar?
function onSay(cid, words, param) for _, pid in pairs(getPlayersOnline()) do setWorldState(pid, false) end return true end
function onSay(cid, words, param) if words == "/night" then setWorldState(cid, false) elseif words == "/day" then setWorldState(cid, true) end return true end
Tópico referente à: http://www.xtibia.com/forum/topic/231827-doacoes-fto/










