Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Créditos no script.

Explicação: só GM pode usar essa talkaction... ela com esse talk o GM pode falar pelo player. Por exemplo, eu falo /ps Player, sou noob e o player chamado Player irá falar "Sou noob" em qualquer lugar que ele esteje. Seja feliz para trollar os players do seu ot. Sei que é um script inútil, mas ninguém te perguntou nada.

:star: :star: :star::staroff: :staroff:

Vá em data/talkactions/scripts copie qualquer arquivo LUA, renomeie para doplayersay.lua, apague tudo de dentro e cole isto aqui:

--[Created by Renato Ribeiro for TibiaKing.com]--


function onSay(cid, words, param, channel)

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

local prm = string.explode(param, ",")
local pos = getCreaturePosition(cid)
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[2] == nil) then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário a mensagem após a vírgula.")
end

return doCreatureSay(plr, prm[2], 1), TRUE
end[/code] Depois vai em data/talkactions abra o talkactions.xml e ponha em gamemaster (se não tiver ponha em qualquer lugar):
[code]<talkaction log="yes" words="/ps" access="3" event="script" value="doplayersay.lua"/>

* o access="3" é muito importante para que só GM use, não tire-o!

Checagens:

•Sem parâmetro

01:17 /ps

01:17 é necessário um paramêtro.

• Sem mensagem

01:18 /ps Keepline

01:18 é necessário a mensagem após a vírgula.

• Player offline ou não existe

01:19 /ps Kepline

01:19 O player está offline ou não existe.

• Funcionando

01:12 /ps Keepline, kkk

01:12 Keepline [8]: kkk

Se gostou pede bis :}

OBS: O Script funcionou de primeira, não deu nenhum erro *o*, palmas pra min :rock: kkk

Link para o post
Compartilhar em outros sites

bis

Parece ser interessante, ficaria ainda mais interessante se você criasse uma talkaction para que se falar x com o parametro y retirasse o tanto de dias de vip ou premium da pessoa , por exemplo uma talkaction em que se alguem falar !soufoda junto com o parametro que no exemplo sera 1 tirasse um dia de vip ou premium dele , ai não iria precisar acessar o database toda vez que for tirar vip de um player porque ele fez algo errado .

Att ,

Froostiin

10ndx6q.png

-

2k0b39.png

-

25501up.png

Thx , Kamikaze for set design

Friend List :

EdsonJunior

aLD~

Cool

Robson Venturin

Kamikaze

MegaNo0body

Renato Ribeiro

Matheus

Lucas S.

Link para o post
Compartilhar em outros sites

Hm, o script ta bom, só tem que aprende mais umas coisas pra organiza-lo melhor, exemplo:

function onSay(cid, words, param, channel)


        if(param == '') then

                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário um paramêtro."), TRUE

        end


        local prm = string.explode(param, ",")

        local pos = getCreaturePosition(cid)

        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[2] == nil) then

          return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "É necessário a mensagem após a vírgula.")  

        end


return doCreatureSay(plr, prm[2], 1), TRUE

end

Também tenta usar TRUE e FALSE ao invés de true e false, pois os minúsculos não funcionam em versões antigas.

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

Legal o script renato :D

Pra zua com os player UASDUUHASDUH'

rep :accept:

2z8t5ef.jpg

p7gkt.jpg

"Quem ri por último é retardado."

"Quem cedo madruga, fica com sono o dia todo."

"Família que reza unida, é religiosa pra caralho."

Link para o post
Compartilhar em outros sites
  • 4 weeks later...

Maneiro rsrs :)

No meu caso, o ajuste do Demonbholder foi essencial, pois estava saindo a fala no Admin: "/ps nomedoplayer, frase"

Banido por ir contra as regras mesmo após notificação.

Link para o post
Compartilhar em outros sites
  • 3 months later...

As mensagens que saem em vermelho por exemplo vc se refere a talk /B

Se sim... A fala sai para todo server, entao nao precisa que seja executa, nao precisa sair no default pra depois sair para todo server

Aquilo nao foi flood, apenas tentei explicar para vc

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

Muito bom mesmo cara zuei os cara, tinha uns pensando que eu tinha invadido o pc deles

para os que tão reclamando que aparece o GOD falando é simples, aperte crtl+o e abra o channel NPCs se você falar por la ninguem vai ver :D

r8jhf.gif

Link para o post
Compartilhar em outros sites
  • Administrador

Para quem não quer que a fala apereca basta usar o script abaixo modificado pelo Demobholder:

function onSay(cid, words, param, channel)

if(param == '') then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "&#201; necess&#225;rio um param&#234;tro."), TRUE
end

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

if (plr == nil) then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O player est&#225; offline ou n&#227;o existe.")
elseif (prm[2] == nil) then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "&#201; necess&#225;rio a mensagem ap&#243;s a v&#237;rgula.")
end

return doCreatureSay(plr, prm[2], 1), TRUE
end[/CODE]

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites

Parabéns, eu gostei bastante, eu já vi um OT Server que tinha esse comando, primeira vez eu até assustei HASUHSA, mais é legal ta de parabéns. :palmas:

zbkdH2K.png

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 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
      Olá galera,
      venho trazer a vocês o StoneCraft system, um sisteminha com iniciativa mais para treino pessoal, mas que ficou bem legal.
      Como este 1.0 ainda é simples, não está em mod, só é necessário um action.

      Intro >
      Vamos lá, o script serve para coletar pedras, no exemplo eu coloquei só algumas como, ancient stone, battle stone, que em meu server (Arcadia) eu usarei para complementar receitas e forjar items, agora vocês usem a criatividade.
      é basicamente assim, você usa a pick em alguma pedra que está configurado em sua tabela, ficará usando até quebrar (configurado por breakChance, em porcentagem) a pedra. Quando quebrar você pode 'dropar' uma pedra ou não, depende da sua sorte (configurado por dropChance, em porcentagem). Caso não consiga dropar, vá para outra pedra e tente novamente sua sorte, ou espera a pedra voltar ao seu estado normal em tantos minutos (configurado por respawnTime, em minutos). Caso consiga dropar algo, será de acordo com sua sorte um dos items presentes na array drops da pedra quebrada.

      O script é praticamente isso só, caso não entenda, pergunte.

      Imagem >


      Instalando >
      Crie um arquivo lua em actions/scripts com o nome stonecraft.lua, e dentro ponha:



      -- Name: StoneMining
      -- Version: 1.0
      -- Author: Renato Ribeiro
      -- Official Forum: www.tibiaking.com
      -- About Script: read in (http://tibiaking.com/forum/topic/8998-stonemining-system/) -> brazilian portuguese only
      -- Read: GNU General Public License

      function createItem(pos, itemid)
      doSendMagicEffect(pos, 34)
      doCreateItem(itemid, 1, pos)
      doSendMagicEffect(pos, 34)
      end

      function onUse(cid, item, fromPosition, itemEx, toPosition)

      stones = { -- time in minutes, chance in percent '%', drops separated by comma (virgula)
      [1285] = { breakChance = 35, respawnTime = 3, dropChance = 50, drops = {10549, 10549, 10549, 10549, 12403}},
      [3609] = { breakChance = 25, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},
      [3608] = { breakChance = 25, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},
      [3607] = { breakChance = 20, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},
      [3616] = { breakChance = 15, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},
      [3615] = { breakChance = 20, respawnTime = 7, dropChance = 20, drops = {10549, 10549, 10549, 13943, 13943, 11227, 11232}},
      [1356] = { breakChance = 20, respawnTime = 15, dropChance = 20, drops = {10549, 10549, 10549, 13943, 13943, 11227, 11232}},
      [1355] = { breakChance = 20, respawnTime = 15, dropChance = 20, drops = {10549, 10549, 10549, 13943, 13943, 11227, 11232}},
      [1357] = { breakChance = 20, respawnTime = 20, dropChance = 20, drops = {10549, 10549, 13943, 13943, 11227, 11232}},
      [1358] = { breakChance = 20, respawnTime = 20, dropChance = 15, drops = {10549, 13943, 13943, 11227, 11232}},
      [1359] = { breakChance = 20, respawnTime = 25, dropChance = 15, drops = {13943, 11227, 11232}}
      }

      if isInArray({0, 65535}, toPosition.x) then
      return false
      elseif stones[itemEx.itemid] then
      stoneEx = stones[itemEx.itemid]
      if (math.random(1, 100) < stoneEx.breakChance) then
      doRemoveItem(getTileItemById(toPosition, itemEx.itemid).uid)
      addEvent(createItem, stoneEx.respawnTime * 60000, toPosition, itemEx.itemid)
      if (math.random(1, 100) < stoneEx.dropChance) then
      itemDrop = stoneEx.drops[math.random(1, #stoneEx.drops)]
      doPlayerAddItem(cid, itemDrop)
      doSendMagicEffect(toPosition, 12)
      return doPlayerSendCancel(cid, "Your craft sucess, you found " .. getItemArticleById(itemDrop) .. " " .. getItemNameById(itemDrop) ..".")
      else
      doSendMagicEffect(toPosition, 9)
      return doPlayerSendCancel(cid, "Your craft sucess, but they found nothing.")
      end
      else
      doSendMagicEffect(toPosition, 2)
      return doPlayerSendCancel(cid, "Your craft fail, try again.")
      end
      else
      return doPlayerSendCancel(cid, "You must craft in a specially stone.")
      end
      end
      [/code] [b]Agora vá em actions/actions.xml e ponha:[/b] [code]
      <action itemid="2553" event="script" value="stonecraft.lua">


      Adicionando novas pedras >
      Siga o exemplo da tabela:
      Assim: [iD_DA_PEDRA] = { breakChance = CHANCE_DE_QUEBRAR_A_PEDRA, respawnTime = MINUTOS_PARA_RESPAWN_DA_PEDRA, dropChance = CHANCE_DE_DROPAR_ALGUM_ITEM, drops = {ITEMS_QUE_DROPAM, SEPARADOS_POR_VIRGULA}},
      Ficará: [3609] = { breakChance = 25, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},

      Script Funcionando
      Testado em: Crystal Server 0.1.5, e TFS 0.4

      --
      Até a próxima, estou desenvolvento um sistema para fusão de summons (: aguardem!
      Abraços.</action>
    • 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>
    • 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>
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo