Postado Outubro 20, 2018 6 anos Quem já me conhece aqui do fórum sabe que minha área não é script ou nada do gênero. Estou fazendo esse post para ajudar um membro, o @KillerWatts, e outros mais, talvez. Introdução: Wand/rod que dispara vários elementos aleatórios. O uso dos elementos não é configurável como o modal do @tataboy67, lembrando que esse script é velho e foi testado em OTs versões 8.40 até 8.60 Guia: ef - efeito que irá fazer no alvo (além do efeito comum já do elemento). sh - shoot type que traçará o "ar" até o alvo. dmg - tipo de dano que causará no alvo. Eu usei a Jester Staff (ID: 7958). Você pode usar o item que desejar. Lista de itens para utilizar como rod/wand: Spoiler Crystal Wand (ID: 2184) Lunar Staff (ID: 7424) Light Mace (ID: 2437) Northern Star (ID: 7409) Blessed Sceptre (ID: 7429) Arcane Staff (ID: 2453) Replica of the Sceptre (ID: 12288) Spellwand (ID: 7735) Shadow Sceptre (ID: 7451) Queen's Sceptre (ID: 7410) Snake God's Sceptre (ID: 12609) Magic Light Wand (ID: 2162) Skull Staff (ID: 2436) Abyss Hammer (ID: 7414) Amber Staff (ID: 7426) Diamond Sceptre (ID: 7387) Lich Staff (ID: 3961) Em weapons/scripts crie um arquivo "wandelement.lua": Spoiler local min, max = 81,111 --Ataque mínimo e ataque máximo local w = { [1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE}, [2] = {ef = 52, sh = 28, dmg = COMBAT_ICEDAMAGE}, [3] = {ef = 46, sh = 29, dmg = COMBAT_POISONDAMAGE}, [4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE}, [5] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, [6] = {ef = 31, sh = 40, dmg = COMBAT_PHYSICALDAMAGE}, [7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE} } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#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 Para TFS 1.x (créditos e agradecimento ao @FlavioHulk pelo desenvolvimento): Spoiler local damage = { --Ataque mínino e ataque máximo min = 81, max = 111 } local effects = { [1] = {effect = 36, shootEffect = 3, damageEffect = COMBAT_FIREDAMAGE}, [2] = {effect = 52, shootEffect = 28, damageEffect = COMBAT_ICEDAMAGE}, [3] = {effect = 46, shootEffect = 29, damageEffect = COMBAT_POISONDAMAGE}, [4] = {effect = 17, shootEffect = 31, damageEffect = COMBAT_DEATHDAMAGE}, [5] = {effect = 47, shootEffect = 35, damageEffect = COMBAT_ENERGYDAMAGE}, [6] = {effect = 31, shootEffect = 40, damageEffect = COMBAT_PHYSICALDAMAGE}, [7] = {effect = 49, shootEffect = 37, damageEffect = COMBAT_HOLYDAMAGE} } function onUseWeapon(player, variant) local effect, target = player:getStorageValue(4561), player:getTarget() if target then local random = effects[effect] or effects[math.random(#effects)] player:getPosition():sendDistanceEffect(target:getPosition(), random.shootEffect) addEvent(doAreaCombatHealth, 100, player, random.damageEffect, target:getPosition(), 0, -damage.min, -damage.max, random.effect) end return true end Em weapons.xml adicione a tag: Spoiler <wand id="7958" level="100" mana="35" event="script" value="wandelement.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5" showInDescription="0"/> <vocation id="6" showInDescription="0"/> </wand> Em items.xml (aqui tanto faz como vai estar, tirando o "range" que é válido, o que vai contar para o resto é o script em weapons): Spoiler <item id="7958" article="a" name="fusion elemental staff"> <attribute key="weight" value="2550" /> <attribute key="weaponType" value="wand" /> <attribute key="shootType" value="smallholy" /> <attribute key="range" value="4" /> </item> Funcionamento: Editado Janeiro 27, 2019 6 anos por DdJs (veja o histórico de edições)
Postado Outubro 20, 2018 6 anos Autor 6 minutos atrás, FlavioHulk disse: Tenho permissão pra converter para o TFS 1.3? @FlavioHulk À vontade.
Postado Outubro 20, 2018 6 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Spoiler Congratulations, your content has been approved! Thank you for your contribution, we of Tibia King we are grateful. Your content will help many other users, you received +1 REP.
Postado Outubro 20, 2018 6 anos 4 horas atrás, DdJs disse: Quem já me conhece aqui do fórum sabe que minha área não é script ou nada do gênero. Estou fazendo esse post para ajudar um membro, o @KillerWatts, e outros mais, talvez. Introdução: Wand/rod que dispara vários elementos aleatórios. O uso dos elementos não é configurável como o do @tataboy67, lembrando que esse script é velho e foi testado em OTs versões 8.40 até 8.60 Guia: ef - efeito que irá fazer no alvo (além do efeito comum já do elemento). sh - shootype que traçara o "ar". dmg - tipo de dano que causará no alvo. Em weapons/scripts crie um arquivo "wandelement.lua": Ocultar conteúdo local min, max = 81,111 --Ataque mínino e ataque máximo local w = { [1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE}, [2] = {ef = 52, sh = 28, dmg = COMBAT_ICEDAMAGE}, [3] = {ef = 46, sh = 29, dmg = COMBAT_POISONDAMAGE}, [4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE}, [5] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, [6] = {ef = 31, sh = 40, dmg = COMBAT_PHYSICALDAMAGE}, [7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE} } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#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 Para TFS 1.x (créditos e agradecimento ao @FlavioHulk pelo desenvolvimento): Ocultar conteúdo local damage = { --Ataque mínino e ataque máximo min = 81, max = 111 } local effects = { [1] = {effect = 36, shootEffect = 3, damageEffect = COMBAT_FIREDAMAGE}, [2] = {effect = 52, shootEffect = 28, damageEffect = COMBAT_ICEDAMAGE}, [3] = {effect = 46, shootEffect = 29, damageEffect = COMBAT_POISONDAMAGE}, [4] = {effect = 17, shootEffect = 31, damageEffect = COMBAT_DEATHDAMAGE}, [5] = {effect = 47, shootEffect = 35, damageEffect = COMBAT_ENERGYDAMAGE}, [6] = {effect = 31, shootEffect = 40, damageEffect = COMBAT_PHYSICALDAMAGE}, [7] = {effect = 49, shootEffect = 37, damageEffect = COMBAT_HOLYDAMAGE} } function onUseWeapon(player, variant) local effect, target = player:getStorageValue(4561), player:getTarget() if target then local random = effects[effect] or effects[math.random(#effects)] player:getPosition():sendDistanceEffect(target:getPosition(), random.shootEffect) addEvent(doAreaCombatHealth, 100, player, random.damageEffect, target:getPosition(), 0, -damage.min, -damage.max, random.effect) end return true end Em weapons.xml adicione a tag: Ocultar conteúdo <wand id="7958" level="100" mana="35" event="script" value="wandelement.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5" showInDescription="0"/> <vocation id="6" showInDescription="0"/> </wand> Em items.xml (aqui tanto faz como vai estar, tirando o "range" que é válido, o que vai contar para o resto é o script em weapons): Ocultar conteúdo <item id="7958" article="a" name="fusion elemental staff"> <attribute key="weight" value="2550" /> <attribute key="weaponType" value="wand" /> <attribute key="shootType" value="smallholy" /> <attribute key="range" value="4" /> </item> muito bom cara !!! me ajudou muito rodou certinho !!! REP+ ... deixa eu perguntar, vc sabe se é possivel isso com uma sword? por exemplo uma sword da vários atks e cada atk muda o elemento !!! ?
Postado Outubro 20, 2018 6 anos Autor 1 hora atrás, KillerWatts disse: muito bom cara !!! me ajudou muito rodou certinho !!! REP+ ... deixa eu perguntar, vc sabe se é possivel isso com uma sword? por exemplo uma sword da vários atks e cada atk muda o elemento !!! ? @KillerWatts Não sei te dizer se é possivel, eu particularmente nunca vi em nenhum server ou script sobre no forum.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.