Ir para conteúdo
  • 0

[Resolvido] [PEDIDO] Scripts de spawn no mapa


rafersiq

Pergunta

Posts Recomendados

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0

 

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 ?

Link para o comentário
Compartilhar em outros sites

  • 0
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.

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

  • 0
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?

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0
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 

Link para o comentário
Compartilhar em outros sites

  • 0
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

 

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

  • 0
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?

Link para o comentário
Compartilhar em outros sites

  • 0
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. 

Link para o comentário
Compartilhar em outros sites

  • 0
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 

Link para o comentário
Compartilhar em outros sites

  • 0
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.

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

  • 0
12 minutos atrás, Yan18 disse:

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?

e que eu tou querendo meio que fazer um evento tipo vc mata x quantia de pokemon e um certo pokemon spawna em um canto mais ou menos isso

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...