-
-
-
crocklinux reagiu a uma resposta no tópico: Função de Hotkey (Simula pressionamento de hotkeys no tibia)
-
Me deparei com isso no chat:
Não levei nenhum comentário pro lado pessoal =] Não conheço muitos aqui, só que já estava preparado para um comentário seu, mesmo sem te conhecer, porque já sabia de certas atitudes suas. O comentário do chat foi afeminado... tenso né ? ... você não tava no chat, não sabe como tava a zuera, e não me conhece, então não pode chegar dizendo "Uma tremenda bichona". Enfim, alguem poderia fechar esse tópico ? =P
-
Me deparei com isso no chat:
hueheuehue, tenso.. nem sei porque você foi tirar SS disso... KSAOPKASOKPAS não zouo mais nada no chat x.X @Lucas S fala aeww Meu tester... heuheuehue Vo ve se volto a ser mais ativo aqui =D @</FONT>cool Então você deve ser o tal programador rude que se acha sempre melhor pelo conhecimento que tem... do qual ouvi falar? ' Pelo que entendi, deve ser mais um hipócrita que valoriza seu conhecimento rebaixando os que sabem menos... mas, nada pessoal, nem sequer te conheço, só ouvi falar isso. Desculpe se eu tiver errado, só gosto de deixar em aberto o que alguns escondem =] @</FONT>Renato Obrigado a consideração ae cara =D Vo ve se consigo aparecer aqui de vez em quando ' Boa sorte com o Forum ae, ta cada vez melhor. =] flw, abraços
-
-
Augusto reagiu a uma resposta no tópico: Função de Hotkey (Simula pressionamento de hotkeys no tibia)
-
-
-
Grippe reagiu a uma resposta no tópico: Função de Hotkey (Simula pressionamento de hotkeys no tibia)
-
Função de Hotkey (Simula pressionamento de hotkeys no tibia)
@EdsonJunior Vlw pelo comentario ae parceiro xD @Flamer Sim, já são definidos =X... Sempre que eu escrevo um tutorial, sigo ele a risca num projeto em branco, pra ter certeza que se uma pessoa fizer o mesmo, chegará ao mesmo resultado. Ou seja, a função funcionará normalmente seguindo as minhas explicações, sem ter que definir mais nada x.X to ligado parceiro o0 É que fiz um code de base, ae meu bot usa pouco a função de hotkey, entao acabou ficando esse mesmo x.X Mas, vo postar uma versão com else if... vo fazer aqui e ja edito o topico... vlw pelo comentario aew flw
-
Função de Hotkey (Simula pressionamento de hotkeys no tibia)
Falaaaa galeraa... Dando continuidade aos meus tutoriais de programação SEM TIBIAAPI, vou postar agora mais uma função que pode ser util a vocês x.x Ela trabalha de uma forma simples, só ve qual o texto que foi inserido na função, e trabalha a partir disso (se digitei F1 ele vai usar F1 na janela do tibia)... Um exemplo de utilização é pra healer... por exemplo (em pseucodes ): se player.vida <= vida.paraHealar então Hotkey('F1'); Vamos la: A função é a seguinte: function hotkey(x :string): string; var h: HWND; i : integer; begin if x ='F1' then i := 112; if x ='F2' then i := 113; if x ='F3' then i := 114; if x ='F4' then i := 115; if x ='F5' then i := 116; if x ='F6' then i := 117; if x ='F7' then i := 118; if x ='F8' then i := 119; if x ='F9' then i := 120; if x ='F10' then i := 121; if x ='F11' then i := 122; if x ='F12' then i := 123; h := FindWindow(nil, 'Tibia'); // acha a janela do tibia SendMessage(h, WM_KEYdown, i, 0); //pressiona a tecla SendMessage(h, WM_KEYUP, i, 0); //solta tecla end; Obs: coloque a função abaixo do Implementation, e você pode usa-la no decorrer do programa. Analisando a função ( como sempre x.X ): Ou seja, vamos usar ela assim: Lembrando que o code é bem simples, e só funciona com hotkeys do F1 ao F12 (é só ver o code...mas é fácil adaptar para usar ctrl + F's ) Você pode usar também a função com um edit ou outra coisa do tipo (que seja string)... ou seja: Se no edit1.text tiver escrito F1, ele pressiona essa hotkey no tibia. =] Um code simples, mas, espero que seja util, e que dê ideias de como vocês podem fazer outros sistemas "indetectáveis" pro tibia. flw, abraços galera #Edit Seguindo a sugestão do Flamer para um menor consumo de processamento, fiz uma versão com else if... a função não altera muito (acredito que só seu consumo de processador), ou seja, a utilização fica da mesma forma, se alguém quiser testar a nova função para ver se há mudanças... é a seguinte (só troque a função por essa) : function hotkey(x :string): string; var h: HWND; i : integer; begin if x ='F1' then i := 112 else if x ='F2' then i := 113 else if x ='F3' then i := 114 else if x ='F4' then i := 115 else if x ='F5' then i := 116 else if x ='F6' then i := 117 else if x ='F7' then i := 118 else if x ='F8' then i := 119 else if x ='F9' then i := 120 else if x ='F10' then i := 121 else if x ='F11' then i := 122 else if x ='F12' then i := 123; h := FindWindow(nil, 'Tibia'); // acha a janela do tibia SendMessage(h, WM_KEYdown, i, 0); //pressiona a tecla SendMessage(h, WM_KEYUP, i, 0); //solta tecla end; Flw², Abraços²
-
Simulador de Teclas + TibiaAPI
da hora cara... ha poucos aqui que programam em C#, acho legal vc tentar levar a galera pra esse caminho do mau essa linguagem. curti o projeto, soh li a source pra ver mesmo como era.... manjo pouco de C#, mas, entendi o codigo.... bem simples (nao 'facil', mas, sem 'frescuras'), muito util e funcional... vlw ae flw, abraços //tomara que esse topico nao morra tao jah, e que a galera possa ver e analisar a source de outras linguagens '-'
-
[TibiaAPI] Usar exura sio no amigo
boa dica caraa.... eu vi la que você usou a label com text " e tals... mas, quando vc dobra a aspas, ele entende como uma no meio do code... por exemplo: c.Console.Say("Exura Sio " & """" & amigosio.Name) ta vendo que entre as aspas que determinam a string eu colokei mais duas? ... no meio do code, o vb entende como uma, assim fica: Exura sio "Nome do Amigo flw, abraços.. =]
-
Apresentação - GustavLuiiz
Seja Bem Vindo ! ou wellcomido como a galera fala ;P to aqui a uns dias e ainda não fiz minha apresentação... heheuheuheueh mas, espero que você faça muitas amizades, e que possa contribuir e aprender com a comunidade do forum. flw, abraços
-
-
Função Say para o Tibia (Sem TibiaAPI)
@Puncker vlw ae puncker, espero ajudar a galera com meus tutos simples de programação sem tibiaapi =] @Rick Martin vlw ae parceiro, espero trazer o pessoal para a programação sem tibiaapi x.X @ Augusto vlw ae mano, é como vc citou, o bom é que você mesmo pode atualizar, sem ficar esperando por tibiaapi... meus bots em delphi são simples, mas, no mesmo dia que o tibia atualiza, atualizo os address no bot, e pronto... bot atualizado... minhas funções são simples ( e não muito funcionais ), mas a ideia mesmo é dar um inicio pra galera programar sem tibiaapi.. vlw por todos comentarios... logo mais postarei novos tutos... quem tiver alguma sugestão sobre algo que gostaria de ver sem tibiaapi, posta ae e eu vejo se consigo fazer em delphi x.X flw, abraços...
-
Função Say para o Tibia (Sem TibiaAPI)
Falaaa galera x.x Tentando dar uma continuidade à programação para tibia sem uso de tibiaapi, vo postar uma função aqui (meio que 'gambiarra', mas, funciona)... No outro tutorial eu expliquei um pouco sobre leitura de memoria.. esse aqui não tem muito a ver, mas, complementa aquele pra quem quer fazer bot sem TibiaAPI x.X Primeira observação: As funções são declaradas abaixo do implementation, e ae podem ser usadas somente completando os argumentos delas... como de costume, minhas funções usam argumentos simples. Segunda observação: Essa função vai digitar letra por letra da mensagem e depois dar um enter. Função Say: function say(mensagem: string):string; var h: HWND; letra: Integer; B: Byte; begin h := FindWindow(nil, 'tibia'); for letra := 1 to Length(mensagem) do begin B := Byte(mensagem[letra]); SendMessage(h, WM_CHAR, B, 0); end; SendMessage(h, WM_CHAR, 13, 0); end; Analisando a função: H = janela do tibia. Mensagem = mensagem que a função vai digitar no tibia. as variáveis Letra e B trabalharam assim: a letra vai de 1 até a quantia de caracteres da mensagem, e o B se torna o byte da letra a ser enviada... e ele envia com a API SendMessage (é uma API do windows, e NÃO tem nada a ver com TibiaAPI ). No fim temos: SendMessage(h, WM_CHAR, 13, 0); Isso será responsável por apertar um Enter após ele terminar de digitar a mensagem ( 13 = VK_return = Enter ). Olhando a primeira linha, vemos como podemos usa-la: function say(mensagem: string):string; Ou seja, é só usar assim: Say('mensagem aqui'); ou com um edit: Say(edit1.text); Pode usar de diversas formas, desde que ele trabalhe com uma string =] Segue em Anexo a source de um projeto somente com a função, e um exemplo de usa-la, com um edit e um botão (você digita a mensagem no edit, e clica no botão.. e ele envia pro tibia \o/ ).... Flw galera, abraços... Sei que tá bem simples, mas, espero que ajude vocês. _____________________________________________________________ Usando Função Say.rar
-
[TUTORIAL] War Icons
boa cara... o tutorial ta legalzinho, só que acho que seria melhor por um timer pra ver qual opção esta checada, isso evitaria de escrever em todos eventos '-' mas, de boaa... vlw ae o tutorial... usei esses efeitos de war icon no programinha que fiz de modificações no tibia esses dias ae x.x flw, abraços
-
bme vindo pra eu .
aew parceiro... Bem Vindo !... sou novo aqui também... preciso fazer um topico pra me apresentar x.X... heuheuehue flw, abraços
-
ReadProcessMemory - Lendo Valores de memoria sem TibiaAPI
Aew galera... vi que a maioria aqui programa com TibiaAPI e VB... entao, resolvi criar uns tutoriais pra ver se a galera se motiva a programar em Delphi, SEM usar a API. Vo dar um exemplo SIMPLES de como ler um valor numeral (life do char por exemplo)... e como converter ele pra uma string ( converter é uma função muito simples do proprio delphi ;/ ). Para seguir esse tutorial, é necessário ter noção básica de delphi, e obviamente, ter o delphi... não darei muitas explicações sobre "onde por o codigo" e sim "onde podemos usá-lo"... Antes de postar algo, por favor, leia o tópico todo (mesmo se nao entender algo...) para uma melhor avaliação x.X.. No final do tuto teremos o codigo completo (caso haja duvidas)... Vamos lá: ReadProcessMemory É uma função capaz de ler memoria (ahh váa), vo explicar os parametros dela (não muito explicado... kkkk, só o bastante pra entenderem como usar), e dar um exemplo. Entãao... hora de programar \o/ Crie um novo projeto no delphi... nele adicione uma label (aba standard) e um timer (aba system)... Antes de começar a editar os componentes e suas ações, vamos inserir essas variaveis globais: PH : THandle; PID, ThID: DWORD; H : THandle; Vamos mudar a propriedade Name da label para Vida, e deixaremos o enabled do Timer em True e o Interval em 10 (não "muito rápido", mas, o essencial para o programa de exemplo funcionar...) Agora, abaixo do Implementation... colocaremos esta função, pra ser mais pratico de se ler... function LerInt(Address: Integer): Integer; var value:integer; ler :dword; begin H := FindWindow(nil, 'Tibia'); ThID := GetWindowThreadProcessId(H, @PID); PH := OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID); ReadProcessMemory(PH, Ptr(Address), @Value, 4, Ler); Result:=value; end; Dê dois clickes no timer, para ir ao evento do OnTimer dele... e insira o seguinte código: vida.caption := 'Vida: '+IntToStr(Lerint($0063FD5C)); Execute (apertando F9), com o tibia aberto... (ou abra o tibia depois...sei lá), e veja a leitura acontecendo \o/ Agora sim vo explicar x.X Declaramos variaveis globais para 'preencher' os parametros da leitura de memoria.... No código da função, começamos com a linha : H := FindWindow(nil, 'Tibia'); A ideia é achar a janela do tibia, e dar esse 'valor' pra uma variavel Handle... que é para o primeiro paremetro da função de readprocessmemory. Podemos achar a janela pela classe ou pelo titulo (caption, ou texto da janela... se preferirem), por exemplo: se eu usar: H := FindWindow('Tibiaclient', nil); // classe da janela do tibia nesse caso, é a mesma coisa de usar: H := FindWindow(nil, 'Tibia'); //nome da janela do tibia Nessa parte do códigos, definimos que temos acesso total ao programa ( o tibia )... PH := OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID); E finalizando, temos a leitura... Usando o PH que é uma handle com acesso aos address do tibia, o address a ser lido, o retorno do valor, usando 4 bytes, e lendo com uma variavel dword... ( se não entendeu... siga a minha escrita e as cores, e vc entende... ) ReadProcessMemory(PH, Ptr(Address), @Value, 4, Ler); E temos o resultado: Result:=value; Analisando a função minha, temos isso: function LerInt(Address: Integer): Integer; Ou seja, LerInt(Address) retornando valor integer... Assim nosso timer atualiza o valor, com o seguinte código: vida.caption := 'Vida: '+IntToStr(Lerint($0063FD5C)); // address de vida do tibia 8.7 (se meu address não estiver errado ;P) Ou seja, nossa label chamada vida, tem sua propriedade caption alterada para o valor lido... mas, o valor é Integer, e a caption aceita String, então convertemos usando a função IntToStr ... ( integer Para String ;/ ).... Bom, é isso galera, acredito que muitos conhecem o ReadProcessMemory, só tentei explicar um pouco o que sei sobre a função =] Se alguém teve duvida de aonde colocar cada code...No final, teremos um código mais ou menos assim: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) vida: TLabel; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; PH : THandle; PID, ThID: DWORD; H : THandle; implementation function LerInt(Address: Integer): Integer; var value:integer; ler :dword; begin H := FindWindow(nil, 'Tibia'); ThID := GetWindowThreadProcessId(H, @PID); PH := OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID); ReadProcessMemory(PH, Ptr(Address), @Value, 4, Ler); Result:=value; end; {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); begin vida.caption := 'Vida: '+IntToStr(Lerint($0063FD5C)); end; end. OBS: o code é baseado naquele classico código da internet (tem em todos foruns quase X.X )... de ler e editar pontos no pinball do windows (mas, somente a parte de leitura)..., porém fiz algumas modifcações e transformei ele em uma função... flw, abraços.... Qualquer duvida, sugestão ou correção... podem falar =]
-
[Tutorial] Montarias
Boa dica... ja havia feito algo similar (porem no delphi e sem auxilio de api).... esse tutorial me deu uma ideia de fazer um programa simples pra editar algumas coisas no jogo (e por preguiça, fiz em VB com API mesmo... kkk) =] vlw... rep + flw, abraços
-
-
Encontre um erro na imagem!
curtii... KOPSAkoASkPOKSpAKSPoAKPOSa
-
Tatuagens de Nerds
nuss, a do html na costa do cara eh show ( a ideia )... KPOSAkPAOSkpoAKSpaKOS enfim.. tem uma ke faltou ae.. ke eh a da SD na canela... vejam no google "sd na canela" e peskisem por imagens.. KOPSkASPkOAPS flw