Ir para conteúdo
  • 0

YagoBlind

Pergunta

Olá galerinha do xtibia eu gostaria de uma ajuda de vocês valendo REP++ , então vamos la vou explicar como eu gostaria da script .

 

Eu gostaria de 1 BOSS Com muito LIFE , que quando morresse em vez do loot cair dentro dele caisse no chão espalhado pelos sqm ao redor .

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Cara, eu consigo colocar quando o boss morre, ele vira o item "em vez de ter o corpo vai ter o item" mais de vários items ainda não testei mais provavelmente eu acho que não da certo, se acaso quiser manda MP novamente seguinte informações:

 

Nome do monster:

Fisionomia do monster: "exemplo: estilo ghazbaran , morgaroth"

Monster corpo: "exemplo: qual vai ser o item que você quer, que o monstro vire"

Media de ataque:"exemplo [servidores high exp: 5k~10k / servidores low exp: 1.5k ~ 2.5k]

 

 

Obrigado dês de já! espero poder lhe ajudar!

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

  • 0

Se for Poketibia: Em vermelho é o local da mudança do BOSS seila como tu for faze.

 

Em verde você poe o valor que você quer como no health pode ser 9999 e experience que é pros players 99999.

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<monster name="Zapdos" nameDescription="a zapdos" race="electric" experience="5128" speed="187" manacost="0">

<health now="210" max="210"/>

<look type="550" head="100" body="100" legs="95" feet="113" corpse="11987"/>

<targetchange interval="10000" chance="0"/>

<strategy attack="100" defense="0"/>

<flags>

<flag summonable="1"/>

<flag attackable="1"/>

<flag hostile="1"/>

<flag illusionable="1"/>

<flag convinceable="1"/>

<flag pushable="1"/>

<flag canpushitems="0"/>

<flag canpushcreatures="0"/>

<flag targetdistance="1"/>

<flag staticattack="97"/>

<flag runonhealth="0"/>

<flag hungerdelay="15"/>

</flags>

 

<attacks>

<attack name="melee" interval="2000" chance="100" range="1" min="-50" max="-100"> </attack>

</attacks>

 

 

<defenses armor="0" defense="0">

</defenses>

 

<voices interval="5000" chance="10">

<voice sentence="ZAPDOS!"/>

</voices>

 

<loot>

<item id="12164" chance="1" count="1" countmax="1"/>

<item id="12198" chance="1" count="1" countmax="1"/>

<item id="12176" chance="1" count="1" countmax="1"/>

<item id="11444" chance="1" count="1" countmax="1"/>

</loot>

 

<script>

<event name="Spawn"/>

</script>

</monster>

 

 

Sobre os itens no chão nunca vi esse sistema.

Link para o comentário
Compartilhar em outros sites

  • 0

vá em data/creaturesripts/scripts e crie um arquivo chamado floordrop.lua e coloque isso dentro:

 

function onDeath(monster, corpse, killers)

   if not isContainer(corpse.uid) then return true end
   local directions = {NORTH, EAST, SOUTH, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST}
   local slotId, maxLoops = 0, getContainerSize(corpse.uid) * 2
   repeat
    local lootItem = getContainerItem(corpse.uid, slotId).uid
    slotId = slotId + 1
    if lootItem > 1 then
	    local random = math.random(#directions)
	    local newDir = directions[random]
	    table.remove(directions, random)
	    doTeleportThing(lootItem, getPosByDir(getThingPos(monster), newDir))
	    if #directions == 0 then
		    directions = {NORTH, EAST, SOUTH, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST}
	    end
    else
	    break
    end
   until slotId >= maxLoops

return true
end

 

agora, adicione essa tag em creaturescripts.xml (data/creaturescripts):

 

<event type="death" name="DropItemsOnFloor" event="script" value="floordrop.lua"/>

 

agora vá no XML do monstro que você quer que os itens dropem no chão, e adicione isso antes do último </monster>:

 

<script>
<event name="DropItemsOnFloor"/>
</script>

 

Não testado, quaisquer erros você tem que postar aqui

você configura o loot do seu monstro normal pelo XML dele, quando o monstro morrer, todos os itens dentro do corpo dele vão ser retirados do corpo e vão para no chão

Link para o comentário
Compartilhar em outros sites

  • 0

/\

eu testei aki e simplismente n acontece nd brun.. ;x

 

@topic

mano o script q te mandei por PM funcionou aki... testa ae denovo...

function onDeath(monster, corpse, killers)

--{{id do item, qntdade}, {id do item, qntdade}},
local itens = {{12170, 5}, {11442, 10}}

for i = 1, #itens do
local pos = getClosestFreeTile(monster, getThingPos(monster))
doCreateItem(itens[i][1], itens[i][2], pos)
end

return true
end

 

 

podes usar esse aki tb talvez..

function onDeath(monster, corpse, killers)

--{{chance de dropar, id do item, qntdade}, {chance de dropar, id do item, qntdade}},
local itens = {
{chance = 5, id = 12170, qnt = 5},
{chance = 10, id = 11442, qnt = 10},
}

for i = 1, #itens do
   if math.random(100) <= itens[i].chance then
   local pos = getClosestFreeTile(monster, getThingPos(monster))
   doCreateItem(itens[i].id, math.random(itens[i].qnt), pos)
   end
end

return true
end

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

  • 0

brun123

 

 

Não aconteceu nada , rsrs..

 

 

Slicer

 

 

Sim mais vai dropa fora do corpo ? Irei testar antes não deu por tive q ir correndo para escola . irei testar agora 1 minuto

 

Slicer

 

Sua scripter funcionou obrigado rep++ !

Link para o comentário
Compartilhar em outros sites

  • 0

Ah sim, testei meu script e já arrumei, aqu está, apenas modificar o floordrop.lua

Aí fica a sua vontade qual script usar... no meu basta configurar o loot no XML do monstro, que quando ele morrer todos os itens vão aparecer nos tiles ao redor do monstro

acho melhor, já que não precisa ficar configurando o loot de cada monstro no próprio script... se quiser fazer isso com vários monstros, o script vai ficar enorme

bom que dá pra configurar pra cair loot dentro de bags e etc, como acontece em muitos monstros no tibia

 

local function doMoveLoot(position, corpseId)
local corpse = getTileItemById(position, corpseId)
local directions = {NORTH, EAST, SOUTH, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST}
local maxLoops = getContainerSize(corpse.uid) * 2
repeat
	local lootItem = getContainerItem(corpse.uid, 0).uid
	maxLoops = maxLoops - 1
	if lootItem > 1 then
		local random = math.random(#directions)
		local newDir = directions[random]
		table.remove(directions, random)
		doTeleportThing(lootItem, getPosByDir(position, newDir))
		if #directions == 0 then
			directions = {NORTH, EAST, SOUTH, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST}
		end
	else
		break
	end
until maxLoops <= 0
end


function onDeath(monster, corpse, killers)

if not isContainer(corpse.uid) then return true end
addEvent(doMoveLoot, 5, getThingPos(monster), corpse.itemid)

return true
end

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...