SH

Assassin Star Bug Fixed

Por Shenlong, 10 de jul. de 2008 em Tutoriais de Scripting

otserv
tibia
script
5.0 (1)
18
7.1k
ShenlongS
10 de julho de 2008 às 17:22

Assassin Star Fixed

Antes de começar a fazer meu tutorial, gostaria de falar que: não sei se é o local certo aqui, mas caso esteja no local errado movam e m mandem mensagem por mp ccom o link de onde ele se encontra.

Créditos ao Alreth, Dark Rat/CHF - scripts

Shenlong - Por Ter Feito Tutorial no XTibia (não é cópia do deles)

 

Agora chega de converssa e vamos começar.Vá na pasta data/weapons/lib e abra o arquivo chamado weapons.lua e adicione nele o seguinte código:

function exhaust(cid, storevalue, exhausttime)

-- Exhaustion function by Alreth, v1.1

-- Returns 1 if not exhausted and 0 if exhausted

 

newExhaust = os.time()

oldExhaust = getPlayerStorageValue(cid, storevalue)

if (oldExhaust == nil or oldExhaust < 0) then

oldExhaust = 0

end

if (exhausttime == nil or exhausttime < 0) then

exhausttime = 1

end

diffTime = os.difftime(newExhaust, oldExhaust)

if (diffTime >= exhausttime or diffTime < 0) then

setPlayerStorageValue(cid, storevalue, newExhaust)

return 1

else

return 0

end

end

 

function lowBreak(cid, itid, count)

--lowBreak Function by Dark Rat/CHF done for solerarox.no-ip.info

chicken = getPlayerStorageValue(cid, itid)

if chicken == nil or chicken < 0 then

chicken = count

chicken = (chicken - 2)

else

chicken = (chicken - 1)

end

if chicken == (count - 2) then

setPlayerStorageValue(cid, itid, chicken)

return 0

else

setPlayerStorageValue(cid, itid, chicken)

return 1

end

 

end

 

Agora abra a pasta data/weapons/scripts e abras o arquivo da sua assassin star no meu caso foi assassin.lua, e apague o que tiver lá e coloque isto dentro.

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 18)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.1, -10, -0.4, -110)

 

function onUseWeapon(cid, var, item)

--By Dark Rat/CHF

if lowBreak(cid, 7834, 8) == 0 then

doPlayerRemoveItem(cid,7368,1)

return doCombat(cid, combat, var)

end

 

return doCombat(cid, combat, var)

end

nesta parte

if lowBreak(cid, 7834, 8) == 0 then

em azul é o número de cargas que vai ter cada assassin star no meu caso usei 8.Então é isto ai pessoal espero que gostem deste meu trabalho :D.

Até mais :XTibia_smile:

RedZLR
10 de julho de 2008 às 17:25

Explique-me uma coisa: Essa "carga" é o tanto de vezes que a Assassin Star poderá ser usada antes de sumir?

ShenlongS
10 de julho de 2008 às 17:28

Vou te falar a real creio eu que sim

pelomenos é o que o cara do post em outro fórum falou :D

eu testei aki e parece que é isto mesmo

42912264
10 de julho de 2008 às 17:31

Minah biba..

 

Otimo Tutorial..

 

 

PS:nã otam msn pq?

ShenlongS
10 de julho de 2008 às 17:34

Lord Lolzao

não to no msn por que to muito ocupado aqui :(

RedZLR
10 de julho de 2008 às 17:39

Testei aqui e deu certo, é realmente isso. Muito obrigado por contribuir com a nossa comunidade. Continue assim. :)

Tópico Aprovado

AliisonA
10 de julho de 2008 às 17:46

Huum, bacana o número de cargas do global é oito, se for avise-me neste tópico, obrigado.

Estou colocando aqui ne um servidor,

 

Abraços,

Alison.

ShenlongS
10 de julho de 2008 às 19:22

Aliison

cara não sei por que nunca usei assassin star no global :(

spookymanS
10 de julho de 2008 às 19:24

Parabéns Shenlong! Mais um excelente trabalho seu :smile_positivo:

Só uma dúvida:

if lowBreak(cid, 7834, 8) == 0 then

Se eu colocar 0 ali, ela ficará infinita ou não?

 

Spookyman~~

 

-- EDIT

5 estrelhinhas pra vc \o/

Editado Julho 10 por spookyman

ShenlongS
11 de julho de 2008 às 00:17

spookyman

não testei isso mais creio eu que sim pois ali á a quantidade de cargas por assassin :D

Valeu pelo coments

 

Tópico

Dúvidas postem aqui

capeta7C
14 de julho de 2008 às 23:33
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.1, -10, -0.4, -110)

 

mano... q eu saiba no global a força assassin star n eh por magic level... eh por distance skill \õ/

o certo seria :

setCombatFormula(combat, COMBAT_FORMULA_SKILL, -0.1, -10, -0.4, -110)

e tbm n eh de 8 cargas... eh por chance, ela tem 30% de chance de quebrar a cada hit...

 

otra coisa... por mais q esteja quase certo, a assassin star nunk vai ser 100% sendo feita com script no weapons/scripts.

vo ensinar como eh o certo (vale lembrar q em alguns ots pode não funcionar)

 

em weapons.xml cole a seguinte tag :

<distance id="7368" level="80" enabled="1" function="internalLoadWeapon"/> <!--Assassin Star-->

agora vai em itens.xml e procure pela tag da assassin star, pode estar certo, mas por via das dúvidas cole isso :

<item id="7368" article="an" name="assassin star" plural="assassin stars">

<attribute key="weight" value="200"/>

<attribute key="attack" value="65"/>

<attribute key="weaponType" value="distance"/>

<attribute key="shootType" value="redstar"/>

<attribute key="range" value="5"/>

<attribute key="breakChance" value="30"/>

<attribute key="ammoAction" value="moveback"/>

</item>

 

n vo explicar mta coisa.. soh isso :

<attribute key="breakChance" value="30"/>

30 eh a chance de quebrar a cada hit...

ShenlongS
15 de julho de 2008 às 09:38

capeta7

dessa ai eu não sabia não desses treco no items.xml

mais tarde vou dar uma olhada nisso

Henrique MouraH
15 de julho de 2008 às 09:43

Legal para ots em xp alta, e que acabam as bolts/arrows, os paladins em ots são sempre os mais explorados, poderiam criar uma Ice Rapier assim, aí os knight nunca seriam tão explorados em ot, coitado de um Knight perto de um Paladin, e tenho dó de um Paladin perto de um sorcerer....

Mais mesmo assim , valew pelo script.

Editado Julho 15 por KaKilo

nomadDN
19 de julho de 2008 às 00:06

vlw, ae Cara fico Muito bom xD to Usando aqui

ShenlongS
23 de julho de 2008 às 16:28

valeu galera

qualquer dúvida é só postarem aqui