Diving/Mergulho.

Testing111
em CreatureScripts e Movements

Testing111

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/02/11Posts: 10Char no Tibia: Test

Fiz um script simples para quando o player andar em baixo da água. O script troca a Outfit do personagem para o de mergulhador e altera a velocidade do mesmo.

Adicione em data/movements/movements.xml

    <movevent type="StepIn" fromid="5405" toid="5410" event="script" value="diving.lua"/>    <movevent type="StepOut" fromid="5405" toid="5410" event="script" value="diving.lua"/>

Agora vá em data/movements/scripts, crie o arquivo diving.lua e adicione:

function onStepIn(cid, item, position, fromPosition)    if getPlayerStorageValue(cid, 30211) == 1 then        return true    end    if isPlayer(cid) then        local outfit = getCreatureOutfit(cid)        local out = getPlayerSex(cid) == 0 and 1035 or 1034        setPlayerStorageValue(cid, 30211, 1)        doChangeSpeed(cid, -getCreatureSpeed(cid))        doChangeSpeed(cid, 1000)        doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)        endendfunction onStepOut(cid, item, position, fromPosition)    if isPlayer(cid) then        setPlayerStorageValue(cid, 30211, -1)        doChangeSpeed(cid, -getCreatureSpeed(cid))        doRegainSpeed(cid)        doRemoveCondition(cid, CONDITION_OUTFIT)    endend

OBS: Testado no DxP.

Josegvb

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/09/12Posts: 1041Gênero: Masculino

essa storage é oq?

 

esquece ja vi q vc seta essa storage no stepin, só nao entendi pra oq kk

 

Testing111

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/02/11Posts: 10Char no Tibia: Test

O Storage é pro código não ficar se repetindo e setar a velocidade apenas uma vez.

Luga03

Gabriel Lucena :D
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 14/04/15Posts: 956Gênero: Masculino
Em 02/09/2016 at 09:20, Testing111 disse:

O Storage é pro código não ficar se repetindo e setar a velocidade apenas uma vez.

Acho que o melhor seria no onStepIn verificar se fromPos é algum dos configurado no script, se sim, não executa o onStepIn e digo o mesmo sobre o onStepOut só que ao invés do fromPos usaria o toPos.

 

Bom, mesmo assim toma aí seu rep++ que essse script ficou legal :D

Hello! How are you? It's fine? 

 

Okay, so you like my helps? if yes, then do you can like my post, give-me a reputation, you can't?

 

Good morning for everyone! And have a good day!

Punchlines Nemmo

Walox ®
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/05/16Posts: 72Gênero: MasculinoChar no Tibia: Walox®

achei um erro nesse script quando voce sai de cima do tile ele continua com o outfit quando vai mudar ele n muda ai reloga fica invisivel reloga dnv volta com outfit padrao ai volta para o tile que muda a outfit e nao acontece nada

KaboFlow

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/07/17Posts: 434
Em 01/09/2016 em 21:59, Testing111 disse:

Fiz um script simples para quando o player andar em baixo da água. O script troca a Outfit do personagem para o de mergulhador e altera a velocidade do mesmo.

Adicione em data/movements/movements.xml

    <movevent type="StepIn" fromid="5405" toid="5410" event="script" value="diving.lua"/>    <movevent type="StepOut" fromid="5405" toid="5410" event="script" value="diving.lua"/>

Agora vá em data/movements/scripts, crie o arquivo diving.lua e adicione:

function onStepIn(cid, item, position, fromPosition)    if getPlayerStorageValue(cid, 30211) == 1 then        return true    end    if isPlayer(cid) then        local outfit = getCreatureOutfit(cid)        local out = getPlayerSex(cid) == 0 and 1035 or 1034        setPlayerStorageValue(cid, 30211, 1)        doChangeSpeed(cid, -getCreatureSpeed(cid))        doChangeSpeed(cid, 1000)        doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)        endendfunction onStepOut(cid, item, position, fromPosition)    if isPlayer(cid) then        setPlayerStorageValue(cid, 30211, -1)        doChangeSpeed(cid, -getCreatureSpeed(cid))        doRegainSpeed(cid)        doRemoveCondition(cid, CONDITION_OUTFIT)    endend

OBS: Testado no DxP.

 

 

[25/01/2020 19:26:28] [Error - LuaScriptInterface::loadFile] data/movements/scripts/diving.lua:1: '=' expected near 'onStepOut'
[25/01/2020 19:26:28] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/diving.lua)
[25/01/2020 19:26:28] data/movements/scripts/diving.lua:1: '=' expected near 'onStepOut'
[25/01/2020 19:26:28] [Error - LuaScriptInterface::loadFile] data/movements/scripts/diving.lua:1: '=' expected near 'onStepOut'
[25/01/2020 19:26:28] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/diving.lua)
[25/01/2020 19:26:28] data/movements/scripts/diving.lua:1: '=' expected near 'onStepOut'