EL
spell

Magia Com Carga

Por Elviis, 11 de set. de 2012 em Scripts

magia com carga...
script
25
2.2k
ElviisE
11 de setembro de 2012 às 02:21

Cooé Rapaziada sussa? Ai to querendo um script de magias de cargar no meu ot eu botei um boss que quando tu mata ele tu ganha um magia mas eu quero ela por com carga Ex:mata o bixo ganha 3x Da Magia Diablo Rain... Falou Lekada !

NewtonnotwenN
11 de setembro de 2012 às 13:33

Seção errada.

 

Dúvidas sobre scripts é neste tópico:

 

http://www.xtibia.com/forum/forum/86-pedidos-e-duvidas-scripting/

 

Atenção da próxima vez e não esqueça de ler as regras da seção.

 

Reportado para moverem.

ElviisE
11 de setembro de 2012 às 17:48

@

Newtonnotwen

 

Valeu eu nem sabia so novo ake !

LuckOakeL
11 de setembro de 2012 às 17:59

creaturescripts.xml:

 

<event type="death" name="MonsterCharge" script="monstercharge.lua"/>

 

monstercharge.lua:

 

function onDeath(cid, deathList)

mmsg = "sim" -- Mandar mensagem? Sim ou nao

msg = "Você obteve 1x charge de spell." -- Mensagem que será mandada

stor = getPlayerStorageValue(cid, 3172)

 

if stor == -1 then

setPlayerStorageValue(deathList[1], 3172, 1)

else

setPlayerStorageValue(deathList[1], 3172, stor+1)

end

if mmsg == "sim" then

doPlayerSendTextMessage(deathList[1], MESSAGE_STATUS_CONSOLE_ORANGE, msg)

end

return true

end

 

 

No monstro que você quer, adiciona isso antes de </monster>:

 

<script>
<event name="MonsterCharge"/>
</script>

 

Adicione isso no script da spell que você quer que tenha charges, abaixo de onCastSpell:

 

if getPlayerStorageValue(cid, 3172) == 0 then
doPlayerSendCancel(cid, "Not enough charges.")
return false
end

charges = getPlayerStorageValue(3172)
setPlayerStorageValue(cid, 3172, charges-1)

Editado Setembro 11 por LuckOake

NewtonnotwenN
11 de setembro de 2012 às 18:08

Eu vi que o Luck postou ai, só que já tava acabando uma, então apenas ignore.

 

Quem quiser usar:

 

Fiz uma que só pode usar se tiver certo item:

 

Usei o exemplo com um skyring.

 

Testado em TSF 8.6.

 

Em data/spells/scripts crie um arquivo.lua nomeie para skyring e adicione:

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, 47)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -5.9, -68, -4.9, 109)

 

local arr1 = {

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

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

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

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

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

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

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

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

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

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

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

}

 

 

local area = createCombatArea(arr1)

 

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

if getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == 2123 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You use POWER ENERGY!")

return doCombat(cid, combat, var)

else

doPlayerSendCancel(cid, "Você não possui o Skyring.")

doSendMagicEffect(getPlayerPosition(cid), 2)

end

end

Editando:

 

-Azul: Areá de efeito e hit (1 para ativar e 0 para desativar)

 

-Marrom: Efeito (/z)

 

-Teal: Formula de attack

 

-Laranja: Local do slot

 

Lista:

 

head = CONST_SLOT_HEAD,

armor = CONST_SLOT_ARMOR,

legs = CONST_SLOT_LEGS,

feet = CONST_SLOT_FEET,

ring = CONST_SLOT_RING,

necklace = CONST_SLOT_NECKLACE

 

-Roxo: Id do item

 

-Vermelho: Mensagem em baixo da tela

 

-Verde: Mensagem no centro da tela

 

Em spells.xml:

<instant name="skyring" words="energy power" lvl="100" mana="1600" prem="1" exhaustion="1200" selftarget="1" needlearn="0" script="skyring.lua">

<vocation id="2"/>

<vocation id="6"/>

<vocation id="1"/>

<vocation id="5"/>

</instant>

Qualquer dúvida para editar a tag pergunte.

Editado Setembro 11 por Newtonnotwen

ElviisE
11 de setembro de 2012 às 18:54

@

LuckOake

 

Deu erro !

 

[11/09/2012 18:53:01] data/creaturescripts/scripts/monstercharge.lua:7: attempt to index local 'deathList' (a number value)

[11/09/2012 18:53:01] stack traceback:

[11/09/2012 18:53:01] data/creaturescripts/scripts/monstercharge.lua:7: in function <data/creaturescripts/scripts/monstercharge.lua:1>

LuckOakeL
11 de setembro de 2012 às 18:56

Hm... Tá, tenta ai. Não prometo que funciona, mas tentemos.

 

function onDeath(cid, deathList)

mmsg = "sim" -- Mandar mensagem? Sim ou nao

msg = "Você obteve 1x charge de spell." -- Mensagem que será mandada

stor = getPlayerStorageValue(cid, 3172)

tkiller = getPlayerGUID(deathList[1])

 

if stor == -1 then

setPlayerStorageValue(tkiller, 3172, 1)

else

setPlayerStorageValue(tkiller, 3172, stor+1)

end

if mmsg == "sim" then

doPlayerSendTextMessage(tkiller, MESSAGE_STATUS_CONSOLE_ORANGE, msg)

end

return true

end

Editado Setembro 11 por LuckOake

ElviisE
11 de setembro de 2012 às 19:08

Deu erro ainda se liga lek eu tenho um script desses ai só que tipo não ta com carga se eu mandar pra tu tu poe carga nele ?

LuckOakeL
11 de setembro de 2012 às 19:08

Sim. Manda ele ai.

ElviisE
11 de setembro de 2012 às 19:09

Pode ser pelo skype ou msn ?

LuckOakeL
11 de setembro de 2012 às 19:10

Não, só atendo pedidos via Private Message aqui no XTibia.

ElviisE
11 de setembro de 2012 às 19:17

Vishi como manda privat RIARIAI so novo malz :x

 

vou enviar como msg tá ?

 

Mandei como msg !

 

Viiiiu ?

 

@

LuckOake

 

Ta Aew ?

LuckOakeL
11 de setembro de 2012 às 19:20

Rapaz, por favor, não fique floodando no tópico, isso não é permitido. Espere um pouco que já edito aqui, vou tentar fazer o que você pediu.

ElviisE
11 de setembro de 2012 às 19:24

Malz é que eu to agoniado pensei que tu tinha deixado pra la :s Mas valeu leks pela consideração

EskyloE
11 de setembro de 2012 às 19:45

o script q vc colocar na pasta creaturescripts/scripts

function onDeath(cid, corpse, deathList)
addchar = 3 --quantas cargas add ao matar
mmsg = "sim" -- Mandar mensagem? Sim ou nao
msg = "Você obteve "..addchar.."x charge de spell." -- Mensagem que será mandada
stor = getPlayerStorageValue(deathList[1], 3172)
if stor == -1 then
setPlayerStorageValue(deathList[1], 3172, addchar)
else
setPlayerStorageValue(deathList[1], 3172, stor+addachar)
end
if mmsg == "sim" then
doPlayerSendTextMessage(deathList[1], MESSAGE_STATUS_CONSOLE_ORANGE, msg)
end
return true
end

Editado Setembro 11 por Eskylo