Postado Outubro 20, 2017 7 anos Autor 9 horas atrás, rogaforyn2 disse: Qual TFS 8.60 (versão) 6 horas atrás, Danyel Varejao disse: Invocar o monstro que você fala é torna-lo seu? como um utevo res? Ao invocar o monstro, o monstro atacará você... é como se fosse o jogador dando /m Monstro e ele atacar você, é apenas para "guardar" e mata-lo em outro lugar,
Postado Outubro 20, 2017 7 anos Vê se te serve assim, fiz aqui rapidinho, não tive como testar: Item que guarda o monstro Em actions/scripts, crie um arquivo.lua: Spoiler local ignored = {"Trainer", "Dwarf", "Dwarf Soldier", "Dwarf Guard"} local paper_id = 1111 --- id do papel function onUse(cid, item, fromPosition, itemEx, toPosition) if not isCreature(itemEx.uid) or isSummon(itemEx.uid) or isPlayer(itemEx.uid) or isInArray(ignored, getCreatureName(itemEx.uid)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) return true end doCreatureSay(itemEx.uid, "I WILL BACK!", TALKTYPE_ORANGE_1) doSendMagicEffect(toPosition, CONST_ME_POFF) local m = tostring(getCreatureName(itemEx.uid)) local sealed_paper = doPlayerAddItem(cid, paper_id, 1) doItemSetAttribute(sealed_paper, "description", "There is "..getArticle(m).." ".. m .." sealed in this paper.") doRemoveCreature(itemEx.uid) return true end Em actions.xml, adicione a tag: <action itemid="ID_DO_ITEM" script="NOMEDOSEUARQUIVO.lua" /> Item que invoca o monstro (papel) Em actions/scripts, crie um arquivo.lua: Spoiler function onUse(cid, item, fromPosition, itemEx, toPosition) if getTilePzInfo(getPlayerPosition(cid)) then doPlayerSendCancel(cid, "You can not do this action inside protection zone.") return true end local desc = getDescription(item) local art = desc:find("an ") and "an " or desc:find("a ") and "a " or nil if not art then doPlayerSendCancel(cid, "There is no monster sealed in this paper.") return true end local m = desc:match("There is (.-) sealed"):gsub(art, "") local p = getClosestFreeTile(cid, getPlayerPosition(cid)) local monster = doCreateMonster(m,p) doSendMagicEffect(getThingPos(monster), CONST_ME_TELEPORT) doCreatureSay(monster, "I TOLD YOU I WOULD GO BACK! HAHAHA!", TALKTYPE_ORANGE_1) doRemoveItem(item.uid) return true end function getDescription(item) for i,x in pairs(getItemDescriptions(item.uid)) do if i == "special" then return x end end end Em actions.xml, adicione a tag: <action itemid="ID_DO_ITEM" script="NOMEDOSEUARQUIVO.lua" /> Contato: Email: [email protected] Discord: Dwarfer#2715
Postado Outubro 20, 2017 7 anos Já tinha feito o script porém esqueci de postar aqui, mas tá aqui caso queira usar. Action do Item que vai usar no monstro local Configs = { Min_Level = 8, -- Minimo de level pra usar o item. Remove_Monster = true, -- Remover o monstro ao selar? true = sim, false = não. No_Sealable_Monsters = {"Trainer"}, -- Lista de monstros que nao pode. ItemID_Seal = 1954, -- ID do papel que irá usar pra sumonar o monstro depois. } function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) < Configs.Min_Level then doPlayerSendCancel(cid, "Sorry, you need level ".. Configs.Min_Level .." more.") return true end if isCreature(itemEx.uid) then if isMonster(itemEx.uid) and not isSummon(itemEx.uid) then local Seal_Monster = getCreatureName(itemEx.uid) if not isInArray(Configs.No_Sealable_Monsters, Seal_Monster) then local Seal_Paper = doCreateItemEx(Configs.ItemID_Seal) doItemSetAttribute(Seal_Paper, "monster", Seal_Monster) doItemSetAttribute(Seal_Paper, "description", "Have ".. string.lower(Seal_Monster) .." sealed in this paper.") if doPlayerAddItemEx(cid, Seal_Paper) then doRemoveItem(item.uid) if Configs.Remove_Monster then doRemoveCreature(itemEx.uid) doSendMagicEffect(toPosition, CONST_ME_POFF) end end else doPlayerSendCancel(cid, "Sorry, not possible seal this monster.") end end end return true end Action do Papel que vai sumonar o monstro, que no caso usei como exemplo o papel 1954. function onUse(cid, item, fromPosition, itemEx, toPosition) if getTilePzInfo(getThingPos(cid)) then doPlayerSendCancel(cid, "Sorry, not summon creature in protect zone.") return true end doCreateMonster(getItemAttribute(item.uid, "monster"), getThingPos(cid), false, true) doRemoveItem(item.uid, 1) return true end Editado Outubro 22, 2017 7 anos por Danyel Varejao (veja o histórico de edições)
Postado Outubro 21, 2017 7 anos Autor 15 horas atrás, Dwarfer disse: Vê se te serve assim, fiz aqui rapidinho, não tive como testar: Item que guarda o monstro Em actions/scripts, crie um arquivo.lua: Ocultar conteúdo local ignored = {"Trainer", "Dwarf", "Dwarf Soldier", "Dwarf Guard"} local paper_id = 1111 --- id do papel function onUse(cid, item, fromPosition, itemEx, toPosition) if not isCreature(itemEx.uid) or isSummon(itemEx.uid) or isPlayer(itemEx.uid) or isInArray(ignored, getCreatureName(itemEx.uid)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) return true end doCreatureSay(itemEx.uid, "I WILL BACK!", TALKTYPE_ORANGE_1) doSendMagicEffect(toPosition, CONST_ME_POFF) local m = tostring(getCreatureName(itemEx.uid)) local sealed_paper = doPlayerAddItem(cid, paper_id, 1) doItemSetAttribute(sealed_paper, "description", "There is "..getArticle(m).." ".. m .." sealed in this paper.") doRemoveCreature(itemEx.uid) return true end Em actions.xml, adicione a tag: <action itemid="ID_DO_ITEM" script="NOMEDOSEUARQUIVO.lua" /> Item que invoca o monstro (papel) Em actions/scripts, crie um arquivo.lua: Ocultar conteúdo function onUse(cid, item, fromPosition, itemEx, toPosition) if getTilePzInfo(getPlayerPosition(cid)) then doPlayerSendCancel(cid, "You can not do this action inside protection zone.") return true end local desc = getDescription(item) local art = desc:find("an ") and "an " or desc:find("a ") and "a " or nil if not art then doPlayerSendCancel(cid, "There is no monster sealed in this paper.") return true end local m = desc:match("There is (.-) sealed"):gsub(art, "") local p = getClosestFreeTile(cid, getPlayerPosition(cid)) local monster = doCreateMonster(m,p) doSendMagicEffect(getThingPos(monster), CONST_ME_TELEPORT) doCreatureSay(monster, "I TOLD YOU I WOULD GO BACK! HAHAHA!", TALKTYPE_ORANGE_1) doRemoveItem(item.uid) return true end function getDescription(item) for i,x in pairs(getItemDescriptions(item.uid)) do if i == "special" then return x end end end Em actions.xml, adicione a tag: <action itemid="ID_DO_ITEM" script="NOMEDOSEUARQUIVO.lua" /> Obrigado! mas pode colocar a tag de quando SELAR remover o item? pois fica infinito
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.