A więc daję skrypt na wszystkie Potiony. Małe, średnie, duże. Mana i HP. Do wyboru do koloru! Na niektórych silnikach nie ma (na przykład Evo by Sentil i Vrael v.2) a więc daję tu.
W data/actions/ robimy plik Potions.lua a w nim:
Spoiler:
local greatHealthPot = 7591
local greatManaPot = 7590
local strongHealthPot = 7588
local strongManaPot = 7589
local healthPot = 7618
local manaPot = 7620
local greatEmptyPot = 7635
local strongEmptyPot = 7634
local emptyPot = 7636
function onUse(cid, item, frompos, item2, topos)
if(item.itemid == healthPot) then
doSendAnimatedText(getPlayerPosition(cid), "Aaaah...", TEXTCOLOR_ORANGE)
if(doTargetCombatHealth(0, cid, COMBAT_HEALING, 170, 230, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
return FALSE
end
doTransformItem(item.uid, emptyPot)
elseif(item.itemid == manaPot) then
doSendAnimatedText(getPlayerPosition(cid), "Aaaah...", TEXTCOLOR_ORANGE)
if(doTargetCombatMana(0, cid, 80, 150, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
return FALSE
end
doTransformItem(item.uid, emptyPot)
elseif(item.itemid == strongHealthPot) then
if getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 or getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then
if getPlayerLevel(cid) > 50 then
doSendAnimatedText(getPlayerPosition(cid), "Aaaah...", TEXTCOLOR_ORANGE)
if(doTargetCombatHealth(0, cid, COMBAT_HEALING, 350, 450, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
return FALSE
end
doTransformItem(item.uid, strongEmptyPot)
else
doPlayerSendTextMessage(cid, 21, "Your level is too low.")
end
else
doPlayerSendTextMessage(cid, 21, "You do not have the required vocation.")
end
elseif(item.itemid == strongManaPot) then
if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then
if getPlayerLevel(cid) > 50 then
doSendAnimatedText(getPlayerPosition(cid), "Aaaah...", TEXTCOLOR_ORANGE)
if(doTargetCombatMana(0, cid, 150, 250, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
return FALSE
end
doTransformItem(item.uid, strongEmptyPot)
else
doPlayerSendTextMessage(cid, 21, "Your level is too low.")
end
else
doPlayerSendTextMessage(cid, 21, "You do not have the required vocation.")
end
elseif(item.itemid == greatHealthPot) then
if getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then
if getPlayerLevel(cid) > 80 then
doSendAnimatedText(getPlayerPosition(cid), "Aaaah...", TEXTCOLOR_ORANGE)
if(doTargetCombatHealth(0, cid, COMBAT_HEALING, 550, 650, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
return FALSE
end
doTransformItem(item.uid, greatEmptyPot)
else
doPlayerSendTextMessage(cid, 21, "Your level is too low.")
end
else
doPlayerSendTextMessage(cid, 21, "You do not have the required vocation.")
end
elseif(item.itemid == greatManaPot) then
if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 6 then
if getPlayerLevel(cid) > 80 then
doSendAnimatedText(getPlayerPosition(cid), "Aaaah...", TEXTCOLOR_ORANGE)
if(doTargetCombatMana(0, cid, 250, 350, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
return FALSE
end
doTransformItem(item.uid, greatEmptyPot)
else
doPlayerSendTextMessage(cid, 21, "Your level is too low.")
end
else
doPlayerSendTextMessage(cid, 21, "You do not have the required vocation.")
end
end
return TRUE
end
Potem w data/actions/actions.xml wpisujemy:
Spoiler:
<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" />
Ale ja proponowałbym dopisac u góry jeszcze -- Potions
Czyli tak:
Spoiler:
-- Potions
<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" />
Dodałem bo jak pisałem wyżej nie na każdym silniku są.
Offline