Ir para conteúdo

Como Criar Armas Especiais


DarkSaga00

Posts Recomendados

==> Para total aproveitamento, melhor ja ter uma idéia basica sobre lua, functions e spells.

 

Bem, esse tutorial ensina a criar armas com efeitos de área e mostra outras possibilidades quando o assunto é weapons...

 

Tirei essas ideias de umas magias e armas do DOTA do Warcraft, vou ensinar primeiramente a criar uma arma que tenha 25% de chance de dar um dano de fogo de 4 squares a suas frente..:

 

Arma com dano de fogo (4 squares)

 

- Você deve ter em mãos o arquivo weapons.lua (data\weapons\weapons.lua) e um script qualquer na pasta script dessa mesma pasta (data\weapons\script\QualquerScript.lua).

 

*Abra o weapons.lua e procure a arma que você deseja, nesse caso eu escolhi uma fire sword (2392):

 

</melee>
<melee id="2392" level="30" unproperly="1" function="default">
<vocation name="Knight"/>
</melee>

 

(mais tarde eu volto a falar disso)

*Abra também o script que você escolheu, no meu caso eu peguei o da burst arrow (explosive_arrow.lua):

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local area = createCombatArea( { {1, 1, 1}, {1, 3, 1}, {1, 1, 1} } )
setCombatArea(combat, area)

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

 

*Renomeie esse script de modo que fique assim:

 

local combat = createCombatObject()

 

setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)

setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

 

local combata = createCombatObject()

 

setCombatParam(combata, COMBAT_PARAM_BLOCKARMOR, 1)

setCombatParam(combata, COMBAT_PARAM_BLOCKSHIELD, 1)

setCombatParam(combata, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combata, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)

setCombatFormula(combata, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

 

local area = createCombatArea( { {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 3, 0} } )

setCombatArea(combata, area)

 

function onUseWeapon(cid, var)

local chance = math.random(0, 20)

if (chance <= 5) then

return doCombat(cid, combata, var)

else

return doCombat(cid, combat, var)

end

end

 

Para que conhece um pouco sobre essa parte é facil entender, mas eu vo esplicar uns detalhesinhos.

 

- A parte em italico se refere ao ataque normal da arma (no caso dano fisico simples, sem efeito)

#Nota - eu usei duas variaveis, combat e combata para separar as formulas do ataque normal e o modificado (isso vai ser usado mais tarde)

 

- Em verde eu coloquei o tipo de dano ("COMBAT_PHYSICALDAMAGE" que pode ser trocado por algum outro, escolhi o dano fisico porque quase todos os monstros do tibia não são imunes e ele) e o tipo de efeito nos squares (CONST_ME_FIREAREA que pode ser substituido por outro efeito como por exemplo p da SD (dai é só abrir o scrip da SD e copiar essa parte))

 

- A parte vermelha representa a area do efeito especial que a arma vai dar (não vou entrar em detalhes nessa parte pois ja existem muitos tutoriais que explicam sobre essas areas, qualquer coisa olhe algum tutorial de spells)

 

- Após a area, temos a nossa função e em azul escuro os numeros que determinarão a chance de a cada ataque realizado dar esse efeito/ataque especial...

 

>>>Idéia do Script

Entendido isso tudo, percebe-se que são criados 2 tipos de ataques, 1 normal (fisico) e o outro magico (dano especial), é a cada ataque com aquela espada é chamada a função, e nela é determinado um numero de 0 a 20 e caso ele seja igual ou menos a 5 (25%) o segundo ataque (magico) acontecerá, no caso de esse numero ser maior ocorrera o ataque normal.

 

*(salve o arquivo com o nome que desejar, no meu caso salvei como fire sword.lua)

 

- Continuando o tutorial, após você ter feito as modificações que queria (ou não) vamos terminar de editar a espada, abra na parte que se encontra a sua espada (fire sword, 2392) e reescreva dessa maneira:

 

<melee id="2392" level="20 (level nessessário para utilizar o item/espada)" script="fire sword.lua (ou o nome que você renomeou o seu script)">

<vocation name="(nome da vocação que pode utilizar o item/espada)"/>

 

- Caso queria que mais vocações possam utilizar o item adicione mais uma linha, copie a linha anterior e cole, retire a barra / entre as aspas " e o simbolo de maior > do script anterior, pois essa barra determina o final das vocações, o meu script ficou assim:

 

<melee id="2392" level="45" script="fire sword.lua">
	<vocation name="knight">
	<vocation name="paladin"/>

 

- Após terminado isso, apenas abra o arquivo item.lua (data/items/items.lua) e edite a parte da sua arma do jeito que você quiser (lembre-se que o dano magico será o mesmo do dano normal e não dano modificado por ml ou coisas do gênero).

 

==> Arma Concluída :D

 

- Você deve ter percebido que são inumeras as possibilidades de use de espadas, eu por exemplo ja enchi o meu servidor delas, alguns exemplos muitos legais são:

 

*Armas com 2 tipos de ataques - Onde ela da dano de longe ou de perto dependendo a distancia (no caso de longe ela lança SDs e de perdo da um ataque fisico normal) e seus danos são modificados (dano magico a distancia baseado no ML e de perto no skill que eu escolhi).

 

*Armas com efeitos magicos - São armas que tem uma % de causar algum buff (magia duravel) em você, como por exemplo o paralize ou o estado de fogo (quando você passa por um fire field), etc...

 

*Arma com dano critico de 2 vzs ou + - Para fazer essa é bem simples, apenas coloque duas vezes ou mais (dependendo do quanto você quer que seja multiplicado) o parte que diz:

 

return doCombat(cid, combat, var)

#Nota - para um efeito melhor coloque uma chance para esse dano, uma idéia legal é colocar varias chances, por exemplo uma arma que tenha 30% de dar dano duplo, 20% de dano triplo e 10% de dano quadruplo

 

- Eu não irei colocar todos os tipos pois são muitas e o meu objetivo aqui não é dar na bandeja os scripts, meu deseja é que façam igual a mim que fui atrás para entender lua e todo o resto e em alguns meses depois ja consegui fazer meu server ser muito popular, essa é a razão pelo qual não estarei colocando os scripts das outras armas.

 

- Uma vez entendido a base, o resto da construção é com você, não se esqueça que tudo que estiver depois da fução será ativado quando o jogador atacar, então abuse muito das funções, pois até summons você pode colocar.

 

*Esse foi meu primeiro tutorial, desculpa se não foi muito bem explicado ou faltou alguns detalhes, irei melhorar nos meus proximos tutoriais.

 

*Espero ter ajudado quem precisava...

 

Abraços =D

 

 

<<<DarkSaga>>>

Link para o comentário
Compartilhar em outros sites

Desculpa se eu estiver errado..

 

Mais isso é puro Ctrl + C e Ctrl + V.

 

Por que tive a impressão de ja ter visto esse mesmo tópico.. em outro lugar.. se retirou isso de algum lugar favor por créditos do mesmo..

Link para o comentário
Compartilhar em outros sites

Ctrl C Ctrl V q nada

 

eu mesmo que fiz, tavo a recem tirando umas duvidas pra conseguir fazer e como eu não vi nenhum post assim eu fiz esse tutorial pq achei interessante a minha ideia

 

caso tenha algum que seja sequer parecido me avisa, pq até hj eu num vi ninguem faze algo assim

 

..:

Link para o comentário
Compartilhar em outros sites

Como eu disse antes..

 

" Desculpa se eu estiver errado "

 

Então amigo.. vamos lá.

 

> Gostei do tutorial.. por que digamos assim:

 

Ele é " inovador "

 

Sem contar que é dificil.. para pessoas que estão começando agora.. colocar os 4 squares em uma arma.

 

Podemos dizer que você tem chances ^^

 

[ Aprovado ] :button_ok:

 

Pões umas screens para melhorar a informação do tópico.

Abraços..

Link para o comentário
Compartilhar em outros sites

=D

 

esse foi o meu primeiro tutorial ainda

tenho muita coisa pra aprende aqui...

 

logo logo estarei colocando as imagens e criando mais alguns tutos relacionados a esse

 

obg desde já :D

Link para o comentário
Compartilhar em outros sites

@ LeoDuOt @

 

Cuidado com o flood..

 

darksaga00,gostei muito que o ser tutorial tenha sido aprovado.. creio que ajudará e vai tirar muitas dúvidas de outros membros.

 

Parabéns ótimo trabalho.

 

Sem mais~~

Att,

Tonynh

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Uhum, um ótimo tuto, eu to querendo encher meu OT com essas armas aí, pra botar em vocações novas ou em knights mesmo né xD.

 

Realmente são muitas as possibilidades de você criar estas armas, a primeira é o dualhit, depois vem as de chance de dualhit, sem dizer dos critical, distance, condition e etc. (Summons eu não sabia não :blush:)

 

Enfim, um ótimo tuto pros iniciantes ae.

 

 

Abraçoss,

Nuruto.

Link para o comentário
Compartilhar em outros sites

  • 5 months later...
  • 2 weeks later...
  • 4 months later...

Mandou bem cara, tava querendo algo desse tipo.

como vc disse. "eu dei a base"

to tetando dizinrolar varias coisas aqui com isso que vc ensinou! (:

vou ficar de olho para ver seus tutoriais! :D

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Muito Bom mesmo. Aprovadissimo TUTO.

Sou Mapper, mas sou fascinado por Scripting e o que meros código podem fazer, me ajudou muito.

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

×
×
  • Criar Novo...