Ir para conteúdo
  • 0

[Ajuda] Sistema De Natação [Ajuda]


Flaah

Pergunta

Boa Tarde amigos do XTIBIA, to com um grande problema no sistema de natação que eu peguei que seria:

 

Quando ele sai da água, ele volta com uma outifit totalmente diferente do que ele tinha antes de entrar na água.

 

Resumindo: Eu queria que ele voltasse para a outifit anterior que ele estava, quando saisse da água... Teria como?!

 

SCRIPT :

 

local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}
local BORDERS = {
[7943] = {x = 0, y = -2, back = SOUTH},
[7944] = {x = -2, y = 0, back = EAST},
[7945] = {x = 0, y = 2, back = NORTH},
[7946] = {x = 2, y = 0, back = WEST},
[7947] = {x = 2, y = 1, back = WEST},
[7948] = {x = -2, y = 1, back = NORTH},
[7949] = {x = 2, y = -1, back = WEST},
[7950] = {x = -2, y = -1, back = EAST},
[7951] = {x = 2, y = 2, back = WEST},
[7952] = {x = -2, y = 2, back = NORTH},
[7953] = {x = 2, y = -2, back = WEST},
[7954] = {x = -2, y = -2, back = SOUTH}
}
BORDERS[4828] = BORDERS[7943]
BORDERS[4829] = BORDERS[7946]
BORDERS[4830] = BORDERS[7945]
BORDERS[4831] = BORDERS[7944]
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if(not isPlayer(cid)) then
 return true
end
local border = BORDERS[item.itemid]
if(not border) then
 return false
end
local pos, newPos = getCreaturePosition(cid), {}
newPos = pos
newPos.x = pos.x + border.x
newPos.y = pos.y + border.y
if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
 doMoveCreature(cid, border.back)
 doRemoveCondition(cid, CONDITION_OUTFIT)
else
 if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then
  return false
 end
 local tmp = getCreaturePosition(cid)
 doTeleportThing(cid, newPos)
 if(not isPlayerGhost(cid)) then
  doSendMagicEffect(tmp, CONST_ME_POFF)
  doSendMagicEffect(newPos, CONST_ME_WATERSPLASH)
 end
 doRemoveConditions(cid, true)
 doSetCreatureOutfit(cid, outfit, -1)
end
return true
end

 

XML :

 

<movevent type="StepIn" itemid="4828-4831" event="script" value="nadando.lua"/>
<movevent type="StepIn" itemid="7943-7954" event="script" value="nadando.lua"/>

 

ALGUEM ME AJUDA PORFAVOR? :(

 

VALENDO +REP

Editado por Flaah
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

@SkyDangerous

 

Ele fica dando UP escrevendo no tópico:

 

VALENDO +REP

 

É o mesmo que um UP com palavras diferentes, mas ainda assim é flood e double post.

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

@SkyDangerous

 

Ele fica dando UP escrevendo no tópico:

 

VALENDO +REP

 

É o mesmo que um UP com palavras diferentes, mas ainda assim é flood e double post.

 

@LuckOake

 

Não estou fazendo isso pra ganha POSTS, e sim pra manter ativo, pra não precisar criar ooooutro Tópico pra tentar me ajuda nesse problema.

 

Desculpe XTIBIA pelo UP, mais não fiz isso pra ganha POSTS e sim como dito antes, pra manter ATIVO o TÓPICO!

 

Desculpe XTIBIA e Boa Noite a Todos happy.png

Link para o comentário
Compartilhar em outros sites

  • 0

eu testei esse aqui do meu ot e funcionou

 


local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

local BORDERS = {
[7943] = {x = 0, y = -2, back = SOUTH},
[7944] = {x = -2, y = 0, back = EAST},
[7945] = {x = 0, y = 2, back = NORTH},
[7946] = {x = 2, y = 0, back = WEST},
[7947] = {x = 2, y = 1, back = WEST},
[7948] = {x = -2, y = 1, back = NORTH},
[7949] = {x = 2, y = -1, back = WEST},
[7950] = {x = -2, y = -1, back = EAST},
[7951] = {x = 2, y = 2, back = WEST},
[7952] = {x = -2, y = 2, back = NORTH},
[7953] = {x = 2, y = -2, back = WEST},
[7954] = {x = -2, y = -2, back = SOUTH}
}

BORDERS[4828] = BORDERS[7943]
BORDERS[4829] = BORDERS[7946]
BORDERS[4830] = BORDERS[7945]
BORDERS[4831] = BORDERS[7944]

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if(not isPlayer(cid)) then
return true
end

local border = BORDERS[item.itemid]
if(not border) then
return false
end

local pos, newPos = getCreaturePosition(cid), {}
newPos = pos
newPos.x = pos.x + border.x
newPos.y = pos.y + border.y

if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
doMoveCreature(cid, border.back)
doRemoveCondition(cid, CONDITION_OUTFIT)
else
if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then
return false
end

local tmp = getCreaturePosition(cid)
doTeleportThing(cid, newPos)

if(not isPlayerGhost(cid)) then
doSendMagicEffect(tmp, CONST_ME_POFF)
doSendMagicEffect(newPos, CONST_ME_WATERSPLASH)
end

doRemoveConditions(cid, true)
doSetCreatureOutfit(cid, outfit, -1)
end

return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

eu testei esse aqui do meu ot e funcionou

 


local outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

local BORDERS = {
[7943] = {x = 0, y = -2, back = SOUTH},
[7944] = {x = -2, y = 0, back = EAST},
[7945] = {x = 0, y = 2, back = NORTH},
[7946] = {x = 2, y = 0, back = WEST},
[7947] = {x = 2, y = 1, back = WEST},
[7948] = {x = -2, y = 1, back = NORTH},
[7949] = {x = 2, y = -1, back = WEST},
[7950] = {x = -2, y = -1, back = EAST},
[7951] = {x = 2, y = 2, back = WEST},
[7952] = {x = -2, y = 2, back = NORTH},
[7953] = {x = 2, y = -2, back = WEST},
[7954] = {x = -2, y = -2, back = SOUTH}
}

BORDERS[4828] = BORDERS[7943]
BORDERS[4829] = BORDERS[7946]
BORDERS[4830] = BORDERS[7945]
BORDERS[4831] = BORDERS[7944]

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if(not isPlayer(cid)) then
return true
end

local border = BORDERS[item.itemid]
if(not border) then
return false
end

local pos, newPos = getCreaturePosition(cid), {}
newPos = pos
newPos.x = pos.x + border.x
newPos.y = pos.y + border.y

if(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.lookType) then
doMoveCreature(cid, border.back)
doRemoveCondition(cid, CONDITION_OUTFIT)
else
if(doTileQueryAdd(cid, pos, 4) ~= RETURNVALUE_NOERROR) then
return false
end

local tmp = getCreaturePosition(cid)
doTeleportThing(cid, newPos)

if(not isPlayerGhost(cid)) then
doSendMagicEffect(tmp, CONST_ME_POFF)
doSendMagicEffect(newPos, CONST_ME_WATERSPLASH)
end

doRemoveConditions(cid, true)
doSetCreatureOutfit(cid, outfit, -1)
end

return true
end

 

@eduardobean

 

Seu script até funciono em certas partes, se não tivesse 2 probleminhas nele:

 

Quando a vocation nunca fui transformada em outra outfit com alguma talkaction (exemplo: !transformar), ele fica com uma aparencia de um cara de terno do tibia quando sai da água.

 

E quando a vocation ja foi transformada com alguma talkaction (exemplo: !transformar), ele até volta pra aparencia de transformação quando sai da água, mais quando o player sai e volta pro jogo, ai vai nadar denovo com a outifit normal sem esta transformado, ele volta pra aparencia de transformação, quando sai da água, mesmo não estando transformado na hora.

 

ALGUEM ME AJUDA PORFAVOR? :(

 

VALENDO +REP

Editado por Flaah
Link para o comentário
Compartilhar em outros sites

  • 0

Talkaction que só troca a outfit:

 

local config = {
--[vocation id] = { level, looktype, efeito}
[1] = { 10, 163, 1},
[2] = { 20, 126, 1},
[3] = { 25, 126, 1}
}
function onSay(cid, words, param, channel)
local voc = config[getPlayerVocation(cid)]
if voc then
 if getPlayerLevel(cid) >= voc[1] then
  local outfit = {lookType = voc[2]}
  doCreatureChangeOutfit(cid, outfit)
 else
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar no level " .. voc[1] .. " para se transformar na Kyuubi.")
 end
else
 doPlayerSendCancel(cid, "Você não pode vira a Kyuubi")
end
return true
end

 

ALGUEM ME AJUDA PORFAVOR? :(

 

VALENDO +REP

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...