Es wird ein basic Script geben an dem ihr euch orientieren solltet. (Da auch der Login komplett über scripte läuft)
Es ist nur ein altes Script das ich kommentiert habe, aber ein neues raus zu suchen hatte ich keine lust. Im groben funktioniert das so, abgesehen davon, dass die ganzen CP funktionen in dem Script nicht enthalten sind!
Aber zum start der Beta werden wir eine komplette Liste veröffentlichen
Code:
string g_current_ip = ""; // temporäre server daten, sollten nur vom default script verwendet werden
uint16 g_current_port = 0; // ^
string g_auth_ip = ""; // die ip vom auth server
uint16 g_auth_port = 0; // der port vom auth server
string g_char_ip = ""; // die ip vom char server
uint16 g_char_port = 0; // der port vom char server
string g_account = "dreckshomo"; // genau so auch default user daten
string g_password = "dreckshomo"; // ^
uint g_auth_key = 0; // dient hinterher dem login
uint g_selected_char = 0; // dient dazu mit dem richtigen char ingame zu kommen
bool OnStartup() // diese funktion wird aufgerufen sobald der bot gestartet wird
{
g_current_ip = g_auth_ip;
g_current_port = g_auth_port;
net.connect(g_current_ip,g_current_port); // wenn es einen default server gibt, wird direkt drauf connected
return true;
}
bool OnCleanup() // und diese funktion wird aufgerufen sobald der bot beendet wird
{
return true;
}
bool OnDisconnected() // wenn man einen kick oder einfachen disconnect hat landet man in der funktion hier, wenn die funktion false returned wird der bot beendet
{
net.connect(g_current_ip,g_current_port); // einen reconnect versuchen
return true; // wenn eine invalide ip angegeben wurde soll der bot trotzdem weiter laufen, ja ziemlich dirty
}
[OnTick] // markiert die folgende funktion als callback (in dem fall für OnTick)
void on_tick(uint client_time, uint server_time) // wird dauerhaft in der main loop aufgerufen, was also den eigentlichen botcode angeht, gehört das in einen OnTick callback
{
}
[OnChangePhase] // markiert die folgende funktion als callback (in dem fall für OnChangePhase)
void basic_change_phase(uint8 phase) // die funktion wird aufgerufen, wenn der server ein phase packet sendet
{
if(phase == 10) { // bei phase 10 muss man sich z.b. beim auth server anmelden
net.send_auth(g_account,g_password);
} else if(phase == 2) { // bei phase 2 muss man die antwort vom auth server an den char oder game server senden (auf den man in dem fall schon verbunden ist)
net.send_login(g_account,g_auth_key);
}
}
[OnLoginFailure] // markiert die folgende funktion als callback (in dem fall für OnLoginFailure)
void basic_login_failure_log(string reason) // die funktion wird immer aufgerufen, wenn ein login fehlschlägt!
{
SYSERR(reason);
}
[OnAuthSuccess] // markiert die folgende funktion als callback (in dem fall für OnAuthSuccess)
void basic_auth_success(uint auth_key) // diese funktion wird aufgerufen, wenn der login beim auth server erfolgreich war, danach connected man zum char server!
{
g_auth_key = auth_key;
g_current_ip = g_char_ip;
g_current_port = g_char_port;
net.connect(g_current_ip,g_current_port);
}
[OnLoginSuccess] // markiert die folgende funktion als callback (in dem fall für OnLoginSuccess)
void basuc_login_success(simple_player p1, simple_player p2, simple_player p3, simple_player p4) // diese funktion wird aufgerufen, wenn man auf dem char oder game server erfolgreich eingeloggt wurde, auf dem char server muss man natürlich erstmal einen char auswählen
{
if(g_selected_char == 0) {
g_current_ip = p1.addr();
g_current_port = p1.port();
g_selected_char = 1;
SYSLOG("Connect: " + g_current_ip + ":" + g_current_port);
net.connect(g_current_ip,g_current_port);
} else {
net.send_select_character(g_selected_char-1);
}
}
[OnChangeEmpire] // markiert die folgende funktion als callback (in dem fall für OnChangeEmpire)
void test_change_empire(uint8 empire) // diese funktion wird aufgerufen, wenn das reich des spielers geändert wird
{
SYSLOG("Empire changed to: " + empire);
}
[OnChatMessage] // markiert die folgende funktion als callback (in dem fall für OnChatMessage)
void receive_chat(uint32 type, uint32 empire, uint32 id, string msg) // diese funktion wird immer aufgerufen, wenn etwas in den chat geschrieben wird
{
SYSLOG("Received Chat: " + type + ", " + empire + ", " + id + ", " + msg);
}