Ir para conteúdo

Como Editar Magias [Novo Update]


MatheusGlad

O que voce achou do update?  

22 votos

  1. 1. O que voce achou do update 0.3b

    • Muito Bom
    • Desnecessario
      0
    • Podia Melhorar


Posts Recomendados

Versao 0.1b Tutorial
Voce nao Sabe nada sobre scripts e nem mesmo como funcionao e quer criar uma magia
Voce pode ir no classico copy/paste:
Primeiro Passo:
Copie uma tag no spells.xml Exemplo:

<instant name="Eternal Winter" words="exevo gran mas frigo" lvl="60" mana="1200" prem="1" selftarget="1" exhaustion="2000" needlearn="0" script="attack/eternal winter.lua">


<vocation name="Druid"/>
<vocation name="Elder Druid"/>
</instant>


E cole logo a baixo uma identica.
Agora edite certos campos:

<instant name="Eternal Winter" words="exevo gran mas frigo" lvl="60" mana="1200" prem="1" selftarget="1" exhaustion="2000" needlearn="0" script="attack/eternal extreme winter.lua">


<vocation name="Druid"/>
<vocation name="Elder Druid"/>
</instant>



Vermelho Palavras a serem ditas para a magia sair
Verde Level para Usar a magia
Amarelo Mana pra Usar a magia

Negrito Voce deve mudar para o nome do seu script, no caso usaremos eternal extreme winter

Procure na pasta scripts/attack o bloco de notas chamado eternal winter copieo e cole renomeie-o para eternal extreme winter, abaixo ensino como editar.


Em seguida voce pode editar certas coisas

--Calculed by ta4e--


--For tibia 8.31--
--Made in 07/11/08--

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
function getCombatFormulas(cid, lv, maglv)
local formula_min = -((lv*0.25 + maglv*3) * 2.7)
local formula_max = -((lv*0.25 + maglv*3) * 3.1)

if(formula_max < formula_min) then
local tmp = formula_max
formula_max = formula_min
formula_min = tmp
end
return formula_min, formula_max
end

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

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end



Azul Minimo Dano -- Leve em base que dakele geito que esta 2.7 ira dar 500 de dano se voce multiplicar por 2 o 2.7 ira ficar 5.4 e ira dar 1000 de dano
Rosa Maximo Dano -- mesmo conceito de cima

Laranja se voce nao conhece o comando pode ser !z 1,2,3...66 ou /z 1,2,3...66 useo no seu ot e veja um bem legal e apague toda a parte laranja e bote o efeito que voce quer no meu caso irei botar 61

Conclusao a magia ira ficar com a forma do exevo gran mas frigo com otro dano e com otro efeito

___________
Update 0.2a

Usando tambem o comando !x ou /x 1,2,3...41

Na linha da sua magia vai estar assim:

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 18)



Para usar os efeitos do /x ou !x voce deve botar antes do EFFECT a palavra DISTANCE e ficara assim:

setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 18)



Negrito Como devera ficar para utilizar o comando !x ou /x

Listinha de efeitos e seus devidos nomes:

!z ou /z:


0 - Blood Splat
1 - Mana Loss
2 - Poff Smoke
3 - Weapon Hit
4 - Explosion Area
5 - Explosion Hit
6 - Fire Area
7 - Yellow Ring
8 - Poison Ring
9 - Hit Area
10 - Teleport
11 - Energy Hit
12 - Blue Magic Sparkle
13 - Red Magic Sparkle
14 - Green Magic Sparkle
15 - Rising Fire
16 - Poison Hit
17 - Mort Area
18 - Green Sound
19 - Red Sound
20 - Poison Area
21 - Yellow Sound
22 - Purple Sound
23 - Blue Sound
24 - White Sound
25 - Bubbles
26 - Craps
27 - Gift Wraps
28 - Yellow Firework
29 - Red Firework
30 - Blue Firework
31 - Stun Effect
32 - Sleep
33 - Sea Serpent
34 - Groundshaker
35 - Hearts
36 - Fire
37 - Energy Area
38 - Small Clouds
39 - Holy Damage
40 - Big Clouds
41 - Ice Area
42 - Ice Tornado
43 - Ice Attack
44 - Stone Shower
45 - Small Plants
46 - Munchy
47 - Purple Energy
48 - Yellow Energy
49 - Holy Caldera
50 - Big Plants
51 - Cake
52 - Giant Ice
53 - Water Splash
54 - Plant Spin
55 - Nao Sei
56 - Nao Sei
57 - Nao Sei
58 - Nao Sei
59 - Nao Sei
60 - Nao Sei
61 - Nao sei
62 - Nao Sei
63 - Nao sei
64 - Nao Sei
65 - Nao Sei
66 - Nao Sei

!x ou /x:
0 - Spear
1 - Bolt
2 - Arrow
3 - Fire
4 - Energy
5 - Poison Arrow
6 - Burst Arrow
7 - Throwing Star
8 - Throwing Knife
9 - Small Stone
10 - Death
11 - Large Rock
12 - Snowball
13 - Power Bolt
14 - Poison
15 - Infernalbolt
16 - Hunting Spear
17 - Enchanted Spear
18 - Assassin Star
19 - Viper Star
20 - Royal Spear
21 - Sniper Arrow
22 - Onyx Arrow
23 - Piecing Bolt
24 - Sword
25 - Axe
26 - Club
27 - Ethreal Spear
28 - Ice
29 - Earth
30 - Holy
31 - Sudden Death
32 - Flash Arrow
33 - Flamming Arrow
34 - Shiver Arrow
35 - Energy Ball
36 - Small Ice
37 - Small Holy
38 - Small Earth
39 - Earth Arrow
40 - Explosion
41 - Cake


___________________
Update 0.2b

Mudando a area da sua spell:

Repare a linha da nossa primeira spell la em cima

local area = createCombatArea(AREA_CROSS5X5)


setCombatArea(combat, area)



Neste local voce edita a area da sua magia vamos começar:

Apague toda akela linha acima em negrito e bote isto:

local area = {


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


setCombatArea(combat, createCombatArea(area))



aream.png

Legenda dos numeros:
0 = nao vai acertar a magia
1 = aonde a magia vai acertar
2 = centro que eh o player (nao acertara tambem)

Agora voce pode fazer uma area que voce queira de qualquer forma
___________________
Update 0.3a

Como Trocar o Dano da sua Magia:

Para trocar o tipo de dano repare a linha da magia:

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)



Vermelho Eh o tipo de dano que ira dar eh so mudalo para outro tipo

Listinha de Danos:

COMBAT_PHYSICALDAMAGE - 1COMBAT_ENERGYDAMAGE - 2COMBAT_EARTHDAMAGE - 4COMBAT_POISONDAMAGE - 4COMBAT_FIREDAMAGE - 8COMBAT_UNDEFINEDDAMAGE - 16COMBAT_LIFEDRAIN - 32COMBAT_MANADRAIN - 64COMBAT_HEALING - 128COMBAT_DROWNDAMAGE - 256COMBAT_ICEDAMAGE - 512COMBAT_HOLYDAMAGE - 1024COMBAT_DEATHDAMAGE - 2048PS:Voce pode usar os numeros no lugar das palavras



___________________
Update 0.3b
Botando em pratica tudo que aprendemos!

Neste update nos iremos usar todo o conteudo do tutorial para fazer uma magia com varios efeitos,danos e areas diferentes

Aqui esta o script que criei para trabalharmos em cima dele:

local combat1 = createCombatObject()


local combat2 = createCombatObject()
local combat3 = createCombatObject()
local combat4 = createCombatObject()
local combat5 = createCombatObject()
local combat6 = createCombatObject()
local combat7 = createCombatObject()

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 42)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition1 = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition1, CONDITION_PARAM_TICKS, 20000)
--setConditionParam(condition1, CONDITION_PARAM_SPEED, -500)
setConditionFormula(condition1, -0.8, 0, -0.8, 0)
setCombatCondition(combat1, condition1)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 17)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition2 = createConditionObject(CONDITION_ENERGY)
setConditionParam(condition2, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition2, 10, 2000, -80)
setCombatCondition(combat2, condition2)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 52)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition3 = createConditionObject(CONDITION_FIRE)
setConditionParam(condition3, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition3, 10, 2000, -80)
setCombatCondition(combat3, condition3)

local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, PHYSICALDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 3)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition4 = createConditionObject(CONDITION_POISON)
setConditionParam(condition4, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition4, 10, 2000, -80)
setCombatCondition(combat4, condition4)

local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_EFFECT, 2)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition5 = createConditionObject(CONDITION_CURSED)
setConditionParam(condition5, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition5, 10, 2000, -80)
setCombatCondition(combat5, condition5)

local combat6 = createCombatObject()
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, 40)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition6 = createConditionObject(CONDITION_FREEZING)
setConditionParam(condition6, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition6, 10, 2000, -80)
setCombatCondition(combat6, condition6)

local combat7 = createCombatObject()
setCombatParam(combat7, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat7, COMBAT_PARAM_EFFECT, 6)
setCombatFormula(combat7, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.1, -1)
local condition7 = createConditionObject(CONDITION_DAZZLED)
setConditionParam(condition7, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition7, 10, 2000, -80)
setCombatCondition(combat7, condition7)

arr1 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}

arr2 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 3, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}

arr3 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}

arr4 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}

arr5 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}

arr6 = {
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
}

arr7 = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}

local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
local area5 = createCombatArea(arr5)
local area6 = createCombatArea(arr6)
local area7 = createCombatArea(arr7)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)
setCombatArea(combat6, area6)
setCombatArea(combat7, area7)

local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end

local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end

local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end

local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat4, parameters.var)
end

local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat5, parameters.var)
end

local function onCastSpell6(parameters)
doCombat(parameters.cid, parameters.combat6, parameters.var)
end

local function onCastSpell7(parameters)
doCombat(parameters.cid, parameters.combat7, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6, combat7 = combat7 }
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 200, parameters)
addEvent(onCastSpell3, 300, parameters)
addEvent(onCastSpell4, 400, parameters)
addEvent(onCastSpell5, 500, parameters)
addEvent(onCastSpell7, 600, parameters)
addEvent(onCastSpell6, 700, parameters)
addEvent(onCastSpell7, 800, parameters)

return true
end


Legenda:
Azul Dano de cada wave (onda) da sua magia
Negrito Area das magias (arr)
Vermelho Pausa de uma wave para outra, se quizer aumente bote 100,300,500...

Pronto agora se voce viu os outros updates sabera mudar dano efeito e fazer uma otima magia bem louca

Video de Demonstraçao:



__________
Fim dos Updates (Se voce tiver alguma opniao de update MP para mim que eu faço mais updates) Editado por Mudrock
Link para o comentário
Compartilhar em outros sites

Muito bom o tutorial, mais você pode melhora-lo, organiza-lo ...

Pra começa acho que faltou o fechamento da script

</instant>

 

ficou confuso aqui

A parte em negrito eh a parte mais importante qeu voce tera que mudar ela se nao, a magia nao funcionara

voce pode botar eternal winter extreme.lua

 

se você arrumar o tópico tenho certeza que será aprovado.

 

 

 

Castello entre neste tópico ~>http://www.xtibia.com/forum/topic/128676-mindrages-spellmaker-068b/

Com esse programa que o alissow disponibilizou você não terá erros em criar uma spell

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

Tenho duas duvidas:

 

: Aonde que eu acho o nome do efeito, tipo /z 2 = uma fumacinha... como quando um bixo ataca seu shield. mais eu nao sei o nome desse efeito...

 

: Como faz pra usar os efeitos do /x ? e aonde ta o nome dos efeitos tambem...

 

Eu sei que aqui nao é lugar pra isso mais aproveitando ja o topico...

Poderia me passa uma formula pra mim usar em runa? que aumenta o dano por lvl e ml... nao curto as runa que só fica foda por ml =/ obrigado.

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

Devil Moon, a parte laranja eh o efeito da magia que no caso do exevo gran mas frigo eh o tornado de gelo voce pode subistituilo por outro e para voce saber outro efeito eh so ir no seu ot usar /z ou !z 1 a 66 e dps tira akela parte laranja e bota o numero

 

fastfast, olhe aki o script da sd:

--Calculed by ta4e--

--For tibia 8.31--

--Made in 07/11/08--

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)

setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)

function getCombatFormulas(cid, lv, maglv)

local formula_min = -((lv*0.25 + maglv*3) * 1.7)

local formula_max = -((lv*0.25 + maglv*3) * 2.1)

 

if(formula_max < formula_min) then

local tmp = formula_max

formula_max = formula_min

formula_min = tmp

end

return formula_min, formula_max

end

 

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

Repare nesta linha

local formula_min = -((lv*0.25 + maglv*3) * 1.7)

Ali esta (level*0.25 + magiclevel*3) * 1.7)

se voce quizer que almente mais por level doque ml eh so trocar o lv*0.25 por lv*3 e no maglv voce bota maglv*0.25

 

almente o valor dos numeros conforme desejado

 

O nome do efeito /z 2 eh simplesmente 2 voce subistitui toda a parte laranja pelo numero 2

 

@UPDATE VERSAO 0.2a

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

Nossa esta muito bom o tutorial só que ainda poderia melhorar um pouco a formatação colocando algumas outras coisas em negrito, adicionando um titulo, etc.

 

A lista do update é muito util, parabéns.

Abraços.

Link para o comentário
Compartilhar em outros sites

Cara vou fazer uma runa que seja tipo uma Mana Rune mais vai ser Life Rune:

Vai em data/spells/healing copie um bloco de notas e cole renomeio para life rune e bote isso dentro:

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

 

function onCastSpell(cid, var)

doPlayerAddHealth(cid, 10000)

return doCombat(cid, combat, var)

end

 

Depois va em spells.xml e coloque a seguinte tag:

<rune name="Life Rune" id="0000" allowfaruse="1" charges="5" lvl="80" exhaustion="200" maglv="6" aggressive="0" needtarget="1" blocktype="solid" script="life rune.lua"/>

 

Legendas:

Negrito Quanto ira healar (sempre vai healar akele valor)

Azul Id da Life Rune

 

Para personalizar ainda mais va em items.xml procure o id da sua life rune e bote no lugar de spell rune life rune

Qualquer outra duvida eh so pergunta

 

@UPDATE 0.2b

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

Aqui deu erro:

 

[26/02/2010 15:10:11] [Error - Spell Interface]

[26/02/2010 15:10:11] data/spells/scripts/magia1.lua

[26/02/2010 15:10:11] Description:

[26/02/2010 15:10:11] (luaSetCombatParam) Combat not found

 

[26/02/2010 15:10:11] [Error - Spell Interface]

[26/02/2010 15:10:11] data/spells/scripts/magia1.lua

[26/02/2010 15:10:11] Description:

[26/02/2010 15:10:11] (luaSetCombatArea) Area not found

 

Pode corrigir meu script por favor? Ai esta ele.

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 27)

function getCombatFormulas(cid, lv, maglv)

local formula_min = -((lv*1.5 + maglv*0.5) * 1.7)

local formula_max = -((lv*1.5 + maglv*0.5) * 2.1)

 

if(formula_max < formula_min) then

local tmp = formula_max

formula_max = formula_min

formula_min = tmp

end

return formula_min, formula_max

end

 

local area = createCombatArea(AREA_SQUARE3X3)

setCombatArea(combat, area)

 

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

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

O problema esta na area ta 3x3 e n existe isso e tambem ta aki olha

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 27)

 

Este 1 em negrito n era pra ta ai se voce quizer fazer a area 3x3 faça assim:

local area = {

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

setCombatArea(combat, createCombatArea(area))

 

Se nao gostar como fico eh so ler o ultimo update ta bem explicado

 

PS: Erro tao bobo que eu nao reparei kkk sorry

 

Nao se esqueça de apagar a parte

 

local area = createCombatArea(AREA_SQUARE3X3)

setCombatArea(combat, area)

 

E subistituir pela que eu postei ali acima

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

×
×
  • Criar Novo...