Ir para conteúdo
  • 0

Galera Eu Criei Uma Nova Vocation Mais Quando O Player Compra A Vocation


LeoTK

Pergunta

galera eumtaum quando o player compra a promotion e tenta usar potion fala que so sorcerer and druid pode usar potion e fala tambem que nao tem level alguem pode ajudar?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

posta scripts das suas potions

ou

tenta usa essa

local config = {
    removeOnUse = "no",
    usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
    splashable = "no",
    realAnimation = "no", -- make text effect visible only for players in range 1x1
    healthMultiplier = 1.0,
    manaMultiplier = 1.0
}

config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)

local POTIONS = {
    [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion
    [7618] = {empty = 7636, splash = 2, health = {100, 500}}, -- health potion
    [7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8,11,12}, vocStr = "knights and paladins"}, -- strong health potion
    [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8,12}, vocStr = "knights"}, -- great health potion
    [8473] = {empty = 7635, splash = 2, health = {1570, 1620}, level = 130, vocations = {4, 8,12}, vocStr = "knights"}, -- ultimate health potion
    [7620] = {empty = 7636, splash = 7, mana = {350, 400}}, -- mana potion
    [7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7,5,6,9,11}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
    [7590] = {empty = 7635, splash = 7, mana = {1280, 1310}, level = 80, vocations = {1, 2, 5, 6,9,10}, vocStr = "sorcerers and druids"}, -- great mana potion
    [8472] = {empty = 7635, splash = 3, health = {1450, 1550}, mana = {500, 600}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local potion = POTIONS[item.itemid]
    if(not potion) then
		    return false
    end
    if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
		    if(not config.splashable) then
				    return false
		    end
		    if(toPosition.x == CONTAINER_POSITION) then
				    toPosition = getThingPos(item.uid)
		    end
		    doDecayItem(doCreateItem(2016, potion.splash, toPosition))
		    doTransformItem(item.uid, potion.empty)
		    return TRUE
    end
    if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
		    doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
		    return TRUE
    end
    if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
		    not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
    then
		    doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
		    return TRUE
    end
    local health = potion.health
    if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
		    return false
    end
    local mana = potion.mana
    if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
		    return false
    end
    doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
    if(not realAnimation) then
		    doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
    else
		    for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
				    if(isPlayer(tid)) then
						    doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
				    end
		    end
    end
    doAddCondition(cid, exhaust)
    if(not potion.empty or config.removeOnUse) then
    doRemoveItem(item.uid, 1)
    return TRUE
    end
    doRemoveItem(item.uid, 0)
    doPlayerAddItem(cid, potion.empty, 0)
    doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
    doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
    return TRUE
end

normalmente fica em data\actions\scripts\liquids\potions.lua

Link para o comentário
Compartilhar em outros sites

  • 0

 

local config = {

removeOnUse = "no",

usableOnTarget = "yes", -- can be used on target? (fe. healing friend)

splashable = "no",

realAnimation = "no", -- make text effect visible only for players in range 1x1

healthMultiplier = 1.0,

manaMultiplier = 1.0

}

 

config.removeOnUse = getBooleanFromString(config.removeOnUse)

config.usableOnTarget = getBooleanFromString(config.usableOnTarget)

config.splashable = getBooleanFromString(config.splashable)

config.realAnimation = getBooleanFromString(config.realAnimation)

 

local POTIONS = {

[8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion

[7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion

[7588] = {empty = 7634, splash = 2, health = {200, 500}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion

[7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion

[8473] = {empty = 7635, splash = 2, health = {800, 1250}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

[7620] = {empty = 7636, splash = 7, mana = {90, 170}}, -- mana potion

[7589] = {empty = 7634, splash = 7, mana = {110, 650}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion

[7590] = {empty = 7635, splash = 7, mana = {800, 1250}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

[8472] = {empty = 7635, splash = 3, health = {500, 1000}, mana = {500, 800}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion

}

 

local exhaust = createConditionObject(CONDITION_EXHAUST)

setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local potion = POTIONS[item.itemid]

if(not potion) then

return false

end

if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then

if(not config.splashable) then

return false

end

if(toPosition.x == CONTAINER_POSITION) then

toPosition = getThingPos(item.uid)

end

doDecayItem(doCreateItem(2016, potion.splash, toPosition))

doTransformItem(item.uid, potion.empty)

return TRUE

end

if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then

doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)

return TRUE

end

if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and

not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))

then

doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)

return TRUE

end

local health = potion.health

if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then

return false

end

local mana = potion.mana

if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then

return false

end

doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)

if(not realAnimation) then

doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)

else

for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do

if(isPlayer(tid)) then

doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)

end

end

end

doAddCondition(cid, exhaust)

if(not potion.empty or config.removeOnUse) then

doRemoveItem(item.uid, 1)

return TRUE

end

doRemoveItem(item.uid, 0)

doPlayerAddItem(cid, potion.empty, 0)

doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))

doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))

return TRUE

end

 

 

valeu cara +rep pra tu

Link para o comentário
Compartilhar em outros sites

  • 0

bom se sua vocations são novas só vc adiciona na sua script de potions as novas IDS

vou deixa red aqui pra vc da uma olhada

local config = {

removeOnUse = "no",

usableOnTarget = "yes", -- can be used on target? (fe. healing friend)

splashable = "no",

realAnimation = "no", -- make text effect visible only for players in range 1x1

healthMultiplier = 1.0,

manaMultiplier = 1.0

}

 

config.removeOnUse = getBooleanFromString(config.removeOnUse)

config.usableOnTarget = getBooleanFromString(config.usableOnTarget)

config.splashable = getBooleanFromString(config.splashable)

config.realAnimation = getBooleanFromString(config.realAnimation)

 

local POTIONS = {

[8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion

[7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion

[7588] = {empty = 7634, splash = 2, health = {200, 500}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion

[7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion

[8473] = {empty = 7635, splash = 2, health = {800, 1250}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

[7620] = {empty = 7636, splash = 7, mana = {90, 170}}, -- mana potion

[7589] = {empty = 7634, splash = 7, mana = {110, 650}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion

[7590] = {empty = 7635, splash = 7, mana = {800, 1250}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

[8472] = {empty = 7635, splash = 3, health = {500, 1000}, mana = {500, 800}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion

}

 

local exhaust = createConditionObject(CONDITION_EXHAUST)

setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local potion = POTIONS[item.itemid]

if(not potion) then

return false

end

if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then

if(not config.splashable) then

return false

end

if(toPosition.x == CONTAINER_POSITION) then

toPosition = getThingPos(item.uid)

end

doDecayItem(doCreateItem(2016, potion.splash, toPosition))

doTransformItem(item.uid, potion.empty)

return TRUE

end

if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then

doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)

return TRUE

end

if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and

not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))

then

doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)

return TRUE

end

local health = potion.health

if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then

return false

end

local mana = potion.mana

if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then

return false

end

doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)

if(not realAnimation) then

doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)

else

for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do

if(isPlayer(tid)) then

doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)

end

end

end

doAddCondition(cid, exhaust)

if(not potion.empty or config.removeOnUse) then

doRemoveItem(item.uid, 1)

return TRUE

end

doRemoveItem(item.uid, 0)

doPlayerAddItem(cid, potion.empty, 0)

doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))

doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))

return TRUE

end

Editado por notle2012
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...