
mateuscorrea
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
mateuscorrea recebeu reputação de Rayo em [Script] Item que invoca Monstro@L3K0T @LeoTK @Rayo Resolvi o problema, obrigado pela ajuda de vocês.
Vou explicar os passos de arrumar o erro, caso alguém também tenha no futuro.
Primeiro , você precisa achar no paste itens.xml um item que não tenha funcionalidade no jogo e que possa atribuir uma função de script.
Fui na pasta ITEMS.Xml e fiz o seguinte:
<item id="9077" article="an" name="Red Demon Bag" />
Pronto , ja havia atribuido uma funcionalidade ao item 9077 (Antiga Bag de demon evento)
Segundo , você deve criar um monstro dentro da pasta Monster ( ja entenderão o motivo), então usei o seguinte script:
?xml version="1.0" encoding="UTF-8"?>
<monster name="Red Demon" nameDescription="a red demon" race="fire" experience="0" speed="300" manacost="10000">
<health now="8200" max="8200"/>
<look type="35" corpse="5995"/>
<targetchange interval="5000" chance="8"/>
<strategy attack="200" defense="100"/>
<flags>
<flag summonable="1"/>
<flag attackable="1"/>
<flag hostile="0"/>
<flag illusionable="0"/>
<flag convinceable="1"/>
<flag pushable="0"/>
<flag canpushitems="1"/>
<flag canpushcreatures="1"/>
<flag targetdistance="1"/>
<flag staticattack="90"/>
<flag runonhealth="0"/>
Importe seu monstro na pasta monster.xml
monster name="Red Demon" file="Monstros Danger/Red Demon.xml"/>
Após Criar o monstro , deverá fazer o script que vai atribuir o monstro a ser invocado na pasta actions com o seguinte nome : smonster.lua
local config = {
name = "Red Demon", -- Nome do Summon
max = 1, -- Máximo de summons
exaust_sto = 5555, -- Storage que contabiliza o exaust
exaust_time = 2 -- Segundos de Exaust
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
local pos = getCreaturePosition(cid)
if not exhaustion.check(cid, config.exaust_sto) then
if table.maxn(getCreatureSummons(cid)) <= config.max then
local target = doCreateMonster(config.name, pos)
doConvinceCreature(cid, target)
doPlayerSendTextMessage(cid, 27, "Voce invocou o monstro ".. config.name .."!!")
doSendMagicEffect(pos, CONST_ME_TELEPORT)
exhaustion.set(cid, config.exaust_sto, config.exaust_time)
return true
else
doPlayerSendTextMessage(cid, 27, "Você ja tem a quantidade máxima de summons ativos!")
doSendMagicEffect(pos, POFF)
return false
end
else
doPlayerSendTextMessage(cid, 27, "Exhaustion!! Wait ".. exhaustion.get(cid, config.exaust_sto) .." seconds.")
doSendMagicEffect(pos, POFF)
return false
end
return true
end
Terceiro , colocar esse script dentro da pasta do actions :
<action itemid="9076" script="smonster.lua"/>
Quarto passo abrir o Mapa do jogo e importar o monstro!
A explicação sobre a criação do monstro é simples .
Normalmente os monstros vem com atribuições dentro do seu script sobre atacar , summonar e etc.
Se você simplesmente pegar um monstro do seu mapa que ja existe e altera-lo , vai interferir em todos os monstros que ja estão importados no game.
Então o Adequeado é que se crie um monstro com as características que você quer para que ele seja seu PET , acaba que fica muito mais fácil do que PET SYSTEM
E como ultimo passo
Assim como foi citado pelo nosso amigo @L3K0T existe um pequeno problema ao adicionar esse sistema de monstros .
Deve ir nas FLAGS do monstro e alterar para:
<flags>
<flag summonable="0"/> (Atribua um valor 1 ) - Para que possa ser sumonado = <flag summonable="1"/>
<flag attackable="1"/> (Caso queira que o Pet possa ser atacado deixe como esta)
<flag hostile="1"/> (Chegamos ao problema , HOSTIL = 1 significa que o monstro também mata quem somona , então coloque 0)
<flag illusionable="0"/>
<flag convinceable="0"/> (E para finalizar Convinceable deve ter o valor 1 , para você conseguir controlar o monstro) = <flag convinceable="0"/>
<flag pushable="0"/>
<flag canpushitems="1"/>
<flag canpushcreatures="1"/>
<flag targetdistance="1"/>
<flag staticattack="90"/>
<flag runonhealth="0"/>
</flags>
Obrigado por todos que me deram essa idéia , ja testei em outros mapas e funcionou ! Valeu gente . Repp++ pra todos
-
mateuscorrea deu reputação a Cat em Como Criar MapaPoderia explicar melhor o que está acontecendo?
Se o problema for o mapa antigo, você pode criar um novo mapa limpo, usar ctrl + shift + select, copiar o mapa e colar no novo.
-
mateuscorrea deu reputação a Rayo em [Script] Item que invoca MonstroTesta ai amigo:
local config = { name = "Morgaroth", -- Nome do Summon max = 1, -- Máximo de summons exaust_sto = 5555, -- Storage que contabiliza o exaust exaust_time = 2 -- Segundos de Exaust } function onUse(cid, item, fromPosition, itemEx, toPosition) local player = Creature(cid) local position = player:getPosition() local summon = Game.createMonster(config.name,position,true) if not exhaustion.check(player, config.exaust_sto) then if #player:getSummons() < config.max then player:addSummon(summon) doPlayerSendTextMessage(player, 27, "Voce invocou o monstro ".. config.name .."!!") doSendMagicEffect(position, CONST_ME_TELEPORT) exhaustion.set(cid, config.exaust_sto, config.exaust_time) return true else doPlayerSendTextMessage(player, 27, "Você ja tem a quantidade máxima de summons ativos!") doSendMagicEffect(position, POFF) return false end else doPlayerSendTextMessage(player 27, "Exhaustion!! Wait ".. exhaustion.get(player, config.exaust_sto) .." seconds.") doSendMagicEffect(position, POFF) return false end return true end
-
mateuscorrea deu reputação a LeoTK em [Script] Item que invoca Monstro@Rayo não vai funcionar porque a versão desse seu script é 1.x+ e a versão do dele é de 0.x
@mateuscorrea testa ae
local config = { name = "Morgaroth", -- Nome do Summon max = 1, -- Máximo de summons exaust_sto = 5555, -- Storage que contabiliza o exaust exaust_time = 2 -- Segundos de Exaust } function onUse(cid, item, fromPosition, itemEx, toPosition) local pos = getCreaturePosition(cid) if not exhaustion.check(cid, config.exaust_sto) then if table.maxn(getCreatureSummons(cid)) <= config.max then local target = doSummonMonster(config.name, pos) doPlayerSendTextMessage(cid, 27, "Voce invocou o monstro ".. config.name .."!!") doSendMagicEffect(pos, CONST_ME_TELEPORT) exhaustion.set(cid, config.exaust_sto, config.exaust_time) return true else doPlayerSendTextMessage(cid, 27, "Você ja tem a quantidade máxima de summons ativos!") doSendMagicEffect(pos, POFF) return false end else doPlayerSendTextMessage(cid, 27, "Exhaustion!! Wait ".. exhaustion.get(cid, config.exaust_sto) .." seconds.") doSendMagicEffect(pos, POFF) return false end return true end
-
mateuscorrea deu reputação a L3K0T em [Script] Item que invoca MonstroJá tentou ver as flag do monstro??? .xml e testar o script ali em cima que vc disse que não sumona?
<flag summonable="1"/> 《《《《《 <flag attackable="0"/> <flag hostile="0"/> <flag illusionable="0"/> <flag convinceable="1"/> 《《《《《
-
mateuscorrea deu reputação a L3K0T em [Script] Item que invoca MonstroTabom, qualquer coisa tamo ai ?
Tem o comando no god /m e o /s
O /m e pra monstro mals que mata os outros.
O /s e pra sumonar o monstro bonzinho que não vai matar ninguém a não vc dando Target em algo, olha esses scripts no talkactions e tira uma base la, pode ajudar muito vc.