Jump to content
Close
DdJs

Weapon [TFS 0.4 / TFS 1.x] Wand/Rod Elemental

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

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

 


Edited by DdJs (see edit history)

Discord: FelipeBR#3714

textspe.png.a98112fa3bd3eddc3b8e4aa158878b76.png

 

  stamp.jpg.10b728084da5a09b9becc8dd9c985a63.jpg 

          

Share this post


Link to post
Share on other sites

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.

 


Share this post


Link to post
Share on other sites
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 !!! ?

 


Share this post


Link to post
Share on other sites
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. 



Discord: FelipeBR#3714

textspe.png.a98112fa3bd3eddc3b8e4aa158878b76.png

 

  stamp.jpg.10b728084da5a09b9becc8dd9c985a63.jpg 

          

Share this post


Link to post
Share on other sites
6 minutos atrás, DdJs disse:

@KillerWatts Não sei te dizer se é possivel, eu particularmente nunca vi em nenhum server ou script sobre no forum. 

 

Entendi :S bom se souber de algo poderia me avisa !!! Muito obrigado parceiro me ajudou muito ... e poderia me ajuda rapidinho com uma coisa ?

 

o script da minha wand, efeito e mostrado no default em laranja, sera que teria como por em uma lista onde eu poderia escolher entre eles ? tipo lista de escolher o char !!!

 

 

aqui o script

 

Spoiler

local config = {
    wand_id = 12288, --ID da wand

    types = {
    ["all"] = -1, --Ataca os elementos aleatoriamente
    ["fire"] = 1,
    ["ice"] = 2,
    ["poison"] = 3,
    ["death"] = 4,
    ["energy"] = 5,
    ["physical"] = 6,
    ["holy"] = 7
    }
}

function onSay(cid, words, param)
    local wand_left = getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid
    local wand_right = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid 

    if wand_left ~= config.wand_id and wand_right ~= config.wand_id then
        doPlayerSendCancel(cid, "Voce deve estar equipado com uma ".. getItemNameById(config.wand_id) .." para usar este comando.")
        return true
    end
    
    if config.types[param] then
        setPlayerStorageValue(cid, 4561, config.types[param])
        doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Sua Staff ira atacar ".. param .. ".")
    else
        local str = ""
        
        for i, _ in pairs(config.types) do
            str = str .. ", ".. i
        end
        
        doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Os elementos disponiveis sao: ".. string.sub(str, 3, #str) ..".")
    end

    return true
end

 


Edited by KillerWatts (see edit history)

Share this post


Link to post
Share on other sites

@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. Acredito que ele e o @FlavioHulk são mais indicados para te auxiliar nesse quesito.


Edited by DdJs (see edit history)

Discord: FelipeBR#3714

textspe.png.a98112fa3bd3eddc3b8e4aa158878b76.png

 

  stamp.jpg.10b728084da5a09b9becc8dd9c985a63.jpg 

          

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

Depois eu posso fazer 1 com configuração legal para TFS 8.60, só peço 1 pouco de tempo e que me lembrem ... Porque estou meio enrolado até o dia 29/10


Share this post


Link to post
Share on other sites

to com um error ao usar a wand, recebo um error "addevent"


Share this post


Link to post
Share on other sites

Caraaaa olha eu de novo ! hahaha mano esse script ficou muito bom ! vários players curtiram, queria uma ajuda, eu fiz uma weapon no meu server que no caso é de paladin com esse script porem ela fica como uma wand... sera que teria como colocar atk dela ser conforme a SKILL DISTANCE do player !?

Obrigado mais uma vez!!! REP +


Share this post


Link to post
Share on other sites

tu fez para tfs 1.3, eu gostaria, se puder disponibiliza..

 

Em 19/10/2018 em 23:06, FlavioHulk disse:

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.

  Mostrar conteúdo oculto

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.

 

 

 


Share this post


Link to post
Share on other sites

tem certeza q no tfs 1.3 é usado desse jeito ?? eu coloco assim a arma fica dando dano nenhum..

 

event="script" value="wandelement.lua">

 

Citar

  <wand id="7958" level="100" mana="35" event="script" value="wandelement.lua">

 

9 horas atrás, DdJs disse:

@BilauX Está no corpo do post o que voce quer...

 

 


Edited by BilauX (see edit history)

Share this post


Link to post
Share on other sites
Em 19/01/2019 em 08:12, BilauX disse:

tem certeza q no tfs 1.3 é usado desse jeito ??

Não. Eu nunca usei em tfs 1.3. Se não conseguir resolver seu problema, recomendo que faça um post solicitando ajuda. 



Discord: FelipeBR#3714

textspe.png.a98112fa3bd3eddc3b8e4aa158878b76.png

 

  stamp.jpg.10b728084da5a09b9becc8dd9c985a63.jpg 

          

Share this post


Link to post
Share on other sites

 

ok obg aí, tmj

1 hora atrás, DdJs disse:

Não. Eu nunca usei em tfs 1.3. Se não conseguir resolver seu problema, recomendo que faça um post solicitando ajuda. 

 

 


Share this post


Link to post
Share on other sites
2 minutos atrás, BilauX disse:

como arrumar ??? @DdJs tfs 0.4

 

 

1915854276_erropowersword.thumb.png.2e1b34d6f19bebb606d7b0e7ef6e830e.png

 

Cara, se voce alterou o script provavelmente não vai funcionar.



Discord: FelipeBR#3714

textspe.png.a98112fa3bd3eddc3b8e4aa158878b76.png

 

  stamp.jpg.10b728084da5a09b9becc8dd9c985a63.jpg 

          

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...