Ir para conteúdo

Featured Replies

Postado

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  Jester Staff.gif (ID: 7958). Você pode usar o item que desejar.

 

Lista de itens para utilizar como rod/wand:

Spoiler

Crystal Wand.gif

Crystal Wand (ID: 2184)

 

Lunar Staff.gif

Lunar Staff (ID: 7424)

 

Light Mace.gif

Light Mace (ID: 2437)

 

Northern Star.gif

Northern Star (ID: 7409)

 

Blessed Sceptre.gif

Blessed Sceptre (ID: 7429)

 

Arcane Staff.gif

Arcane Staff (ID: 2453)

 

Replica of the Sceptre.gif

Replica of the Sceptre (ID: 12288)

 

Spellwand.gif

Spellwand (ID: 7735)

 

Shadow Sceptre.gif

Shadow Sceptre (ID: 7451)

 

Queen's Sceptre.gif

Queen's Sceptre (ID: 7410)

 

Snake God's Sceptre.gif

Snake God's Sceptre (ID: 12609)

 

Magic Light Wand.gif

Magic Light Wand (ID: 2162)

 

Skull Staff.gif

Skull Staff (ID: 2436)

 

Abyss Hammer.gif

Abyss Hammer (ID: 7414)

 

Amber Staff.gif

Amber Staff (ID: 7426)

 

Diamond Sceptre.gif

Diamond Sceptre (ID: 7387)

 

Lich Staff.gif

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:

bloggif_5c46348178746.gif.94f6f505007315a2e280b7aea8146784.gif

 

Editado por DdJs (veja o histórico de edições)

  • Respostas 17
  • Visualizações 4.7k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • 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:

  • @KillerWatts Meu conhecimento de script é muito baixo, infelizmente não tenho a ajuda que você precisa. Eu só fiz esse post porque você pediu algo parecido para 8.60 lá no tópico do @tataboy67. Acredi

  • Que bunitinho esse script, flavio destroi nessa area tbm. parabéns,

Posted Images

  • FlavioHulk mudou o título para [TFS 0.4 / TFS 1.x] Wand/Rod Elemental
Postado

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
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
  • 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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo