Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Ae pessoal to com um probleminha aqui com as minhas pots, n sei pq ta acontecendo isso... 

 

Por exemplo, um level 10 não pode usar uma GMP (great mana potion) em si mesmo já que tem que ser level 80 para usar, porém ele pode usar GMP em algum mage level 80+, UHP em knight lvl 130+, GSP em paladin... etc... O kra pode ser até level 1 que ele consegue.

 

data/action/scripts/liquids/great_mana.lua

 

local MIN = 200
local MAX = 300
local EMPTY_POTION = 7635


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


function onUse(cid, item, fromPosition, itemEx, toPosition)
if isPlayer(itemEx.uid) == FALSE then
return FALSE
end


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


if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 80) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
doCreatureSay(itemEx.uid, "Only sorcerers and druids of level 80 or above may drink this fluid.", TALKTYPE_ORANGE_1)
return TRUE
end


if doPlayerAddMana(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then
return FALSE
end


doAddCondition(cid, exhaust)
doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
doRemoveItem(item.uid, 1)
        pot_count = getPlayerItemCount(cid, EMPTY_POTION)
        doPlayerRemoveItem(cid, EMPTY_POTION, pot_count)
        doPlayerAddItem(cid, EMPTY_POTION, pot_count)
        return TRUE
end

 

Link para o post
Compartilhar em outros sites

Acho que não é esse o script que ta funcionando como a potion.

 

Em muitos servers tem vários scripts sobre as potions,

Publique a potions.lua que se encontra na mesma pasta dessa GMP

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

@Caronte,

 

Aqui está a potions.lua 

local config = {
removeOnUse = "no",
usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
splashable = "yes",
range = -1,
area = {1, 1} -- if not set correctly, the message will be sent only to user of the item
}


local multiplier = {
health = 1.0,
mana = 1.0
}


local POTIONS = {
[8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion
[7618] = {empty = 7636, splash = 42, health = {100, 200}}, -- health potion
[7588] = {empty = 7634, splash = 42, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
[7591] = {empty = 7635, splash = 42, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
[8473] = {empty = 7635, splash = 42, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion


[7620] = {empty = 7636, splash = 47, mana = {70, 130}}, -- mana potion
[7589] = {empty = 7634, splash = 47, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
[7590] = {empty = 7635, splash = 47, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion


[8472] = {empty = 7635, splash = 43, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}


for index, potion in pairs(POTIONS) do
if(type(index) == 'number')then
for k, v in pairs(config) do
if(not potion[k]) then
potion[k] = v
end
end


if(potion.removeOnUse) then
potion.removeOnUse = getBooleanFromString(potion.removeOnUse)
end


if(potion.usableOnTarget) then
potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget)
end


if(potion.splashable) then
potion.splashable = getBooleanFromString(potion.splashable)
end


if(type(potion.health) == 'table' and table.maxn(potion.health) > 1) then
potion.health[1] = math.ceil(potion.health[1] * multiplier.health)
potion.health[2] = math.ceil(potion.health[2] * multiplier.health)
else
potion.health = nil
end




if(type(potion.mana) == 'table' and table.maxn(potion.mana) > 1) then
potion.mana[1] = math.ceil(potion.mana[1] * multiplier.mana)
potion.mana[2] = math.ceil(potion.mana[2] * multiplier.mana)
else
potion.mana = nil
end


POTIONS[index] = potion
end
end


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 potion.usableOnTarget and cid ~= itemEx.uid)) then
if(not potion.splashable or not potion.splash) then
return false
end


if(toPosition.x == CONTAINER_POSITION) then
toPosition = getThingPosition(item.uid)
end


doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
doRemoveItem(item.uid, 1)
if(not potion.empty or potion.removeOnUse) then
return true
end


if(fromPosition.x ~= CONTAINER_POSITION) then
doCreateItem(potion.empty, fromPosition)
else
doPlayerAddItem(cid, potion.empty, 1)
end


return true
end


if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) 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_MONSTER, false, cid)
return true
end


if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_CANUSEFAR)) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_TOOFARAWAY)
return true
end


if(potion.health and not doTargetCombatHealth(cid, itemEx.uid, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE, false)) then
return false
end


if(potion.mana and not doTargetCombatMana(cid, itemEx.uid, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE, false)) then
return false
end


if(type(potion.area) == 'table' and table.maxn(potion.area) > 1) then
for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), potion.area[1], potion.area[2])) do
if(isPlayer(tid)) then
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, tid)
end
end
else
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, itemEx.uid)
if(itemEx.uid ~= cid) then
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, cid)
end
end


doRemoveItem(item.uid, 1)
if(not potion.empty or potion.removeOnUse) then
return true
end


if(fromPosition.x ~= CONTAINER_POSITION) then
doCreateItem(potion.empty, fromPosition)
else
doPlayerAddItem(cid, potion.empty, 1)
end


return true
end

Acho que é essa :P

Editado por raphastel (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Cara, melhor abrir o actions.xml e ver qual script ta o id 7590. 

pra ter certeza...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

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