Ir para conteúdo
Close
DdJs

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

Posts Recomendados

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)

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 minutos atrás, FlavioHulk disse:

Tenho permissão pra converter para o TFS 1.3?

 

@FlavioHulk À vontade.


Compartilhar este post


Link para o post
Compartilhar em outros 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.

 


Compartilhar este post


Link para o post
Compartilhar em outros 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 !!! ?

 


Compartilhar este post


Link para o post
Compartilhar em outros 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. 


Compartilhar este post


Link para o post
Compartilhar em outros 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

 


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

Compartilhar este post


Link para o post
Compartilhar em outros 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.


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

Compartilhar este post


Link para o post
Compartilhar em outros 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


Compartilhar este post


Link para o post
Compartilhar em outros sites

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


Compartilhar este post


Link para o post
Compartilhar em outros 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 +


Compartilhar este post


Link para o post
Compartilhar em outros 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.

 

 

 


Compartilhar este post


Link para o post
Compartilhar em outros 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...

 

 


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

Compartilhar este post


Link para o post
Compartilhar em outros 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. 


Compartilhar este post


Link para o post
Compartilhar em outros 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. 

 

 


Compartilhar este post


Link para o post
Compartilhar em outros 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.


Compartilhar este post


Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do 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!

×
×
  • Criar Novo...