Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Tentando transformar essa aura de distanceeffect em um ataque que fique girando tipo uma espada ao redor do knight que fique hitando sempre que passe.  :hum:



 tumblr_mwfeg45FIV1qk4cb3o4_500.gif

Link para o post
Compartilhar em outros sites
  • 1 month later...
  • Respostas 63
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Olá pessoal do TibiaKing, Hoje venho trazer um script sistema de auras, que explicado superficialmente, é uma bolha de luz que te rodeia constantemente (é possível mudar o efeito visual da aura,

Sim, é possível, mas para isso você deve fazer um creaturescript, e não um talkaction, que ficaria assim : Vai em data\creaturescripts\scripts crie um arquivo chamado auralogin.lua e coloque : -- C

Sim, também é possível, fiz de uma maneira bem improvisada pra você ter uma ideia de como fazer : em data\npcs crie um arquivo NOMEDONPC.xml, e cole isto : <?xml version="1.0" encoding="UTF-8"?&

  • 1 year later...
Em 21/05/2014 ás 16:32, bielzinhocrazy disse:

Sim, também é possível, fiz de uma maneira bem improvisada pra você ter uma ideia de como fazer :

em data\npcs crie um arquivo NOMEDONPC.xml, e cole isto :


<?xml version="1.0" encoding="UTF-8"?>
<npc name="NOMEDOSEUNPC" script="data/npc/scripts/auranpc.lua" walkinterval="50000" floorchange="0">
<health now="100" max="100"/>
<look type="129" head="95" body="116" legs="121" feet="115" addons="3"/>
<parameters>
<parameter key="message_greet" value="Oi |PLAYERNAME|. Eu possuo a habilidade de ceder {aura}. O que deseja?"/>
</parameters>
</npc>

Coloque o nome do npc, e outfits de sua preferência.

agora vá em data\npcs\scripts, crie um arquivo chamado auranpc.lua, e cole isto :


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid)						 npcHandler:onCreatureAppear(cid)					 end
function onCreatureDisappear(cid)					 npcHandler:onCreatureDisappear(cid)					 end
function onCreatureSay(cid, type, msg)				 npcHandler:onCreatureSay(cid, type, msg)			 end
function onThink()									 npcHandler:onThink()								 end
function creatureSayCallback(cid, type, msg)
	 if(not npcHandler:isFocused(cid)) then
			 return false
	 end
	 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	 if msgcontains(msg, 'aura') then
					 if getPlayerStorageValue(cid,20201) ~= 1 then
					 selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid)
					 talkState[talkUser] = 1
					 else
					 selfSay('Você já possui aura.', cid)
					 end
	 elseif talkState[talkUser] == 1 then
			 if msgcontains(msg, 'yes') then
							 if doPlayerRemoveMoney(cid, 10000000) then
									 setPlayerStorageValue(cid,20201,1)
									 selfSay('Parabéns, agora você possui aura!', cid)
									 talkState[talkUser] = 0
							 else
									 selfSay('Você não possui o dinheiro necessário.', cid)
							 end
			 else
					 selfSay('Então porque veio aqui?', cid)
			 end
	 end
	 return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Você pode configurar o dinheiro (ou item) necessário ali na parte "doRemovePlayerMoney", logo após o if. Se desejar algum item, escreva "doRemovePlayerItem(cid,ID do item, quantidade)". Quando você fizer isso, também deve mudar a mensagem do NPC em que diz o que precisa, que é a parte "selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid)".

 

Logo após isso, vá no creaturescript da aura (data\creaturescripts\scripts\aura.lua), e apenas na função principal (onLogin), troque por isto :


function onLogin(cid)
	if(getPlayerStorageValue(cid, 20201)==1) then
		return efeitosAura(1,tempo/8,cid)
	end
	return TRUE
end

E pronto, agora é só adicionar o NPC no seu mapa.

 

o Npc ta funcionando mais a pessoa nao precisa comprar a aura pra usar, queria que apenas quem comprasse pudesse usar como faço isso?

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

@xWhiteWolf Tu consegueria transformar em uma spell? Tipo solto Exori Vis ai fica do lado do player soltando esses efeitos e hitando o player???

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
  • 1 month later...

Eaae biel, tem como colocar um npc pra vender mas com a opção de ativar e desativar com a talkaction "!aura'' ??

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

                                                                    by : GOTD

                                                       :facepalm: esperando voce morrer..

 

 

                                                                 40% Scripter

                                                                 70% Mapper

Link para o post
Compartilhar em outros sites
  • 2 months later...

É possível colocar este script usando um item? 

no meu caso um aol (ID: 10220). Ao montar o aol o efeito é activado e a aol removido, o efeito é desativado! please!

Link para o post
Compartilhar em outros sites
  • 1 month later...
  • 4 months later...
Em 20/05/2014 em 20:48, bielzinhocrazy disse:

Sim, é possível, mas para isso você deve fazer um creaturescript, e não um talkaction, que ficaria assim :

Vai em data\creaturescripts\scripts crie um arquivo chamado auralogin.lua e coloque :


-- CONFIGURAÇÕES
	porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem
	quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura)
	tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
	tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
	efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)

-- Função que chama a aura
function efeitosAura(i,tm,cid)
	if(isCreature(cid)) then
        	local atual = getCreaturePosition(cid)
		local posaura = {
			{x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
			{x=atual.x, y=(atual.y)-1, z=atual.z},
			{x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
			{x=(atual.x)+1, y=atual.y, z=atual.z},
			{x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
			{x=atual.x, y=(atual.y)+1, z=atual.z},
			{x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
			{x=(atual.x)-1, y=atual.y, z=atual.z},
		}
		local chances = math.random(100)
		if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then
			doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
			if(i<=8 and i>1) then
				doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura)
			else
				doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
			end
			doSendMagicEffect(atual, efeitocura)
		end
		if(i==8) then
			doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
		elseif(i<8) then
			doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
		end
		if(i<=8) then
			i = i+1
			tm = tempo/8
			return addEvent(efeitosAura,tm,i,tm,cid)
		else
			return efeitosAura(1,0,cid)
		end
	else
		return TRUE
	end
end

--Função principal
function onLogin(cid)
	return efeitosAura(1,tempo/8,cid)
end

Depois vá em data\creaturescripts, abra creaturescripts.xml, e adicione a linha :


	<event type="login" name="AuraLogin" script="auralogin.lua"/>

Se você quiser colocar alguma condição pro player logar com aura, adicione na parte após onLogin, do arquivo auralogin.lua. Por exemplo :


function onLogin(cid)
        if(getPlayerLevel(cid)>1000) then
	      return efeitosAura(1,tempo/8,cid)
        end
        return TRUE
end

No caso, todos os players com level maior que 1000 possuirão aura. E vai ser ligada automaticamente assim que logar.

 

Desculpas revier o tópico mas quero mt esse escript, como eu faço para colocar storage de uma vip nela?

Storage : 23565

Link para o post
Compartilhar em outros sites
  • 2 months later...
Em 17/05/2014 em 14:05, bielzinhocrazy disse:

Olá pessoal do TibiaKing,

Hoje venho trazer um script sistema de auras, que explicado superficialmente, é uma bolha de luz que te rodeia constantemente (é possível mudar o efeito visual da aura, como você poderá conferir no script), e possui uma chance pré-determinada pela pessoa, em porcentagem, de curar a cada volta que dá no player. Para ligar a aura digite !aura on, e para desligar !aura off. Vocês podem conferir como funciona assistindo o vídeo a seguir : 

 

 

Bom, vamos aos códigos.

Primeiro, na pasta de seu OT, vá em data\talkactions\scripts, e crie um novo arquivo chamado aura.lua, e coloque isto nele (serão necessários dois storages) : 


-- CONFIGURAÇÕES
	aurastr = 25950 -- storage da aura
	estr = 25951 -- storage para o exhaust
	porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem
	quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura)
	tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
	tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
	efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)

-- Função que chama a aura
function efeitosAura(i,tm,cid)
	if(isCreature(cid)) then
        	local atual = getCreaturePosition(cid)
		local posaura = {
			{x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
			{x=atual.x, y=(atual.y)-1, z=atual.z},
			{x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
			{x=(atual.x)+1, y=atual.y, z=atual.z},
			{x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
			{x=atual.x, y=(atual.y)+1, z=atual.z},
			{x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
			{x=(atual.x)-1, y=atual.y, z=atual.z},
		}
		local chances = math.random(100)
		if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then
			doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
			if(i<=8 and i>1) then
				doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura)
			else
				doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
			end
			doSendMagicEffect(atual, efeitocura)
		end
		if(i==8) then
			doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
		elseif(i<8) then
			doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
		end
		if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then
			i = i+1
			tm = tempo/8
			return addEvent(efeitosAura,tm,i,tm,cid)
		elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then
			return efeitosAura(1,0,cid)
		else
			return TRUE
		end
	else
		return TRUE
	end
end

-- Função principal
function onSay(cid, words, param, channel)
	if(param=="on") then
		if getPlayerStorageValue(cid, estr) > os.time() then
			doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.")
		else
			if(getPlayerStorageValue(cid, aurastr)==2) then
				doPlayerSendCancel(cid,"Sua aura já está habilitada.")
			elseif(getPlayerStorageValue(cid, aurastr)==-1) then
				doPlayerSendCancel(cid,"Aura ligada!")
				setPlayerStorageValue(cid, aurastr, 2)
				efeitosAura(1,tempo/8,cid)
			end
		end
	elseif(param=="off") then
		if(getPlayerStorageValue(cid, aurastr)==2) then
			setPlayerStorageValue(cid, estr, os.time()+2)
			setPlayerStorageValue(cid, aurastr, -1)
			doPlayerSendCancel(cid,"Aura desligada!")
		end
	else	
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.")
	end
	return TRUE
end 

As configurações estão comentadas, portanto é só modificar de acordo com as suas preferências.

 

Agora, em data\talkactions, abra o arquivos talkactions.xml, e cole isto dentro dele :


<talkaction words="!aura" event="script" value="aura.lua"/>

Após feito isso, para evitar erros ao player logar, será necessário criar um script que mudará o storage da aura toda vez que o player se logar novamente, para isso, vá em data\creaturescripts\scripts e crie um arquivo chamado auralogin.lua, e cole isto : 


function onLogin(cid)
	aurastr = 25950 -- storage da aura
	setPlayerStorageValue(cid, aurastr, -1)
	return TRUE
end

Após isto, vá em data\creaturescripts e abra o arquivo creaturescripts.xml, e cole o seguinte código nele :


<event type="login" name="AuraLogin" script="auralogin.lua"/>

E pronto! Agora é só desfrutar do sistema.

 

OBS : Se você der /reload talkactions no OT em execução, com algum player estando com aura em execução, elas serão interrompidas e será necessário usar !aura off, e !aura on, para reabilitá-las. Portanto cuidado!


Créditos : Eu mesmo(Fakezim/BielzinhoCrazy/GMLeal, tanto faz o nick rererere)

Obrigado pessoal!

 

Como coloco só pra vip poder usa? teria que coloca no. talkaction.xml access="2" ex:

"<talkaction words="!aura" access="2" event="script" value="aura.lua"/>" ?  e como eu descubro o qual é o access de vip,god,tutor,plays eetc ?

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

Jamais se desespere em meio as sombrias afeiçoes da sua vida, pois das nuvens mais negras cai água límpida e fecunda

Link para o post
Compartilhar em outros sites
  • 1 month later...
  • 1 year later...

Sry reviver esse tópico mais é possível fazer que só vip possa utilizar? 

Jamais se desespere em meio as sombrias afeiçoes da sua vida, pois das nuvens mais negras cai água límpida e fecunda

Link para o post
Compartilhar em outros sites
  • 11 months later...
  • 1 year later...
Em 21/05/2014 em 16:32, bielzinhocrazy disse:

Sim, também é possível, fiz de uma maneira bem improvisada pra você ter uma ideia de como fazer :

em data\npcs crie um arquivo NOMEDONPC.xml, e cole isto :


<?xml version="1.0" encoding="UTF-8"?>
<npc name="NOMEDOSEUNPC" script="data/npc/scripts/auranpc.lua" walkinterval="50000" floorchange="0">
<health now="100" max="100"/>
<look type="129" head="95" body="116" legs="121" feet="115" addons="3"/>
<parameters>
<parameter key="message_greet" value="Oi |PLAYERNAME|. Eu possuo a habilidade de ceder {aura}. O que deseja?"/>
</parameters>
</npc>

Coloque o nome do npc, e outfits de sua preferência.

agora vá em data\npcs\scripts, crie um arquivo chamado auranpc.lua, e cole isto :


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid)						 npcHandler:onCreatureAppear(cid)					 end
function onCreatureDisappear(cid)					 npcHandler:onCreatureDisappear(cid)					 end
function onCreatureSay(cid, type, msg)				 npcHandler:onCreatureSay(cid, type, msg)			 end
function onThink()									 npcHandler:onThink()								 end
function creatureSayCallback(cid, type, msg)
	 if(not npcHandler:isFocused(cid)) then
			 return false
	 end
	 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	 if msgcontains(msg, 'aura') then
					 if getPlayerStorageValue(cid,20201) ~= 1 then
					 selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid)
					 talkState[talkUser] = 1
					 else
					 selfSay('Você já possui aura.', cid)
					 end
	 elseif talkState[talkUser] == 1 then
			 if msgcontains(msg, 'yes') then
							 if doPlayerRemoveMoney(cid, 10000000) then
									 setPlayerStorageValue(cid,20201,1)
									 selfSay('Parabéns, agora você possui aura!', cid)
									 talkState[talkUser] = 0
							 else
									 selfSay('Você não possui o dinheiro necessário.', cid)
							 end
			 else
					 selfSay('Então porque veio aqui?', cid)
			 end
	 end
	 return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Você pode configurar o dinheiro (ou item) necessário ali na parte "doRemovePlayerMoney", logo após o if. Se desejar algum item, escreva "doRemovePlayerItem(cid,ID do item, quantidade)". Quando você fizer isso, também deve mudar a mensagem do NPC em que diz o que precisa, que é a parte "selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid)".

 

Logo após isso, vá no creaturescript da aura (data\creaturescripts\scripts\aura.lua), e apenas na função principal (onLogin), troque por isto :


function onLogin(cid)
	if(getPlayerStorageValue(cid, 20201)==1) then
		return efeitosAura(1,tempo/8,cid)
	end
	return TRUE
end

E pronto, agora é só adicionar o NPC no seu mapa.

Desculpa tá revivendo esse tópico mas eu queria saber se para o áurea funcionar no npc precisa ADC a Scripts no talkactions 

Link para o post
Compartilhar em outros sites
44 minutos atrás, DavyziinC disse:

Desculpa tá revivendo esse tópico mas eu queria saber se para o áurea funcionar no npc precisa ADC a Scripts no talkactions 

Precisa, porque o npc vai lhe vender apenas a storage para usar a aura. Logo, precisa do script dela. Lembrando que por talkactions o player pode ativar e desativar ela, mas o dono do tópico postou a versão creaturescript onde o player fica com ela 24/7

                                                                                                               destinyshield.gif.9f031b59b026058f32a1c50da92ebe2a.gif  mídias sociais  destinyshield.gif.02fca81ab0615e050b2bcefd8a73a2e8.gif

                                                                                                                            talk to me              

                                                                                                                               vídeos           

                                                                                             

                                                                                                            LOGONORMAL.png.815b40b04ec583be88d8a1e2626fe430.png

                                                                                                           

                               

Link para o post
Compartilhar em outros sites
3 minutos atrás, DavyziinC disse:

Entendi, no caso vai ficar 24/7 msm só que eu não queria que funcionasse pelo comando apenas por npc 

Ao invés de instalar pela talkaction, instala pelo creaturescript (o dono do post ensinou no começo do tópico). E faça o npc normalmente.

                                                                                                               destinyshield.gif.9f031b59b026058f32a1c50da92ebe2a.gif  mídias sociais  destinyshield.gif.02fca81ab0615e050b2bcefd8a73a2e8.gif

                                                                                                                            talk to me              

                                                                                                                               vídeos           

                                                                                             

                                                                                                            LOGONORMAL.png.815b40b04ec583be88d8a1e2626fe430.png

                                                                                                           

                               

Link para o post
Compartilhar em outros sites
Agora, DavyziinC disse:

Entendi, no caso vai ficar 24/7 msm só que eu não queria que funcionasse pelo comando apenas por npc 

Uma outra dúvida aqui teria como por essa Scripts por banu? Pq se tiver como ao invés de por npc eu iria por no banu pq minha intenção e criar uma Quest para os players fazer 

2 minutos atrás, Rogex Joyz disse:

Ao invés de instalar pela talkaction, instala pelo creaturescript (o dono do post ensinou no começo do tópico). E faça o npc normalmente.

Então no caso não precisa ADC a Scripts no talkactions apenas no creaturesevents?

Link para o post
Compartilhar em outros sites
3 minutos atrás, DavyziinC disse:

Uma outra dúvida aqui teria como por essa Scripts por banu? Pq se tiver como ao invés de por npc eu iria por no banu pq minha intenção e criar uma Quest para os players fazer 

 Segue, só por no baú da sua quest : script de @Rusherzin

function onUse(cid)

local storage = Coloque aqui a storage da aura

	if getPlayerStorageValue(cid, storage) ~= 1 then
	doPlayerSetStorageValue(cid, storage, 1)
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Coloque aqui a msg que o player vai ver quando clicar pela primeira vez no baú")
	
	elseif getPlayerStorageValue(cid, storage) == 1 then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Coloque aqui a msg que o player vai ver quando tentar clicar novamente no baú e já tiver a aura")
	
	end
return TRUE
end
8 minutos atrás, DavyziinC disse:
Spoiler

-- CONFIGURAÇÕES
    porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura)
    tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)

-- Função que chama a aura
function efeitosAura(i,tm,cid)
    if(isCreature(cid)) then
            local atual = getCreaturePosition(cid)
        local posaura = {
            {x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
            {x=atual.x, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=atual.y, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
            {x=atual.x, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=atual.y, z=atual.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura)
            else
                doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
            end
            doSendMagicEffect(atual, efeitocura)
        end
        if(i==8) then
            doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
        elseif(i<8) then
            doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
        end
        if(i<=8) then
            i = i+1
            tm = tempo/8
            return addEvent(efeitosAura,tm,i,tm,cid)
        else
            return efeitosAura(1,0,cid)
        end
    else
        return TRUE
    end
end

--Função principal
function onLogin(cid)
    return efeitosAura(1,tempo/8,cid)
end

Então no caso não precisa ADC a Scripts no talkactions apenas no creaturesevents?

Adicione o script em data\creaturescripts\scripts em um arquivo chamado auralogin.lua e depois vá em data\creaturescripts, abra creaturescripts.xml, e adicione a linha :

<event type="login" name="AuraLogin" script="auralogin.lua"/>

 

                                                                                                               destinyshield.gif.9f031b59b026058f32a1c50da92ebe2a.gif  mídias sociais  destinyshield.gif.02fca81ab0615e050b2bcefd8a73a2e8.gif

                                                                                                                            talk to me              

                                                                                                                               vídeos           

                                                                                             

                                                                                                            LOGONORMAL.png.815b40b04ec583be88d8a1e2626fe430.png

                                                                                                           

                               

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por looktsx
      Salve Rapaziada tudo bom .
      queria ajuda pra cria um teleport ou uma alavanca com tempo ..
      depois do player usa o teleport ou a lavanca ele so poderá usa depois de tal determinado tempo.
       
      SERVIDOR 12.91
      Se alguem poder me ajuda vou fica grato ,
      des de ja agradeço a todos.
      ..
    • Por willian646
      O evento é totalmente baseado no Foxy Quiz proveniente do GLA, no entanto é apenas uma base para vocês alterarem como acharem melhor.
      Para começar será necessario que você crie um arquivo em talkactions>scripts para entrar no evento, como por exemplo : participar.lua
      e entao colocar sua tag em talkactions.xml, como por exemplo: 
      <talkaction words="!participar;/participar" script="!participar.lua"/> Tendo feito isso você irá colar esse codigo dentro desse arquivo: 
      function onSay(cid, words, param)pos = {x=1236, y=1125, z=15} --POSIÇAO QUE O PLAYER IRÁ COM O COMANDO if getGlobalStorageValue(88788) == 1 then doSendMagicEffect(getPlayerPosition(cid),19) doTeleportThing(cid,pos) else doPlayerSendCancel(cid, "Desculpe mas o evento esta fechado !") end return true end Agora iremos para o script principal, vá em global events>scripts e crie o arquivo pokequiz.lua em seguida coloque sua tag em globalevents.xml como por exemplo: 
      <globalevent name="Pokequiz" interval="10" event="script" value="pokequiz.lua"/> Lembrando que o intervalo de inicio do evento é com vcs, Tendo feito isso abra o arquivo e cole o  seguinte código dentro : 
      quizstrg = 88788 local wave = 0 local CPpos = {x=1051, y=1047, z=7} --POSIÇAO QUE O PLAYER IRÁ SE ERRAR function wave_acresc() wave = wave + 1 addEvent(Quiz, 5000) end function Quiz() if wave == 1 then doBroadcastMessage("Na serie pokemon RAYQUAZA possui mega evolucao ?", RED) addEvent(Resposta, 10000) elseif wave == 2 then doBroadcastMessage("Na serie pokemon ARCEUS e considerado um pokemon RARO ?", RED) addEvent(Resposta, 10000) elseif wave == 3 then doBroadcastMessage("Na serie pokemon MEW criou os 3 caes lendarios ?", RED) addEvent(Resposta, 10000) elseif wave == 4 then doBroadcastMessage("Na serie pokemon ARCEUS tem o poder de mudar de tipo livremente ?", RED) addEvent(Resposta, 10000) elseif wave == 5 then doBroadcastMessage("Na serie pokemon GIRATINA possui 2 formas sendo elas alterada e fantasma ?", RED) addEvent(Resposta, 10000) elseif wave == 6 then doBroadcastMessage("Na serie pokemon DIALGA e PALKIA sao rivais ?", RED) addEvent(Resposta, 10000) elseif wave == 7 then doBroadcastMessage("Na serie pokemon CELEBI possui a habilidade de viajar entre dimensoes ?", RED) addEvent(Resposta, 10000) elseif wave == 8 then doBroadcastMessage("Na serie pokemon SOLGALEO e a primeira evolucao de cosmog ?", RED) addEvent(Resposta, 10000) elseif wave == 9 then doBroadcastMessage("Na serie pokemon MAGEARNA e uma das ultra beasts ?", RED) addEvent(Resposta, 10000) elseif wave == 10 then doBroadcastMessage("Na serie pokemon a cor original de MAGEARNA e laranja ?", RED) addEvent(Resposta, 10000) elseif wave == 11 then doBroadcastMessage("O evento Quiz terminou !", RED) addEvent(winPlayers, 5000) end end function Resposta() if wave == 1 then addEvent(TPFalso, 5000) elseif wave == 2 then addEvent(TPVerdadeiro, 5000) elseif wave == 3 then addEvent(TPVerdadeiro, 5000) elseif wave == 4 then addEvent(TPFalso, 5000) elseif wave == 5 then addEvent(TPVerdadeiro, 5000) elseif wave == 6 then addEvent(TPFalso, 5000) elseif wave == 7 then addEvent(TPVerdadeiro, 5000) elseif wave == 8 then addEvent(TPVerdadeiro, 5000) elseif wave == 9 then addEvent(TPVerdadeiro, 5000) elseif wave == 10 then addEvent(TPFalso, 5000) end end function TPFalso() for _, sid in ipairs(getPlayersOnline()) do local posi = {x=1236, y=1122, z=15} local posf = {x=1243, y=1128, z=15} local pos = getPlayerPosition(sid) if isInArea(pos, posi, posf) then doTeleportThing(sid,CPpos) end addEvent(wave_acresc, 5000) end end function TPVerdadeiro() for _, sid in ipairs(getPlayersOnline()) do local posi = {x=1228, y=1122, z=15} local posf = {x=1235, y=1128, z=15} local pos = getPlayerPosition(sid) if isInArea(pos, posi, posf) then doTeleportThing(sid,CPpos) end addEvent(wave_acresc, 5000) end end function winPlayers() for _, sid in ipairs(getPlayersOnline()) do local posi = {x=1228, y=1122, z=15} local posf = {x=1243, y=1128, z=15} local pos = getPlayerPosition(sid) if isInArea(pos, posi, posf) then doTeleportThing(sid,CPpos) doPlayerAddItem(sid,2159, 10) end wave = 0 setGlobalStorageValue(88788, 0) end end --AVISOS DE INICIO function finalEventWarning() if getGlobalStorageValue(quizstrg) == 1 then setGlobalStorageValue(88788, 2) doBroadcastMessage("O evento Quiz fechou, a primeira pergunta surgira em 30 segundos.", RED) addEvent(wave_acresc, 30000) end end function secondEventWarning() if getGlobalStorageValue(quizstrg) == 1 then doBroadcastMessage("O evento Quiz ira iniciar em 1 minuto, usem o comando !participar ou /participar.", RED) addEvent(finalEventWarning, 60000) end end function firstEventWarning() if getGlobalStorageValue(quizstrg) == 1 then doBroadcastMessage("O evento Quiz ira iniciar em 3 minutos, usem o comando !participar ou /participar.", RED) addEvent(secondEventWarning, 120000) end end function onThink(interval, lastExecution) if getGlobalStorageValue(quizstrg) == 0 then setGlobalStorageValue(88788, 1) doBroadcastMessage("O evento Quiz ira iniciar em 5 minutos, usem o comando !participar ou /participar.", RED) addEvent(firstEventWarning, 120000) end return true end Já ia me esquecendo, a unica coisa ao qual vocês devem mudar de acordo com as coordenadas do seu mapa e área do evento são as funções TPVerdadeiro , TPFalso, winPlayers , elas servem para indicar qual área é a errada e teleportar quem tiver nessa área pro cp, caso o lado errado seja o esquerdo então será usado a função  TPVerdadeiro, e é a msm coisa para o outro lado, no caso da winPlayers é toda a área do evento.
       
      Aqui vai um exemplo: 
       
      E é isso rapaziada, não sei se já possui algum evento parecido por essas bandas, mas eu não encontrei ,então fiz  e resolvi contribuir com a comunidade, peço que se for repostar em algum outro lugar dê os devidos créditos, obg e até a próxima.
    • Por Ghaz
      Fala pessoal tudo bem?
       
      Estou com dificuldades em um script e preciso da ajuda dos magos do LUA rs.
       
      Tenho um script que quando o player morre (onDeath), ele faz algumas coisas e depois ele chama uma função que deveria retornar uma table (array) para eu fazer o for com o ipairs certinho. Segue abaixo o código:
       
       
      Segue abaixo a função getPlayersInArea:
       
       
      Acontece que no código de cima (do primeiro spoiler) eu dou um print no retorno da função getPlayersInArea, porém ela não tá me retornando a table, tá me retornando só: 2
       
       
       
      Alguém consegue me ajudar em, como raios eu faço a função retornar a lista de players ao invés da quantidade? Acredito que ta retornando o count da table, e não os itens do array.
       
       
      Agradeço desde já, valeu tchurma!
    • Por sannn
      --[[ /////////////////////////////////////////////////////////////////////////////////////////////////////// Discord: San#7791 -- Loja System 2.0 -- TFS 0.3.6 -- para adicionar qualquer item na loja: basta adicionar na tabelinha, seguindo o exemplo do vip! valor = quantidade de DIAMOND a ser cobrada; itemID = item a ser recebido; quantidade = quantidade de itens a ser recebidos; msg = mensagem que o player vai receber após comprar! Feito por San Discord: San#7791 exemplo de como comprar: !loja vip podendo ser adicionado a modules também. tag talkactions.xml // <talkaction words="!loja" case-sensitive="no" event="script" value="Loja System 2.0.lua"/> ////////////////////////////////////////////////////////////////////////////////////////////////////// depois de tantos sistemas com mil elseifs, vim trazer esta contribuição simples, para facilitar a vida de muitos adms! Contribuição pra comunidade =D ]]-- LOJA_CANCEL = "Você não possui diamantes o suficiente." LOJA_INVALID = "Não temos este item a venda na loja!" INVALID = "Comando incorreto" DIAMOND = 2145 -- item que será cobrado; tabelinha = { ["vip"] = {valor = 5, itemID = 2160, quantidade = 1, msg = "Obrigado por comprar um VIP em nossa loja!"}, -- coloque sempre minusculo o nome ! ["vip"]... etc } function onSay(cid, words, param, channel) local msg = string.lower(param) -- Não mexa! if msg == "" then doPlayerSendTextMessage(cid, 22, INVALID) return true end -- verificação if tabelinha[msg] == nil then doPlayerSendTextMessage(cid, 22, INVALID) return true end -- verificação if tabelinha[msg].valor then if getPlayerItemCount(cid, DIAMOND) >= tabelinha[msg].valor then doPlayerRemoveItem(cid, DIAMOND, tabelinha[msg].valor) doPlayerAddItem(cid, tabelinha[msg].itemID, tabelinha[msg].quantidade) doPlayerSendTextMessage(cid, 20, tabelinha[msg].msg) else doPlayerSendTextMessage(cid, 22, LOJA_CANCEL) return true end else doPlayerSendTextMessage(cid, 22, LOJA_INVALID) end return true end  
    • Por Guilherme.
      Bom galera, certa vez eu abri um servidor de tibia 8.55, ai pra incrementar ele resolvi colocar um sistema que faz com que o player compre os Itens VIPs direto do jogo.
       
       
      Funciona assim: Eu disponibilizei no site, a venda de moedas que podem ser usadas para comprar tanto VIP Account, quanto Itens VIP direto do jogo. O jogador que compra as moedas, recebe 100 delas e para poder comprar os itens eu editei uma TalkAction que veio no Baiak Yourots que era uma simples quest por comando, e transformei em uma ótima ferramenta para servidores com sistema vip.
      Vamos ao Script:
      Vá em data\talkactions\scripts , e crie um arquivo com o nome desejado e com o final ".lua" (Exemplo: ex.lua)
      Coloque isso dentro:
      Edite conforme você quiser, salve e feche.
      Laranja: ID do iten que vai servir como "moeda"
      Verde: Quantidade do iten
      Vermelho: ID do iten que o player vai receber quando usar o comando
      Azul: Quantidade do iten recebido
      Roxo: Palavra que aparecerá quando o player digitar o comando
      Rosa: Mensagem enviada ao player caso ele não tenha o iten ou quantidade neessária para a compra.
      Agora vá em "data\talkactions\" , edite o talkactions.xml
      Coloque isso la dentro:
      Verde: O Que o Player irá falar para usar o comando. ( Exemplo: !armor )
      Azul: O Nome do Arquivo que você criou em "data\talkactions\scripts". ( Exemplo: ex.lua )
      Créditos:
      Script: Baiak Lula ( Peguei o script do OT dele então, não tenho Certeza )
      Edição e Nova Função: Guilherme.
      COMENTEM !

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo