Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Boa Noite Meus queridos amigos do TK.
  Eu estava sem Internet esses dias em casa então comecei a pensar e editei umas Actions.
e saiu isso .

É um pequeno sistema que ainda estou melhorado, mas resolvi postar, porque achei que a ideia estava muito boa, e como ainda estou aprendendo programação, quem sabe vocês podem me dar umas dicas de como melhora-lo. vocês poderiam me ajudar.
  ESPICAÇÃO:

Oque ele Faz?, ele cria um item (frasco de veneno) que quando usado em uma arma, muda(transforma) o status da mesma; adicionando ataque e causando envenenamento.
ainda não está 100% mas conforme o tempo vai ficar.

Exemplo= Frasco de Veneno + thief dagger (You see an thief dagger (Atk:30, Def:12, dual wielding).It weighs 15.00 oz.) = Poisoned Thief Dagger (You see an poisoned thief dagger (Atk:30, Def:12, dual wielding).It can only be wielded properly by rogues of level 45 or higher.It weighs 15.00 oz. It is temporarily enchanted with earth (20 physical + 10 earth damage).)

 

EXPLICANDO O SCRIPT.
Como eu disse acima, eu editei uns scripts, pois ainda tenho uma noção básica de programação. O que eu realmente fiz, foi pegar a action do enchanted gems e modificar uma coisa aqui e outra ali.

 

Spoiler

local config = {
    hardcoreManaSpent = getConfigValue("addManaSpentInPvPZone"),
    manaCost = 300,
    soulCost = 2,
}

    function onUse(cid, item, fromPosition, itemEx, toPosition) 
    if(item.itemid == 2147 and itemEx.itemid == 2342) then
        doTransformItem(itemEx.uid, 2343)
        doDecayItem(itemEx.uid)
        doRemoveItem(item.uid, 1)

        doSendMagicEffect(toPosition, CONST_ME_MAGIC_RED)
    return true
    end

    if(item.itemid == 13995 and isInArray({13996}, itemEx.itemid)) then
        doTransformItem(itemEx.uid, 13986)
        doRemoveItem(item.uid, 1)

        doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN)
        return true
    end
    
    if(item.itemid == 13995 and isInArray({7494}, itemEx.itemid)) then
        doTransformItem(itemEx.uid, 2390)
        doRemoveItem(item.uid, 1)

        doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN)
        return true
    end

    if(isInArray(enchantableGems, item.itemid)) then
        local subtype = item.type
        if(subtype == 0) then
            subtype = 1
        end

        local mana = config.manaCost * subtype
        if(getPlayerMana(cid) < mana) then
            doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA)
            return true
        end

        local soul = config.soulCost * subtype
        if(getPlayerSoul(cid) < soul) then
            doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHSOUL)
            return true
        end

        local a = table.find(enchantableGems, item.itemid)
        if(a == nil or not isInArray(enchantingAltars[a], itemEx.itemid)) then
            return false
        end

        doPlayerAddMana(cid, -mana)
        doPlayerAddSoul(cid, -soul)

        doTransformItem(item.uid, enchantedGems[a])
        if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).hardcore or config.hardcoreManaSpent)) then
            doPlayerAddSpentMana(cid, mana)
        end

        doSendMagicEffect(fromPosition, CONST_ME_HOLYDAMAGE)
        return true
    end
 
    if(isInArray(enchantedGems, item.itemid)) then
        if(not isInArray(enchantableItems, itemEx.itemid)) then
            doSendMagicEffect(fromPosition, CONST_ME_POFF)
            return false
        end

        local b = table.find(enchantedGems, item.itemid)
        if(b == nil) then
            return false
        end

        local subtype = itemEx.type
        if(not isInArray({2544}, itemEx.itemid)) then
            subtype = 1000
        end

        doTransformItem(itemEx.uid, enchantedItems[itemEx.itemid], subtype)
        doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_HOLYDAMAGE)
        doDecayItem(itemEx.uid)

        doRemoveItem(item.uid, 1)
        return true
    end

    return false
end
 

 

No caso se quiserem colocar para a arma depois de um tempo voltar ao normal é só colocar essa teg na arma no iten.xml
 

Spoiler

        <attribute key="decayTo" value="13996" />     < ---- sendo este o ide da arma inicial.
        <attribute key="duration" value="60" />           < este o tempo que a arma leva para voltar ao normal.

 

se quiserem fazer como eu criando duas armas e modificando uma, vão ter que adicionar um novo sprite no itens.otb


Sendo os itens criados por mim.
mas podem por o que quiserem.
 

e depois é somente colocar a action na pasta \data\actions\scripts\other

e relacionar a mesma no bloco do actions.xml com o nome da mesma.

no meu caso (    <action itemid="13995" event="script" value="other/envenena.lua"/>  )

 

 

Bom, ainda tenho que lapidar e aprender muito, ainda não sei colocar mais armas, e nem colocar a arma para envenenar.
espero que me ajudem comentando oque acham, e dando opinião do que pode ser mudado.
Obrigado e Boa noite.


 

1.png

2.png

3.png

4.png

Editado por M Cronos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

51mutNo.png 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.

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Tricoder
      Preview

       
      Script
      data/items/items.xml
      <item id="8981" article="a" name="gold premium card"> <attribute key="weight" value="0" /> <attribute key="description" value="Use this card to receive 7 premium days." /> </item> data/actions/actions.xml
      <action itemid="8981" script="other/premiumcard.lua"/> data/actions/scripts/premium_card
      local t = { days = 7, effect = CONST_ME_HOLYAREA } function onUse(cid, item, fromPosition, itemEx, toPosition) doPlayerRemoveItem(cid, 8981, 1) return TRUE, doPlayerAddPremiumDays(cid, t.days), doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You now have +" .. t.days .. " premium days!"), doSendMagicEffect(fromPosition, t.effect) end Créditos: God Mythera
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo