CA
pedido

Transformação - Outfit

Por Carnavotu, 16 de jul. de 2012 em Scripts

otserv
tibia
script
11
1.7k
CarnavotuC
16 de julho de 2012 às 12:44

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 Julho 16 por Carnavotu

caoticC
16 de julho de 2012 às 13:48

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 Julho 18 por caotic

CarnavotuC
16 de julho de 2012 às 14:03

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 Julho 16 por Carnavotu

caoticC
16 de julho de 2012 às 14:42

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 Julho 16 por caotic

CarnavotuC
17 de julho de 2012 às 01:41

Ai não tem como por para não poder entrar pz, sem precisa teleportar apenas não deixar?

 

Abrass

caoticC
17 de julho de 2012 às 17:07

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 Julho 18 por caotic

CarnavotuC
17 de julho de 2012 às 19:45

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 Julho 17 por Carnavotu

caoticC
18 de julho de 2012 às 16:57

Ok os dois scripts foram concertados do jeito que vc quer.

 

Coloquei para o item repetir quantos vezes.

E retirei o bug do outro

CarnavotuC
18 de julho de 2012 às 18:40

Ele ta entrando templo, agora toda vez que entro templo mesmo sem estar com o outfit ele fica aparecendo efeitos oO

 

Abrass

caoticC
19 de julho de 2012 às 10:55

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

 

CarnavotuC
19 de julho de 2012 às 11:19

Ainda não funciona, eu entro pz mesmo sem outfit ele faz os efeitos e anda sozinho no templo oO

 

Abrass