GE

Distance Weapons Igual Tibia Rl

Por genoma, 25 de out. de 2007 em Tutoriais de Scripting

otserv
tibia
script
16
5.2k
genomaG
25 de outubro de 2007 às 17:58

Primeiramente quero dizer que este é meu primeiro tutorial e me desculpem desde já qualquer erro.

Então sem mais blá blá blá e vamos ao que interessa.

Lembrando que : serve também para Royal Spear, Enchanted Spear e todas armas de distance, o processo é o mesmo ( óbvio ).

 

Abra a pasta do seu OT: data/weapons e abra seu arquivo weapons.xml:

 

Procure pelas armas distance weapons e veja se sua spear está assim:

 

<distance id="2389" ammo="move" enabled="1" script="spear.lua">

 

Agora que está o segredo! Repare bem onde destaquei em azul, mude para HAND, ficando assim:

 

<distance id="2389" ammo="hand" enabled="1" script="spear.lua">

 

Agora temos que editar a arma no seu script:

Vá em data/weapons/scripts e apague todo conteúdo do arquivo spear.lua, substituíndo assim:

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SPEAR)

setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 0.7, 0)

 

function onUseWeapon(cid, var, item)

--By GENOMA

 

chance = 11

 

quebrar = math.random(1,chance)

if quebrar == 1 then

doPlayerRemoveItem(cid,2389,1)

 

end

 

return doCombat(cid, combat, var)

end

 

Explicando o que acontece:

Onde está em verde significa a variável da chance dela quebrar ao usar nos bixos.

Neste exêmplo, a chance dela se quebrar é 1 em 11 tacadas.Se quiser que demore mais para quebrar, mude a chance para 12,13...assim por diante xD

Onde está em vermelho é o ID do objeto(no caso a spear).

 

Podem testar que garanto 100%.

 

OBS IMPORTANTE: Versões anteriores ao 8.0 NÃO colocar ammo="hand" no weapons.xml.Deixe "move" mesmo que funfa. ( ty Conde ).

 

Bom, é isso ae...lembrando que se quiser fazer o mesmo com Royal Spear, Enchanted Spear, Throwing Star, etc... basta fazer o mesmo processo, apenas trocando o ID no arquivo da arma.xml e arma.lua e configurando o DAMAGE à seu gosto.:p

 

 

Créditos 50% à mim e 50% ao @Conde Sapo pois graças aos tutoriais dele que vi, aprendi criar script.

Fuis.

Espero que aprovem, pois nunca vi um OT com as spear funcionando como no global :D

 

Fuis...

 

:XTibia_smile:

Editado Outubro 29 por genoma

leo_itachiL
25 de outubro de 2007 às 18:06

otimo tutorial xD

bem orgazinado

com seus devidos creditos

 

bom eu ainda nao testei mas pelo que li deve esta realente 100%

aprovado ;)

teresT
25 de outubro de 2007 às 19:04

Nussa muito bom mesmo e naum tinha visto um desce aki..

 

realmente.. fico bom..

 

=D

 

Eu Aprovo mas nao depende apenas de min..

 

;D

Conde SapoC
25 de outubro de 2007 às 21:53
Créditos 50% à mim e 50% ao @Conde Sapo pois graças aos tutoriais dele que vi, aprendi criar script
Brigaúúúú pelo carinho

Mas o mérito é todo seu.

 

Você testou antes de postar aqui ???

 

Aqui não funcionou por 2 motivos :

break = math.random(1,chance)

break é uma palavra RESERVADA e não pode ser usada.

(gera erro e não carrega)

 

precisei substituir a palavra break por quebrar

(Uso Evolutions 7.92)

 

ammo="hand"

Não deu certo aqui.

A spear não saiu e também não atingiu o bicho

 

Voltei pra

ammo="move"

Voltou a funcionar direitinho.

 

Sendo assim , meu comentário é :

 

Não trocar MOVE por HAND

 

e

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SPEAR)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 0.7, 0)

function onUseWeapon(cid, var)
--By GENOMA
chance = 11
quebrar = math.random(1, chance)
if quebrar == 1 then
	doPlayerRemoveItem(cid,2389,1)
end
return doCombat(cid, combat, var)
end

 

mas o script ficaria menor assim

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SPEAR)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 0.7, 0)

function onUseWeapon(cid, var)
--By GENOMA
if math.random(1, 11) == 1 then
	doPlayerRemoveItem(cid,2389,1)
end
return doCombat(cid, combat, var)
end

 

Funcionou PERFEITAMENTE

As spear quebram agora.

aplauso.gif

 

Parabundas pela idéia

:thumbsupsmiley:

Conde SapoC
25 de outubro de 2007 às 22:12
Créditos 50% à mim e 50% ao @Conde Sapo pois graças aos tutoriais dele que vi, aprendi criar script.
Brigadúúúú pelo carinho.

Mas o mérito é todo seu.

 

Você testou antes de postar aqui ???

 

Não funcionou aqui por 2 motivos :

break = math.random(1,chance)

break aqui é uma palavra RESERVADA e isso gera erros.

(Uso Evolutions 7.92)

 

Precisei subistituir a palavra break por quebrar

 

e isto aqui também

ammo="hand"

A spear não saia e nem tirava hit do monstro.

 

voltei como estava antes

ammo="move"

Ae funcionou direitinho.

 

Sendo assim meu comentário é :

Não trocar MOVE por HAND

 

e o script fica assim :

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SPEAR)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 0.7, 0)

function onUseWeapon(cid, var)
--By GENOMA
chance = 11
quebrar = math.random(1, chance )
if quebrar == 1 then
	doPlayerRemoveItem(cid,2389,1)
end
return doCombat(cid, combat, var)
end

Só substituí a palavra break por quebrar

 

mas ficaria menor assim :

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SPEAR)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 0.7, 0)

function onUseWeapon(cid, var)
--By GENOMA
if math.random(1, 11) == 1 then
	doPlayerRemoveItem(cid,2389,1)
end
return doCombat(cid, combat, var)
end

 

Funcionou PERFEITAMENTE

A spear quebra (1 pra 11)

aplauso.gif

 

Parabundas pela idéia.

eu recomendo.

 

:XTibia_smile:

 

Ps.: Por algum motivo que desconheço saiu 2 vezes.

Aproveitei e fiz umas correçõezinhas.

Editado Outubro 26 por Conde Sapo

25 de outubro de 2007 às 23:33

Otimo tutorial

Parabens

 

Aprovado

 

Abraços...

christenC
25 de outubro de 2007 às 23:44

XTibiano Conde Sapo

 

Tome cuidado com flood , você fez double post

 

Topic

 

Bem manero, funciono aqui

 

Nota 7

 

--------------------

Christen

genomaG
26 de outubro de 2007 às 00:50

fiz uma mudançazinha no script ( vlw Conde ).

 

E quanto ao "hand" aqui funcionou certinho. Pois quando deixei "move", não funcionou :/

Bom, acho que essa parte do script é só para 8.0 mesmo ^^

 

 

Comentem :XTibia_smile:

Conde SapoC
26 de outubro de 2007 às 01:54
Tome cuidado com flood , você fez double post
Não deu pra perceber que é o MESMO tópico que saiu 2 vezes ???.

Isso acontece algumas vezes.

Você clica em ENVIAR e a página não abre.

Então você volta e ENVIAR de novo.

 

Já vi post de 4 vezes aqui.

 

 

 

@Genoma

Talvez fosse interessante então você informar no tutorial que pode haver esse problema.

 

Versão 8.0 usar HAND

Versão anterior usar MOVE

 

 

Ficou ÓTIMO o tutorial.

:thumbsupsmiley:

genomaG
27 de outubro de 2007 às 10:43

Já fiz todas modificações necessárias no script :D

 

Pode testar que eu garantcho!

 

:XTibia_smile:

SkullsS
27 de outubro de 2007 às 11:51

parabens genoma...

ta se mostrando cada vez mais melhor hsahusahusahusahusahusa

 

otimo tutorial...

 

vai ajuda mta gente assim como resolveu uma duvida minha ^^

 

flw e parabens

2 meses depois...
AddictA
11 de dezembro de 2007 às 16:53

Aprovado,

Movido para seção de scripts.

CarlicC
17 de dezembro de 2007 às 23:38

CARA!!! MUITO OBRIGADO!!! TAVA PRECISANDO MUITO DISSO MUITO OBRIGADO MESMO CARA

MERECE UM BEIJO apoekPAOKEPOakepokAPEKapoekpoAKEPOakepAKEPO

 

Vlwzão mesmo!!! :smile_positivo: :smile_positivo: :smile_positivo:

7 meses depois...
satan666S
06 de julho de 2008 às 19:01

essa parte d formula skill me ajuda a resolver o meu pro por que minha royal spears so hitan 80 msm com skill alto ou n ajuda aew

jimuiJ
06 de julho de 2008 às 20:15

Nháa Legalzinho