Quote:
Originally Posted by TyFox
|
:p
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:
[Only registered and activated users can see links. Click Here To Register...]
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 ?
|
Ca. bis Anfang nächsten Monats