Ir para conteúdo
  • Cadastre-se
  1. Augusto

    Augusto

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Renato
      O que é?
      O script é assim, ele conta quantos monstros você já matou até o momento, consultando por [ !monsters ]
      Agora com a versão 2.0 você pode consultar monstro específico, pela talk [ !monsters Demon ] por exemplo. SE O MONSTRO ESTIVER CONFIGURADO.
      Ahh, e você também configura a recompensa que ele ganhará ao matar X de determinado monstro =p

      Vamos lá.
      Se você já instalou o Killed Monsters Count 1.0 é só abrir o mesmo arquivo e substituir.
      Caso não, vá em server/data/mods ou server/mods crie o arquivo monsterskill.xml e coloque dentro:


      <?xml version="1.0" encoding="UTF-8"?>
      <mod name="Monsters Kill Count and Awards" version="2.0" author="Renato Ribeiro" enabled="yes">
      <config name="config-monsterskill"><![CDATA[
      local monters = {
      ['demon'] = { id = 1, qtKill = 250, itemId = xxxx, qtItem = 1 },
      ['hydra'] = { id = 2, qtKill = 500, itemId = yyyy, qtItem = 1 },
      ['frost dragon'] = { id = 3, qtKill = 750, itemId = zzzz, qtItem = 1},
      }
      storage = 1647
      killedMonsters = getPlayerStorageValue(cid, storage)
      ]]></config>
      <event type="look" name="monsterLook" event="script"><![CDATA[
      domodlib("config-monsterskill")
      function onLook(cid, thing, position, lookDistance)
      if(isPlayer(thing.uid)) then
      doPlayerSetSpecialDescription(thing.uid, "\n Killed Monsters: " .. killedMonsters)
      end
      return TRUE
      end
      ]]></event>
      <event type="kill" name="monsterKill" event="script"><![CDATA[
      domodlib("config-monsterskill")
      function onKill(cid, target)
      if (isMonster(target)) then
      setPlayerStorageValue(cid, storage, math.max(1, getPlayerStorageValue(cid, storage) + 1))
      end
      if (monsters[string.lower(getCreatureName(target))]) then
      mName = getCreatureName(target)
      mId = monsters[string.lower(mName)].id
      mqtKill = monsters[string.lower(mName)].qtKill
      mItemId = monsters[string.lower(mName)].itemId
      mqtItem = monsters[string.lower(mName)].qtItem
      getMStorage = getPlayerStorageValue(cid, storage + mId)

      setPlayerStorageValue(cid, storage + mId, math.max(0, getMStorage + 1))

      if (getMStorage == mqtKill) then
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations! You earned " .. mqtItem .. " " .. getItemNameById(mItemId) .. ".")
      adding = doPlayerAddItem(cid, mItemId, mqtItem)
      doSetItemSpecialDescription(adding, "\n Reward to " .. getPlayerName(cid) .. " to kill " .. qtKill .. " " .. mName .. "s")
      end

      end
      return TRUE
      end
      ]]></event>
      <event type="login" name="monsterLogin" event="script"><![CDATA[
      function onLogin(cid)
      registerCreatureEvent(cid, "monsterLook")
      registerCreatureEvent(cid, "monsterKill")
      return TRUE
      end
      ]]></event>
      <talkaction words="!monsters" event="script"><![CDATA[
      domodlib("config-monsterskill")
      function onSay(cid, words, param, channel)
      if (monsters[string.lower(param)] or monsters[param]) then
      killedMonstersX = getPlayerStorageValue(cid, storage + monsters[string.lower(param)] and monsters[string.lower(param)] or monsters[param])
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have killed " .. killedMonstersX .. " " .. param .. "s at the moment.")
      elseif (param) then
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Do not have a " .. param .. " task.")
      else
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have killed " .. killedMonsters .. " monsters at the moment")
      end
      return TRUE
      end
      ]]></talkaction>
      </mod>
      [/code]

      [b]Talkactions:[/b]
      !monsters - consulta quantos monstros você já matou ao total (também aparece no seu look)
      !monsters NOME - consulta quantos monstros 'NOME' você já matou

      [b]Pra adicionar novos monstros siga o padrão:[/b]
      ['frost dragon'] = { id = 3, qtKill = 750, itemId = zzzz, qtItem = 1},
      ['nome do monstro'] = { o id tem que ser sequencial, ou seja, se o ultimo for 3, o proximo é 4, depois 5 etc. o qtKill é q quantidade que o cara tem que matar pra ganhar o item. itemId é o id do item que o cara ganha e qtItem é a quantidade que ele ganha. Por exemplo você pode por o id da arrow e na qtItem você poe 100, ele ganha 100 arrows. Agora se for um item que não da pra juntar, mesmo você colocando 100 ele só vai ganhar 1. }


      [b]Enfim, script não testado, qualquer erro POSTE AQUI![/b]

      Abraços.
    • Por Renato
      Créditos no script

      Explicação: ao clicar no baú pela primeira vez você será teletransportado (opcional) para a 'ppos' e um monstro aparecerá em 'mpos', ao clicar pela segunda vez você ganhará o item 'itemid', e ao clicar pela terceira ou mais vezes aparecerá 'This chest is empty'


      em Data > Actions > Scripts, cria 1 arquivo lua chamado questmonster.lua e cole-o dentro:


      --[Created by Renato Ribeiro to www.TibiaKing.com and others]--

      function onUse(cid, item, fromPosition, itemEx, toPosition)
      teleport = "yes" -- teleportar player? yes para sim ou no para não
      stg = 5123
      itemid = 2160
      desc = getItemNameById(itemid)
      monster = "Demon" -- qual monstro aparecerá
      ppos = {x=1005, y=1028, z=7} -- pra onde o player irá (só se teleport for yes)
      mpos = {x=1006, y=1028, z=7} -- onde o monstro irá aparecer

      if getPlayerStorageValue(cid, stg) < 1 then
      if teleport == "yes" then
      doTeleportThing(cid, ppos)
      doSendMagicEffect(ppos,10)
      doCreateMonster(monster, mpos)
      doSendMagicEffect(mpos,10)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Oh no! You raised the ire of the "..monster.."!")
      setPlayerStorageValue(cid, stg, 1)
      return TRUE
      else
      doCreateMonster(monster, mpos)
      doSendMagicEffect(mpos,10)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Oh no! You raised the ire of the "..monster.."!")
      setPlayerStorageValue(cid, stg, 1)
      return TRUE
      end
      elseif getPlayerStorageValue(cid, stg) == 1 then
      doPlayerAddItem(cid, itemid)
      setPlayerStorageValue(cid, stg, 2)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a "..desc..".")
      return TRUE
      else
      return doPlayerSendCancel(cid, "This chest is empty.")
      end

      end
      [/code] agora em [color=#FF0000]Data > Actions > Actions.XML[/color] [code]
      <action actionid="2545" event="script" value="questmonster.lua"/>



      Status: SCRIPT TESTADO E FUNCIONANDO (15/11/2011)
    • Por Renato
      Créditos no script.

      Explicação: simples, o player fala !sellvial e ele venderá todos os potions vazios que ele tem por X gps cada um.

      • Crie um arquivo LUA com o nome sellvial.lua em data/talkactions/scripts e ponha:

      --[Created by Renato Ribeiro to www.TibiaKing.com and others]--

      function onSay (cid, words, param, channel)
      local preco = 5 -- gold coins
      local count = getPlayerItemCount(cid, 7636) + getPlayerItemCount(cid, 7634) + getPlayerItemCount(cid, 7635)
      local result = count*preco

      if count == 0 then
      doSendMagicEffect(getPlayerPosition(cid), 2)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem potions para vender.")
      else
      doSendMagicEffect(getPlayerPosition(cid), 12)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você vendeu "..count.." potions por "..result.." gold coins.")
      doPlayerAddMoney(cid, result)
      return TRUE
      end
      end[/code] Altere o valor de cada potion em [i]local preco = 5 (substuindo 5)[/i] [b]• Depois em [color=#0000FF]data/talkactions/talkactions.xml[/color] ponha a tag em qualquer lugar:[/b] [code]<talkaction log="yes" words="!sellvial" access="0" event="script" value="sellvial.lua">


      E prontinho!
      OBS: Script não testado</talkaction>
    • Por Renato
      Créditos no Script

      Explicação: Simples comando pra teleportar o player para qualquer lugar
      Exemplo: /tt Renato, 350, 147, 7
      Sem bugs! 100%


      Vá em data/talkactions/scripts copie qualquer arquivo, renomeie para teleportthing.lua e cole dentro:


      --[by Renato Ribeiro to TibiaKing.com]--

      function onSay(cid, words, param, channel)
      if(param == '') then
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário um paramêtro.")
      return TRUE
      end

      local prm = string.explode(param, ",")
      local plr = getPlayerByName(prm[1])

      if (plr == nil) then
      return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O player está offline ou não existe.")
      elseif (prm[4] == nil or prm[4] == '') then
      return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário todas as coordenadas x, y, z, respectivamente separada por vírgulas.")
      else
      doTeleportThing(plr, {x=prm[2], y=prm[3], z=prm[4]})
      doSendMagicEffect(getCreaturePosition(cid), 10)
      return TRUE
      end
      end
      [/code] Va em data/talkactions/talkactions.xml e ponha em gamemaster ou em qualquer lugar: [code]<talkaction log="yes" words="/tt" access="3" event="script" value="teleportthing.lua">

      Não retire o acess="3", IMPORTANTE!


      Bjundas</talkaction>
    • Por Renato
      Créditos no script.

      Explicação: A talkaction de alguns otservers você não escolhe quantos dias de premium você deseja. E sim é algo pré-configurado no server. Então aqui neste script você escolhe quantos dias de premium você quer pagando 1k por cada dia dizendo !addpremium DIAS.
      Exemplo: !addpremium 50 -- comprará 50 dias de p.a
      Você não pode possuir mais que 360 dias de p.a então coloquei algumas checagens. Tal como adicionar mais de 360 dias de uma vez e também somando seus dias atuais com o tanto desejado assim se o resultado for maior que 360 aparecerá uma mensagem falando que não é possível junto ao número de dias que você poderá comprar calculado por 360 menos dias atuais.

      • Crie um arquivo LUA com o nome addpremium.lua em data/talkactions/scripts e ponha:

      -- Author: Renato Ribeiro
      -- Thanks for help: thalia, mkalo
      -- Url: www.tibiaking.com

      function onSay(cid, words, param, channel)

      local prm = tonumber(param)
      local maxdays = 360
      local precopordia = 1000

      if (prm == nil) then
      doSendMagicEffect(getPlayerPosition(cid), 2)
      return doPlayerSendCancel(cid, "Diga quantos dias deseja comprar.")
      elseif (prm == 0) then
      doSendMagicEffect(getPlayerPosition(cid), 2)
      return doPlayerSendCancel(cid, "Você não pode comprar 0 dias de premium.")
      elseif (prm > maxdays) then
      doSendMagicEffect(getPlayerPosition(cid), 2)
      return doPlayerSendCancel(cid, "Você não pode comprar mais que "..maxdays.." dias de premium de uma só vez.")
      else
      if getPlayerPremiumDays(cid)+prm > maxdays then
      doSendMagicEffect(getPlayerPosition(cid), 2)
      return doPlayerSendCancel(cid, "Você só pode ter "..maxdays.." dias de premium, no entanto você só poderá comprar no máximo "..maxdays-getPlayerPremiumDays(cid).." dias.")
      else
      if getPlayerMoney(cid) >= prm*precopordia then
      doSendMagicEffect(getPlayerPosition(cid), 12)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou "..prm.." dias de premium account por "..prm*precopordia.." gold coins.")
      doPlayerAddPremiumDays(cid, prm)
      doPlayerRemoveMoney(cid, prm*precopordia)
      return TRUE
      else
      doSendMagicEffect(getPlayerPosition(cid), 2)
      return doPlayerSendCancel(cid, "Você precisa de "..prm*precopordia .." gold coins para comprar "..prm.." dia(s) de premium.")
      end
      end
      end
      end[/code] [b]• Depois em data/talkactions/talkactions.xml ponha a tag em qualquer lugar:[/b] [code]<talkaction log="yes" words="!addpremium" access="0" event="script" value="addpremium.lua">


      Testado e funcionando!</talkaction>
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo