Ir para conteúdo
  • Cadastre-se

[Pedido] Quest global, quando ser feito, todos os players ganhar 2x de exp no ot todo


Posts Recomendados

tipo, alguem poderia fazer uma quest assim?

 

*1 teleport é criado no templo (anunciando pra todos)

*depois de 15 minutos o teleport é fechado

*os players fazem a quest (essa parte teria que ser comigo)

*ao terminar a quest, uma pessoa só abre a quest dando double exp pro ot todo (tipo uma globalstorage)

*se outra pessoa pessoa abrir a mesma quest, da error ("A double xp ja foi ativada nesse servidor por x dias")

*duração de uns 3 dias para remover a storage global

 

obrigado quem puder ajudar :')

Link para o post
Compartilhar em outros sites

Primeiramente vá em actions.xml e adicione a seguinte tag:

<action uniqueid="5000" event="script" value="questXP.lua"/>

Agora vá em actions/scripts e crie um arquivo questXP.lua e adicione dentro:

function onUse(cid, item, fromPosition, itemEx, toPosition)

storageInicial = 500008  -- storage que marca a hora que a quest foi feita
storageFinal = 500009 -- storage que marca quando a quest acaba

   	if item.uid == 5000 then
   		queststatus = 500010
   		time = os.time()
   		if(getGlobalStorageValue(queststatus) == 1 and time > getGlobalStorageValue(storageTimeFinal)) then
            		setPlayerStorageValue(queststatus, 0)
            	end

   		if getGlobalStorageValue(queststatus) == 1 and time < getGlobalStorageValue(storageTimeFinal) then
            		doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Alguém já alterou a exp do servidor, volte quando acabar.")
            	else
            		setGlobalStorageValue(storageTimeInicial, os.time())
   			doBroadcastMessage("O jogador "..getPlayerName(cid).." alterou a exp do servidor por 3 dias.")
			doSendMagicEffect(getPlayerPosition(cid), 65)
      			setGlobalStorageValue(storageTimeFinal, getGlobalStorageValue(storageTimeInicial)+259200)
      			setGlobalStorageValue(queststatus, 1)
      		end
end
   	return TRUE
end

Agora vá em creaturescripts/scripts e abre o arquivo login.lua e encima do ultimo return true adicione:

if getGlobalStorageValue(500008) == 1 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A xp do servidor foi dobrada porque completaram a quest, aproveite.")
doPlayerSetRate(cid, SKILL__LEVEL, 2.0)
end 

Agora vá em globalevents.xml e adicione a seguinte tag:

<globalevent name="questTP" interval="7200000" event="script" value="questTP.lua"/>

Agora vá em globalevents/scripts e crie um arquivo questTP.lua e adicione dentro:

function onThink(interval, lastExecution, thinkInterval)
local config = {
pos = {x=X, y=X, z=7}, -- Posição aonde sera criado o teleport
topos = {x=X, y=X, z=X}, -- Posição pra onde o teleport ira levar o player
tpid = 1387, -- id do teleport
time = 15 -- tempo que o teleport ira sumir em minutos
}

function DelTp()
local t = getTileItemById(config.pos, config.tpid)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(config.pos, CONST_ME_POFF)
end
end

doCreateTeleport(config.tpid, config.topos, config.pos)
doBroadcastMessage("Quest para a double XP foi aberto, o teleport que se localiza no templo e se fechara "..config.time.." minutos")
addEvent(DelTp, config.time*60*1000)
addEvent(doBroadcastMessage, config.time*60*1000, "Quest para a double XP foi fechada.")
return true
end

Para adicionar a quest abre o RME e coloque o uniqueID = 5000 em qualquer lugar que deseja, flw.

Editado por nookia (veja o histórico de edições)

The medieval RpG Server

espada-barbara.jpg

[RpG] OLDWORLD OPEN TIBIA

Link para o post
Compartilhar em outros sites

obrigado amigo

 

testei aqui só que tenho 2 duvidas

 

*eu testei aqui e nao ta dando a double xp como posso arrumar? (nao apareceu nada na distro)

 

(ANTES DA QUEST)

-02:59 You gained 5000000 experience points.

 

(DEPOIS DA QUEST)

-03:00 You gained 5000000 experience points.

 

 

*onde eu posso configurar esses "3 dias"?

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...
  • 2 months later...

@poko360

Eu dei uma lida rápida no código do nookia e percebi que a parte que verifica o status do double ficou no login.lua .. isso significa que após fazer a quest vc precisa relogar para que esteja com double xp...

Espero ter ajudado :)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo