Ir para conteúdo
  • 1

Ajuda Script aura


imarlonjr

Pergunta

Boa noite amigos, gostaria de saber como faço pro player só poder usar uma determinada "magia"*, no caso o (exevo aura rod), se ele tiver ela, ela só é adicionada pelo GOD. Tipo tenho um aq, mais qualquer pessoa lvl 200+ pode usar  

 gostaria de saber como coloco pra um usuario poder usar uma magia se ele tiver ela, tipo na database na tabela players eu add mais uma linha, a linha aura.

se essa linha linha = 1 o usuario pode usar, se não não!

 

Sò que no momento todos podem usar, alguem me ajuda pf?

 

local config = {  mana = 200,  seconds = 60,  storage = 500,  semMana = "Você não têm mana suficiente.",  msg = "Você precisa aguardar %d segundos para usar essa magia novamente.",}local combat1 = createCombatObject()setCombatParam(combat1, COMBAT_PARAM_EFFECT, 20)local combat2 = createCombatObject()setCombatParam(combat2, COMBAT_PARAM_EFFECT, 28)arr1 = {{0, 1, 0},{1, 3, 1},{0, 1, 0},}arr2 = {{1, 0, 1},{0, 3, 0},{1, 0, 1},}local area1 = createCombatArea(arr1)local area2 = createCombatArea(arr2)setCombatArea(combat1, area1)setCombatArea(combat2, area2)function onCastSpell(cid, var)  if getPlayerStorageValue(cid, config.storage) == -1 then    setPlayerStorageValue(cid, config.storage, os.time()-config.seconds)  end  if config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage)) > 0 then    doPlayerSendCancel(cid, string.format(config.msg, config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage))))    return true  end  if getPlayerMana(cid) >= config.mana then        setPlayerStorageValue(cid, config.storage, os.time())        if ((getPlayerSlotItem(cid, 5).itemid) <= 0) or ((getPlayerSlotItem(cid, 6).itemid) <= 0) then        doPlayerAddMana(cid, -config.mana)        doPlayerAddItem(cid,7410,1)        addEvent(doCombat, 0, cid, combat1, var)        addEvent(doCombat, 0, cid, combat2, var)        else        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar com as mãos livres para receber a Aura Rod.")        doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)        doSendMagicEffect(getThingPosition(cid), CONST_ME_POFF)        end  else	doPlayerSendCancel(cid, config.semMana)  end  return trueend

 

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Vai em speels.xml e na tag dessa magia verifica se existe algo como learnspell isso faz com que o player só possa usar se aprender essa magia, então você pode adiciona-la pelo god.

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

  • 0

Tipo eu quero que o player só use essa magia se o god der ela, e tou com um outro problema, quando god a usa funciona de boa, mais se um player usar da debug, o codigo original era de otserv 8.4, tou passando pra 8.6, poderiam me ajudar?

 

 

abaixo segue os demais codigos

 

Na pasta movemments
 

function onDeEquip(cid, item, slot)if isPlayer(cid) then        doRemoveItem(item.uid)        doSendMagicEffect(getCreaturePosition(cid), 29)end        return TRUEend

 

movemments.xml

<movevent event="AddItem" itemid="7429" script="aura.lua"/><movevent event="AddItem" itemid="7410" script="aura.lua"/><movevent event="AddItem" itemid="8858" script="aura.lua"/><movevent event="AddItem" itemid="7881" script="aura.lua"/><movevent event="AddItem" itemid="7878" script="aura.lua"/><movevent event="AddItem" itemid="7872" script="aura.lua"/>

Na spells.xml

<instant name="ARod" words="exevo aura rod" lvl="75" mana="0" prem="0" needweapon="0" exhaustion="1000" needlearn="0" script="support/aurarod.lua">                <vocation name="Elder Druid"/>        </instant>

 

aurarod.lua (pasta spells)

 

local config = {  mana = 200,  seconds = 60,  storage = 500,  semMana = "Você não têm mana suficiente.",  msg = "Você precisa aguardar %d segundos para usar essa magia novamente.",}local combat1 = createCombatObject()setCombatParam(combat1, COMBAT_PARAM_EFFECT, 20)local combat2 = createCombatObject()setCombatParam(combat2, COMBAT_PARAM_EFFECT, 28)arr1 = {{0, 1, 0},{1, 3, 1},{0, 1, 0},}arr2 = {{1, 0, 1},{0, 3, 0},{1, 0, 1},}local area1 = createCombatArea(arr1)local area2 = createCombatArea(arr2)setCombatArea(combat1, area1)setCombatArea(combat2, area2)function onCastSpell(cid, var)  if getPlayerStorageValue(cid, config.storage) == -1 then    setPlayerStorageValue(cid, config.storage, os.time()-config.seconds)  end  if config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage)) > 0 then    doPlayerSendCancel(cid, string.format(config.msg, config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage))))    return true  end  if getPlayerMana(cid) >= config.mana then        setPlayerStorageValue(cid, config.storage, os.time())        if ((getPlayerSlotItem(cid, 5).itemid) <= 0) or ((getPlayerSlotItem(cid, 6).itemid) <= 0) then        doPlayerAddMana(cid, -config.mana)        doPlayerAddItem(cid,7410,1)        addEvent(doCombat, 0, cid, combat1, var)        addEvent(doCombat, 0, cid, combat2, var)        else        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar com as mãos livres para receber a Aura Rod.")        doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)        doSendMagicEffect(getThingPosition(cid), CONST_ME_POFF)        end  elsedoPlayerSendCancel(cid, config.semMana)  end  return trueend

 

Na talcktions aura.lua

function onSay(cid, words, param)char = getPlayerByName(param)if (getPlayerGroupId(cid) == 6) then     if getPlayerStorageValue(char, 10001) == 0 then            setPlayerStorageValue(char,10005,1)        setPlayerStorageValue(char,10002,1)        setPlayerStorageValue(char,10007,1)        setPlayerStorageValue(char,10001,1)        doPlayerSendTextMessage(cid,22,"Você adicinou Full aura ao char " .. char ..".")        doPlayerSendTextMessage(char,22,"Você recebeu Full Aura.")    else        setPlayerStorageValue(char,10005,0)        setPlayerStorageValue(char,10002,0)        setPlayerStorageValue(char,10007,0)        setPlayerStorageValue(char,10001,0)        doPlayerSendTextMessage(cid,22,"Você removeu a Full Aura do char " .. char ..".")    endelsedoPlayerSendCancel(cid, "Somente Administradores podem usar esse comando.")endreturn TRUEend

 

talcktions.xml

	<talkaction log="yes" words="/fullaura" access="5" script="aura.lua"/>

 

 

Muito obrigado desde já pela atençao :D

Link para o comentário
Compartilhar em outros sites

  • 0

em spell.xml nessa tag da magia, mude o valor de learnspell para 1.

Adicione no script de talkactions/aura.lua, dentro do escopo para God essa função:

Citar

playerLearnInstantSpell(cid, "ARod") 

 

Somente a quem o God favorecer, poderá dispor dessa magia.

Link para o comentário
Compartilhar em outros sites

  • 0
1 minuto atrás, Poccnn disse:

em spell.xml nessa tag da magia, mude o valor de learnspell para 1.

Adicione no script de talkactions/aura.lua, dentro do escopo para God essa função:

 

Somente a quem o God favorecer, poderá dispor dessa magia.

e mano, tipo quando um player usa a aura o serve buga, trava, da pra saber onde ta errado no codigo?

Link para o comentário
Compartilhar em outros sites

  • 0

Tipo, o god usa o item gerado por essa magia de boa, mais o Player não, quando clico em atacar qualquer bixo trava a tela.

 

 

 

Adicionei assim:
 

function onSay(cid, words, param)char = getPlayerByName(param)playerLearnInstantSpell(cid, "ARod") if (getPlayerGroupId(cid) == 6) then     if getPlayerStorageValue(char, 10001) == 0 then            setPlayerStorageValue(char,10005,1)        setPlayerStorageValue(char,10002,1)        setPlayerStorageValue(char,10007,1)        setPlayerStorageValue(char,10001,1)        doPlayerSendTextMessage(cid,22,"Você adicinou Full aura ao char " .. char ..".")        doPlayerSendTextMessage(char,22,"Você recebeu Full Aura.")    else        setPlayerStorageValue(char,10005,0)        setPlayerStorageValue(char,10002,0)        setPlayerStorageValue(char,10007,0)        setPlayerStorageValue(char,10001,0)        doPlayerSendTextMessage(cid,22,"Você removeu a Full Aura do char " .. char ..".")    endelsedoPlayerSendCancel(cid, "Somente Administradores podem usar esse comando.")endreturn TRUEend

Certo?

Link para o comentário
Compartilhar em outros sites

  • 0

Na função playerlearninstantspell muda o cid por char que no caso seria o player em questão. 

 

Descreve melhor o ocorrido, se gera error no console, derruba o servidor, apenas laga mas funciona etc.

 

Qual servidor você usa?

Link para o comentário
Compartilhar em outros sites

  • 0

Olha no momento baixei o TFS 0.4 que achei aqui no Forum, teria como me add skype brow? imarlonjr

Assim te mando a pasta você analisa melhor, se tiver como claro.

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...