Ir para conteúdo
  • 0

Estatua tipo treiner offline


Boguemon

Pergunta

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

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
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:

Spoiler
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.

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

×
×
  • Criar Novo...