[Resolvido] [PEDIDO] Scripts de spawn no mapa

rafersiq
em Resolvidos
  • 1
  • 2

rafersiq

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/03/19Posts: 389Gênero: MasculinoChar no Tibia: Rafersiq

ola pessoal do forum xtibia eu tou atras de um scripts que e o siguinte

o player matar uma quantia de pokemons e pode ter a sorte de um pokemon spawnar na area

--- My Discord ---

 

https://discord.gg/cP9RhJYHCc

 

--- about me ---

 

OtAdimin

Maper
front-end

strongernxs

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/09/20Posts: 7Gênero: MasculinoChar no Tibia: [ADM] Cloud

Bom... O Script de Summon Por Quantidade Eu nao tenho, alguns são exclusivos... Mas tenho de Sumonar Boss ao Clicar em uma Parede !!! Caso Queira. 

 

 

 

 

REP+

rafersiq

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/03/19Posts: 389Gênero: MasculinoChar no Tibia: Rafersiq
2 horas atrás, strongernxs disse:

Bom... O Script de Summon Por Quantidade Eu nao tenho, alguns são exclusivos... Mas tenho de Sumonar Boss ao Clicar em uma Parede !!! Caso Queira. 

 

Eu queria um que sumona um pokemon en determinadas horas ou quando o player mata tantos pokes e ele aparece

--- My Discord ---

 

https://discord.gg/cP9RhJYHCc

 

--- about me ---

 

OtAdimin

Maper
front-end

strongernxs

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/09/20Posts: 7Gênero: MasculinoChar no Tibia: [ADM] Cloud
13 minutos atrás, rafersiq disse:

 

Eu queria um que sumona um pokemon en determinadas horas ou quando o player mata tantos pokes e ele aparece

 

Eu tenho um Parecido ... Vc clica no item sumona o poke e quando mata o poke tem coowndon pra usar o click dnv

Yan Oliveira

Yan18
avatar
Moderador
Moderador

INFOS

Grupo: ModeradorRegistrado: 05/06/12Posts: 2221Gênero: Masculino

rafersiq

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/03/19Posts: 389Gênero: MasculinoChar no Tibia: Rafersiq

 

50 minutos atrás, Yan18 disse:

E isso é um evento ou task? 

 

E um evento

51 minutos atrás, Yan18 disse:

Qual a versão da TFS?

A versão e aqueles que sao pda e outros ne ?

--- My Discord ---

 

https://discord.gg/cP9RhJYHCc

 

--- about me ---

 

OtAdimin

Maper
front-end

Yan Oliveira

Yan18
avatar
Moderador
Moderador

INFOS

Grupo: ModeradorRegistrado: 05/06/12Posts: 2221Gênero: Masculino
6 horas atrás, rafersiq disse:

E isso é um evento ou task? 

 

E um evento

A versão e aqueles que sao pda e outros ne ?

 

Sobre a versão, então no seu caso muito provavelmente é 0.3.6, que é a versão atualmente de todos os Poketibia.

 

Se é evento, provavelmente é um pokémon que não terá em respawn, então não precisa de storage para deixa específica a kill dele (quando não tem storage, em qualquer situação vai contar como kill nesse script que vou fazer, por exemplo matar em respawn)

 

 

Vai em Data/Creaturescripts/Scripts e crie um arquivo chamado task_event.lua (ou o nome que preferir) e adicione o código dentro:

 

local pokemon_derrotar = "Charizard" -- NOME DO POKÉMON QUE PRECISA DERROTAR NA TASK
local total = 50 -- TOTAL DE POKEMON QUE PRECISA DERROTAR
local pokemon_spawn = "Mewtwo" -- NOME DO POKEMON QUE VAI SPAWNAR
local position_spawn = {x= 1000, y= 1000, z= 7} -- POSIÇÃO ONDE VAI SPAWNAR O POKEMON
local storage = 15879 -- STORAGE PARA VER SE JÁ FEZ A TASK
local random_porcentagem = 50 -- PORCENTAGEM QUE TEM DO POKEMON SPAWNAR AO TERMINAR A TASK

function onKill(cid, target)
local contador = 0
local random_chance = math.random(100)

	if getCreatureName(target) == pokemon_derrotar then
		if getPlayerStorageValue(cid, storage) < 1 then
			if (total - contador) > 0 then
				contador = contador + 1
			end
			
			if contador == total then
				setPlayerStorageValue(cid, storage, 1)
				
				if (random_chance >= random_porcentagem) then
					doSummonCreature(pokemon_spawn, position_spawn)
					doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você despertou a fúria de um pokémon, se prepare para o combate!")
				return true
				
				else
					return true
				end	
			end
			
		else
			return true
		end	
	
	else
		return true
	end
end

 

Agora vai em creaturescripts.xml e adicione a tag:

<event type="kill" name="task_event" script="task_event.lua" />

 

OBS: Caso tenha colocado um arquivo com nome diferente do que sugeri não se esqueça de trocar na tag xml.

 

E por fim em Data/Creaturescripts/Scripts abra o arquivo login.lua e procura seção de eventos e adiciona o evento:

registerCreatureEvent(cid, "task_event")

 

Deixei tudo comentado nas variáveis, só vai precisar trocar os valores. Lembrando que na variável random_porcentagem é a chance que vai ter de nascer o pokémon, como eu deixei 50, da tanto para verificar se vai ser maior que 50 ou menor, mas no caso deixei maior ou igual a 50, então qualquer valor acima de 50 gerado pela variável random_chance vai sumonar o pokémon. Se quer que tenha menos de 50% de chance, mude o valor da variável random_porcentagem e nessa verificação:

if (random_chance >= random_porcentagem) then

Mude para o valor desejado menor que 50, mas tem que mudar o if para:

if (random_chance <= random_porcentagem) then

 

Teste, e se der algum erro ou problema, me avise.

rafersiq

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/03/19Posts: 389Gênero: MasculinoChar no Tibia: Rafersiq
22 horas atrás, Yan18 disse:

Teste, e se der algum erro ou problema, me avise

ou mano vc sabe arumar um bug que da na pokebar que quanto solta um pokemon com addon pela pokebar , nao aparece o addon no pokemon?

--- My Discord ---

 

https://discord.gg/cP9RhJYHCc

 

--- about me ---

 

OtAdimin

Maper
front-end

Yan Oliveira

Yan18
avatar
Moderador
Moderador

INFOS

Grupo: ModeradorRegistrado: 05/06/12Posts: 2221Gênero: Masculino
2 horas atrás, rafersiq disse:

ou mano vc sabe arumar um bug que da na pokebar que quanto solta um pokemon com addon pela pokebar , nao aparece o addon no pokemon?

Cara, vamos focar primeiro no seu tópico aqui, eu fiz o script que você pediu e você não disse se funcionou ou não.

 

Sobre sua outra dúvida, já adianto que terá que criar um outro tópico para essa dúvida porque não tem relação com a dúvida deste tópico

rafersiq

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/03/19Posts: 389Gênero: MasculinoChar no Tibia: Rafersiq
36 minutos atrás, Yan18 disse:

Cara, vamos focar primeiro no seu tópico aqui, eu fiz o script que você pediu e você não disse se funcionou ou não.

o pokemon ficou bugado quando eu coloquei

ele fica sem vida mas nao some e aparece o corpo 

--- My Discord ---

 

https://discord.gg/cP9RhJYHCc

 

--- about me ---

 

OtAdimin

Maper
front-end

Yan Oliveira

Yan18
avatar
Moderador
Moderador

INFOS

Grupo: ModeradorRegistrado: 05/06/12Posts: 2221Gênero: Masculino
15 minutos atrás, rafersiq disse:

o pokemon ficou bugado quando eu coloquei

ele fica sem vida mas nao some e aparece o corpo 

Mas a task funcionou? Somente quando spawna o boss ele fica bugado?

 

Substitui o código por esse:

 

local pokemon_derrotar = "Charizard" -- NOME DO POKÉMON QUE PRECISA DERROTAR NA TASK
local total = 50 -- TOTAL DE POKEMON QUE PRECISA DERROTAR
local pokemon_spawn = "Mewtwo" -- NOME DO POKEMON QUE VAI SPAWNAR
local position_spawn = {x= 1000, y= 1000, z= 7} -- POSIÇÃO ONDE VAI SPAWNAR O POKEMON
local storage = 15879 -- STORAGE PARA VER SE JÁ FEZ A TASK
local random_porcentagem = 50 -- PORCENTAGEM QUE TEM DO POKEMON SPAWNAR AO TERMINAR A TASK

function onKill(cid, target)
local contador = 0
local random_chance = math.random(100)

	if getCreatureName(target) == pokemon_derrotar then
		if getPlayerStorageValue(cid, storage) < 1 then
			if (total - contador) > 0 then
				contador = contador + 1
			end
			
			if contador == total then
				setPlayerStorageValue(cid, storage, 1)
				
				if (random_chance >= random_porcentagem) then
					doCreateMonster(pokemon_spawn, position_spawn)
					doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você despertou a fúria de um pokémon, se prepare para o combate!")
				return true
				
				else
					return true
				end	
			end
			
		else
			return true
		end	
	
	else
		return true
	end
end

 

rafersiq

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/03/19Posts: 389Gênero: MasculinoChar no Tibia: Rafersiq
Em 04/01/2021 em 20:58, Yan18 disse:

Substitui o código por esse

Ou mano tem como tirar a storange pra conseguir fazer mais vezes e botar mais pokemons pra o evento?

--- My Discord ---

 

https://discord.gg/cP9RhJYHCc

 

--- about me ---

 

OtAdimin

Maper
front-end

Yan Oliveira

Yan18
avatar
Moderador
Moderador

INFOS

Grupo: ModeradorRegistrado: 05/06/12Posts: 2221Gênero: Masculino
6 horas atrás, rafersiq disse:

Ou mano tem como tirar a storange pra conseguir fazer mais vezes e botar mais pokemons pra o evento?

Tem sim, mas quantas vezes você quer? Da para limitar uma quantidade de vezes que o player faz. 

rafersiq

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/03/19Posts: 389Gênero: MasculinoChar no Tibia: Rafersiq
24 minutos atrás, Yan18 disse:

Tem sim, mas quantas vezes você quer? Da para limitar uma quantidade de vezes que o player faz.

eu queria deixar sem limit de vezes pra fazela 

--- My Discord ---

 

https://discord.gg/cP9RhJYHCc

 

--- about me ---

 

OtAdimin

Maper
front-end

Yan Oliveira

Yan18
avatar
Moderador
Moderador

INFOS

Grupo: ModeradorRegistrado: 05/06/12Posts: 2221Gênero: Masculino
32 minutos atrás, rafersiq disse:

eu queria deixar sem limit de vezes pra fazela 

Substitui o código por esse:

local pokemon_derrotar = "Charizard" -- NOME DO POKÉMON QUE PRECISA DERROTAR NA TASK
local total = 50 -- TOTAL DE POKEMON QUE PRECISA DERROTAR
local random_porcentagem = 50 -- PORCENTAGEM QUE TEM DO POKEMON SPAWNAR AO TERMINAR A TASK

-- TABELA COM OS POKEMONS QUE APARECERÃO AO DERROTAR A QUANTIDADE DO POKÉMON QUE COLOCOU NA VARIÁVEL pokemon_derrotar --
local pokemons_spawn = {
{pokemon = "Mewtwo", position = {x= 1000, y= 1000, z= 7}},
{pokemon = "Mew", position = {x= 1000, y= 1000, z= 7}},
{pokemon = "Articuno", position = {x= 1000, y= 1000, z= 7}},
{pokemon = "Zapdos", position = {x= 1000, y= 1000, z= 7}},
{pokemon = "Moltres", position = {x= 1000, y= 1000, z= 7}},
}


function onKill(cid, target)
local contador = 0
local random_chance = math.random(100)

	if getCreatureName(target) == pokemon_derrotar then
		if (total - contador) > 0 then
			contador = contador + 1
		end
		
		if contador == total then			
			if (random_chance >= random_porcentagem) then
				for i = 1, #pokemons_spawn do				
					doCreateMonster(pokemons_spawn[i].pokemon, pokemons_spawn[i].position)
				end	
				
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você despertou a fúria de alguns pokémons, fuja para sobreviver!")
				contador = 0
				return true
			
			else
				return true
			end	
		end		
	
	else
		return true
	end
end

 

Lembrando que assim que matar a quantidade de pokémons que você colocou nas variáveis total pokemon_derrotar vai ter a porcentagem de summonar todos os pokémons da tabela pokemons_spawn. Só colocar os pokémons e as posições que vão aparecer dentro da tabela.

 

Mas se é ilimitado esse evento/task, então não faz mais sentido com que sempre aparece o boss em vez de ter uma chance?

 

Testa o código e qualquer problema você me avisa.

  • 1
  • 2