Im Moment ist es ja so das die Farminghöhlenserver sehr stark ausgelastet sind und daher regelmäßig abstürzen.
Die große Auslastung ist natürlich nachvollziehbar, aber das Problem ist das nach jedem Absturz die abgebauten Blöcke (und damit das Pickaxe-LV) etwas zurückgesetzt werden. Ich habe herrausgefunden das man seine Blöcke/Pickaxe-Stats speichern kann indem man hin und wieder in die eigene Mine und direkt wieder in die Farminghöhle geht. Aber das ist nach ner Zeit nervig da man dann jedes mal neu die Mine entlang laufen muss bis man mal Goldadern findet.
Darum meine Idee:
Wenn erkannt wird das ein Server sehr stark ausgelastet ist dann sollten die abgebauten-Blöcke-Stats (und damit die Pickaxe-Stats) von jedem Spieler in diesem Server automatisch gespeichert werden.
So könnte der Pseusocode aussehen:
Ich weiß nicht wie der Server intern funktioniert also könnte der Pseudocode auch völlig daneben liegen.
Die große Auslastung ist natürlich nachvollziehbar, aber das Problem ist das nach jedem Absturz die abgebauten Blöcke (und damit das Pickaxe-LV) etwas zurückgesetzt werden. Ich habe herrausgefunden das man seine Blöcke/Pickaxe-Stats speichern kann indem man hin und wieder in die eigene Mine und direkt wieder in die Farminghöhle geht. Aber das ist nach ner Zeit nervig da man dann jedes mal neu die Mine entlang laufen muss bis man mal Goldadern findet.
Darum meine Idee:
Wenn erkannt wird das ein Server sehr stark ausgelastet ist dann sollten die abgebauten-Blöcke-Stats (und damit die Pickaxe-Stats) von jedem Spieler in diesem Server automatisch gespeichert werden.
So könnte der Pseusocode aussehen:
Code:
function int get_memory_usage_percent() {
return (int) server.memory_usage/server.memory_allocated*100; // Überprüft wie viel % des RAMS genutzt wird
}
function void save_all_stats(){
for (int i = 0; i < server.playercount; i++){
server.players[i].save_stats();//Speichert die Blöcke/Pickaxe Stats von jedem Spieler in der Höhle
}
}
function void save_if_dangerous_usage(){
if (get_memory_usage_percent() >= 90){ //Überprüft ob die Auslastung des Servers über 90% liegt, und speichert die Stats falls ja
save_all_stats();
}
}
while (true){
async.sleep(15) // 15 Sekunden delay damit nicht zu oft geprüft wird und
//möglicherweiße der Server noch mehr ausgelastet wird
check_dangerous_usage();
}
Zuletzt bearbeitet: