Ir para conteúdo
  • 0

Problema Com Essa Talkaction


nbb147

Pergunta

bom gente to com um problema com essa talk de transformar, é o seguinte ela esta quase toda perfeita so falta uma coisa eu quero que quando o tempo acabar ou o player der logout, o player voltar a vocação que era antes de transformar..

 

-- Script by LuckOake

function onSay(cid, words)

local waittime = 10 -- Tempo de exhaustion

local storage = 6811

local tempo = 10800 -- Tempo em segundos até a vocation sumir

local vocation = 61 -- Vocation ID

local mana = 100 -- Mana necessária

local outfit = {lookType = 118, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0} -- Outfit

local useable_vocs = {"Elite Knight"} -- Vocations que podem usar a talk

local level = 40

local levelMax = 150

 

if not isInArray(useable_vocs, getPlayerVocationName(cid)) then

doPlayerSendCancel(cid, "Essa vocaçao nao possui o selo.") return true

elseif exhaustion.check(cid, storage) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar esse selo novamente.") return true

elseif getPlayerMana(cid) < mana then

doPlayerSendCancel(cid, "Voce nao tem chakra suficiente.") return true

elseif getPlayerLevel(cid) < level then

doPlayerSendCancel(cid, "Voce prescisa estar level "..level..".") return true

elseif getPlayerLevel(cid) >= levelMax then

doPlayerSendCancel(cid, "O level maximo para usar esse selo é ("..levelMax..").") return true

end

 

exhaustion.set(cid, storage, waittime)

doPlayerAddMana(cid, -mana)

setPlayerStorageValue(cid, 8152, getPlayerVocation(cid))

doSetCreatureOutfit(cid, outfit, -1)

doPlayerSetVocation(cid, vocation)

addEvent(doPlayerSetVocation, tempo*1000, cid, getPlayerStorageValue(cid, 8152))

addEvent(doRemoveCondition, tempo*1000, cid, CONDITION_OUTFIT)

return true

end

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

3 respostass a esta questão

Posts Recomendados

  • 0

tu quer q dure 10seg? pq ta para durar 10800segs ;x

tenta isso..

 

-- Script by LuckOake

local function endTransform(cid)

if isCreature(cid) and getPlayerStorageValue(cid, 8152) > 0 then

doPlayerSetVocation(cid, getPlayerStorageValue(cid, 8152))

setPlayerStorageValue(cid, 8152, -1)

doRemoveCondition(cid, CONDITION_OUTFIT)

end

end

 

function onSay(cid, words)

local waittime = 10 -- Tempo de exhaustion

local storage = 6811

local tempo = 10800 -- Tempo em milesegundos (1seg = 1000) até a vocation sumir

local vocation = 61 -- Vocation ID

local mana = 100 -- Mana necessária

local outfit = {lookType = 118, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0} -- Outfit

local useable_vocs = {"Elite Knight"} -- Vocations que podem usar a talk

local level = 40

local levelMax = 150

 

if not isInArray(useable_vocs, getPlayerVocationName(cid)) then

doPlayerSendCancel(cid, "Essa vocaçao nao possui o selo.") return true

elseif exhaustion.check(cid, storage) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar esse selo novamente.") return true

elseif getPlayerMana(cid) < mana then

doPlayerSendCancel(cid, "Voce nao tem chakra suficiente.") return true

elseif getPlayerLevel(cid) < level then

doPlayerSendCancel(cid, "Voce prescisa estar level "..level..".") return true

elseif getPlayerLevel(cid) >= levelMax then

doPlayerSendCancel(cid, "O level maximo para usar esse selo é ("..levelMax..").") return true

end

 

exhaustion.set(cid, storage, waittime)

doPlayerAddMana(cid, -mana)

setPlayerStorageValue(cid, 8152, getPlayerVocation(cid))

doSetCreatureOutfit(cid, outfit, -1)

doPlayerSetVocation(cid, vocation)

addEvent(endTransform, tempo, cid)

return true

end

 

 

e dai vai em creaturescripts/scripts cria um arquivo la e cola isso..

 

function onLogout(cid)

if getPlayerStorageValue(cid, 8152) > 0 then

doPlayerSetVocation(cid, getPlayerStorageValue(cid, 8152))

setPlayerStorageValue(cid, 8152, -1)

doRemoveCondition(cid, CONDITION_OUTFIT)

end

return true

end

 

 

dai em creaturescripts/creaturescripts.xml cola isso la..

<event type="logout" name="PlayerLogoutVoc" event="script" value="NOME DO ARQUIVO.lua"/>

 

e depois vai em creaturescripts/scripts/login.lua e cola isso la..

registerCreatureEvent(cid, "PlayerLogoutVoc")

Link para o comentário
Compartilhar em outros sites

  • 0

tem como fazer essa creatureevents desativar mais de uma transformaçao?

pq eu uso mais de uma transformaçao.

 

reportado para moverem..

eu ja resolvi so presisava de um

return true

end

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

×
×
  • Criar Novo...