Ir para conteúdo

Posts Recomendados

Editado: Script com a versão 2 testado em outras versões de pokemon.

 

Fiz o script para o player se movimentar sozinho (!walk). O Script pode conter alguns bugs pois testei pouco.

Vá em data/talkactions/talkactions.xml e adicione:

<talkaction words="!walk" event="script" value="walk.lua"/>

Em data/talkactions/scripts/ crie um arquivo chamado walk.lua e adicione:

V1: Testado apenas no pokemon DxP V3

  Mostrar conteúdo oculto

V2: Testado em outras versões do pokemon.

local function checkSpeed(cid)    local playerSpeed = getCreatureSpeed(cid)    local speed = 350 - (playerSpeed / 10)    return speedendlocal function checkTile(cid, pos)    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then        return 1    else        return doTileQueryAdd(cid, pos)    endendlocal function walk(cid)    if not isPlayer(cid) then        return true    end    local speed = checkSpeed(cid)    local poslook = getCreatureLookPosition(cid)    if getPlayerStorageValue(cid, 43221) == 1 then        if checkTile(cid, poslook) == 1 then            doMoveCreature(cid, getPlayerLookDir(cid))            addEvent(walk, speed, cid)        else            setPlayerStorageValue(cid, 43221, 0)            doPlayerSetNoMove(cid, false)        end    endendfunction onSay(cid, words, param)    if getPlayerStorageValue(cid, 43221) == 1 then        setPlayerStorageValue(cid, 43221, -1)        doPlayerSetNoMove(cid, false)    else        setPlayerStorageValue(cid, 43221, 1)        doPlayerSetNoMove(cid, true)        local speed = checkSpeed(cid)        addEvent(walk, speed, cid)    endreturn trueend

Usei uma formula que achei parecida com o movimento do player (voando e andando). Como é um script baseado em eventos, ele usa miliseconds e não consegui fazer usar a velocidade do player, caso acharem que a velocidade está baixa, alterem a linha abaixo para a formula desejada.

local speed = 350 - (playerSpeed / 10) -- formula para o movimento.

 

Editado por Testing111
Link para o comentário
https://xtibia.com/forum/topic/242121-walk-sistema-para-andar-sozinho/
Compartilhar em outros sites

  Em 09/09/2016 em 03:00, FlamesAdmin disse:

Poderia adaptar ele pros servidores de poketibia, pra andar com fly nos andares acima

Expand  

Então, testei no DxP V3 e funcionou no fly, pros servidor que não funcionam talvez o sistema de fly esteja diferente.

 

Editado: Versão 2 do script funcionando em outros servidores de pokemon.

  Mostrar conteúdo oculto

 

Editado por Testing111
Link para o comentário
https://xtibia.com/forum/topic/242121-walk-sistema-para-andar-sozinho/#findComment-1703795
Compartilhar em outros sites

  • 4 years later...
  Em 09/09/2016 em 00:34, Testing111 disse:

Editado: Script com a versão 2 testado em outras versões de pokemon.

 

Fiz o script para o player se movimentar sozinho (!walk). O Script pode conter alguns bugs pois testei pouco.

Vá em data/talkactions/talkactions.xml e adicione:

<talkaction words="!walk" event="script" value="walk.lua"/>

Em data/talkactions/scripts/ crie um arquivo chamado walk.lua e adicione:

V1: Testado apenas no pokemon DxP V3

  Mostrar conteúdo oculto

V2: Testado em outras versões do pokemon.

local function checkSpeed(cid)    local playerSpeed = getCreatureSpeed(cid)    local speed = 350 - (playerSpeed / 10)    return speedendlocal function checkTile(cid, pos)    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then        return 1    else        return doTileQueryAdd(cid, pos)    endendlocal function walk(cid)    if not isPlayer(cid) then        return true    end    local speed = checkSpeed(cid)    local poslook = getCreatureLookPosition(cid)    if getPlayerStorageValue(cid, 43221) == 1 then        if checkTile(cid, poslook) == 1 then            doMoveCreature(cid, getPlayerLookDir(cid))            addEvent(walk, speed, cid)        else            setPlayerStorageValue(cid, 43221, 0)            doPlayerSetNoMove(cid, false)        end    endendfunction onSay(cid, words, param)    if getPlayerStorageValue(cid, 43221) == 1 then        setPlayerStorageValue(cid, 43221, -1)        doPlayerSetNoMove(cid, false)    else        setPlayerStorageValue(cid, 43221, 1)        doPlayerSetNoMove(cid, true)        local speed = checkSpeed(cid)        addEvent(walk, speed, cid)    endreturn trueend

Usei uma formula que achei parecida com o movimento do player (voando e andando). Como é um script baseado em eventos, ele usa miliseconds e não consegui fazer usar a velocidade do player, caso acharem que a velocidade está baixa, alterem a linha abaixo para a formula desejada.

local speed = 350 - (playerSpeed / 10) -- formula para o movimento.

 

Expand  

 

 

  Em 09/09/2016 em 00:34, Testing111 disse:

Editado: Script com a versão 2 testado em outras versões de pokemon.

 

Fiz o script para o player se movimentar sozinho (!walk). O Script pode conter alguns bugs pois testei pouco.

Vá em data/talkactions/talkactions.xml e adicione:

<talkaction words="!walk" event="script" value="walk.lua"/>

Em data/talkactions/scripts/ crie um arquivo chamado walk.lua e adicione:

V1: Testado apenas no pokemon DxP V3

  Mostrar conteúdo oculto

V2: Testado em outras versões do pokemon.

local function checkSpeed(cid)    local playerSpeed = getCreatureSpeed(cid)    local speed = 350 - (playerSpeed / 10)    return speedendlocal function checkTile(cid, pos)    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then        return 1    else        return doTileQueryAdd(cid, pos)    endendlocal function walk(cid)    if not isPlayer(cid) then        return true    end    local speed = checkSpeed(cid)    local poslook = getCreatureLookPosition(cid)    if getPlayerStorageValue(cid, 43221) == 1 then        if checkTile(cid, poslook) == 1 then            doMoveCreature(cid, getPlayerLookDir(cid))            addEvent(walk, speed, cid)        else            setPlayerStorageValue(cid, 43221, 0)            doPlayerSetNoMove(cid, false)        end    endendfunction onSay(cid, words, param)    if getPlayerStorageValue(cid, 43221) == 1 then        setPlayerStorageValue(cid, 43221, -1)        doPlayerSetNoMove(cid, false)    else        setPlayerStorageValue(cid, 43221, 1)        doPlayerSetNoMove(cid, true)        local speed = checkSpeed(cid)        addEvent(walk, speed, cid)    endreturn trueend

Usei uma formula que achei parecida com o movimento do player (voando e andando). Como é um script baseado em eventos, ele usa miliseconds e não consegui fazer usar a velocidade do player, caso acharem que a velocidade está baixa, alterem a linha abaixo para a formula desejada.

local speed = 350 - (playerSpeed / 10) -- formula para o movimento.

 

Expand  

[21/02/2021 07:56:22] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/walk.lua:5: 'end' expected (to close 'function' at line 1) near 'function'
[21/02/2021 07:56:22] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/walk.lua)
[21/02/2021 07:56:22] data/talkactions/scripts/walk.lua:5: 'end' expected (to close 'function' at line 1) near 'function'

 

Link para o comentário
https://xtibia.com/forum/topic/242121-walk-sistema-para-andar-sozinho/#findComment-1764499
Compartilhar em outros sites

×
×
  • Criar Novo...