Ir para conteúdo
  • 0

Transformação - Outfit


Carnavotu

Pergunta

Tenho um script que você da use nele você se transforma em um outfit e ganha speed, eu queria que quando player quisese tirar o outfit ele apertasse de novo e sairia e o speed também

 

Script, action:

 

function onUse(cid, item)

local outfit1 = {lookType = 101} -- looktype

local outfit2 = {lookType = 258} -- looktype

local playerVocation = getPlayerVocation(cid)

if playerVocation == 2 then

doSetCreatureOutfit(cid, outfit1, -1)

doChangeSpeed(cid, 500) -- speed almenta

return TRUE

end

if playerVocation == 3 then

doSetCreatureOutfit(cid, outfit2, -1)

doChangeSpeed(cid, 500) -- speed almenta

return TRUE

end

end

 

 

 

Abrass mdr.gif

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

10 respostass a esta questão

Posts Recomendados

  • 0

Pocha cara achei seu script tão feio e tão mal desenvolvido que crie um melhor para voce com tudo que queria:

 

local out = {

[6] = {looktype = 300, speed = 2000},

[8] = {looktype = 300, speed = 2000},

[9] = {looktype = 300, speed = 2000}

 

}

 

 

function onUse(cid, item)

 

local outfit = getCreatureOutfit(cid)

local getspeed = getCreatureSpeed(cid)

local voc = getPlayerVocation(cid)

local look = out[voc].looktype

local speed = out[voc].speed

if not out[voc] then

doPlayerSendCancel(cid, "Sua vocação não tem esta função")

return true

end

setPlayerStorageValue(cid, 87668, getspeed)

doCreatureChangeOutfit(cid, {lookType = look})

doChangeSpeed(cid, speed)

setPlayerStorageValue(cid, 77821, 1)

return true

end

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

  • 0

Valeu em, mais uma coisa tem como você por quando ele tiver se transformar no outfit ele nao pode entrar no pz? tem como? e poderia me explicar como funciona o script ?

 

Abrass mdr.gif

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

  • 0

Para configurar o script e facil

local out = {
[6] = {looktype = 300, speed = 2000}, --Primeiro(6) e a vocação segundo e looktype(300) que vai ganhar e segundo a speed(2000)----
[8] = {looktype = 300, speed = 2000},
[9] = {looktype = 300, speed = 2000} ----Sempre na ultima configuração da linha não coloque virgula pode bugar----

}

 

para pz e so fazer isso:

 

 

Va em creaturescripts/scripts e crie um arquivo Lua chamado pz e coloque isto:

 

function onThink(cid, interval)

local tele = {x= 32360, y= 31782, z= 7} -----Se ele estiiver em pz e se estiver trenasformado onde ele vais ser teleportado

function getPlayerPositionPz(cid)

local pz = getTilePzInfo(getCreaturePosition(cid))

return pz

end

if getPlayerStorageValue(cid, 77821) == 1 and getPlayerPositionPz(cid) then

doTeleportThing(cid, tele)

doSendMagicEffect(getPlayerPosition(cid), 10)

return true

end

return true

end

 

 

Agora va em creaturescripts/creaturescripts.xml e coloque esta tag:

 

 


<event type="think" name="pz" event="script" value="pz.lua"/>

 

 

Registre o evento colocando isto em creaturescripts/scripts/ abra login.lua e coloque antes do ultimo Return:

 

registerCreatureEvent(cid, "pz")

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

  • 0

tem sim mais tem que tomar cuidado pois se o player for teleportado de uma vez para o tile de pz pode dar bugs:

 

function onThink(cid, interval)

function getPlayerPositionPz(cid)

local pz = getTilePzInfo(getCreaturePosition(cid))

return pz

end

if getPlayerStorageValue(cid, 77821) == 1 and getPlayerPositionPz(cid) then

doTeleportThing(cid, getPlayerPosition(cid), true)

doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)

doSendMagicEffect(getPlayerPosition(cid), 10)

return true

end

return true

end

 

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

  • 0

Deu erro:

 

[Error - CreatureScript Interface]

data/creaturescripts/scripts/pz.lua:onThink

Description:

attempt to index a nil value

stack traceback:

[C]: in function 'doTeleportThing'

data/creaturescripts/scripts/pz.lua:7: in function <data/creaturescripts/scripts/pz.lua:1>

 

E outra coisa tem como deixar para o player usar o item quantas vezes quiser ? Porque você colocou a storage ai ele não dexa usar mais de uma vez

 

 

Abrass

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

  • 0

faz isso então

function onThink(cid, interval)

function getPlayerPositionPz(cid)

local pz = getTilePzInfo(getCreaturePosition(cid))

return pz

end

local position = getPlayerPosition(cid)

positions = {x=position.x, y=position.y-1, z=position.z}

if getPlayerStorageValue(cid, 77821) == 1 and getPlayerPositionPz(cid) then

doTeleportThing(cid, positions)

doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)

doSendMagicEffect(getPlayerPosition(cid), 10)

return true

end

return true

end

 

Link para o comentário
Compartilhar em outros sites

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