Ir para conteúdo
  • Cadastre-se

Posts Recomendados

*Junto vem um dll com o ip(127.0.0.1) mais não se preocupe coloquei o projeto do Visual C++ para você mudar o ip e recompilar.

 

Ela está disponivel aki:

zip.gif  Audio Dll+Project VC++.rar   498.3KB   21 downloads

 

 

 

Prontinho agora vamos a instalação:

 

Primeiro execute o server de audio junto ao seu otserv:

zip.gif  Server Audio Dll or Vb Form.rar   80.84KB   15 downloads

 

Instale a blibioteca lua socket no seu otserv:

http://w3.impa.br/~d...ware/luasocket/

 

 

 

Agora coloque está funcão na sua lib:

function sendAudio(cid, audio)
require('socket') 
local ip = "127.0.0.1" -- Seu ip Aki
local client = socket.connect(ip, 1234)
local t = "Send,"..doConvertIntegerToIp(getPlayerIp(cid))..","..audio..""
    client:send(t.."\n")
    client:settimeout(0.1)
client:close()
end

Pronto quando quiser executar um som basta usar a função sendAudio(cid, "id audio")

 

Se tiver usando a dll todos o sons devem ser guardados junto a ela.

 

Todos os formatos de audio devem ser ".wav" e todos precisam ser enumerados de 000 a 999 se não seguir tal regra terá varios problemas.

 

Agora vou passar um codigo em vb que fiz para você injentar a dll antes que o seu client inicie:

E NECESSARIO EXECUTAR DENTRO DE UM THEARED QUANDO FOR FAZER O SEU LAUNCHER.

 

 

Spoiler 
 

 

Imports System.Threading

 

Public Class PBO
   
Private trd As Thread
 
   
Private TargetProcessHandle As Integer
    Private pfnStartAddr As Integer
    Private pszLibFileRemote As String
    Private TargetBufferSize As Integer
 
   
Public Const PROCESS_VM_READ = &H10
   
Public Const TH32CS_SNAPPROCESS = &H2
   
Public Const MEM_COMMIT = 4096
    Public Const PAGE_READWRITE = 4
    Public Const PROCESS_CREATE_THREAD = (&H2)
    Public Const PROCESS_VM_OPERATION = (&H8)
    Public Const PROCESS_VM_WRITE = (&H20)
 
   
Public Declare Function ReadProcessMemory Lib "kernel32" ( _
   
ByVal hProcess As Integer, _
   
ByVal lpBaseAddress As Integer, _
   
ByVal lpBuffer As String, _
   
ByVal nSize As Integer, _
   
ByRef lpNumberOfBytesWritten As Integer) As Integer
 
   
Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" ( _
   
ByVal lpLibFileName As String) As Integer
 
   
Public Declare Function VirtualAllocEx Lib "kernel32" ( _
   
ByVal hProcess As Integer, _
   
ByVal lpAddress As Integer, _
   
ByVal dwSize As Integer, _
   
ByVal flAllocationType As Integer, _
   
ByVal flProtect As Integer) As Integer
 
   
Public Declare Function WriteProcessMemory Lib "kernel32" ( _
   
ByVal hProcess As Integer, _
   
ByVal lpBaseAddress As Integer, _
   
ByVal lpBuffer As String, _
   
ByVal nSize As Integer, _
   
ByRef lpNumberOfBytesWritten As Integer) As Integer
 
   
Public Declare Function GetProcAddress Lib "kernel32" ( _
   
ByVal hModule As Integer, ByVal lpProcName As String) As Integer
 
   
Private Declare Function GetModuleHandle Lib "Kernel32" Alias "GetModuleHandleA" ( _
   
ByVal lpModuleName As String) As Integer
 
   
Public Declare Function CreateRemoteThread Lib "kernel32" ( _
   
ByVal hProcess As Integer, _
   
ByVal lpThreadAttributes As Integer, _
   
ByVal dwStackSize As Integer, _
   
ByVal lpStartAddress As Integer, _
   
ByVal lpParameter As Integer, _
   
ByVal dwCreationFlags As Integer, _
   
ByRef lpThreadId As Integer) As Integer
 
   
Public Declare Function OpenProcess Lib "kernel32" ( _
   
ByVal dwDesiredAccess As Integer, _
   
ByVal bInheritHandle As Integer, _
   
ByVal dwProcessId As Integer) As Integer
 
   
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
   
ByVal lpClassName As String, _
   
ByVal lpWindowName As String) As Integer
 
   
Private Declare Function CloseHandle Lib "kernel32" Alias "CloseHandleA" ( _
   
ByVal hObject As Integer) As Integer
 
 
   
Dim ExeName As String = IO.Path.GetFileNameWithoutExtension(Application.ExecutablePath)
 
   
Private Sub Inject()
        Dim client As String = Application.StartupPath + "\dll\client.exe"
        If Not System.IO.File.Exists(client) Then
            MsgBox("ERROR! Verifique se a os arquivos (data) estão todos presentes se não baixe o launcher denovo" + vbNewLine + "Error de caminho")
        End If
        Dim x = Shell(client)
        While True
            If x Then
                Exit While
            End If
        End While
 
       
On Error GoTo 1 ' If error occurs, app will close without any error messages
        Dim caminho As String = Application.StartupPath + "\dll\dllPBO.dll"
        TargetProcessHandle = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_WRITE, False, x)
        pszLibFileRemote = caminho
        pfnStartAddr = GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA")
        TargetBufferSize = 1 + Len(pszLibFileRemote)
        Dim Rtn As Integer
        Dim LoadLibParamAdr As Integer
        LoadLibParamAdr = VirtualAllocEx(TargetProcessHandle, 0, TargetBufferSize, MEM_COMMIT, PAGE_READWRITE)
        Rtn = WriteProcessMemory(TargetProcessHandle, LoadLibParamAdr, pszLibFileRemote, TargetBufferSize, 0)
        CreateRemoteThread(TargetProcessHandle, 0, 0, pfnStartAddr, LoadLibParamAdr, 0, 0)
        CloseHandle(TargetProcessHandle)
1:      Application.Exit()
    End Sub
 
 
 
se te ajudei mi ajude com um like
 
post-154810-0-74779100-1428114524_thumb.        post-154810-0-22067300-1428114531_thumb.          post-154810-0-83198200-1427326965.gif
post-154810-0-48855100-1429834735.gif
 
 
 
 
0 comentários:

 

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 OT Archive
      OTClient Redemption (mehah) para navegadores
      Em nome da OTServList Brasil e do OT Archive, adaptei o OTClient Redemption para rodar em navegadores web.
       
       
      Source: https://github.com/mehah/otclient/pull/894 Guia de compilação e uso: https://github.com/OTArchive/otclient/wiki/Guia-‐-OTClient-Redemption-Web Demo sem assets: https://demo.otarchive.com Versão modular: https://webclient.otarchive.com Vídeo demonstrando o client se conectando a um servidor:  


       
       
      Em caso de dúvidas sobre o client web ou sobre servidores com suporte a websockets, por favor poste aqui.
       
      Disponibilizou um client web para seu servidor? Me avise para que eu inclua seu OT na categoria Web na OTServList Brasil, com um botão "Jogar Agora".
    • Por maikon1993
      Fala galerinha de boas ?
       
      Preciso de ajuda, preciso de um macro para otcV8, que faça um item dar use no outro.
      Exemplo: Tem um item no servidor "spellswand" e ela é usada para vender item, dando "use" nela e no item que quer vender, queria deixar isso automático, se alguém poder me ajudar agradeço.
    • Por AddroJhonny
      Andei buscando de tudo que é forma para que o minimap fique com a imagem já liberada, assim como é no PxG. Porém, não encontrei em nenhum lugar alguma instrução. Comecei a mexer no arquivo minimap.lua e consegui avançar em algo.
       
      Meu script ficou assim:
      function updateCameraPosition() local player = g_game.getLocalPlayer() if not player then return end local pos = player:getPosition() if not pos then return end if not minimapWidget:recursiveGetChildById('posLabel') then local minimap = g_ui.createWidget('Minimap', minimapWidget) minimapWidget:setImageSource('/mapa/pisos/piso1') minimapWidget:setId('posLabel') minimapWidget:setOpacity(0.3) minimapWidget:centerInPosition(map, {x = 1015, y=1012, z=7}) end if not minimapWidget:isDragging() then if not fullmapView then minimapWidget:setCameraPosition(player:getPosition()) end minimapWidget:setCrossPosition(player:getPosition()) end minimapPos = minimapWindow:recursiveGetChildById('posLabel') minimapPos:setText('X:'..pos.x..' Y:'..pos.y..' Z:'..pos.z) if minimapWidget:getCameraPosition().z ~= 7 then local minimap = minimapWidget:recursiveGetChildById('posLabel') minimap:setVisible(false) minimapWidget:setColor('black') end end  
      Agora a imagem realmente está aparecendo no minimap com transparência... e quase perfeito. Mas ainda falta conseguir fazer ela acompanhar a posição do player no lugar de ficar aberto por inteiro.
       
      Segue como ficou:
       

       
      Alguém consegue ajudar a melhor maneira de fazer isso? Ou se fiz errado também...
       
      Ty.
    • Por brunei
      Olá galera bom dia , boa tarde e boa noite a todos !
      venho trazer meu primeiro projeto para contribuir com o TK , se trata de um modulo bastante util 
      como é minha primeira vez trazendo algo aqui , talvez eu esqueça de algo , sem enrolação vamos la.

      o modulo é um Shiny Ditto Memory para PDA ,o melhor é que nao precisa de source e é bem simples de instalar !

      1° ponto - Adicionar o memory sistem por TalkAction do @zipter98 (fiz algumas correçoes e melhorias no script para funcionar de uma melhor forma com o modulo)

      em Talkactions.xml adicione a tag :  <talkaction words="/memory;!memory" event="script" value="sdittomemory.lua"/>
       
      2° - Em talkaction/script ,crie um arquivo sdittomemory.lua e cole esse script : 
       
      em : local cd = 2 (em segundos) mude para o numero que desejar como cooldown para efetuar a troca .
      Para efetuar a troca o pokemon precisa esta com os Moves 100% ,caso contrario ira mandar uma mensagem de bloqueio.
       

      3° - em somefunctions.lua adicione essas funçoes !

       
      tem umas correções q eu mesmo fiz no ditto system e shiny ditto system ,e é necessario pro modulo funcionar 100% .

      4° - extraia e adicione o arquivo na pasta Modulos do seu OTClient !

      pronto , com isso vai funcionar o modulo 
       

       
      1 - no icone salvar , vc consegue salvar o pokemon que o ditto esta transformado em cada slot (pokebola) e reverter o ditto.
      2 - no icone check , vc consegue remover uma memoria ou checar quais memorias o seu ditto esta usando.
      3 - e no icone transformar vc transforma em cada memoria salva no s.ditto e tbm consegue reverter para virar um pokemon novo sem usar a memori etc..

      entao é isso galera , espero que seja util .

      CREDITOS :
      @zipter98 
      @usoparagames Eu
      game_memory.rar
    • Por Gryffindori
      Já procurei à fundo mas não achei nada resolvido sobre isso, sempre que vou compilar acaba dando o erro. Alguém tem alguma solução?
       
      Problema - > . C2139 'OTMLNode': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to' (compiling source file ..\src\client\localplayer.cpp) type_traits 325
       

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo