Ir para conteúdo
  • 0

[Resolvido] [PEDIDO] Scripts de spawn no mapa


rafersiq

Pergunta

Posts Recomendados

  • 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

  • 0
22 minutos atrás, rafersiq disse:

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

Saquei! Funcionou o script? Populou a tabela corretamente? Coloquei posições genéricas.

 

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

  • 0
3 minutos atrás, Yan18 disse:

Saquei! Funcionou o script? Populou a tabela corretamente? Coloquei posições genéricas.

vou testar agora 

estava assistndo vidio no youtuber e acabei nao testando ainda

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Yan18 disse:

Ok, testa e me avisa!

ok

4 horas atrás, Yan18 disse:

Ok, testa e me avisa!

testei e deu o mesmo bug o pokemon que esta no scripts ele morrre mas a sprite dele ainda fica la no local e nao conta a kill

eu testei se bugava os outros mas vi que so buga o charizard que esta no scripts

Link para o comentário
Compartilhar em outros sites

  • 0
local C ={
	['demon'] = {boss='orshabaal',store=2001,pos={x=0,y=0,z=0},quant=10000}, -- 10k demon killed summon 1 orshabaal
	['dragon lord'] = {boss='demodras',store=2000,pos={x=0,y=0,z=0},quant=2500}, -- 2,5k dl killed summon 1 Demodras
}

function onKill(cid, target)
local Mname = getCreatureName(target)
	if(getGlobalStorageValue(C[Mname].store) >= C[Mname].quant)then
		if not(getCreatureByName(C[Mname].boss))then
			--executeRaid(C[Mname].boss) -- seria um otimo metodo caso queira implementar.
			doCreateMonster(C[Mname].boss, C[Mname].pos)
			setGlobalStorageValue(C[Mname].store,-1)
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"boss foi sumonado")
		end
	end
	local gstore = getGlobalStorageValue(C[Mname].store) < 0 and 0 or getGlobalStorageValue(C[Mname].store)
	setGlobalStorageValue(C[Mname].store,gstore+1)
	return true
end

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 06/01/2021 em 18:47, rafersiq disse:

ok

testei e deu o mesmo bug o pokemon que esta no scripts ele morrre mas a sprite dele ainda fica la no local e nao conta a kill

eu testei se bugava os outros mas vi que so buga o charizard que esta no scripts

Foi erro meu, bobiei.

 

Arrumei o código e agora está funcionando normal:

 

image.thumb.png.73b4cb75555f10b1403ef3435a4f58f8.png

 

Substitua 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}},
}

------------------------------- CÓDIGO -----------------------------
function onKill(cid, target)
local random_chance = math.random(100) -- VARIÁVEL QUE GERA VALOR ALEATÓRIO
local storage_contador = 336699 -- STORAGE QUE ARMAZENA QUANTAS VEZES O POKEMON FOI DERROTADOS
local restante = total - getGlobalStorageValue(storage_contador) -- VARIÁVEL QUE GERA A DIFERENÇA ENTRE O TOTAL E O CONTADOR DOS POKEMONS DERROTADOS

	
	if getCreatureName(target) == pokemon_derrotar then
		if getGlobalStorageValue(storage_contador) < 1 then
			setGlobalStorageValue(storage_contador, 1)
		end	
		
		setGlobalStorageValue(storage_contador, getGlobalStorageValue(storage_contador) + 1)	
					
		if restante == 0 then						
			if (random_chance >= random_porcentagem) then
				for _, pokes in pairs(pokemons_spawn) do	
					doCreateMonster(pokes.pokemon, pokes.position)
				end
				
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você despertou a fúria de alguns pokémons, fuja para sobreviver!")
				setGlobalStorageValue(storage_contador, 1)
				return true
			
			else
				setGlobalStorageValue(storage_contador, 1)
				return true
			end	
		
		else
			return true	
		end		
	
	else
		return true
	end
end

 

Mesmo esquema das outras vezes, só alterar os valores das variáveis, mas para te facilitar, recomendo copiar o código somente a partir da linha function onKill(cid, target).

 

Conforme a imagem acima, está funcionando normal, mas qualquer problema só me avisar.

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

  • 0
Em 11/01/2021 em 01:47, Yan Oliveira disse:

Mesmo esquema das outras vezes, só alterar os valores das variáveis, mas para te facilitar, recomendo copiar o código somente a partir da linha function onKill(cid, target).

 

Conforme a imagem acima, está funcionando normal, mas qualquer problema só me avisar.

 

desculpa reviver esse post mas tem como colocar ao invez de ser um local determinada que o pokemon ira respawnar ele aparecer onde o utimo pokemon que o player matou o pokemon diferente ira  espawnar?

Link para o comentário
Compartilhar em outros sites

  • 0
De nada! Na próxima vez, coloque a resposta que resolveu seu problema como a melhor resposta para ajudar e facilitar outras pessoas com essa mesma dúvida no futuro. Dessa vez vou colocar para você.
 
O pedido neste tópico de foi atendido e/ou o autor do tópico resolveu sua duvida. Este tópico está fechado e foi movido para Pedidos - Resolvidos. Se você tiver outros pedidos, crie um novo tópico.

 

 

 

 

 

Editado por Yan Oliveira
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...