Ir para conteúdo

Posts Recomendados

Bom tenho a duvida de como adicionar um item, pois no meu server (7.92) nao estao funcionando as potions de mana e health, entao quero adiciona-las.Preciso adicionar no map editor tambem? bom alguem me da uma luzz !!! ME AJUDEM !!!

 

vlw =//

Link para o comentário
https://xtibia.com/forum/topic/104594-item-adicionar-item/
Compartilhar em outros sites

Não precisa adicionar no map editor, a não ser que você queira que o player pegue a potion de algum lugar do mapa.

 

Aqui vai meu script que você deve colocar na pasta data\actions\scripts com o nome potions.lua:

 

local ultimateHealthPot = 8377
local greatHealthPot = 7591
local greatManaPot = 7590
local greatSpiritPot = 8376
local strongHealthPot = 7588
local strongManaPot = 7589
local healthPot = 7618
local manaPot = 7620
local smallHealthPot = 8610
local antidotePot = 8378
local greatEmptyPot = 7635
local strongEmptyPot = 7634
local emptyPot = 7636

local antidote = createCombatObject()
setCombatParam(antidote, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(antidote, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(antidote, COMBAT_PARAM_TARGETCASTERORTOPMOST, TRUE)
setCombatParam(antidote, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatParam(antidote, COMBAT_PARAM_DISPEL, CONDITION_POISON)

local exhaust = createConditionObject(CONDITION_EXHAUST_HEAL)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, getConfigInfo('timeBetweenExActions'))

function onUse(cid, item, fromPosition, itemEx, toPosition)
if(itemEx.uid ~= cid or itemEx.itemid ~= 1) then
	return TRUE
end

if(getCreatureCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE) then
	doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
	return TRUE
end

if(item.itemid == antidotePot) then
	if(doCombat(cid, antidote, numberToVariant(cid)) == LUA_ERROR) then
		return FALSE
	end
			doRemoveCondition(cid, CONDITION_PARALYZE)
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, emptyPot)
elseif(item.itemid == smallHealthPot) then
	if(doTargetCombatHealth(0, cid, COMBAT_HEALING, 50, 100, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
		return FALSE
	end
			doRemoveCondition(cid, CONDITION_PARALYZE)
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, emptyPot)
elseif(item.itemid == healthPot) then
	if(doTargetCombatHealth(0, cid, COMBAT_HEALING, 100, 200, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
		return FALSE
	end
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, emptyPot)
elseif(item.itemid == manaPot) then
	if(doTargetCombatMana(0, cid, 70, 130, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
		return FALSE
	end
			doRemoveCondition(cid, CONDITION_PARALYZE)
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, emptyPot)
elseif(item.itemid == strongHealthPot) then
	if(not(isKnight(cid) or isPaladin(cid)) or (getPlayerLevel(cid) < 50)) and not(getPlayerGroupId(cid) >= 2) then
		doCreatureSay(cid, "This potion can only be consumed by paladins and knights of level 50 or higher.", TALKTYPE_ORANGE_1)
		return TRUE
	end

	if(doTargetCombatHealth(0, cid, COMBAT_HEALING, 200, 400, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
		return FALSE
	end
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, strongEmptyPot)
elseif(item.itemid == strongManaPot) then
	if(not(isSorcerer(cid) or isDruid(cid) or isPaladin(cid)) or (getPlayerLevel(cid) < 50)) and not(getPlayerGroupId(cid) >= 2) then
		doCreatureSay(cid, "This potion can only be consumed by sorcerers, druids and paladins of level 50 or higher.", TALKTYPE_ORANGE_1)
		return TRUE
	end

	if(doTargetCombatMana(0, cid, 110, 190, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
		return FALSE
	end
			doRemoveCondition(cid, CONDITION_PARALYZE)
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, strongEmptyPot)
elseif(item.itemid == greatSpiritPot) then
	if(not(isPaladin(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then
		doCreatureSay(cid, "This potion can only be consumed by paladins of level 80 or higher.", TALKTYPE_ORANGE_1)
		return TRUE
	end

	if(doTargetCombatHealth(0, cid, COMBAT_HEALING, 200, 400, CONST_ME_MAGIC_BLUE) == LUA_ERROR or doTargetCombatMana(0, cid, 110, 190, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
		return FALSE
	end
			doRemoveCondition(cid, CONDITION_PARALYZE)
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, greatEmptyPot)
elseif(item.itemid == greatHealthPot) then
	if(not(isKnight(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then
		doCreatureSay(cid, "This potion can only be consumed by knights of level 80 or higher.", TALKTYPE_ORANGE_1)
		return TRUE
	end

	if(doTargetCombatHealth(0, cid, COMBAT_HEALING, 500, 700, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
		return FALSE
	end
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, greatEmptyPot)
elseif(item.itemid == greatManaPot) then
	if(not(isSorcerer(cid) or isDruid(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then
		doCreatureSay(cid, "This potion can only be consumed by sorcerers and druids of level 80 or higher.", TALKTYPE_ORANGE_1)
		return TRUE
	end

	if(doTargetCombatMana(0, cid, 200, 300, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
		return FALSE
	end
			doRemoveCondition(cid, CONDITION_PARALYZE)
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, greatEmptyPot)
elseif(item.itemid == ultimateHealthPot) then
	if(not(isKnight(cid)) or (getPlayerLevel(cid) < 130)) and not(getPlayerGroupId(cid) >= 2) then
		doCreatureSay(cid, "This potion can only be consumed by knights of level 130 or higher.", TALKTYPE_ORANGE_1)
		return TRUE
	end

	if(doTargetCombatHealth(0, cid, COMBAT_HEALING, 800, 1000, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
		return FALSE
	end
	doAddCondition(cid, exhaust)
	doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
	doTransformItem(item.uid, greatEmptyPot)
end
return TRUE
end

 

Agora volte uma pasta, data\actions, e abra o arquivo actions.xml, adicione essas linhas:

 

	 <action itemid="7588" script="potions.lua"/>
<action itemid="7589" script="potions.lua"/>
<action itemid="7590" script="potions.lua"/>
<action itemid="7591" script="potions.lua"/>
<action itemid="7618" script="potions.lua"/>
<action itemid="7620" script="potions.lua"/>
<action itemid="8472" script="potions.lua"/>
<action itemid="8473" script="potions.lua"/>
<action itemid="8474" script="potions.lua"/>
<action itemid="8704" script="potions.lua"/>

 

;D

Editado por lucasjockey
Link para o comentário
https://xtibia.com/forum/topic/104594-item-adicionar-item/#findComment-672635
Compartilhar em outros sites

n deu oO

meu ot eh 7.92 =// aqueles id's não são validos =//

vou tentar adaptalos, outra coisa, eu n preciso adicionar nos items.xml?

 

 

 

vlwwSS de qlq jeito por responde...

Link para o comentário
https://xtibia.com/forum/topic/104594-item-adicionar-item/#findComment-672689
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...