wenn der bot auf euren servern läuft wie kann man dann darauf zugreifen oder ist es wie im video das in der console nur die befehle aufgelistet werden?
Denke mal nicht also wie greift man drauf zu^^
Hey, könnt ihr mir vill. erklären wie dieses "Angelscript" Funktioniert? Ich würde gerne selber ein Bot machen und das auf ein Server bringen aber ich bin da eher ein "Noobi"
Leute... noch etwas bitte beleidigt nicht oderso jeder hat Klein angefangen seit nicht so streng zu mir will ja auch Nett sein.
PS: Danke :P
Angelscript ist lediglich eine Art zusatzsprache für C++. Damit lässt sich alleine wenig anfangen.
BTW: Es wäre mal ganz cool zu sehen wie das Interface vom bot so aussieht.
Wir versuchen jetzt auf jeden Fall, den Bot zu Anfang des nächsten Monats lauffähig zu bekommen.
Was soweit problemlos funktioniert:
Login
Charakter-Auswahl
Scriptinterface (Bot-Scripts)
Multithreading (mehrere Instanzen in einem Prozess)
Laden von Map-Infos
Einträge aus der Item/Mob-Proto lesen
Was in Arbeit ist:
User-CP
Webseite
HackShield Emulator
Standard-Botscripts (Levelbot, Angelbot, Farmbot)
Der HackShield Emulator ist derzeit in Arbeit, dürfte nicht mehr allzulange dauern (ist halt ne Menge Reversing-Arbeit).
Alles andere ist recht trivial und schnell erledigt
Mal eine kleine Übersicht an (momentanen) Funktionen für die Bot-Scripts:
Code:
// BASISFUNKTIONEN
void DEVLOG(string t); // DEVLOG-Message (Ausgabe in Log-Datei erfolgt nur, wenn der Devmode auf true ist)
void SYSLOG(string t); // SYSLOG-Message
void SYSERR(string t); // SYSERR-Message
string addr_to_string(uint addr); // Konvertiert eine uint IP-Adresse zu einem String
uint string_to_addr(string addr); // Konvertiert eine als String vorliegende IP-Adresse zu einer vom Bot verwertbaren IP-Adresse
uint rand(); // Generiert eine Zufallszahl
uint (uint min, uint max); // Generiert eine Zufallszahl zwischen min und max
// OBJEKTE
simple_player; // Eine Spieler-Instanz
// Funktionen für simple_player:
string get_name(); // Returned den Spielernamen als String
// Properties für simple_player
uint id; // VID des Spielers
uint8 race; // Klasse des Spielers (Krieger, Ninja etc.)
uint8 level; // Selbsterklärend..
uint gametime; // Spielzeit
uint8 strength; // STR-Wert des Spielers
uint8 vitality; // VIT-Wert des Spielers
uint8 dexterity; // DEX-Wert des Spielers
uint8 intelligence; // INT-Wert des Spielers
uint armor; // VNum der getragenen Rüstung
uint hair; // VNum der Haare
int x; // X-Position (global)
int y; // Y-Position (global)
uint addr; // IP-Adresse, auf welcher der Spieler connected ist
uint16 port; // Port
uint8 skillgroup; // Skillgroup (Körper-/Mentalkrieger; Magie-/Waffensura etc.)
// ----------------
// Klasse: config
config;
// Methoden für config
string get_string(string key, string def = ""); // Holt einen String-Wert aus der Config
uint get_int(string key, uint def = 0); // Holt einen Integer-Wert aus der Config
float get_float(string key, float def = 0.0f); // Holt einen Float-Wert aus der Config
bool get_bool(string key, bool def = false); // Holt einen Boolean-Wert aus der Config
// ----------------
// ENum: entity_type
entity_type;
// Werte
entity_none;
entity_player;
entity_mob;
entity_npc;
entity_building;
entity_object;
// (noch nicht vollständig!)
// ----------------
// Klasse: entity
entity;
// Methoden
entity_type get_type(); // Returned den Objekttyp
uint get_vid(); // Returned die VID des Objekts
int get_x(); // Returned die X-Koordinaten des Objekts
int get_y(); // Returned die Y-Koordinaten des Objekts
int get_z(); // Returned die Z-Koordinaten des Objekts
float get_angle(); // Returned den Blickwinkel des Objekts
uint16 get_race(); // Returned die Klasse des Objekts (idr. VNum)
uint get_moving_speed(); // Returned die Bewegungsgeschwindigkeit
uint get_attack_speed(); // Returned die Angriffsgeschwindigkeit
uint64 get_affect_flag(); // Returned die Affect-Flag für dieses Objekt (Effekte)
string get_name(); // Returned den Namen des Objekts als String
uint16 get_part(uint8 index); // Returned die VNum eines Ausrüstungsteils
uint8 get_empire(); // Returned die ID des Reiches
uint get_guild_id(); // Returned die Gilden-ID
uint get_level(); // Returned das Level
int16 get_alignment(); // Returned das Karma
uint8 get_pk_mode(); // Returned den PvP-Modus
uint get_mount_vnum(); // Returned das Mount, auf welchem sich das Objekt befindet
// ----------------
// Klasse: item
item;
// Methoden
uint get_vid(); // Returned die VID des Items
uint get_vnum(); // Returned die VNum des Items
int get_x(); // Returned die X-Koordinate des Items
int get_y(); // Returned die Y-Koordinate des Items
int get_z(); // Returned die Z-Koordinate des Items
uint get_owner(); // Returned die VID des Item-Besitzers
// ----------------
// Klasse: network_stream
network_stream;
// Methoden
bool is_connected(); // True wenn verbunden
void disconnect(); // Disconnected vom Server
bool connect(string ip, uint16 port); // Connected zu einem Server
void flush(); // Flushed den Networkstream
string get_ip(); // Returned die IP als String
uint16 get_port(); // Returned den Port
void send_select_character(uint8 idx); // Charakter-Auswahl Packet senden
void send_version(string filename, string timestamp); // Version-Packet senden
void send_chat(uint8 chat_type, string msg); // Chatnachricht senden
void send_create_character(uint8 idx, string name, uint16 job, uint8 shape, uint8 con, uint8 intr, uint8 str, uint8 dex); // Character-Create Packet senden
void send_delete_character(uint8 idx, string code); // Character-Delete Packet senden
void send_select_empire(uint8 empire); // Reich für neu erstellte Charaktere wählen
void send_move(int x, int y, uint8 rot, uint8 func, uint8 arg); // Zu x, y bewegen
void send_pick_up(uint vid); // Hebt ein Item auf
void send_attack(uint8 type, uint vid); // Sendet ein Attack-Packet
void send_on_click(uint vid); // "Klickt" einen NPC an
void send_hack(string text); // Hack-Packet senden (sinnlos :p)
void send_fishing(); // Angeln
void send_answer_make_guild(string name); // Gilde erstellen
void send_item_use(uint8 pos); // Verwendet Item
// Globale Funktionen
entity& find_entity(uint vid); // Erstellt ein Entity-Objekt von vid
entity& get_entity(uint index); // Erstellt ein Entity-Objekt von index
uint get_entity_count(); // Returned die Anzahl der Entities
item& find_item(uint vid); // Erstellt ein Item-Objekt von vid
item& get_item(uint index); // Erstellt ein Item-Objekt von index
uint get_item_count(); // Returned die Anzahl der Items
string item_proto_get(uint vnum, string field); // Holt einen Wert aus der Item-Proto
string mob_proto_get(uint vnum, string field); // Holt einen Wert aus der Mob-Proto
Die Liste ist noch nicht vollständig, aber wie ihr seht werden wir eine Menge Funktionen haben. Zu den Callbacks gibt's später auch noch mehr Infos.
Hier findet ihr eine Dokumentation zu AngelScript:
Ich hoffe ich konnte mal ein bisschen Licht ins Dunkle bringen :3
Quote:
Originally Posted by Ðεadhαwk™
Wie lange nehmt ihr eigentlich noch Vorbestellungen an, damit ich weiß, bis wann ich mich entscheiden muss, oder ist schon abgelaufen ?
Sieht schonmal ziehmlich nice aus!
Die Pizza von nico_w kommt mir irgendwie sehr bekannt vor, vielleicht liegts aber auch nur daran, dass es eine Pizza ist...
Benutzt ihr eigentlich für die C++ Funktionen die Python Funktionen aus dem Client? Oder wie macht ihr das mit den ganzen Funktionen, weil der Bot ja Clientlos ist?
Benutzt ihr eigentlich für die C++ Funktionen die Python Funktionen aus dem Client? Oder wie macht ihr das mit den ganzen Funktionen, weil der Bot ja Clientlos ist?
Wir haben die ganzen Funktionen des Clients komplett selbst nachgebaut, Python nutzen wir allerdings nirgendwo
Wir versuchen jetzt auf jeden Fall, den Bot zu Anfang des nächsten Monats lauffähig zu bekommen.
Was soweit problemlos funktioniert:
Login
Charakter-Auswahl
Scriptinterface (Bot-Scripts)
Multithreading (mehrere Instanzen in einem Prozess)
Laden von Map-Infos
Einträge aus der Item/Mob-Proto lesen
Was in Arbeit ist:
User-CP
Webseite
HackShield Emulator
Standard-Botscripts (Levelbot, Angelbot, Farmbot)
Der HackShield Emulator ist derzeit in Arbeit, dürfte nicht mehr allzulange dauern (ist halt ne Menge Reversing-Arbeit).
Alles andere ist recht trivial und schnell erledigt
Mal eine kleine Übersicht an (momentanen) Funktionen für die Bot-Scripts:
Code:
// BASISFUNKTIONEN
void DEVLOG(string t); // DEVLOG-Message (Ausgabe in Log-Datei erfolgt nur, wenn der Devmode auf true ist)
void SYSLOG(string t); // SYSLOG-Message
void SYSERR(string t); // SYSERR-Message
string addr_to_string(uint addr); // Konvertiert eine uint IP-Adresse zu einem String
uint string_to_addr(string addr); // Konvertiert eine als String vorliegende IP-Adresse zu einer vom Bot verwertbaren IP-Adresse
uint rand(); // Generiert eine Zufallszahl
uint (uint min, uint max); // Generiert eine Zufallszahl zwischen min und max
// OBJEKTE
simple_player; // Eine Spieler-Instanz
// Funktionen für simple_player:
string get_name(); // Returned den Spielernamen als String
// Properties für simple_player
uint id; // VID des Spielers
uint8 race; // Klasse des Spielers (Krieger, Ninja etc.)
uint8 level; // Selbsterklärend..
uint gametime; // Spielzeit
uint8 strength; // STR-Wert des Spielers
uint8 vitality; // VIT-Wert des Spielers
uint8 dexterity; // DEX-Wert des Spielers
uint8 intelligence; // INT-Wert des Spielers
uint armor; // VNum der getragenen Rüstung
uint hair; // VNum der Haare
int x; // X-Position (global)
int y; // Y-Position (global)
uint addr; // IP-Adresse, auf welcher der Spieler connected ist
uint16 port; // Port
uint8 skillgroup; // Skillgroup (Körper-/Mentalkrieger; Magie-/Waffensura etc.)
// ----------------
// Klasse: config
config;
// Methoden für config
string get_string(string key, string def = ""); // Holt einen String-Wert aus der Config
uint get_int(string key, uint def = 0); // Holt einen Integer-Wert aus der Config
float get_float(string key, float def = 0.0f); // Holt einen Float-Wert aus der Config
bool get_bool(string key, bool def = false); // Holt einen Boolean-Wert aus der Config
// ----------------
// ENum: entity_type
entity_type;
// Werte
entity_none;
entity_player;
entity_mob;
entity_npc;
entity_building;
entity_object;
// (noch nicht vollständig!)
// ----------------
// Klasse: entity
entity;
// Methoden
entity_type get_type(); // Returned den Objekttyp
uint get_vid(); // Returned die VID des Objekts
int get_x(); // Returned die X-Koordinaten des Objekts
int get_y(); // Returned die Y-Koordinaten des Objekts
int get_z(); // Returned die Z-Koordinaten des Objekts
float get_angle(); // Returned den Blickwinkel des Objekts
uint16 get_race(); // Returned die Klasse des Objekts (idr. VNum)
uint get_moving_speed(); // Returned die Bewegungsgeschwindigkeit
uint get_attack_speed(); // Returned die Angriffsgeschwindigkeit
uint64 get_affect_flag(); // Returned die Affect-Flag für dieses Objekt (Effekte)
string get_name(); // Returned den Namen des Objekts als String
uint16 get_part(uint8 index); // Returned die VNum eines Ausrüstungsteils
uint8 get_empire(); // Returned die ID des Reiches
uint get_guild_id(); // Returned die Gilden-ID
uint get_level(); // Returned das Level
int16 get_alignment(); // Returned das Karma
uint8 get_pk_mode(); // Returned den PvP-Modus
uint get_mount_vnum(); // Returned das Mount, auf welchem sich das Objekt befindet
// ----------------
// Klasse: item
item;
// Methoden
uint get_vid(); // Returned die VID des Items
uint get_vnum(); // Returned die VNum des Items
int get_x(); // Returned die X-Koordinate des Items
int get_y(); // Returned die Y-Koordinate des Items
int get_z(); // Returned die Z-Koordinate des Items
uint get_owner(); // Returned die VID des Item-Besitzers
// ----------------
// Klasse: network_stream
network_stream;
// Methoden
bool is_connected(); // True wenn verbunden
void disconnect(); // Disconnected vom Server
bool connect(string ip, uint16 port); // Connected zu einem Server
void flush(); // Flushed den Networkstream
string get_ip(); // Returned die IP als String
uint16 get_port(); // Returned den Port
void send_select_character(uint8 idx); // Charakter-Auswahl Packet senden
void send_version(string filename, string timestamp); // Version-Packet senden
void send_chat(uint8 chat_type, string msg); // Chatnachricht senden
void send_create_character(uint8 idx, string name, uint16 job, uint8 shape, uint8 con, uint8 intr, uint8 str, uint8 dex); // Character-Create Packet senden
void send_delete_character(uint8 idx, string code); // Character-Delete Packet senden
void send_select_empire(uint8 empire); // Reich für neu erstellte Charaktere wählen
void send_move(int x, int y, uint8 rot, uint8 func, uint8 arg); // Zu x, y bewegen
void send_pick_up(uint vid); // Hebt ein Item auf
void send_attack(uint8 type, uint vid); // Sendet ein Attack-Packet
void send_on_click(uint vid); // "Klickt" einen NPC an
void send_hack(string text); // Hack-Packet senden (sinnlos :p)
void send_fishing(); // Angeln
void send_answer_make_guild(string name); // Gilde erstellen
void send_item_use(uint8 pos); // Verwendet Item
// Globale Funktionen
entity& find_entity(uint vid); // Erstellt ein Entity-Objekt von vid
entity& get_entity(uint index); // Erstellt ein Entity-Objekt von index
uint get_entity_count(); // Returned die Anzahl der Entities
item& find_item(uint vid); // Erstellt ein Item-Objekt von vid
item& get_item(uint index); // Erstellt ein Item-Objekt von index
uint get_item_count(); // Returned die Anzahl der Items
string item_proto_get(uint vnum, string field); // Holt einen Wert aus der Item-Proto
string mob_proto_get(uint vnum, string field); // Holt einen Wert aus der Mob-Proto
Die Liste ist noch nicht vollständig, aber wie ihr seht werden wir eine Menge Funktionen haben. Zu den Callbacks gibt's später auch noch mehr Infos.
Hier findet ihr eine Dokumentation zu AngelScript:
Ich hoffe ich konnte mal ein bisschen Licht ins Dunkle bringen :3
Ca. bis Anfang nächsten Monats
Aber das erklärt nicht wie man sowas macht würde auch gerne sowas können sogar das er nur mobs angreift oderso aber ich weiß nichtma wie man ein bot erstellt der potts oderso benutzt
- Liberty Reserve als Zahlungsmöglichkeit entfernt
- Amazon-Gutscheine als Zahlungsmöglichkeit hinzugefügt
Ab dem Wochenende gehen die Arbeiten am User-CP los, wahrscheinlich wird es sogar eine Android-Version geben mit welcher ihr auch euer Handy als Proxy verwenden könnt!
Aber das erklärt nicht wie man sowas macht würde auch gerne sowas können sogar das er nur mobs angreift oderso aber ich weiß nichtma wie man ein bot erstellt der potts oderso benutzt
Du kannst dir später die Scripte die dabei sind anschauen und ändern wie du willst! Zusammen mit der AS Dokumentation und unserer auch noch dazu, sollte das dann gehen.
Ich werde auch, wenn es soweit ist einen extra Thread dafür öffnen!
<CoMediator & JCoAgent> Clientless botting is possible. 10/02/2010 - Conquer Online 2 - 128 Replies Me & ash (Warlax) have been busy behind the scenes, not focused much on sirhooks :p
Heres what we can do:
http://www.youtube.com/watch?v=HODrLyf7Zb8
We still require the conquer client to log-in the char, but we do not require the conquer client to keep a connection and to keep the bot running.
After we have the log-in password encryption all worked out, no conquer client shall be required at all.