Ir para conteúdo
  • Cadastre-se

(Resolvido)Selar monstro


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

Eu gostaria que tivesse um item que ao dar use em um MONSTRO, ele te dará um item que da para ivocar ele, ao usar sumonar o monstro e o item SUMIR. Porém eu quero que o item não sele alguns monstros, por exemplo o Trainer.

 

Resumo:

  • Ao dar use, tu seleciona o monstro e logo depois ele aparecerá assim na bag:

You see Seal Paper

Description: Have MONSTER sealed in this paper

  • Ao usar o Seal Paper, você irá invocar o monstro que selou, e após isso, o item será removido da bag.

Edit1: "Banlist" de monstros, para que não selem Trainers etc..

 

@Dwarfer

@antharaz

Ajudem por favor!! <3

Link para o post
Compartilhar em outros sites

Usa esse como base, fas quase tudo que você falou

 

http://www.tibiaking.com/forum/forums/topic/39622-action-edo-tensei/

dx6rIyi.png

Link para o post
Compartilhar em outros sites
29 minutos atrás, Tauzyu disse:

Usa esse como base, fas quase tudo que você falou

 

http://www.tibiaking.com/forum/forums/topic/39622-action-edo-tensei/

Esse ai precisa ter x vocação e eu so gostaria de prender monstro e ivocar novamente depois e remover o item

Link para o post
Compartilhar em outros sites
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,

Link para o post
Compartilhar em outros sites

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:

 

Link para o post
Compartilhar em outros sites

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 por Danyel Varejao (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
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

Link para o post
Compartilhar em outros sites
  • Solução

@xMateuss Não tinha colocado, porque você não disse pra colocar. Apenas falou sobre remover o papel kk

 

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)
doRemoveItem(item.uid)
return true
end

 

 

Contato:

 

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo