Ir para conteúdo
  • Cadastre-se

(Resolvido)Spawn de monstro raro


Ir para solução Resolvido por lordzetros,

Posts Recomendados

 

Boa tarde galera, eu tenho um script aqui (que eu esqueci de quem que era) e ele cumpri o que promete, de acordo com um certo período de tempo, existe uma chance do monstro spawnar em um certo lugar. Mas esse script tem um único problema.

 

Mesmo que seja remota, ainda existe uma chance de spawnar 2x essa criatura depois que o intervalo de tempo passou.

Nessa script, eu coloquei que a cada 3 horas, tem 15% de chance de spawnar essa criatura, mas se passou 6h, e ninguém matou, tem a possibilidade de nascer mais 1, e ai fica 2 monstros la.

 

O que eu queria era que o script checasse se o monstro tava la, e se tivesse, ele pularia aquela hora, não spawnando ele.

 

Aqui esta o script:

Citar

 

local positions =    
{
{x = 1135, y = 1253, z = 7}
}

local m = {"Wyvern Rare"} 

function onThink(interval, lastExecution, thinkInterval)
if(math.random(1, 100) < 15) then 
local pos = positions[math.random(1, #positions)]
local monster = m[math.random(1,#m)]
if(type(doCreateMonster(m[math.random(1,#m)], {x=pos.x, y=pos.y, z=pos.z}, false)) == "number") then
end
end
return true
end

 

Obrigado.
 

Link para o post
Compartilhar em outros sites
  • Solução
local positions = {
{x = 1135, y = 1253, z = 7}
}

local m = {"Wyvern Rare"}

function onThink(interval, lastExecution, thinkInterval)
	if(math.random(1, 100) < 15) then 
		if not (isCreature(n_monster)) then
			local pos = positions[math.random(1, #positions)]
			local monster = m[math.random(1,#m)]
			n_monster = doSummonCreature(monster, pos)
		end
	end
	return true
end

?

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites

@Zzyzx 

Esse código que mandei modificado é para colocar em data/globalevents/scripts/NOMEdoArquivo.lua

 

E em data/globalevents/globalevents/globalevents.xml

Adicione:

<globalevent name="Event rare" interval="3600000" event="script" value="NOMEdoArquivo.lua"/>

Vai ativar o script a cada 1 hora, por exemplo.

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

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

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

@Zzyzx 

Esse código que mandei modificado é para colocar em data/globalevents/scripts/NOMEdoArquivo.lua

 

E em data/globalevents/globalevents/globalevents.xml

Adicione:


<globalevent name="Event rare" interval="3600000" event="script" value="NOMEdoArquivo.lua"/>

Vai ativar o script a cada 1 hora, por exemplo.

 

Tendi, seguinte consegue fazer uma modificação pra mim? queria por mais monstros pra aparecer em outros locas, mas no mesmo script, pra nao ter que fazer varios.

       112674.gif

 

 

 

Link para o post
Compartilhar em outros sites

@Zzyzx Tem sim, já já modifico aqui, caso não termine em tempo, quando chegar no trampo eu resolvo isso para você.

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
function onThink(interval, lastExecution, thinkInterval)

local t = {
monster = "Dragon", -- nome do monstro
pos = {x=1,y=1,z=1}, -- posição onde irá nascer
chance = 30, --- chance para o monstro ser sumonado
tempo = 60000 * 10 -- troque o número 10 pelo tempo em minutos para o monstro sumir caso ninguém vá matá-lo
}

if(math.random(1, 100) <= t.chance) then
  doBroadcastMessage("Um "..t.monster.." apareceu lá!")
  pid = doCreateMonster(t.monster, t.pos)
  addEvent(remove, t.tempo, pid)
end
return TRUE
end

function remove(pid)
 if(isMonster(pid) == true) then
 doRemoveCreature(pid)
 end
end

 

<globalevent name="CreateMonster" interval="3600000" event="script" value="NOMEDOSEUARQUIVO.lua"/>

 

Link para o post
Compartilhar em outros sites

@Zzyzx tá nas mãos, ?

 


local monstros = {
{nome = "Loki", pos = {x = 1023, y = 1038, z = 7}}, -- Segue padrão para você adicionar = nome e pos que ele irá respawnar, <-- não esqueça da vírgula caso adicione outro abaixo
{nome = "Demon", pos = {x = 1023, y = 1039, z = 7}},
{nome = "Rat", pos = {x = 1023, y = 1040, z = 7}},
}

local mts = {}
local chance = 15
function onThink(interval, lastExecution, thinkInterval)
	if(math.random(1, 100) < chance) then 
		for i = 1, #monstros do
			if not isCreature(mts["n_monster" .. i]) then
					mts["n_monster" .. i] = doSummonCreature(monstros[i].nome, monstros[i].pos)
			end
		end
	end
	return true
end

 

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

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

@lordzetros Amigo, desculpa a demora, mas eu percebi um bug no seu script.

Como eu tinha colocado um monstro raro mais fácil de aparecer, e um mais difícil, eu achei que era isso. Eu coloquei em 2 scripts diferentes, ai se um monstro raro nascesse, no caso o mais fácil, o outro não nasce. Eu tinha colocado um monstro pra ter a chance de 55% de aparecer a cada meia hora, e o outro tinha a chance de 25% de aparecer a cada 8 horas. Mas se o primeiro de meia hora estivesse vivo, o de 8 hrs não aparecia, entendeu? Eu não entendi como 2 scripts diferentes parece que interagem entre si. Enquanto um esta vivo, o outro não nasce.

Ai eu fui testar esse outro que você fez para o cara que pediu ali em cima, porem, o erro é outro. Enquanto todos os monstros não morrerem, um não nasce de novo. Por exemplo, se você matou só o demon, ele não vai spawnar até o Loki e o Rat seja morto.

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo