4 horas atrás, balla1009 disse:Queria pedir uma ajuda pra fazer uma estátua que seria parecido coma de treiner offline, porém ela funcionaria assim:
- ao clicar ela checa se tem "storage XXXX, 1"
- se tiver a storage o char desloga e só pode logar denovo depois do tempo acabar
- o tempo começa em 30min, e toda vez que ele clica denovo, o tempo dobra
- ao acabar o tempo ele recebe skill X e reseta a storage XXXX lá do começo pra 0
Boa tarde bro,
Tente assim, crie o arquivo .LUA na pasta actions com o nome de "statueTreinerOFF.lua" e adicione o código abaixo:
local act = { [12451] = {ctrlSto = 12452, tempo = 30}, -- Agility: Storage Controle // Tempo em Minutos [12454] = {ctrlSto = 12455, tempo = 30} -- Strength: Storage Controle // Tempo em Minutos}function onUse(cid, item, fromPosition, itemEx, toPosition) getValue = item.actionid cAct = act[getValue] if cAct then getCrtlSto = cAct.ctrlSto getStoValue = getPlayerStorageValue(cid, getCrtlSto) getStoCount = getPlayerStorageValue(cid, getValue) if getStoValue == 3 then setPlayerStorageValue(cid, getCrtlSto, 4) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your training will take "..cAct.tempo*getStoCount.." minutes, click again to start.") addEvent(function() if isPlayer(cid) then setPlayerStorageValue(cid, getCrtlSto, 3) end end, 10*1000) elseif getStoValue == 4 then playerID = getPlayerGUID(cid) setPlayerStorageValue(cid, getCrtlSto, 2) doRemoveCreature(cid) addEvent(function() db.executeQuery("UPDATE `player_storage` SET `value` = 1 WHERE `player_id` = " .. playerID .. " AND `key` = ".. getCrtlSto ..";") end, cAct.tempo * 60 * 1000) else doPlayerSendCancel(cid, "You need active your offline train, talk to NPC.") end else doPlayerSendCancel(cid, "An error occurred, contact to administrador.") endreturn trueend
Agora em actions.xml adicione a tag abaixo:
<action actionid="12451;12454" event="script" value="statueTreinerOFF.lua"/>
Agora vamos a creaturescripts.xml e adicionaremos a tag abaixo:
<event type="login" name="trainingLogIn" event="script" value="trainingLogIn.lua"/>
Ainda na pasta, abra o login.lua e adicione à linha abaixo junto com as do gênero:
registerCreatureEvent(cid, "trainingLogIn")
Agora crie o arquivo trainingLogIn.lua e adicione o código abaixo:
local storages = {12452, 12455} -- Storage Controle do Training de Agility e Strengthfunction onLogin(cid) for x = 1, #storages do if getPlayerStorageValue(cid, storages[x]) == 2 then return false end end if getPlayerStorageValue(cid, storages[1]) == 1 then -- COMANDO DE ADICIONAR SKILL AGILITY elseif getPlayerStorageValue(cid, storages[2]) == 1 then -- COMANDO DE ADICIONAR SKILL STRENGTH endreturn trueend
Lembre-se:
1. A estátua de Treinar precisarão estar com as actions ID a seguir: Agilidade com ActionID 12451 e a de Strength com ActionID 12454.
2. Neste último script, precisará adicionar as tags de adicionar skill conforme seu otserv.
3. Ao falar com o NPC para treinar, o player da o primeiro clique na estátua e recebe a mensagem avisando quanto tempo terá que ficar ausente do jogo, para confirmar ele clica novamente na estátua dentro de 10 segundos para confirmar o treino.
Boa sorte.


info
Grupo: Artesão
Registrado: 04/02/08
Posts: 112
Reputação: +3
Char no Tibia: Pizza de Churros
Queria pedir uma ajuda pra fazer uma estátua que seria parecido coma de treiner offline, porém ela funcionaria assim:
- ao clicar ela checa se tem "storage XXXX, 1"
- se tiver a storage o char desloga e só pode logar denovo depois do tempo acabar
- o tempo começa em 30min, e toda vez que ele clica denovo, o tempo dobra
- ao acabar o tempo ele recebe skill X e reseta a storage XXXX lá do começo pra 0