Boss+Drop

YagoBlind
em Scripts

YagoBlind

www.Baiak-Fortress.net
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 26/09/12Posts: 140Char no Tibia: ADMINISTRADOR

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 .

23696_2.png

Totalmente dedicado!

_________________________________________________________


lgvhost.gif

Dedicado para seu OTserv

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

Mais o itens podem ser configurados no script?

magnoataide

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/06/10Posts: 11Char no Tibia: Goth Icewood

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!

Lendreo

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 22/07/12Posts: 298Char no Tibia: Lendreo

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.

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

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

5303fg1.png

YagoBlind

www.Baiak-Fortress.net
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 26/09/12Posts: 140Char no Tibia: ADMINISTRADOR

caotic

 

 

Sim

 

 

brun123

 

 

Opa amigo , cheguei agora da escola , irei testar 1 minuto .

 

brun123

 

 

Não funcionou amigão ..

23696_2.png

Totalmente dedicado!

_________________________________________________________


lgvhost.gif

Dedicado para seu OTserv

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

o que aconteceu, deu algum erro?

5303fg1.png

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

/\

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

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

YagoBlind

www.Baiak-Fortress.net
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 26/09/12Posts: 140Char no Tibia: ADMINISTRADOR

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++ !

23696_2.png

Totalmente dedicado!

_________________________________________________________


lgvhost.gif

Dedicado para seu OTserv

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

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

5303fg1.png

DragonTheory

Jéssica,Meu amor,Minha vida!
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 07/09/12Posts: 140Char no Tibia: Nenhum

Cheguei tarde para ajudar.

ssfj.png

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Cheguei tarde para ajudar.

 

Evite fazer esse tipo de post, pois é considerado flood.

 

Poste somente coisas uteis ao tópico.

Oie :D

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

pelo que eu vi

o pedido já foi atendido

 

então

reportado aqui :D

 

notle, vou falar mais uma vez, aguarde o dono do tópico dizer que a dúvida foi sanada!

Oie :D

DragonTheory

Jéssica,Meu amor,Minha vida!
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 07/09/12Posts: 140Char no Tibia: Nenhum

Precisava da Rep-?

Não via necessidade nisso,Mais oque vai volta não é?

ssfj.png