Ir para conteúdo

Dúvida Nas Potions


caiocesar2

Posts Recomendados

Olá amigos.

 

Fiz uma nova vocação em meu Servidor, porém não consigo coloca-la para usar as Potions.

Por exemplo, a Great Mana Potion.

 

Localizei em seu script a seguinte linnha:

 

if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 80)

 

então eu tentei colocar:

 

if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid)) or isTime Mage(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 80)

 

P.S: Time mage é o nome da vocação

 

Bom.. isso não adiantou... o pote bugou e não usava nem em sorcerer e nem em Druid.. muito menos no Time Mage.

 

Gostaria de saber se é possível eu colocar... estou precisando muito

 

 

Script do Great Mana que utilizo:

 

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)

doTransformItem(item.uid, EMPTY_POTION)

return TRUE

end

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

Típico de um iniciante em programação, isSorcerer e isDruid são funções definidas para a ID da vocação. As ID's são determinadas no arquivo Data\xml\vocations.xml.

 

Pegue o ID (número) da sua nova vocação e reescreva a linha assim:

 

if ((not (isSorcerer(itemEx.uid) or isDruid(itemEx.uid) or (getPlayerVocation(cid) == ID)) or getPlayerLevel(itemEx.uid) < 80) then

 

Veja se da certo, ainda não testei.

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

Sim.. sou iniciante ainda na area.

Muito obrigado irei testar.

 

 

edit~~

 

testei e deu certo.

coloquei ID 5.. e foi.

E se caso eu queira criar uma outra Voc com ID 6

Como faço para colocar as 2 ao mesmo tempo tambem usando pote?

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

if ((not (isSorcerer(itemEx.uid) or isDruid(itemEx.uid) or (getPlayerVocation(cid) == ID) or (getPlayerVocation(cid) == OutroID)) or getPlayerLevel(itemEx.uid) < 80) then

 

Só adicionar "or (getPlayerVocation(cid) == ID)" dentro do parênteses.

Link para o comentário
Compartilhar em outros sites

Isso eu ja tentei, porem não deu certo..

E agora?

 

 

 

eDIT~~

 

Bom peguei uma outra script para tentar

 

function onUse(cid, item, frompos, item2, topos)

 

playerpos = {x=topos.x, y=topos.y, z=topos.z, stackpos=253}

player = getThingfromPos(playerpos)

ml = getPlayerMagLevel(cid)

lvl = getPlayerLevel(cid)

voc = getPlayerVocation(cid)

ex = getPlayerStorageValue(cid,4862)

r1 = math.random(900,1100)

 

 

params = { [1]=cid, [2]=lvl, [3]=voc, [4]=ml }

 

if item2.itemid == 1 then

if item.itemid == 7635 then

doPlayerSendCancel(cid,"It is empty.")

else

if item2.uid == cid then

if lvl >= 130 then

if voc == 4 or voc == 8 then

if ex == -1 then

doPlayerAddHealth(cid,r1)

doSendMagicEffect(playerpos,12)

addEvent(ums,700,params)

setPlayerStorageValue(cid,4862, 1)

doTransformItem(item.uid,7635)

doSendAnimatedText(getPlayerPosition(cid), "Life Up!", TEXTCOLOR_RED)

else

doPlayerSendCancel(cid,'You are exhausted.')

doSendMagicEffect(playerpos,2)

end

else

doPlayerSendCancel(cid, 'Somente Classes de Knights de level 130 ou superior podem consumir essa potion.')

end

else

doPlayerSendCancel(cid,'Somente Classes de Knights de level 130 ou superior podem consumir essa potion.')

end

else

splash = doCreateItem(2025,10,topos)

doTransformItem(item.uid,7635)

doDecayItem(splash)

end

end

else

if item.itemid == 7635 then

doPlayerSendCancel(cid,"It is empty.")

else

splash = doCreateItem(2025,10,topos)

doTransformItem(item.uid,7635)

doDecayItem(splash)

end

end

return 1

end

 

function ums(params)

cid = params[1]

setPlayerStorageValue(cid,4862, -1)

end

 

Porém ... mana potions funcionam normalmente quando estão doPlayerAddMana(cid,r1)

mas usando health. com doPlayerAddHealth(cid,r1) não vai.. como posso arrumar?

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

vocaçao id 6 e vocaçao do elder druid ou seja promovida isso nao pode ele so pode usar as voc que nao foram promovidas.

 

da uma olhada no voc.xml principalmente isso:

 

fromvoc="x"

 

segunda questao :

 

e porque nao se usa mais isso agora e essa:

 

doCreatureAddHealth(cid, health[, force])
Editado por Marcryzius
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...