Esta bom, mas da pra melhorar, por exemplo: como adicionar local nas tabelas e tambem retirar a funçao if target ~= 0 then pois nao tem necessidade.
Observaçoes: se no script ja tem a funçao doSendDistanceShoot porque no item tem o shootType?
Por Shoguns, 19 de jan. de 2014 em Tutoriais de Scripting
info
Grupo: Campones
Registrado: 02/04/13
Posts: 83
Reputação: +41

Esta bom, mas da pra melhorar, por exemplo: como adicionar local nas tabelas e tambem retirar a funçao if target ~= 0 then pois nao tem necessidade.
Observaçoes: se no script ja tem a funçao doSendDistanceShoot porque no item tem o shootType?
Esta bom, mas da pra melhorar, por exemplo: como adicionar local nas tabelas e tambem retirar a funçao if target ~= 0 then pois nao tem necessidade.
Observaçoes: se no script ja tem a funçao doSendDistanceShoot porque no item tem o shootType?
Vlw pela dica, vou estar atualizando o Tutorial.
info
Grupo: Campones
Registrado: 02/04/13
Posts: 83
Reputação: +41

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 = 100 , 200 -- dano minimo e maximo
target = getCreatureTarget(cid)
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
Voce esqueceu de retirar o end...
no meu caso eu deixei assim:
local 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)
local min, max = 100, 200 -- dano minimo e maximo
local target = getCreatureTarget(cid)
local wx = w[math.random(#w)]
doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh)
addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef)
return true
end
info
Grupo: Herói
Registrado: 25/10/12
Posts: 2.4k
Reputação: +687
Gênero: Masculino
Char no Tibia: Nuncative

Ótimo tutorial, bela formatação!
Parabéns! Aprovado e movido.
info
Grupo: Conde
Registrado: 08/10/13
Posts: 604
Reputação: +119
Bom, criei esse tópico,
para ensinar como fazer aquelas armas que soltam 6 elementos
igual Servs do tipo "kamikaze".
Vejo muita gente querendo saber como criar essas armas e
vejo poucos Tutoriais ensinando a criaras.
Bom, Chega de Papo furado e vamos a o Scripter
Vá na pasta do seu Ot em data/items Abra o items.xml, procure pelo item que você vai usar e substitua por isso:
<item id="1234 article="a" name="Seis Elementos">
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 = 100 , 200 -- dano minimo e maximo target = getCreatureTarget(cid) 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 endAgora vá em data/weapons abra o seu weapons.xml e cole Isto lá:
Se for Wand ou Rod:
<wand id="123" level="20" mana="10" min="0" max="0" type="physical" event="script" value="seislementos.lua"> <!-- New Wand -->
<distance id="123" event="script" value="seislementos.lua"/>
Editado Janeiro 19 por Shoguns