Ir para conteúdo

Featured Replies

Postado

Se você tiver as sources do seu servidor, vá em luascript.cpp e procure por alguma função relacionada a "lookdir" (obviamente você deverá usar CTRL+F).

Se não, na pasta do seu servidor, vá em doc, abra o arquivo LUA_FUNCTIONS e procure por algo relacionado a "lookdir".

Se encontrar algo, informe aqui.

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

  • Respostas 18
  • Visualizações 612
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • data/actions/scripts: local config = {     lookDirection = "sul",          --Direção que a catapulta está olhando.     distance = 6,                   --Quantas posições o jogador vai "pular" (só fu

  • local config = {     lookDirection = "sul",          --Direção que a catapulta está olhando.     distance = 6,                   --Quantas posições o jogador vai "pular" (só funciona com números pares

  • Você instalou corretamente o movement? Se o void não é removido, provavelmente o sistema foi instalado erroneamente. Além de mim, outras pessoas testaram os códigos e disseram funcionar perfeitamente.

Postado
  • Autor

@zipter98 no LUA_FUNCTIONS

getPlayerLookDir(cid)
Info
This function will check player direction.
 
Returns
Player direction.
For example:
0 - player is looking up (north) (/\)
1 - player is looking right (east) (>)
2 - player is looking down (south) (\/)
3 - player is looking left (west) (<)

 
na source

//getPlayerLookDir(cid)
lua_register(m_luaState, "getPlayerLookDir", LuaScriptInterface::luaGetPlayerLookDir);
//doCreatureSetLookDir(cid, dir)
lua_register(m_luaState, "doCreatureSetLookDirection", LuaScriptInterface::luaDoCreatureSetLookDir);
case PlayerInfoLookDirection:
value = player->getDirection();
break;
int32_t LuaScriptInterface::luaGetPlayerLookDir(lua_State* L)
{
return internalGetPlayerInfo(L, PlayerInfoLookDirection);
}
int32_t LuaScriptInterface::luaDoCreatureSetLookDir(lua_State* L)
{
//doCreatureSetLookDir(cid, dir)
Direction dir = (Direction)popNumber(L);
 
ScriptEnviroment* env = getScriptEnv();
if(Creature* creature = env->getCreatureByUID(popNumber(L)))
{
g_game.internalCreatureTurn(creature, dir);
if(Player* player = creature->getPlayer())
player->resetIdleTime();
 
lua_pushnumber(L, LUA_NO_ERROR);
}
else
{
reportErrorFunc(getErrorDesc(LUA_ERROR_CREATURE_NOT_FOUND));
lua_pushnumber(L, LUA_ERROR);
}
return 1;
}

Peguei tudo que tinha em luascript.cpp

 

@Adriano

Consegui arrumar o script da gran tower o erro era nos true e nos false apenas mudei para TRUE e FALSE

nas lib que funcionou  :)

mas quando o player desloga aparece isso

 

[01/03/2015 17:35:13] Lua Script Error: [CreatureScript Interface] 
[01/03/2015 17:35:13] in a timer event called from: 
[01/03/2015 17:35:13] data/creaturescripts/scripts/Gran Tower.lua:onDeath
 
[01/03/2015 17:35:13] luaGetCreatureOutfit(). Creature not found

Editado por Komic (veja o histórico de edições)

Postado

local config = {
    lookDirection = "sul",          --Direção que a catapulta está olhando.
    distance = 6,                   --Quantas posições o jogador vai "pular" (só funciona com números pares). Distância máxima: 14.
    directions = {
        ["norte"] = 0,
        ["leste"] = 1,
        ["sul"] = 2,
        ["oeste"] = 3,
    },
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if config.distance % 2 ~= 0 then
        return doPlayerSendCancel(cid, "Sorry, the catapult isn't available right now.") and print("Trade catapult distance for a odd number.")
    end
    local direction = config.directions[config.lookDirection]
    for i = 1, config.distance do
        addEvent(function()
            if getPlayerLookDir(cid) ~= direction then
                doCreatureSetLookDirection(cid, direction)
            end
            local newPos = getPosByDir(i ~= 1 and getThingPos(cid) or toPosition, direction)
            newPos.z = i <= config.distance / 2 and newPos.z - 1 or newPos.z + 1
            if i < config.distance then
                doAreaCombatHealth(0, 0, newPos, 0, 0, 0, 255)
                doCreateItem(460, 1, newPos)
            end
            doTeleportThing(cid, newPos)
        end, i * 120)
    end
    return true
end

não respondo pms solicitando suporte em programação/scripting

Postado
  • Autor

@zipter98

script funcionou certinho mas a posição que o player tava ela some o sqm (fica preto sem chão) quando o player é jogado é posivel uma modificação para deixar todas as direções por exemplo sul, norte, leste?

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo