PODBot controller

Admin Mod Plugins-Sammlung von [WING] BlackKnight und [WING] Sir Drink a lot

Moderatoren: [WING] Sir Drink a lot, Black Knight

PODBot controller

Beitragvon SSH » 25.03.12 19:46

Hallo zusammen,

leider ist es mir derzeit nicht moeglich, mich auf AM.de anzumelden, oder zu registrieren. Seit der Migration auf phpBB ist das wohl so. :cry:
Nun, da ich hier ja zwei Groessen im small scripting weiss, erlaube ich mir mal hier eine Anfrage zu stellen. :cool:
Der Hintergrund ist, wie ich es vor der Migration von AM.de erklaerte, dass ich derzeit den Genuss einer recht leistungsstarken Internetanbindung geniesse, so dass ich all meine Webprojekte (Webseiten), auf den heimischen 2. Rechner zurueckzog.
Da diese Maschine aber so nur vor sich hinlief, dachte ich mir doch mal ein wenig Anreize zu schaffen.
2 CS 1.6 Server laufen mit AdminMod, LogD und neuerdings auch mit PODBots. (4 auf jeder Instanz).
Das hebt natuerlich die CPU Last, den Energieverbrauch und erzeugt unsinnig viele Logfiles, die ohnehin nur zu geringem Teil ausgewertet werden, weil die Bots in den Stats nicht beruecksichtig werden.
Ergo lag es auf der Hand, ein 'plugin' zu schreiben, dass die automatisch joinenden PODBots am Mapanfang in die Wueste schickt. Joint ein 'echter' Spieler, werden sie via plugin_connect aufgerufen. Funktioniert auch, nachdem ich plugin_disconnect entfernt habe.
Diese beiden 'Funktionen' stehen sich scheinbar im Weg, denn wenn ich den Server wieder verlasse, dann connectet ja ein Bot, womit die 'Funktion' plugin_connect aufgerufen wird. Das script ist nicht in der Lage Bots von 'echten Spielern' zu unterschieden. Ich bin, denke ich, nicht in der Lage den Code vom bk_botmanager auch nur annaehernd nachzuvollziehen. :roll: :?
Auf dem einen Server ist das kein Problem, da nach spaetestens 30 Minuten ein Mapwechsel ansteht. Beim Start der neuen Map werden die Bots ja gekillt, wenn kein neuer Spieler auf dem Server ist.
Der andere Server zieht aber 24 Stunden undbegrenzt de_dust2 durch und einmal aktivert, laufen es dann auch die Bots. Natuerlich koennte ich jetzt damit arbeiten, dass die Bots dort alle 2 Stunden von bk_cron gekickt werden, aber wenn dann ein Spieler auf dem Server ist, kommen sie auch nicht wieder.
Vielleicht habt ihr ja noch ein paar Ideen, wie man beim Verlassen des letzten Spielers die Bots entfernen kann. Ich haeng den Code mal hier ein:
Code: Alles auswählen
/******************************************/
/** SSH's Botcontroller                  **/
/**                                      **/
/** Name: plugin_ssh_botcontrol          **/
/** Author: SSH (stillsetzhut@web.de)    **/
/** Released: 25/03/12                   **/
/** Version: 0.1beta                     **/
/**                                      **/
/** Starts and stops PODBots automaticly **/
/******************************************/

#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

#define ACCESS_SSH 256

new STRING_VERSION[MAX_DATA_LENGTH] = "0.1beta";

public admin_startbots(HLCommand,HLData,HLUserName,UserIndex) {
   if(access(ACCESS_SSH,"") == 1) {
      exec("pb fillserver");
   }
   return PLUGIN_HANDLED;
}

public plugin_connect(HLUserName,HLIP,UserIndex) {
   exec("pb fillserver");
   return PLUGIN_CONTINUE;
}

public admin_stopbots(HLCommand,HLData,HLUserName,UserIndex) {
   if(access(ACCESS_SSH,"") == 1) {
      exec("pb removebots");
   }
   return PLUGIN_HANDLED;
}

public killbots (Timer,Repeat,HLUser) {
   exec("pb removebots");
   return PLUGIN_CONTINUE;
}

public plugin_init() {
   plugin_registerinfo("SSH's Botcontroller","Starts an stops PODBots automaticly",STRING_VERSION);
   plugin_registercmd("admin_startbots","admin_startbots",ACCESS_SSH,"Starts the PODBots");
   plugin_registercmd("admin_stopbots","admin_stopbots",ACCESS_SSH,"Stops the PODBots");
   set_timer("killbots",15,1);
   return PLUGIN_CONTINUE;
}

ach, und bitte nichts fuer Ungut, wenn das hier nicht gewuenscht ist, phpBB hat ja eine wirkungsvolle Loeschfunktion. ;)

viele Gruesse

SSH aka [-=THH=-]Stillsetzhut
Benutzeravatar
SSH
 
Beiträge: 2
Registriert: 17.03.12 20:09

Re: PODBot controller

Beitragvon Black Knight » 28.03.12 20:35

Servus,

lösch mal die Cookies von adminmod.de und versuche nochmal Dich anzumelden.

So, nun zu Deiner Frage (sorry war auf einem Seminar). Also, ich hatte das damals über plugin_info, nicht plugin_connect gelöst. Man muss aber abfangen, ob es ein vollständig auf dem Server befindlicher Spieler/Bot ist und ob es sich schlichtweg nur um eine Namensänderung handelt. Dann überprüft man nochmal die Spielerzahl und kickt überzählige Bots raus.

Evtl. reicht es bei meinem Plugin, wenn man den set_timer in startbot() aussetzt, wenn kein echter Spieler auf dem Server ist. Genauso müsste man zusätzlich "iBots<playercount()" in kickbot() mit einem OR erweitern, so dass bei einer echten Spielerzahl von 0 die Bedingung trotzdem wahr wird.

Hilft das erstmal?
Der Schwarze Ritter triumphiert immer...
Bild
Benutzeravatar
Black Knight
Clan-Mitglied
 
Beiträge: 1032
Registriert: 03.11.03 22:33
Wohnort: Nürnberg
STEAM-ID: STEAM_0:1:9174

Re: PODBot controller

Beitragvon SSH » 29.03.12 23:47

Hallo,

Black Knight hat geschrieben:lösch mal die Cookies von adminmod.de und versuche nochmal Dich anzumelden.

daran hing es und jetzt funktioniert es. :)

Black Knight hat geschrieben:Hilft das erstmal?

vielen Dank, das hilft auf jeden Fall, auch wenn das Umsetzen etwas dauern mag. :)

viele Gruesse

SSH
Benutzeravatar
SSH
 
Beiträge: 2
Registriert: 17.03.12 20:09

Re: PODBot controller

Beitragvon [WING] Sir Drink a lot » 20.05.12 13:33

krass. Der SSH. :)
Du machst noch Sachen in AdminMod. Sehr schön.
Ich weiß jetzt gar nicht mehr wie das geht. :( *wirklich!*
Hab alles verlernt bzw. aus meinem Kopf gelöscht.
Aber immer schön, wenn man noch was von den "guten alten Jungs" liest.
Da fühlt man sich selber wieder jung. :mrgreen:

P.S.: Im plugin_disconnect kann man ja maxplayers abfragen. Wenn diese = 0 sind, dann tue was.
Ein Bierfass ohne Boden ist wie ein schwarzes Loch ohne Materie!
Benutzeravatar
[WING] Sir Drink a lot
Clan-Mitglied
 
Beiträge: 1283
Registriert: 03.11.03 15:26
Wohnort: Bonn-Beuel
STEAM-ID: STEAM_0:0:11671


Zurück zu [WING]-Server: Admin-Mod Plugins

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron