TO
pedido

function onCombat , me ajuda a fazer isso aqui?

Por tonynamoral, 09 de jan. de 2013 em Scripts

14
1.1k
tonynamoralT
09 de janeiro de 2013 às 18:36

Olá galera , eu gostaria de um sistema , que tipo . o player está usando uma wand e , ele tem 30% de mandar uma magia .

 

exemplo :

 

 

local wands = {

[9812] = "exura",

[1725] = "exori flam",

}

 

function onCombat(cid)

 

if item.itemid = wands[getPlayerSlotItem(cid,6).itemid] then

if math.random(1,100) <= 30 then

doPlayerCastSpell(cid,wands[getPlayerSlotItem(cid,6).itemid]

end

return true

end

end

 

Só um exemplo .

OneshotO
09 de janeiro de 2013 às 19:11

Faz direto no script da wand.

Editado Janeiro 9 por Oneshot

tonynamoralT
09 de janeiro de 2013 às 19:23

Como?

09 de janeiro de 2013 às 20:18

data/weapons/scripts

copie um arquivo e renomeie para spellwand.lua

local wands = {
[9812] = "exura",
[1725] = "exori flam",
chance = 30 -- em porcentagem
}

function onUseWeapon(cid, var)
if math.random(1,100) <= wands.chance then
doPlayerCastSpell(cid,wands[item.itemid])
end
return true
end

data/weapons/weapons.xml ache todas as wands que voce vai colocar o efeito e troque a tag

 

event="function" value="default"

por ..

event="script" value="spellwand.lua

 

não testei ;S

Editado Janeiro 9 por XxPaaulinhoOxX

tonynamoralT
09 de janeiro de 2013 às 22:13

Irei testar =x

OneshotO
09 de janeiro de 2013 às 22:55

Não vai funcionar.

 

O processo de instalação é o mesmo do passado pelo usuário acima.

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
-- min = (level / minl + maglevel / minml) * 1. * mina + minb
-- max = (level / maxl + maglevel / maxml) * 1. * maxa + maxb
-- min < minc
--    min = minc
-- max < maxc
--    max = maxc
-- setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, mina, minb, maxa, maxb[, minl, maxl[, minm, maxm[, minc[, maxc]]]])
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, 0, -1, 0, 5, 5, 1.2, 1.4)

function onUseWeapon(cid, var)
   if math.random(0, 100) > 70 then
       doPlayerCastSpell(cid, "exori flam")
   end
   doCombat(cid, var)
   return true
end

 

Lembrando que um script de weapon, você precise criar um combat para que ele funcione e editar a fórmula de dano a gosto.

 

Deixei alguns comentários para te auxiliar quanto ao dano.

tonynamoralT
09 de janeiro de 2013 às 23:34

Poderia me ajudar a instalar?

OneshotO
09 de janeiro de 2013 às 23:37

1. Crie um arquivo Lua com o nome que você quiser em data/weapons/scripts, cole o conteúdo passado acima.

2. Abra o arquivo weapons.xml e coloque a linha abaixo:

 

<wand id="ID_DA_WAND" level="LEVEL_DA_WAND" mana="MANA_POR_TIRO" event="script" value="nome_do_arquivo.lua">

 

Certifique-se também que não exista nenhuma outra linha relacionada ao ID que você vai colocar, para evitar erros.

tonynamoralT
10 de janeiro de 2013 às 10:09

Irei testar.

 

[10/01/2013 10:09:21] [Error - Weapon Interface]

[10/01/2013 10:09:21] data/weapons/scripts/wands.lua:onUseWeapon

[10/01/2013 10:09:21] Description:

[10/01/2013 10:09:21] (luaDoCombat) Combat not found

OneshotO
10 de janeiro de 2013 às 10:38

Errei a linha:

 

doCombat(cid, var)

 

Troque por:

 

doCombat(cid, combat, var)

tonynamoralT
10 de janeiro de 2013 às 12:05

[10/01/2013 12:05:36] [Error - Weapon Interface]

[10/01/2013 12:05:36] data/weapons/scripts/wands.lua:onUseWeapon

[10/01/2013 12:05:36] Description:

[10/01/2013 12:05:36] (luaDoCombat) Combat not found

OneshotO
10 de janeiro de 2013 às 12:08

Só sabe vir aqui postar "errinho" e esperar que caia do céu a solução, não mexe um dedo um milímetro para tentar aprender a consertar erros e aprender um pouco de Lua.

 

Cansei já da sua folga, então se vira aí.

 

Abraços.

tonynamoralT
10 de janeiro de 2013 às 12:21

Eu estou tentando arrumar aqui , mais obrigado ai.

SnowszS
10 de janeiro de 2013 às 15:12

@Topic

 

Resolvido!

Script feito via Msn, podem mover o tópico.

 

 

@Script

 

Esse foi um script muito simples, foi só usar um if.

Editado Janeiro 10 por Snowsz