Jump to content
  • 0

Question

Olá galerinha :3

 

Quero pedir hoje (novidade) um script de uma weapon (Wand, de preferencia) que solte 3 efeitos diferentes..

 

Por exemplo:

 

~ Primeiro solta um ShootEffect de HOLY com o efeito 49 no target.

~~ Depois solta um ShootEffect de SUDDENDEATH com o efeito 17 no target.

~~~ Por ultimo solta um ShootEffect de ENERGY com efeito 41 no target.

obs: não precisa ser desses efeitos, foram só um exemplo.

 

 

 

Agradeço muito, MUITO! A quem me ajudar :3



e dou REP+ claro :]

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

faça um arquivo na pasta weapons/scripts com nome de Wand.lua

e cole isso la dentro

w = {
[1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
[2] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
[3] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE},
[4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
[5] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
[6] = {ef = 31, sh = 35, dmg = COMBAT_PHYSICALDAMAGE},
[7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
}

function onUseWeapon(cid, var)
min, max = 300, 300 -- dano minimo e maximo
target = getCreatureTarget(cid)
if target ~= 0 then
wx = w[math.random(1, #w)]
doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh)
addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef)
end
return true
end

 

quando for escolher o item que sera a wand nao esqueça de colocar isso

<item id="xxx" article="the" name="nome da sua wand">
<attribute key="description" value="a melhor wand." />
<attribute key="weight" value="2300" />
<attribute key="weaponType" value="wand" /> coloque oque ela vai ser,no caso sera Wand,entao deixe
<attribute key="shootType" value="holy" /> não tem importançia
<attribute key="range" value="8" />

 

 

 

depois cole essa Tag em weapon.xml

<wand id="xxx" level="50" mana="13" min="0" max="0" type="earth" event="script" value="wand.lua"> <!-- Enforced Wand -->
<vocation id="1"/> [aqui fica qual vocação vai usar,aqui esta sorcerer 1 e druid 2,escolha qual quizer]
<vocation id="2"/>

Explicação

 

min, max = 300, 300 -- dano minimo e maximo ja diz tudo

"xxx" aqui é a ID do Item que sera a Wand

Link to comment
Share on other sites

  • 0

~ Funcionou direitinho Tchubaka, obrigado..

Mas teria como fazer de area? Exemplo :

 

{E, X, E} E= Efeito 3

{X, P, X} P= Efeito 44

{E, X, E} X= Efeito 9

 

OBS: Não consegui dar seu REP+, tentarei mais tarde :X

Edited by ninjabroder
Link to comment
Share on other sites

  • 0

cara tentai.


w = {
[1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
[2] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
[3] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE},
[4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
[5] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
[6] = {ef = 31, sh = 35, dmg = COMBAT_PHYSICALDAMAGE},
[7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
}

arrex = createCombatArea{
{0, 0, 1, 0, 0},
{0, 1, 1, 1, 0},
{1, 1, 2, 1, 1},
{0, 1, 1, 1, 0},
{0, 0, 1, 0, 0}
}

function sendExplosion(cid, aura, model)
rateatk = math.ceil(getPlayerLevel(cid)/2*1,5)
a = au[aura]
min, max = rateatk/2, rateatk
       if model == 1 then
               doAreaCombatHealth(cid, a.dmg, getThingPos(cid), arrex, -min, -max, a.ef[math.random(1, #a.ef)])
       elseif model == 2 then

function onUseWeapon(cid, var)
min, max = 300, 300 -- dano minimo e maximo
target = getCreatureTarget(cid)
if target ~= 0 then
wx = w[math.random(1, #w)]
doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh)
addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef)
end
return true
end

Link to comment
Share on other sites

  • 0

so daria pra adc o efeito que ele quer. se eu fizesse assim.

1efeito.


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

2efeito


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

 

3efeito


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

 

mais ai nao sairia ao mesmo tempo ;x

Link to comment
Share on other sites

  • 0

Sim, eu vou tentar fazer aqui também..

Mas tipo, eu queria mais ou menos como essa spell :

 

local acombat1 = createCombatObject()

local acombat2 = createCombatObject()

local acombat3 = createCombatObject()

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 43)

setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 8)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -65.5, -50, -65.5, -50)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 9)

setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 55)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -65.5, -50, -65.5, -50)

 

local combat3 = createCombatObject()

setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat3, COMBAT_PARAM_EFFECT, 3)

setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 55)

setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -65.5, -50, -65.5, -50)

 

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, 0, 0, 0, 0, 0, 0},

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

{0, 0, 0, 0, 0, 3, 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},

}

 

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, 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, 2, 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},

{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, 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, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 2, 0, 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, 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},

}

 

 

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

local area3 = createCombatArea(arr3)

setCombatArea(acombat1, area1)

setCombatArea(acombat2, area2)

setCombatArea(acombat3, area3)

 

function onTargetTile(cid, pos)

doCombat(cid,combat1,positionToVariant(pos))

end

 

function onTargetTile2(cid, pos)

doCombat(cid,combat2,positionToVariant(pos))

end

 

function onTargetTile3(cid, pos)

doCombat(cid,combat3,positionToVariant(pos))

end

 

 

setCombatCallback(acombat1, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

 

setCombatCallback(acombat2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2")

 

setCombatCallback(acombat3, CALLBACK_PARAM_TARGETTILE, "onTargetTile3")

 

 

local function onCastSpell1(parameters)

doCombat(parameters.cid, acombat1, parameters.var)

end

 

local function onCastSpell2(parameters)

doCombat(parameters.cid, acombat2, parameters.var)

end

 

local function onCastSpell3(parameters)

doCombat(parameters.cid, acombat3, parameters.var)

end

 

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var}

addEvent(onCastSpell1, 0, parameters)

addEvent(onCastSpell2, 0, parameters)

addEvent(onCastSpell3, 0, parameters)

return TRUE

end

Link to comment
Share on other sites

×
×
  • Create New...