Ir para conteúdo
  • Cadastre-se

[TibiaAPI] LevelSpy (Tutorial - Source)


Posts Recomendados

Level Spy - Técnica Correta

Aplique a ferramente level spy em seu bot corretamente.

Aloha colequinhas!

Aqui vai mais um tutorial/code de um tool que tem em praticamente todos os bots. Level Spy.

Sim, esse mesmo que você está pensando, este que voce ve o andar de cima e o andar de baixo.

Teoria:

Usaremos sistema de botões, ao apertar o botão up, ele mostrará andar de cima, ao apertar down ele mostrará o andar de baixo e ao apertar desativar ele irá voltar ao normal.

Prática:

Lembrete:

Public c As Client

Muitos iniciantes usam:

c.LevelSpyOn(+1)
[/code]
[code]c.LevelSpyOn(-1)
c.LevelSpyOff()
[/code] Não, não! Não está errado. Porém ele só vai mostrar o andar de cima e o andar de baixo. Porque? O +1 simboliza seu local somado á um. Ou seja, sempre será o andar de cima, sómente. Ele não vai somar +1 ao andar que você está vendo, mas sim ao seu local. Então bolei esta técninca. [b]Primeiro, lá em cima onde você declara as variáveis, declare[/b]
[code]Dim levelspy As Integer = p.Location.Z
Depois no botão up em evento _Click ponha:
 If levelspy = 14 Then
Else
c.Map.LevelSpyOn(levelspy + 1)
levelspy = levelspy + 1
End If
[/code] [b]No botão down em evento _Click ponha:[/b]
[code] If levelspy = 0 or levelspy = 7 Then
Else
c.Map.LevelSpyOn(levelspy - 1)
levelspy = levelspy - 1
End If
No botão desativar em evento _Click ponha:
 c.Map.LevelSpyOff()
levelspy = levelspy
[/code]

[color=#ff0000][b]Caso não entender algo sobre os códigos ou caso der algum erro, poste aqui.[/b][/color][/color]

[b]Bye babies.[/b]

Link para o post
Compartilhar em outros sites

São coisas extremamante fáceis, que só precisa de um pouco de raciocínio pra criar um cálculo.

Eu não sei nem 2% de programação =P

Link para o post
Compartilhar em outros sites

Pois é por isso que eu digo de Tibia Bots para Tibia Bots Programing

Att.

Orbtitan

Gostou do meu topico/Post ? REP++ MEN custa nada

halosignorbtitan.png4696266.png

Link para o post
Compartilhar em outros sites

O que quer dizer com isto orb?

Não está satisfeito com nossa área de programação?

Não , pelo contrario , estou dizendo que aki só viro programação

Att.

Orbtitan

Gostou do meu topico/Post ? REP++ MEN custa nada

halosignorbtitan.png4696266.png

Link para o post
Compartilhar em outros sites

Pelo contrário seria que você está bem satisfeito.

Ou voce não soube se expressar e quer dizer que está odiando?

É relacionado a bot cara, então também temos lol.

Temos todas as outras áreas também.

Porque não posta lá ué?

Eu posto aqui porque eu sou programador, agora cada um tem uma área que gosta, temos até area de design aqui, só que ninguém posta direito, mas se postarem iria ser fórum de design? Tem nada haver isso cara.

Desculpa se te ofendi, só estou explicando o porquê dos fatos.

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

Pois é por isso que eu digo de Tibia Bots para Tibia Bots Programing

Isso foi um elogio à area de programação do TibiaBOTS, Renato.

:D

29161_4.png

 

 

2d168ur.png

 

Link para o post
Compartilhar em outros sites
Primeiro, lá em cima onde você declara as variáveis, declare

Dim levelspy As Integer = p.Location.Z

Onde eu declaro isso ?

29161_4.png

 

 

2d168ur.png

 

Link para o post
Compartilhar em outros sites

Nas variáveis da sua aplicação.

De obrigatóriedade ABAIXO de onde você define p, porque se não o bot não vai saber o que é p e vai travar (ele lê na ordem em que estão os códigos)

Link para o post
Compartilhar em outros sites

Public Class Form2

Dim c As Client

Dim p As Player

Dim levelspy As Integer = p.Location.Z

?

29161_4.png

 

 

2d168ur.png

 

Link para o post
Compartilhar em outros sites
  • 1 month later...

Olá Renato, me perdoá por upar esse tópico nessa data.

Cara eu queria muito aprender um pouco mais de VB, em 1998 eu fiz um pequeno curso de visual basic 4, mas foi a muito tempo e esqueci quase tudo praticamente, gostaria de saber mais sobre essa linguagem para hacker e cheat, no VB 6 eu sei fazer poucas coisas, mas não preciso declarar nada e hoje me deparo com um problema no vb 2008.

Gostaria do amigo me ajudar se for possível, bem.. eu declaro o seguinte "Public c As Client" injeto o tibiaapi normalmente, mas da erro nessa declaração.

Como eu faço pra proceder isso sendo que da erro o "Dim levelspy As Integer = p.Location.Z" tenho que renomear os botões?

Posso te dar uma dica? na boa sem maldade alguma? porque você não faz os seus tutoriais pensando 70% nos novatos em VB? como? simples meu caro amigo, coloque pra download o projeto final do seu tuto, assim os novatos irão analisar usando o próprio VB e ficará de boa, assim daria pra tirar todas eu disse, todas as duvidas, assim você ajuda os novatos e os expert no assunto no mesmo tutorial, o que acha da idéia?

Tipo esse, vc poderia disponibilizar no final o projeto com com o source.. poderia nos ajudar por favor?

Sei que existem varios tutoriais básico dos básicos, mas entenda que as vezes da um branco e voce sabe que isso acontece sempre.

Tipo como eu vou declarar sendo que esta dando erro :(

Link para o post
Compartilhar em outros sites

Cara, declarar é a primeira coisa que vc aprende em uma linguagem, não é por mal.

Acho que pra coisas simples, é inviavel a disponibilização de um projeto ensinando a fazer apenas uma unica coisa!

Como o Flamer costuma dizer, aprenda a programar na linguagem primeiro, faça programas que fazem apenas calculos (médias, pitágoras, etc..), porque começar direto com a API vc vai ter muita dificuldade, e as vezes irá se deparar com um erro bobo da linguagem! isto é um conselho.

Em relação a sua duvida, verifique se esta assim declarada suas variaveis

Dim c As Client

Dim p As Player

Dim levelspy As Integer = p.Location.Z

# Regras Gerais - TibiaKing.com #
Contato: [email protected]
Não respondo dúvidas via MP.


1C2tu.png4Tlqo.png1C2tu.png


 

Link para o post
Compartilhar em outros sites

Cara, declarar é a primeira coisa que vc aprende em uma linguagem, não é por mal.

Acho que pra coisas simples, é inviavel a disponibilização de um projeto ensinando a fazer apenas uma unica coisa!

Como o Flamer costuma dizer, aprenda a programar na linguagem primeiro, faça programas que fazem apenas calculos (médias, pitágoras, etc..), porque começar direto com a API vc vai ter muita dificuldade, e as vezes irá se deparar com um erro bobo da linguagem! isto é um conselho.

Em relação a sua duvida, verifique se esta assim declarada suas variaveis

Dim c As Client

Dim p As Player

Dim levelspy As Integer = p.Location.Z

Augusto esse p.Location.Z não existe, eu coloco o imports.object.client, imports.object e mesmo assim não reconhece o location tanto que nem existe ele na list se eu coloco p e dou ponto, aparece uma lista e location não está nela

Acho que é ai que o Guilherme está confuso também

Eu sei o básico do básico de VB, eu pra fica aprendendo eu fico fazendo tocador simplesmente de mp3 no VB6 com ocx windows mediaplayer, mas não precisa importar ou declarar nada.

o amigo me entende?

VB.NET mudou muito :(

Esse TibiaAPI serve pra Delphi.NET tbm? a versão 8 do delphi.

Link para o post
Compartilhar em outros sites

@Rick

intendo a sua duvida, veja este tópico do Renato, nele esta detalhado a criação "básica" de um bot utilizando a API.

agora em relação do Delphi, acredito que não funciona, pois até mesmo o Pucker aqui do forum tbm não conseguiu utiliza-la no Delphi 2010 - veja -> Link.

# Regras Gerais - TibiaKing.com #
Contato: [email protected]
Não respondo dúvidas via MP.


1C2tu.png4Tlqo.png1C2tu.png


 

Link para o post
Compartilhar em outros sites

Cara mil perdão, cara foi mancada minha, estava utilizando uma versão antiga do TibiaAPI, agora deu certo *-*

desculpe qualquer coisa, um abraço.

P.S: ta dando erro o executável, tipo o código e a compilação sai sem erro, mas quando executo apareceu um erro de form, tanto no windows xp quanto no windows 7 x64, será que o TibiaAPI ta com bug? usei ele pra fazer um MC e Tibia Luz (Light) e da certo, só no spy da esse ERRO.

versão do TibiaAPI que estou usando é o 2.9.9.0 e o próprio site diz que é pra Tibia 8.71

alguém já teve esse erro? era no source ou no dll?

:(

Link para o post
Compartilhar em outros sites

Poste o código que vc esta usando para analizarmos!

# Regras Gerais - TibiaKing.com #
Contato: [email protected]
Não respondo dúvidas via MP.


1C2tu.png4Tlqo.png1C2tu.png


 

Link para o post
Compartilhar em outros sites

Oi, Augusto, estou fazendo assim no VB.NET 2010 usando o .net 3.5 para compilar e o mesmo erro tbm está ocorrendo no VB 2008 com TibiaAPI 2.9.9 vejamos:

Imports Tibia

Imports Tibia.Objects

Imports Tibia.Objects.Map


Public Class Form1

    Public c As Client

    Public p As Player


    Dim levelspy As Integer = p.Location.Z



    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If levelspy = 14 Then

        Else

            c.Map.LevelSpyOn(levelspy + 1)

            levelspy = levelspy + 1

        End If



    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        If levelspy = 0 Or levelspy = 7 Then

        Else

            c.Map.LevelSpyOn(levelspy - 1)

            levelspy = levelspy - 1

        End If



    End Sub


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        c.Map.LevelSpyOff()

        levelspy = levelspy



    End Sub

End Class

Dou build e não ocorre o erro, mas ao apertar F5 da esse erro aqui "Erro ao criar o Formulário. consulte Exception.InnerExcption para obter detalhes. O erro é: Refêrencia de objeto não definida para uma instância de objeto.

em WindowsApplication1.My.MyProject.MyForms.Create__Instance__[T](T Instance) na 17d14f5c-a337-4978-8281-53493378c1071.vb:linha 190

em WindowsApplication1.My.MyProject.MyForms.get_Form1()

em WindowsApplication1.My.MyApplication.OnCreateMainForm() na E:\vb\tibiatools\tibiatools\My Project\Application.Designer.vb:linha 35

em Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()

em Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()

em Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)

em WindowsApplication1.My.MyApplication.Main(String[] Args) na 17d14f5c-a337-4978-8281-53493378c1071.vb:linha 81

em System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)

em System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

em Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

em System.Threading.ThreadHelper.ThreadStart_Context(Object state)

em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

em System.Threading.ThreadHelper.ThreadStart()

abraços

[]'s

Link para o post
Compartilhar em outros sites

Isso esta acontecendo porque vc não atribuiu valores as váriaveis c e p respectivamente client e player.

Se c esta nulo, ele irá dar este erro, pois não tem valor a ele, assim como em p.

Imports Tibia 

Imports Tibia.Objects 

Imports Tibia.Objects.Map 


Public Class Form1 

    Public c As Client 

    Public p As Player 


    Dim levelspy As Integer = p.Location.Z 



    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

        c = ClientChooser.ShowBox

        If c.LoggedIn Then 

            player = c.GetPlayer 

        Else 


        End If 

    End Sub 


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

        If levelspy = 14 Then 

        Else 

            c.Map.LevelSpyOn(levelspy + 1) 

            levelspy = levelspy + 1 

        End If 



    End Sub 


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 

        If levelspy = 0 Or levelspy = 7 Then 

        Else 

            c.Map.LevelSpyOn(levelspy - 1) 

            levelspy = levelspy - 1 

        End If 



    End Sub 


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 

        c.Map.LevelSpyOff() 

        levelspy = levelspy 



    End Sub 

End Class

Veja no Load do Form!

Caso não de certo (fiz o cod no bloco de notas e não testei =/) aqui tem o tutorial do Julio ensinando a fazer isso

Link

Teste e dps nos fale!

PS: A API pode não funcionar em sistemas x64.

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

# Regras Gerais - TibiaKing.com #
Contato: [email protected]
Não respondo dúvidas via MP.


1C2tu.png4Tlqo.png1C2tu.png


 

Link para o post
Compartilhar em outros sites

Rapaz, o negocio está complicado, eu tentei de tudo quanto é jeito, encontrei alguns esquemas na net e não da certo, o erro é esse Dim levelspy As Integer = p.Location.Z

pois aperto F8 e ele fica grifado de amarelo, mas o maldito programa não da nenhuma dica ¬¬

Como eu posso instanciar o maldito objeto?

Não existe outra forma de fazer esse level spy? todos os exemplos do site do TibiaAPI, não existe level spy, se não conseguir, vou partir pro C# pelo menos a maioria dos exemplos e bot estão nessa linguagem =/

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: 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>
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo