local setup = {
--[[
[0] = { <- vocation ID number
level = 20, --required minimum level to obtain promotion
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392, --required weapon to obtain promotion
newWeapon = 2400, --weapon you get after promotion
newVocation = 2, --new vocation's ID that the player is promoted to
},]]
[1] = { --ninja
level = 20,
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392,
newWeapon = 2400,
newVocation = 7,
newPromo = 1
},
[7] = { --super ninja
level = 40,
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392,
newWeapon = 2400,
newVocation = 8,
newPromo = 2
},
[2] = { --Assassin
level = 20,
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392,
newWeapon = 2400,
newVocation = 9,
newPromo = 1
},
[9] = { --Super Assassin
level = 40,
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392,
newWeapon = 2400,
newVocation = 10,
newPromo = 2
},
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
local scroll = setup[getPlayerVocation(cid)]
if not scroll then
doPlayerSendCancel(cid, 'You do not have the required vocation.')
return true
end
if getPlayerLevel(cid) < scroll.level then
doPlayerSendCancel(cid, 'You need to be at least level '..scroll.level..' in order to be promoted.')
return true
end
if getPlayerItemCount(cid, scroll.oldWeapon) == 1 then
doTransformItem(getPlayerItemById(cid, true, scroll.oldWeapon).uid, scroll.newWeapon)
else
doPlayerSendCancel(cid, 'You need only 1 '.. getItemNameById(scroll.oldWeapon)..' in order to be promoted.')
return true
end
if scroll.outfit then
doCreatureChangeOutfit(cid, scroll.outfit)
end
doRemoveItem(item.uid, 1)
doPlayerSetPromotionLevel(cid, scroll.newPromo)
doPlayerSetVocation(cid, scroll.newVocation)
doSendMagicEffect(fromPosition, CONST_ME_FIREWORK_YELLOW)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have just been promoted to '..getPlayerVocationName(cid)..'!!')
doPlayerSave(cid, true)
return true
end
local setup = {
--[[
[0] = { <- vocation ID number
level = 20, --required minimum level to obtain promotion
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392, --required weapon to obtain promotion
newWeapon = 2400, --weapon you get after promotion
newVocation = 2, --new vocation's ID that the player is promoted to
},]]
[1] = { --ninja
level = 20,
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392,
newWeapon = 2400,
newPromo = 1
},
[7] = { --super ninja
level = 40,
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392,
newWeapon = 2400,
newPromo = 2
},
[2] = { --Assassin
level = 20,
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392,
newWeapon = 2400,
newPromo = 1
},
[9] = { --Super Assassin
level = 40,
outfit = {lookType=123,lookHead=0,lookAddons=0,lookLegs=0,lookBody=0,lookFeet=0},
oldWeapon = 2392,
newWeapon = 2400,
newPromo = 2
},
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
local scroll = setup[getPlayerVocation(cid)]
if not scroll then
doPlayerSendCancel(cid, 'You do not have the required vocation.')
return true
end
if getPlayerLevel(cid) < scroll.level then
doPlayerSendCancel(cid, 'You need to be at least level '..scroll.level..' in order to be promoted.')
return true
end
if getPlayerItemCount(cid, scroll.oldWeapon) == 1 then
doTransformItem(getPlayerItemById(cid, true, scroll.oldWeapon).uid, scroll.newWeapon)
else
doPlayerSendCancel(cid, 'You need only 1 '.. getItemNameById(scroll.oldWeapon)..' in order to be promoted.')
return true
end
if scroll.outfit then
doCreatureChangeOutfit(cid, scroll.outfit)
end
doRemoveItem(item.uid, 1)
doPlayerSetPromotionLevel(cid, scroll.newPromo)
doSendMagicEffect(fromPosition, CONST_ME_FIREWORK_YELLOW)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have just been promoted to '..getPlayerVocationName(cid)..'!!')
doPlayerSave(cid, true)
return true
end