Ir para conteúdo
  • 0

[PEDIDO] Spell com Permissao + Action ou Talkaction para Permissao


pazquinho

Pergunta

Tipo do script: Spells, Action/Talkaction

Protocolo (versão do Tibia): 8.6

Servidor utilizado: Styller Yourots Premium

Nível de experiência: Medio

Adicionais/Informações: Ola ! Ja fais muito tempo que estou procurando isso, mas nunca consiguir achar (é claro), estou querendo uma magia que precise de uma permissao para poder ser soltada, e tambem da permissao para poder soltar a magia, ou seja ao player tentar soltar a magia, apareceria que ele nao tem permissao, entao eu dava um item (com uma action) ou usaria uma talkaction para dar permissao permanente para tal player usar tal magia, bom é isso, estou precisando, muito disso, por favor me ajude. Aguardo respostas, Muito Obrigado !

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

if(getPlayerStorageValue(cid, 3892892) == -1) then
doPlayerSendCancel(cid, "You need a permision")
return false
end

adc na amgia /\ embaixo da cast spell

 

function onUse(cid, item)

if(getPlayerStorageValue(cid, 3892892) == -1) then
doPlayerSendTextMessage(cid, 27, "You win a permision.")
setPlayerStorageValue(cid, 3892892, 1)
doRemoveItem(item.uid, 1)
else
doPlayerSendCancel(cid, "You already have a permision.")
end
return true
end

OUU


function onUse(cid, item)
if getPlayerLearnedInstantSpell(cid, NOME) then
  return doPlayerSendCancel(cid, "Você já aprendeu.")
end

doPlayerLearnInstantSpell(cid, NOME)
doPlayerSendTextMessage(cid, 27, "Você aprendeu a magia NOME.")
doRemoveItem(item.uid, 1)
return true
end

 

e coloca na tag q precisa ser aprendido ;d;d;d;d

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

  • 0

if(getPlayerStorageValue(cid, 3892892) == -1) then
doPlayerSendCancel(cid, "You need a permision")
return false
end

adc na amgia /\ embaixo da cast spell

 

function onUse(cid, item)

if(getPlayerStorageValue(cid, 3892892) == -1) then
doPlayerSendTextMessage(cid, 27, "You win a permision.")
setPlayerStorageValue(cid, 3892892, 1)
doRemoveItem(item.uid, 1)
else
doPlayerSendCancel(cid, "You already have a permision.")
end
return true
end

OUU


function onUse(cid, item)
if getPlayerLearnedInstantSpell(cid, NOME) then
  return doPlayerSendCancel(cid, "Você já aprendeu.")
end

doPlayerLearnInstantSpell(cid, NOME)
doPlayerSendTextMessage(cid, 27, "Você aprendeu a magia NOME.")
doRemoveItem(item.uid, 1)
return true
end

 

e coloca na tag q precisa ser aprendido ;d;d;d;d

 

Cara voce poderia explicar melhor ? xD eu nao entendi :(

e sobre a "tag que precisa ser aprendido" nao entendi tambem =/

se puder me explicar melhor eu agradeceria muito.

Aguardo Respostas, Muito Obrigado !

 

esta é a magia, voce poderia adicionar a tag pra mim nela ? que dai eu uso ela como exemplo para colocar nas outras magias :) nome da magia é: knightvip (só provisório rsrs)

local config =

{

seconds = 10,

storage = 47112120,

msg = "Voc\ê preci\sa aguardar 10 segundos para acumular o esp\írito.",

mana = 995,

semMana = "Voc\ê n\ão t\êm mana suficiente."

}

 

local function useAgain(cid)

setPlayerStorageValue(cid, config.storage, 2)

return TRUE

end

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, 4)

setCombatFormula(combat,COMBAT_FORMULA_LEVELMAGIC, -3.0, -290, -3.5, -300)

 

local condition = createConditionObject(CONDITION_PARALYZE)

setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)

-- setConditionParam(condition, CONDITION_PARAM_SPEED, -70)

setConditionFormula(condition, -0.9, 0, -0.9, 0)

setCombatCondition(combat, condition)

 

arr = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0},

{0, 0, 0, 0, 1, 0, 1, 0, 0, 0,0,0},

{0, 0, 0, 1, 0, 1, 0, 1, 0, 0,0,0},

{0, 0, 1, 0, 1, 1, 1, 0, 1, 0,0,0},

{0, 1, 0, 1, 1, 1, 1, 1, 0, 1,0,0},

{0, 0, 1, 1, 1, 3, 1, 1, 1, 0,0,0},

{0, 1, 0, 1, 1, 1, 1, 1, 0, 1,0,0},

{0, 0, 1, 0, 1, 1, 1, 0, 1, 0,0,0},

{0, 0, 0, 1, 0, 1, 0, 1, 0, 0,0,0},

{0, 0, 0, 0, 1, 0, 1, 0, 0, 0,0,0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0},

}

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

if getPlayerStorageValue(cid, config.storage) == 1 then

doPlayerSendCancel(cid, config.msg)

return TRUE

end

if getPlayerStorageValue(cid, config.storage) ~= 1 then

config.mana = getCreatureMaxMana(cid)*0.90

if getPlayerMana(cid) >= config.mana then

doPlayerAddMana(cid, -config.mana)

setPlayerStorageValue(cid, config.storage, 1)

addEvent(useAgain, config.seconds*1000, cid)

return doCombat(cid, combat, var)

else

doPlayerSendCancel(cid, config.semMana)

end

end

return TRUE

end

 

tag da magia no spells.xml

 


		    <instant name="Super Berserk" words="knightvip" lvl="200" prem="1" direction="0" exhaustion="0" needlearn="0" script="vip/super berserk.lua">
       <vocation id="12"/>
    </instant>

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

  • 0

local config =
seconds = 10,
storage = 47112120,
msg = "Você precisa aguardar 10 segundos para acumular o espírito.",
mana = 995,
semMana = "Você não têm mana suficiente."
}

local function useAgain(cid)
setPlayerStorageValue(cid, config.storage, 2)
return TRUE
end

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 4)
setCombatFormula(combat,COMBAT_FORMULA_LEVELMAGIC, -3.0, -290, -3.5, -300)

local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
-- setConditionParam(condition, CONDITION_PARAM_SPEED, -70)
setConditionFormula(condition, -0.9, 0, -0.9, 0)
setCombatCondition(combat, condition)

arr = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0,0,0},
{0, 0, 0, 1, 0, 1, 0, 1, 0, 0,0,0},
{0, 0, 1, 0, 1, 1, 1, 0, 1, 0,0,0},
{0, 1, 0, 1, 1, 1, 1, 1, 0, 1,0,0},
{0, 0, 1, 1, 1, 3, 1, 1, 1, 0,0,0},
{0, 1, 0, 1, 1, 1, 1, 1, 0, 1,0,0},
{0, 0, 1, 0, 1, 1, 1, 0, 1, 0,0,0},
{0, 0, 0, 1, 0, 1, 0, 1, 0, 0,0,0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0,0,0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function onCastSpell(cid, var)

if(getPlayerStorageValue(cid, config.storage) == -1) then
	doPlayerSendTextMessage(cid, 27, "You win a permision.")
	setPlayerStorageValue(cid, config.storage, 1)
	doRemoveItem(item.uid, 1)
else
	doPlayerSendCancel(cid, "You already have a permision.")
end
return true
end

if getPlayerStorageValue(cid, config.storage) == 1 then
doPlayerSendCancel(cid, config.msg)
return TRUE
end
if getPlayerStorageValue(cid, config.storage) ~= 1 then
config.mana = getCreatureMaxMana(cid)*0.90
if getPlayerMana(cid) >= config.mana then
doPlayerAddMana(cid, -config.mana)
setPlayerStorageValue(cid, config.storage, 1)
addEvent(useAgain, config.seconds*1000, cid)
return doCombat(cid, combat, var)
else
doPlayerSendCancel(cid, config.semMana)
end
end
return TRUE
end

 

Tag

<instant name="Super Berserk" words="knightvip" lvl="200" prem="1" direction="0" exhaustion="0" needlearn="1" script="vip/super berserk.lua">
	  <vocation id="12"/>
</instant>

 

Acho que é assim.

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

  • 0

/\ alguem da rep- ae plz?

 

Qual o motivo eu tentei ajudar mostrando a ele que não sabia colocar pra aprender e coloquei debaixo do CastSpell não sei o Motivo de rep-.

 

 

 

@Post editado.

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

  • 0

rep - por tu postar qlqr coisa sem nem testar ou saber oq tas fazendo --'

da onde ja se viu colocar 2 funçoes 'principais' uma dentro da outra... existe debuggers para uma coisa sabia? ;/

Link para o comentário
Compartilhar em outros sites

  • 0

rep - por tu postar qlqr coisa sem nem testar ou saber oq tas fazendo --'

da onde ja se viu colocar 2 funçoes 'principais' uma dentro da outra... existe debuggers para uma coisa sabia? ;/

Arrumei fiz merda sem ver.

Link para o comentário
Compartilhar em outros sites

  • 0

na real continua MUITO errado...

 

Se está errado pelomenos eu tentei a judar se eu não sei que culpa eu tenho ? se voce sabe então resolve ai invez de ficar falando merda ai ta errado que se foda se ta errado faz tu mano eu to tentando ajudar mlk chato vem aqui pra falar so merda.

Link para o comentário
Compartilhar em outros sites

  • 0

Script pra aprende

function onUse(cid, item)
if getPlayerLearnedInstantSpell(cid, "Super Berserk") then
  return doPlayerSendCancel(cid, "Você já aprendeu.")
end

doPlayerLearnInstantSpell(cid, "Super Berserk")
doPlayerSendTextMessage(cid, 27, "Você aprendeu a magia \"Super Berserk\".")
doRemoveItem(item.uid, 1)
return true
end

tag da spell:

[code]<instant name="Super Berserk" words="knightvip" lvl="200" prem="1" direction="0" exhaustion="0" needlearn="1" script="vip/super berserk.lua">
<vocation id="12"/>
</instant>

[/code]

Link para o comentário
Compartilhar em outros sites

  • 0

kkk postar qlqr coisa sem nem tentar passar por um debugger para mim eh inutil... soh vai fazer o dono do topico perder tempo testando ele ms... ¬¬

 

e alias tu se irrita muito rapido...

Link para o comentário
Compartilhar em outros sites

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