Ir para conteúdo
  • Cadastre-se

[Script] Boss por X Kills de Monsters


Posts Recomendados

Fala pessoal! Eu quero fazer um script que ao matar 1000 dragons ou dragon lords, apareça um Boss na area X. E não quero que possa acumular, o script como ta se eu matar 3000 dragons o boss aparece acumulado 3 vezes. Eu quero que só possa aparecer outro depois que ele morrer.

SCRIPT ATUAL:

 

 

local t = {

["Dragon"] = {1003, "Demodras", 1000, l = {
[1] = {x = 248, y  = 1323, z = 11}, -- ["Nome do monstro"] = {Storage, NOME DO MONSTRO, QNT NECESSARIA PARA NASCER O BOSS, l = POSIÇÕES} 
}}
------------------------------
}

function onDeath(cid, corpse, deathList)
local killer = deathList[1]
if not isMonster(cid) or not isPlayer(killer) then
	return true
end

local a = t[getCreatureName(cid)]

	if a then
		if getGlobalStorageValue(a[1]) >= a[3] then
			doCreateMonster(a[2], a.l[math.random(#a.l)])
			setGlobalStorageValue(a[1], 0)       
			doBroadcastMessage("O monstro ".. a[2] .." nasceu!", 20)
		else
			setGlobalStorageValue(a[1], getGlobalStorageValue(a[1]) + 1)
		end
	end

	return true
end
Link para o post
Compartilhar em outros sites

Este tópico foi movido para a seção de Suporte Otserv.

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Link para o post
Compartilhar em outros sites
function doCreateMonsterWalkableAreaPosition(name, from, to)
   local pos {x=math.random(from.x, to.x), y=math.random(from.y, to.y), z=math.random(from.z, to.z)}
   if isWalkable(pos, false, false, false) then
      doSummonCreature(name, pos)
   else
      doCreateMonsterWalkableAreaPosition(name, from, to)
   end
end

local t = {
   [{"Dragon", "Dragon lord"}] = {storage = 741320, amount = 1000, boss = "demondras", from = {x = 230, y = 1315, z = 11}, to = {x = 248, y = 1323, z = 11}},
}


function onDeath(cid, corpse, deathList)
   local killer = deathList[1]
   if not isMonster(cid) or not isPlayer(killer) then
      return true
   end
   for v , r in pairs(t) do
      if isInArray(v, getCreatureName(cid)) then
         local contador = getGlobalStorageValue(r.storage) <= 0 and 0 or getGlobalStorageValue(r.storage)
         if contador >= r.amount then
            for x = r.from.x - 1, r.to.x + 1 do
               for y = r.from.y - 1, r.to.y + 1 do
                  local pos = {x=x, y=y, z=r.from.z}
                  local m = getTopCreature(pos).uid
                  if m ~= 0 and isMonster(m) then
                     doRemoveCreature(m)
                  end
               end
            end
            doCreateMonsterWalkableAreaPosition(r.boss, r.from, r.to)
            setGlobalStorageValue(r.storage, 0)
            doBroadcastMessage("O monstro ".. r.boss .." nasceu!", 20)
         else
            setGlobalStorageValue(r.storage, contador + 1)
         end
      end
   end
   return true
end

 

Editado por Shiuns (veja o histórico de edições)
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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo