NO

Function Killmonsterfromarea

Por noobinhu, 22 de dez. de 2008 em Actions e Talkactions

script
7
1.4k
noobinhuN
22 de dezembro de 2008 às 11:40

Essa function pode ser usadas em diversos scripts, por exemplo, ao entrar na arena, para limpar todo respawn antes de sumonar os monstros, na anihilator, na DH e etc...

 

Esta function mata todos os monstros de uma certa área, somente os monstros.

 

Screenshoot de uso:

killmonsterfromareatz6.png

 

 

Adicionando no seu script:

Na verdade, a function é baseada por outras 2, que devem estar no mesmo script, aqui está:

 

function isMonster(itempos)

-- function by Yunie, returns if isMonster based in stackpos 253

if itempos.itemid == 1 and itempos.type == 2 then

return TRUE

else

return FALSE

end

end

 

 

function returnPositions(upperposition,lowerposition)

-- function by Yunie, return all positions items informations from an area

positionstable = {}

defaulty = upperposition.y

upperpos = upperposition

lowerpos = lowerposition

while (upperpos.x <= lowerpos.x) do

newpos = {}

newpos = {x=upperpos.x, y=upperpos.y, z=upperpos.z}

table.insert(positionstable,newpos)

while (upperpos.y < lowerpos.y) do

upperpos.y = upperpos.y+1

newpos = {}

newpos = {x=upperpos.x, y=upperpos.y, z=upperpos.z}

table.insert(positionstable,newpos)

end

upperpos.y = defaulty

upperpos.x = upperpos.x+1

end

return positionstable

end

 

function killMonsterFromArea(positionArray)

-- function by Yunie, kill all monsters from an area

for k,v in pairs(positionsArray) do

pos = {x=v['x'], y=v['y'], z=v['z'], stackpos=253}

itempos = getThingfromPos(pos)

if isMonster(itempos) == TRUE then

doAreaCombatHealth(0, COMBAT_PHYSICALDAMAGE, pos, 0, -9999999, -9999999, 5)

else

doSendMagicEffect(pos,2)

end

end

end

 

Exemplo de Implatação em Script:

function isMonster(itempos)

-- function by Yunie, returns if isMonster based in stackpos 253

if itempos.itemid == 1 and itempos.type == 2 then

return TRUE

else

return FALSE

end

end

 

 

function returnPositions(upperposition,lowerposition)

-- function by Yunie, return all positions items informations from an area

positionstable = {}

defaulty = upperposition.y

upperpos = upperposition

lowerpos = lowerposition

while (upperpos.x <= lowerpos.x) do

newpos = {}

newpos = {x=upperpos.x, y=upperpos.y, z=upperpos.z}

table.insert(positionstable,newpos)

while (upperpos.y < lowerpos.y) do

upperpos.y = upperpos.y+1

newpos = {}

newpos = {x=upperpos.x, y=upperpos.y, z=upperpos.z}

table.insert(positionstable,newpos)

end

upperpos.y = defaulty

upperpos.x = upperpos.x+1

end

return positionstable

end

 

function killMonsterFromArea(positionArray)

for k,v in pairs(positionsArray) do

pos = {x=v['x'], y=v['y'], z=v['z'], stackpos=253}

itempos = getThingfromPos(pos)

if isMonster(itempos) == TRUE then

doAreaCombatHealth(0, COMBAT_PHYSICALDAMAGE, pos, 0, -9999999, -9999999, 5)

else

doSendMagicEffect(pos,2)

end

end

end

 

function onSay(cid, words, param)

upperpos = {x=155, y=421, z=7}

lowerpos = {x=158, y=424, z=7}

positionsArray = returnPositions(upperpos,lowerpos)

killMonsterFromArea(positionsArray)

end

 

Em negrito, upperpos seria o SQM da parte superior da esquerda (em cima <<) e lowerpos seria o SQM da parte inferior da direita (embaixo >>).

 

Esta talkaction mata todos monstros desta área em negrito que seria um quadrado.

 

Bom proveito da function,

Até mais,

Yunie.

alex008A
22 de dezembro de 2008 às 12:45

Ótimo script, muito complexo.

 

muito útil, contando q nao intendi quase nada ^^

 

nunca tinha visto essas funções.

 

aprovado!!!

DaNDaNrOxXD
22 de dezembro de 2008 às 13:22

Sim sim, muito bom !

Perfeito para usar na Arena Svargrond, Anihi e quests customizadas :)

Obrigado pelo script !

Abraço

Darth SidiousD
22 de dezembro de 2008 às 15:15

Nossa cara, mais um sistema perfeito.

 

Você sempre inovando o xtibia com seus scripts, aprovadissimo.

 

Meus parabéns.

ZaforZ
22 de dezembro de 2008 às 16:11
o.O Legalzin mais eu n entendi NADA =D
noobinhuN
22 de dezembro de 2008 às 19:33

Zafor, este não é um script comum, é uma function para ser usada dentro de scripts.

 

Igual aquelas functions:

doPlayerSendTextMessage()

doSendMagicEffect()

E outras...

22 de dezembro de 2008 às 19:35

Ótimo script para deixar o mais real possível quests como anihi, arena entre outros ;)

Parabéns pelo trabalho