Ir para conteúdo

Aluccard

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Aluccard recebeu reputação de Stark Z. em NPC Troca de Itens   
    [NPC] Troca de Itens


    Olá a Todos!

    Introdução

    Estou criando esse tópico, porque vejo que muitos tem dúvida e nada melhor para entender que um próprio exemplo, não achas?


    Utilidade

    Será um NPC, que trocará itens com o player, ou seja, pedirá Item1 e dará o Item2, que poderá ser configurado no script.


    Código

    Toddy.lua




    O código acima possui a acessibilidade de troca de IDs e Quantidades, para isso vá no CONFIGS e altere.

    Quest?

    Para colocar como uma quest so é necessário mudar de ["false"] para ["true"].




    Espero que tenham entendido, qualquer dúvida posta no tópico!



    Atenciosamente,
    Aluccard.
  2. Gostei
    Aluccard recebeu reputação de franckle em REAL Cipsoft files   
    Não vi nenhum tópico comentando sobre a distribuição gratuita, depois de anos dos arquivos dito 'originais' do Tibia antigo. A fonte parece ser confiável. Gostaria de saber o que vocês esperam aprender e descobrir nesses arquivos?
     
     
  3. Gostei
    Aluccard recebeu reputação de Reds em [MOD] Reflect System 0.1   
    Olá Tibia King's!


    Reflect System[0.1]



    Função


    Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.

    Exemplo:

    22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end



    Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).



    {itemid = id do item escolhido / percent = porcentagem do reflect}



    Creio que não esqueci de nada. Qualquer dúvida é só postar!



    Sem mais,
    Aluccard.



    Edit:



    Npc que vende Reflect Item
    Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua
  4. Gostei
    Aluccard recebeu reputação de Angeles em [MOD] Reflect System 0.1   
    Olá Tibia King's!


    Reflect System[0.1]



    Função


    Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.

    Exemplo:

    22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end



    Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).



    {itemid = id do item escolhido / percent = porcentagem do reflect}



    Creio que não esqueci de nada. Qualquer dúvida é só postar!



    Sem mais,
    Aluccard.



    Edit:



    Npc que vende Reflect Item
    Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua
  5. Gostei
    Aluccard recebeu reputação de elli em [MOD] Reflect System 0.1   
    Olá Tibia King's!


    Reflect System[0.1]



    Função


    Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.

    Exemplo:

    22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end



    Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).



    {itemid = id do item escolhido / percent = porcentagem do reflect}



    Creio que não esqueci de nada. Qualquer dúvida é só postar!



    Sem mais,
    Aluccard.



    Edit:



    Npc que vende Reflect Item
    Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua
  6. Gostei
    Aluccard deu reputação a Zeto em Procura-se Mapper para PokeXGames   
    Ta bom, criei esse link do site oficial: https://www.pokexgames.com/map/zetto
     
    Ainda estamos procurando um mapper, só mandar contato e as informações em MP
  7. Gostei
    Aluccard recebeu reputação de kapepo em [MOD] Reflect System 0.1   
    Olá Tibia King's!


    Reflect System[0.1]



    Função


    Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.

    Exemplo:

    22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end



    Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).



    {itemid = id do item escolhido / percent = porcentagem do reflect}



    Creio que não esqueci de nada. Qualquer dúvida é só postar!



    Sem mais,
    Aluccard.



    Edit:



    Npc que vende Reflect Item
    Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua
  8. Gostei
    Aluccard recebeu reputação de darkjaques em [MOD] Reflect System 0.1   
    Olá Tibia King's!


    Reflect System[0.1]



    Função


    Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.

    Exemplo:

    22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end



    Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).



    {itemid = id do item escolhido / percent = porcentagem do reflect}



    Creio que não esqueci de nada. Qualquer dúvida é só postar!



    Sem mais,
    Aluccard.



    Edit:



    Npc que vende Reflect Item
    Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua
  9. Gostei
    Aluccard recebeu reputação de dezon em [MOD] Warp System 1.0   
    Warp System[1.0]

    Olá a todos do TibiaKing!


    Já estou a um tempo devendo mais um sisteminha para vocês e aqui está ele. Simples, eficaz e completamente editavel.

    Utilidade

    Esse sistema de Warp significa ao jogador poder teleportar para várias posições, já armazenadas no mapa, quando estiver em uma dessas posições.

    Mapa



    Estive imaginando como fazer essa posição no mapa e tive a ideia de deixa-la assim.. Porém vocês decidem, isso é só um exemplo.


    Warp Helper



    Quando o player utiliza o comando "!warp help" ou "!warp helper".


    Warp Locations



    Quando o player utiliza o comando "!warp pos" ou "!warp locations".


    Informações Extras
    Como você pode notar, quando o player utiliza o Warp Helper, aparece várias configurações extras. Por exemplo: premmium account, promotion, quest... Essas configurações você poderá editar no script para o jeito que desejar.

    Do mesmo jeito que vocês poderam editar essas configurações, tambem poderam adicionar novos warps para a lista, com seu relativo valor.

    Código

    warpSystem.xml




    Configs



    Obs¹: Se necessitas que um player tenha feito alguma quest para utilizar o sistema, basta colocar em needQuest ( true ) e em questStorage o valor do storage da quest desejada.

    Adicionando Warps


    No próprio code você encontrará as seguintes variaveis:
    warpTotals;
    warpNames;
    POS;
    VALUES;

    Para adicionar novas warps, precisamos somente altera-los... No código temos para três warps, adicionando mais uma:



    Conclusões

    Esse é um script fácil de se manipular, porém pode haver alguns erros que não foi percebidos ainda, por isso está na versão [1.0], pois já foi corrigido vários erros e assim modificado. A versão inicial foi [0.1] e pretendo altera-lo sempre que possivel. Deixando cada vez mais perfeito o sistema.

    Obs²: Qualquer dúvida é só postar no tópico ou enviar uma mp.

    Espero que tenham gostado,


    Aproveitem!


    Atenciosamente,
    Aluccard.
  10. Gostei
    Aluccard recebeu reputação de brunojbatista em Como arrastar o loot para a bp?   
    Existe um programa que captura todas as messages que uma tela recebe. (Como envio de controles de mouse / teclado)
    O nome desse programa é "SPY++", serve perfeitamente para você entender como funciona o send/post messages.
  11. Gostei
    Aluccard recebeu reputação de Hue em Infinity Aol   
    Olá!

    A pedidos de usuarios, resolvi fazer esse script simples e eficaz. Como o própio nome do tópico diz: Aol Inifinito.
    No script possui um config onde pode ser alterado o ammyID = id do amuleto, lossExp = player perder exp, lossItems = player perder items.

    newAol.lua

    local config = { ammyID = 2130, lossExp = false, lossItems = false } function onDeath(cid, lastHitKiller, mostDamageKiller) if isPlayer(cid) then if (getPlayerSlotItem(cid, 2).itemid == config.ammyID) then if (config.lossExp == false) then doPlayerSetLossPercent(cid, experience, 0) end doCreatureSetDropLoot(cid, config.lossItems) return true end end return true end creaturescripts.xml <event type="death" name="NewAol" event="script" value="newAol.lua"/> Adicione no login.lua essa linha perto dos outros registercreatures. registerCreatureEvent(cid, "NewAol")

    Obs¹: Esse script serve para todos os players inclusive RedSkulls/BlackSkulls.


    Qualquer dúvida é só postar!



    Atenciosamente,
    Aluccard.
  12. Gostei
    Aluccard deu reputação a Augusto em [VIDEO AULAS] Linguagem C Descomplicada   
    Linguagem C Descomplicada - Portal de Vídeo Aulas Para Estudo de Programação

    Eae galera do TK, hoje eu venho trazer um blog muito foda, onde o Dr. André Backes ensina C de forma bem simples, inclusive vou comprar o livro dele, pois vale a pena!

    • Curso de Linguagem C

    Vocês podem conferir sobre o projeto aqui!
  13. Gostei
    Aluccard recebeu reputação de iammedeiros em Como criar um bot em C# usando a TbiaiAPI?   
    Olá.
     
    Já tentou procurar na seção de OpenSource ? Clique Aqui. Como você está querendo iniciar nesse ramo, seria bom você começar a entender alguns pontos importantes, como:
     
    Endereços de memoria. Leitura desses endereços (String, Integer, Long, Byte). Proxy. Envio de Packet. *Vale ressaltar que packet/proxy podem ser detectáveis, porém se o intuito do bot seja para OpenTibia creio que não seja problema utiliza-los.
     
    Uma ótima ferramenta para aprender a ler endereços de memoria, seria o Cheat Engine ou se tiver aptidão poderá usar o Ollydebugger. Você poderá encontrar alguns exemplos aqui no TibiaKing ou qualquer dúvida poderá usar o GOOGLE. 
     
    Idéias iniciais para aprendizagem:
    Criar um programa que contenha as informações básicas dos personagens. (HP/MP/EXP/...); Desenvolver sistemas mais fáceis como (Mana Trainer / Healing / Exp Count / Light / Outros); Trabalhar com a leitura do BattleList / VipList; Trabalhar com Containers; Esse seria apenas um exemplo não deve ser levado ao pé da letra.
     
     
    Espero ter ajudado,
    Aluccard.
  14. Gostei
    Aluccard recebeu reputação de Lost Soul em [MOD] Reflect System 0.1   
    Olá Tibia King's!


    Reflect System[0.1]



    Função


    Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.

    Exemplo:

    22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end



    Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).



    {itemid = id do item escolhido / percent = porcentagem do reflect}



    Creio que não esqueci de nada. Qualquer dúvida é só postar!



    Sem mais,
    Aluccard.



    Edit:



    Npc que vende Reflect Item
    Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua
  15. Gostei
    Aluccard recebeu reputação de Matheus De Amera em pequena duvida(elfbot)   
    Acho que é isso, testa ai qualquer coisa eu ajeito.


    auto 100 ifplayerattacking { if {$target.name != $pkname} { attack $pkname | wait 1000 }}

    Sem mais,
    Aluccard.
  16. Gostei
    Aluccard recebeu reputação de Pmcd em [Pedido] NPC de quest poketibia   
    Olá raul.

    Demorou mas chegou, tava com dificuldade em entender o que você estava pedindo... Não pude testa-lo e como é meio novo para mim o sistema para pokemon deve ter erros, ai nos vamos corrigindo devagar okay? Me passa seu msn por PM que ajeitamos.


    Cardy.lua






    Lembrando que a pokebola do pokemon que deve ser dado para o npc tem que estar na FEET (no lugar da boots).



    Espero sua reposta!
    Aluccard.
  17. Gostei
    Aluccard recebeu reputação de Giovanni Silva em [Pedido] NPC de quest poketibia   
    Olá raul.

    Demorou mas chegou, tava com dificuldade em entender o que você estava pedindo... Não pude testa-lo e como é meio novo para mim o sistema para pokemon deve ter erros, ai nos vamos corrigindo devagar okay? Me passa seu msn por PM que ajeitamos.


    Cardy.lua






    Lembrando que a pokebola do pokemon que deve ser dado para o npc tem que estar na FEET (no lugar da boots).



    Espero sua reposta!
    Aluccard.
  18. Gostei
    Aluccard recebeu reputação de Ayna em [MOD] Reflect System 0.1   
    Olá Tibia King's!


    Reflect System[0.1]



    Função


    Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.

    Exemplo:

    22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end



    Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).



    {itemid = id do item escolhido / percent = porcentagem do reflect}



    Creio que não esqueci de nada. Qualquer dúvida é só postar!



    Sem mais,
    Aluccard.



    Edit:



    Npc que vende Reflect Item
    Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua
  19. Gostei
    Aluccard recebeu reputação de Malfour em pequena duvida(elfbot)   
    Olá!
    No site do elfbot temos essa variável.

    $pkname will return the name of player that's attacking you
    example: ifplayerattacking attack $pkname, it will make attack back the player that's attacking you

    Como pode ver o exemplo é exatamente o script que está procurando.


    auto 100 ifplayerattacking attack $pkname auto 100 ifplayerattacking attack $pk.id
    Obs: Desculpa os erros pois fica dificil testar-los...

    Sem mais,
    Aluccard.
    Se não funcionar tente.
  20. Gostei
    Aluccard recebeu reputação de eulost em NPC Troca de Itens   
    [NPC] Troca de Itens


    Olá a Todos!

    Introdução

    Estou criando esse tópico, porque vejo que muitos tem dúvida e nada melhor para entender que um próprio exemplo, não achas?


    Utilidade

    Será um NPC, que trocará itens com o player, ou seja, pedirá Item1 e dará o Item2, que poderá ser configurado no script.


    Código

    Toddy.lua




    O código acima possui a acessibilidade de troca de IDs e Quantidades, para isso vá no CONFIGS e altere.

    Quest?

    Para colocar como uma quest so é necessário mudar de ["false"] para ["true"].




    Espero que tenham entendido, qualquer dúvida posta no tópico!



    Atenciosamente,
    Aluccard.
  21. Gostei
    Aluccard recebeu reputação de duly em Infinity Aol   
    Olá!

    A pedidos de usuarios, resolvi fazer esse script simples e eficaz. Como o própio nome do tópico diz: Aol Inifinito.
    No script possui um config onde pode ser alterado o ammyID = id do amuleto, lossExp = player perder exp, lossItems = player perder items.

    newAol.lua

    local config = { ammyID = 2130, lossExp = false, lossItems = false } function onDeath(cid, lastHitKiller, mostDamageKiller) if isPlayer(cid) then if (getPlayerSlotItem(cid, 2).itemid == config.ammyID) then if (config.lossExp == false) then doPlayerSetLossPercent(cid, experience, 0) end doCreatureSetDropLoot(cid, config.lossItems) return true end end return true end creaturescripts.xml <event type="death" name="NewAol" event="script" value="newAol.lua"/> Adicione no login.lua essa linha perto dos outros registercreatures. registerCreatureEvent(cid, "NewAol")

    Obs¹: Esse script serve para todos os players inclusive RedSkulls/BlackSkulls.


    Qualquer dúvida é só postar!



    Atenciosamente,
    Aluccard.
  22. Gostei
    Aluccard recebeu reputação de Fabricio Reis em NPC Promotion por Item   
    Oláa Todos!

    Vamos tentar fazer esse script juntos?

    Primeiramente para ser um bom programador é necessario que você tenha uma organização e trate bem as idéias que irão surgir no script. Com isso sempre faça um exemplo pratico e simples de como o script irá se comportar.

    Informações

    Queria um npc que vendesse promotion (no caso 9,10,11,12) em troca de um item (ID = 9971).

    Obs: Foi o pedido do mebro do fórum e resolvi fazer como se fosse uma 'liçãozinha'.

    Lógica do script
    Primeiramente o player deverá ser premmium account ?
    Qual o level necessario?
    O player já possui essa promotion?
    O player possui a promotion anterior (5,6,7,8) para ir para essa?
    O player possui o item desejado?





    Construindo o script

    Sabemos que para criarmos um npc necessitamos de 2 arquivos. Um se encontra na pasta data/npcs e o outro na pasta data/npcs/script.
    e [LUA].

    [u][b]Scripts[/b][/u]

    [u][size=2][b]data/npc/NpcName.xml[/b][/size][/u]
    [spoiler][code]<?xml version="1.0" encoding="UTF-8"?> <npc name="NpcName" script="data/npc/scripts/NpcName.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="96" head="0" body="0" legs="0" feet="0" addons="0"/> </npc>[/code]
    [/spoiler] A partir desse script ao sumonar o npc ou coloca-lo no mapa, você fará com que ele carregue o script principal, com a sua função. ( NpcName.lua ) [size=2][u][b]data/npc/NpcName.lua[/b][/u][/size] [spoiler][code]local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid)end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid)end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg)end function onThink() npcHandler:onThink()end function npcPromotion(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (isPremium(cid)) then if (getPlayerLevel(cid) >= 100) then if (getPlayerVocation(cid) >= 5 and getPlayerVocation(cid) <=8) then if doRemoveItem(cid, 9971, 1) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) doPlayerSendTextMessage(cid, 20, "Voce é um ".. getPlayerVocationName(cid) .."!") else doPlayerSendTextMessage(cid, 20, "Voce nao possui o item desejado!") end else doPlayerSendTextMessage(cid, 20, "Voce não possui a promotion anterior ou já esta promovido.") end else doPlayerSendTextMessage(cid, 20, "Voce nao possui level para ser promovido.") end else doPlayerSendTextMessage(cid, 20, "Voce nao possui premmium account.") end end local node1 = keywordHandler:addKeyword({'high promotion'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can promotion you if you give me a '.. getItemName(9971) ..'. Do you want me to promote you?'}) node1:addChildKeyword({'yes'}, npcPromotion, {}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then.', reset = true}) npcHandler:addModule(FocusModule:new())[/code] [/spoiler]






    [center]é isso aí, espero que tenha entendido.[/center]


    [center][size=5]Qualquer dúvida é só postar![/size][/center]


    [i]Atenciosamente,[/i]
    [i]Aluccard.[/i]
  23. Gostei
    Aluccard recebeu reputação de Alberess em [MOD] Reflect System 0.1   
    Olá Tibia King's!


    Reflect System[0.1]



    Função


    Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.

    Exemplo:

    22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end



    Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).



    {itemid = id do item escolhido / percent = porcentagem do reflect}



    Creio que não esqueci de nada. Qualquer dúvida é só postar!



    Sem mais,
    Aluccard.



    Edit:



    Npc que vende Reflect Item
    Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua
  24. Gostei
    Aluccard recebeu reputação de Puncker em [MOD] Reflect System 0.1   
    Olá Tibia King's!


    Reflect System[0.1]



    Função


    Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.

    Exemplo:

    22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%] <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> function getItemReflectPercent(itemuid) return getItemAttribute(itemuid, "reflectPercent") end function doPlayerAddReflectedItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]") doItemSetAttribute(item, "reflectPercent", percent) end



    Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).



    {itemid = id do item escolhido / percent = porcentagem do reflect}



    Creio que não esqueci de nada. Qualquer dúvida é só postar!



    Sem mais,
    Aluccard.



    Edit:



    Npc que vende Reflect Item
    Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%. [MOD]reflectSystem.xml Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo. ReflectLib.lua
  25. Gostei
    Aluccard recebeu reputação de 1215171 em NPC Reflect Item   
    Olá!

    A pedidos de muitos, resolvi fazer um npc de reflect que não possui segredo algum. Simplesmente coloque o código que segue abaixo na pasta indicada e pronto. Estará resolvido, você terá um npc que vende items de reflect.

    Coloque esse arquivo na pasta data\npc

    Cody.xml

    <?xml version="1.0" encoding="UTF-8"?> <npc name="Cody" script="data/npc/scripts/Cody.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="143" head="95" body="94" legs="132" feet="86" addons="2"/> </npc> Agora dentro da pasta data\npc\script Cody.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -- Config -- local reflectid = 2341 local percent = 20 local cost = 10000 function AddReflectItem(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if doPlayerRemoveMoney(cid, cost) then if doPlayerAddReflectedItem(cid, reflectid, percent) then return true else selfSay("No momento estou indisponivel.") doPlayerAddMoney(cid, cost) return false end else selSay("Voce não possui o dinheiro total!") return false end end reflect = keywordHandler:addKeyword({'reflect'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You want to buy a reflect item? It cost '.. cost ..' gps'}) reflect:addChildKeyword({'yes'}, AddReflectItem, {}) reflect:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then.', reset = true}) npcHandler:addModule(FocusModule:new())



    É isso aí, um exemplo simples de como criar um item a sua escolha, só editar o reflectId e com custo em money só editar o cost.



    Sem mais,
    Aluccard.



    Obs: Esqueci de mencionar que É necessário ter o
    sistema de reflect que se encontra em mods no forum.

Informação Importante

Confirmação de Termo