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

pazquinho
em Scripts

pazquinho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/05/11Posts: 16

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 !

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

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

jeoz.png

pazquinho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/05/11Posts: 16

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>

Enself

banido
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 03/06/13Posts: 213

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.

Usuário banido por divulgação indevida.

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

/\ alguem da rep- ae plz?

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

Enself

banido
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 03/06/13Posts: 213

/\ 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.

Usuário banido por divulgação indevida.

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

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? ;/

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

Enself

banido
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 03/06/13Posts: 213

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.

Usuário banido por divulgação indevida.

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

na real continua MUITO errado...

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

Enself

banido
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 03/06/13Posts: 213

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.

Usuário banido por divulgação indevida.

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

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]

jeoz.png

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

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...

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

pazquinho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/05/11Posts: 16

ok deu certo pd fecha