Jump to content

[Script] Boss por X Kills de Monsters


Recommended Posts

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 to post
Share on other sites

  • Assistente

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 to post
Share on other 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

 

Edited by Shiuns (see edit history)
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Confirmação de Termo