Ir para conteúdo

Preciso De Uma Action!


kevinsz

Posts Recomendados

Olá galera do xtibia! Gostaria de uma action para meu novo projeto.

 

Na action eu queria o seguinte..

1- Ao usar um item:

 

2- Mostrar um efeito no player somente uma vez..

 

3- Ficar enviando 4 tipos de mensagens (math.random) animadas(doSendAnimatedText) e as 4 mensagens serão Para qualquer tipo de vocação.

As mensagens serão msg1, msg2, msg3, msg4...E elas terão que ser aleatorias..

Exemplo: Primeiro mostra a msg4 depois mostra a msg2 depois a msg4.. E assim vai.. sem parar.. [ Mesmo se o char logar.. Continuar fazendo isto ]

 

4- Cada vocação tera os tipos de cores [nas quais eu vou escolher cada cores para cada tipo de vocação]..

EXEMPLO: As cores de 0 até 14 serão de sorcerer, As cores de 15 até 21 serão de knight, As cores de 22 até 27 serão de druid, As cores de 28 até 33 serão de paladin..

 

5- Mesmo se o Player der logout e entrar continuar fazendo todo este processo... Sendo uma (storage)..

 

6- Se usar uma vez o item some. E se o player tentar usar novamente o mesmo item mostrar uma mensagem de erro...

 

A Versão do meu ot: 8.5 TFS

Utilizo: Alissow OTServer

Meu nivel de experiencia é muito pouco.. Mas entendo alguns scripts.. E sei varias coisas basicas de um scripter..

 

 

(math.random) = Aleatoriamente...

 

 

 

 

 

OBS: Pessoal demorei um montão para organizar este tópico sem contar que estudei bastante para fazer o tópico.. E se num for suficiente vou explicar fazendo um video.

Caso tenha dúvida.. Poste sua dúvida no tópico. Por favor preciso muito disso!

Quem puder me ajudar seria uma honra!

Desde Já, Grato!

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

  • 2 weeks later...

o item usado você coloca na tag.xml

 

o script do item é esse.

--[[> Marcryzius <]]--
function onUse(cid,item)
local C = {}
C.get = getPlayerStorageValue(cid,2222)
C.pos = getCreaturePosition(cid)
if(C.get == -1)then
	doSendMagicEffect(C.pos,12)
	doRemoveItem(item.uid)
	doSendMensagemEvent(cid)
	setPlayerStorageValue(cid,2222,0)
else
	doPlayerSendCancel(cid,'Você ja usou esse item.')
end
return TRUE
end

 

agora você adiciona na lib function:

function doSendMensagemEvent(cid)
local C = {}
C.pos = getCreaturePosition(cid)
C.get = getPlayerStorageValue(cid,2222)
C.voc = getPlayerVocation(cid)
C.time = 1 --Tempo em segundos entre as mensagems.

C.msg = {}--Estrutura.
C.msg[1] = 'primeira mensagem.'
C.msg[2] = 'segunda mensagem.'
C.msg[3] = 'terceira mensagem.'
C.msg[4] = 'quarta mensagem.'

C.cor = {} --Estrutura.
C.cor[1] = { 1,14} --Vocação id 1 e cores de  1 a 14.
C.cor[2] = {22,27} --Vocação id 2 e cores de 22 a 27.
C.cor[3] = {28,33} --Vocação id 3 e cores de 28 a 33.
C.cor[4] = {15,21} --Vocação id 4 e cores de 15 a 21.

if(C.get == 0)then--Verifica se ele tem o valor necessario.
	if(getPlayerGUID(cid))then --Verifica se esta online.
	local corRandom = math.random(C.cor[C.voc][1],C.cor[C.voc][2])
	local msgRandom = math.random(1,#C.msg)
		doSendAnimatedText(C.pos,C.msg[msgRandom],corRandom)
		addEvent(doSendMensagemEvent,C.time*1000,cid)
	end
end
end

 

em creaturescripts adicione em qualquer script de evento onlogin a função doSendMensagemEvent(cid), que faz iniciar o loop das mensagens.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...