Zacząłem czyścić ten wątek z co wiekszych ad persona zamiast go wprost wywalic do Newbie, gdyż pierwotnie autor mnie przekonał co do swoich szkoleniowych intencji, jednak po ostatnim poście zwątpiłem kompletnie.
Ze swojej strony powiem: jesli faktycznie masz taki cel, zrob tak, niekoniecznie w podanej kolejnosci:
- zbotuj pajacyka
- zbotuj windowsowego minesweeper
- zbotuj windowsowego hearts lub pinball'a
- zbotuj flashową grę ZWOK lub podobną
- zbotuj GG, IRC, lub dowolny inny podobny program
przy czym poprzez 'zbotuj' rozumiem: napisz program ktory bedzie automatyzowal glowne/typowe/jakiekolwieksensowne czynnosci ktore wykonuje sie w tym programie.
Dopiero wtedy uderzaj na Tibie lub podobne i proś o pomoc przy niej, najlepiej zaczynając od pokazania co Ci sie udalo z w/w osiagnac. W ten sposob:
a) przekonasz wszystkich ze mowisz serio a nie tylko marnujesz ich czas na dywagacje 'bardzo chciałbym zbudować swoją 1:1 wieżę Eiffela i postawić na czubku półtonowy sześcian' - co, nieumniejszając, na pewno znalazłoby fanów, ale prawdziwi architekci pewnie by Ciebie rowniez olali
b) piszac, albo przynajmniej probujac napisac powyzsze, napotkasz natychmiast problemy totalnie podstawowe, ktorych odpowiedniki na pewno spotkasz takze i w Tibii, a ktorych wyjasnienie Tobie zajmnie forumowiczom najwiecej czasu i dlatego im sie teraz nie chce
c) co do powyzszych, moze poza ZWOK'iek itede, na sieci lezy mnostwo informacji podpowiadajacych jak to zrobic i nietrudno jest je znalezc!
Do samej Tibii: zeby napisac do niej bot'a, masz w praktyce trzy podejscia:
-
oszukac klienta gry, napisac program ktory zaleje go wyprodukowanymi, sztucznymi kliknieciami/ruchami mysza/klawiatura - ktore w efekcie wykonaja to co wykonalby gracz, tyle ze automatycznie
-
włamać się do jej klienta i probować go zautomatyzować, wstrzyknąć mu jakiś swoj watek ktory zacznie kontrolowac jego aktywnosc i/lub przechwytywac preztwarzane przez niego dane o nowych rzeczach/zdarzenach i/lub udawac klikniecia mysza/klawiatura (co akurat mozna prosto zrobic zewnetrznym programem bez wlamywania sie, patrz pkt1) itede
-
chrzanic wlamywanie sie do niego i napisac swojego klienta gry: program ktory bedze rozumial protokol komunikacyjny gdy, ktory zaloguje sie do niej, zacznie wysylac komendy, odbierac komunikaty, itd - zupelnie jak zwykly klient ktorego reszta graczy uzywa - ale faktycznie nie bedzie pelnoprawnym klientem, sam bedzie 'grał' bez czekania az gracz wcisnie klawisze etc.
To sa ogolne opisy 3 (i pół) prostych podejść do 'botowania' czyli automatyzacji innego programu. Pierwszy jest banalny, byle klient nie byl zabezpieczony za bardzo przed tym. Drugi jest trudny z raci wielu niskopoziomowych spraw ale jest aplikowalny prawieze do kazdego programu i nie do obejscia bez profesjonalnego zabezpieczenia klienta przed tym. Trzeci olewa zabezpieczenia klienta, pozwala na Twoja pelna dowolnosc i kreatywnosc, ale jest nielatwy ze wzgledu na koniecznosc implementacji protokolu - ktory moze nie byc publicznie znany - i jest aplikowalny tylko do aplikacji ktore dzialaja na zasadzie klient-serwer (tzn takich gdzie mozesz miec w nosie co masz u siebie, wystarczy ze oszukasz swojego rozmówcę, tu: serwer). Sa inne sposoby, ile glowa wymysli.
Dalsze prosby o 'tajemne wskazowki' spowoduja zamkniecie watku, chocby dlatego ze nie tycza sie C++'a a raczej InzynieriiOprogramowania. Nie zakladaj jednak tam podobnego watku, tylko raczej zacznij zadawac konkretne pytania, np: jak w C++ nawiazac komunikacje po socketach, albo jak w C++ wstrzyknac swoj watek do innego procesu. Ostrzegam, TE dwa pytania juz maja sporo odpowiedzi na tym forum.