SH
suporte scripts

Mensagem ao spawnar um pokémon lendario

Por Sh4DoW GR, 24 de dez. de 2016 em Resolvidos

poketibia
14
8.1k
Sh4DoW GRS
24 de dezembro de 2016 às 19:08

Alguém por favor pode fazer um script que quando um adm spawnasse um pokémon lendario aparecesse uma mensagem para todos os player online?

 

Dou Rep++

 

:D

atakashiA
25 de dezembro de 2016 às 13:18

já pensou em um sistema de invasão?

tipo, tal hora do dia nasce tal lendário ai avisa o servidor todo.

ou se quer que avise toda hora que nascer?

Sh4DoW GRS
26 de dezembro de 2016 às 03:58

Um sistema de invasão seria dahora tbm

atakashiA
26 de dezembro de 2016 às 10:27

vou te passar um que utilizo.
 

globalevents: cria um arquivo, raid.lua
nele se vai editar,
name = 'nomedaraid'

type = 'weekly'

days = 'diadasemana'

hour = 'horaquevaiativar'

--[[- hora deve ser exata SERVER- para fazer o raid tera que ser ex: 00 hour(horas) e 00 minu (minutos)- para fazer a raid na data e hora no tempo exato, uso "exact"- para fazer a raid ocorrer todas as semanas (pelo menos 1x na semana) uso "weekly"- o nome dos dias sao ultilizados apenas para o tipo semanal que devera ser- "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"- tambem devem estar dentro de uma matriz-> {}]]local raids =	{		[1] =			{				name = 'Genesect',				type = 'weekly',				days = {'monday'},				hour = 19,				minu = 00			},		[2] =			{				name = 'Heatran',				type = 'weekly',				days = {'tuesday'},				hour = 19,				minu = 00			}			}	local last_execsutes = {}function onThink(interval, lastExecution, thinkInterval)	local static_time = os.time()	for k, raid in ipairs(raids) do		if (raid.type == 'weekly') then			local day = os.date("%A", static_time):lower()			if isInArray(raid.days, day) then				local hour = tonumber(os.date("%H", static_time))				if (raid.hour == hour) then					local minute = tonumber(os.date("%M", static_time))					if (raid.minu == minute) then						local day_number = tonumber(os.date("%d", static_time))						if (last_execsutes[k] ~= day_number) then							last_execsutes[k] = day_number							doExecuteRaid(raid.name)						end					end				end			end		elseif (raid.type == 'exact') then			local month = tonumber(os.date("%m", static_time))			if (raid.date.month == month) then				local day = tonumber(os.date("%d", static_time))				if (raid.date.day == day) then					local hour = tonumber(os.date("%H", static_time))					if (raid.hour == hour) then						local minute = tonumber(os.date("%M", static_time))						if (raid.minu == minute) then							if (last_execsutes[k] ~= day) then								last_execsutes[k] = day								doExecuteRaid(raid.name)							end						end					end				end			end		end	end	return trueend

tag em globalevents.xml

 

<globalevent name="raid" interval="60" script="raid.lua"/>

em raids, cria um arquivo invasaosegunda.xml

 

<raid><announce delay="1000" type="event" message="Sistema de Invasao Informa, Heatran Esta Ressurgindo no Porao do Templo Flower." /><announce delay="60000" type="event" message="Sistema de Invasao Informa, Corra Para Ajudar a Conter a Invasao do Templo Flower." /><announce delay="120000" type="event" message="Sistema de Invasao Informa, Os Pokemons estao surgindo, ja avistei o primeiro." /><areaspawn delay="1001" fromx="1032" fromy="1118" fromz="8" tox="1059" toy="1142" toz="8"><monster name="Jirachi" amount="2" /><monster name="Lugia" amount="2" /><monster name="Genesect" amount="2" /><monster name="Heatran" amount="2" /><monster name="Reuniclus" amount="2" /><monster name="Xerneas" amount="2" /><monster name="Yveltal" amount="2" /><monster name="Charizard Ultra" amount="10" /><monster name="Meganium Power" amount="15" /><monster name="Mega Tyranitar" amount="2" /><monster name="Mega Lucario" amount="5" /><monster name="Mega Gengar" amount="15" /><monster name="Mega Blastoise" amount="15" /><monster name="Heatran Boss" amount="1" /></areaspawn></raid>

se não souber editar esse script ai de cima se fala que eu te explico, ele é bem facil.

agora a tag em raids.xml

<raid name="Segunda" file="Inavasaosegunda.xml" interval2="5" margin="0" enabled="0"/>

 

prontinho seu sistema de invasão.

JosegvbJ
26 de dezembro de 2016 às 12:07

a pergunta seria onde editar a posiçao que os bixos irao nascer oO

Luga03L
26 de dezembro de 2016 às 12:25

Me explique melhor isso, você está dizendo um Pokémon, no caso todos lendários?, Colocado no mapa (Pelo RME), ao spawnar aparece um broadcast anunciando que ele spawno, certo? Ou você quer que ele seja spawnada por tal ação? Por exemplo, ao clicar em tal item, ou subir em tal tile ou algo do tipo ele spawna um pokémon lendário?

26 de dezembro de 2016 às 13:06
53 minutos atrás, Josegvb disse:

a pergunta seria onde editar a posiçao que os bixos irao nascer oO

<areaspawn delay="1001" fromx="1032" fromy="1118" fromz="8" tox="1059" toy="1142" toz="8">

lado esquerdo em cima da area,e lado de baixo direito da area,tipo um quadrado,e os summons iriam ser spawnados dentro deste quadrado.

Editado Dezembro 26 por kaleudd

JosegvbJ
26 de dezembro de 2016 às 13:53
41 minutos atrás, kaleudd disse:
<areaspawn delay="1001" fromx="1032" fromy="1118" fromz="8" tox="1059" toy="1142" toz="8">

lado esquerdo em cima da area,e lado de baixo direito da area,tipo um quadrado,e os summons iriam ser spawnados dentro deste quadrado.

 

obg, nao tinha olhado essa linha do codigo kk 

Sh4DoW GRS
26 de dezembro de 2016 às 16:52
4 horas atrás, Drazyn disse:

Me explique melhor isso, você está dizendo um Pokémon, no caso todos lendários?, Colocado no mapa (Pelo RME), ao spawnar aparece um broadcast anunciando que ele spawno, certo? Ou você quer que ele seja spawnada por tal ação? Por exemplo, ao clicar em tal item, ou subir em tal tile ou algo do tipo ele spawna um pokémon lendário?

Ao sumonar um lendario iria aparecer um broadcast para todos os player online avisando q um lendario deu spawn tipo no tibia qnd algum boss nasce tlg

Luga03L
26 de dezembro de 2016 às 22:28

No seu servidor tem a função onSpawn? Caso não saiba, me diga qual sua base.

 

Sh4DoW GRS
29 de dezembro de 2016 às 01:41
Em 26/12/2016 at 21:28, Drazyn disse:

No seu servidor tem a função onSpawn? Caso não saiba, me diga qual sua base.

 

Eu acho que não tem. Minha base é a Cyan

Editado Dezembro 29 por Sh4DoW GR

29 de dezembro de 2016 às 15:31
13 horas atrás, Sh4DoW GR disse:

Eu acho que não tem. Minha base é a Cyan

 

acho que tem.

 

vá em creaturescripts cria um arquivo lua e coloca isso dentro:

 

local lend = {"Mew","Mewtwo",              -- adicione o nome de todos os pokemons lendarios."Articuno"}function onSpawn(cid)for i = 1, #lend do	if getCreatureName(cid) == lend[i] then		doBroadcastMessage("Monster "..lend[i].." was created.")	endendreturn trueend

 

vá em creaturescripts.xml e coloca a tag

 

Citar

<event type="spawn" name="monsterLend" registerTo ="monster" event="script" value="NomeDoArquivo.lua"/>

 

Luga03L
29 de dezembro de 2016 às 18:56

 

17 horas atrás, Sh4DoW GR disse:

Eu acho que não tem. Minha base é a Cyan

Caso for o PDA (Sem source), você poderá utilizar o código que irei lhe mandar, porém se for o com source, recomendo verificar se tem instalado o creatureevent onSpawn, caso não tiver, pegue um tutorial da internet e instale-o.

 

Coloque isso no creaturescripts.xml:

<event type="spawn" name="Spawn" event="script" value="NomeDoArquivo.lua"/>

E no arquivo que você criou coloque isso:

--{name = "Pokemon Name"} -- Em name você coloca o nome do pokémon.-- Caso você queira que aparece a mensagem default, pode deixar assim:-- {name = "Moltres"},-- Caso queira uma mensagem difente faça assim:-- {name = "Zapdos", msg = "Um deus majestoso do céu, com poderes de trovão acaba de aparecer."},local pokes = {	{name = "Moltres"},	{name = "Articuno", msg = "Um poderoso mew acaba de aparecer!"},	{name = "Zapdos", msg = "Um deus majestoso do céu, com poderes de trovão acaba de aparecer."},}local defaultMessage = "Um POKENAME acaba de aparecer!" -- Aqui você define a mensagem padrão, em POKENAME será substituido pelo nome da criatura.function onSpawn(cid) -- By Drazyn	local mensagem = ""	for _, b in pairs(pokes) do		if getCreatureName(cid):find(b.name) then			mensagem = b.msg or defaultMessage:gsub("POKENAME", b.name)			doBroadcastMessage(mensagem)		end	end	return trueend

Ele tem a função de ao spawnar ele envia uma mensagem para o servidor inteiro. Essa mensagem pode ser a padrão, ou você pode customizar para cada lendário ter sua própria mensagem. Deixei tudo explicado no código, alguma dúvida só comentar.

 

Não esqueça de registrar o evento no monstro, você pode fazer isso indo no XML do monstro e logo abaixo da tabela onde você define o loot, você coloca isso:

    <script>        <event name="Spawn"/>    </script>

 

Editado Dezembro 29 por Drazyn

Sh4DoW GRS
29 de dezembro de 2016 às 19:24
24 minutos atrás, Drazyn disse:

 

Caso for o PDA (Sem source), você poderá utilizar o código que irei lhe mandar, porém se for o com source, recomendo verificar se tem instalado o creatureevent onSpawn, caso não tiver, pegue um tutorial da internet e instale-o.

 

Coloque isso no creaturescripts.xml:

<event type="spawn" name="Spawn" event="script" value="NomeDoArquivo.lua"/>

E no arquivo que você criou coloque isso:

--{name = "Pokemon Name"} -- Em name você coloca o nome do pokémon.-- Caso você queira que aparece a mensagem default, pode deixar assim:-- {name = "Moltres"},-- Caso queira uma mensagem difente faça assim:-- {name = "Zapdos", msg = "Um deus majestoso do céu, com poderes de trovão acaba de aparecer."},local pokes = {	{name = "Moltres"},	{name = "Articuno", msg = "Um poderoso mew acaba de aparecer!"},	{name = "Zapdos", msg = "Um deus majestoso do céu, com poderes de trovão acaba de aparecer."},}local defaultMessage = "Um POKENAME acaba de aparecer!" -- Aqui você define a mensagem padrão, em POKENAME será substituido pelo nome da criatura.function onSpawn(cid) -- By Drazyn	local mensagem = ""	for _, b in pairs(pokes) do		if getCreatureName(cid):find(b.name) then			mensagem = b.msg or defaultMessage:gsub("POKENAME", b.name)			doBroadcastMessage(mensagem)		end	end	return trueend

Ele tem a função de ao spawnar ele envia uma mensagem para o servidor inteiro. Essa mensagem pode ser a padrão, ou você pode customizar para cada lendário ter sua própria mensagem. Deixei tudo explicado no código, alguma dúvida só comentar.

 

Não esqueça de registrar o evento no monstro, você pode fazer isso indo no XML do monstro e logo abaixo da tabela onde você define o loot, você coloca isso:

    <script>        <event name="Spawn"/>    </script>

 

 

Funcionou aqui mt obg ^^

Editado Dezembro 29 por Sh4DoW GR