AdminMod.de
https://www.adminmod.de/

Problem beim Plugin schreiben
https://www.adminmod.de/viewtopic.php?t=3114
Seite 1 von 1

Autor:  Loki1 [ 27.05.2002, 10:40 ]
Betreff des Beitrags:  Problem beim Plugin schreiben

also, ich habe mich doch mal hingesetzt und habe versucht ein Plugin zu schreiben.

Es sollte registrieren, wann die mp_timelimit verändert wird und, wenn es über 90 gesetzt wird, sofort auf 90 zurücksetzen. (ein paar aus meinem Clan meinen, timelimit von 9999999 sei kewl... :()

hier ist mein Fortschritt:
Code:
/* sorgt dafür, dass mp_timelimit 90 nicht überschreitet */

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

#define ACCESS_CONSOLE 131072

new STRING_VERSION[MAX_DATA_LENGTH] = "$Revision: 0.01 $";

public logd_max_timelimit( HLCommand,HLData,HLUserName,UserIndex )
{
        new Data[MAX_DATA_LENGTH];
        new Text[MAX_TEXT_LENGTH];

        convert_string( HLData, Data, MAX_DATA_LENGTH );
        snprintf (Text, MAX_TEXT_LENGTH, "timelimit wurde veraendert");
        typesay(Text, 6, 255, 255, 255 );

        return PLUGIN_HANDLED;
}



public plugin_init()
{
        plugin_registerinfo("verhindert, dass mp_timelimit hoeher als 90 gesetzt wird",".",STRING_VERSION);

        plugin_registercmd("logd_max_timelimit", "logd_max_timelimit", ACCESS_CONSOLE);
        exec( "logd_reg 1 v mp_timelimit admin_command logd_max_timelimit" );

        return PLUGIN_CONTINUE;
}
mein hauptsächliches Problem ist, dass ich nicht weiß, wie ich richtig auf die Logd-Commandos zugreifen kann.

Wäre wunderbar, wenn ihr mir weiterhelfen könntet...

Autor:  Sir Drink a lot [ 27.05.2002, 12:14 ]
Betreff des Beitrags: 

dieser event funktioniert leider nicht. Sonst würde es vieles einfacher machen.

Beispiel: plugin_logd_timerem:

Deswegen musste ich dort ja immer mit einem Endloss-Repeat-Timer arbeiten, um zu überprüfen, ob das mp_timelimit geändert wird.
Das lagt aber den Server zu sehr. Man kann natürlich hingegehen und den Check alle 30 sekunden durch einen Endloss-Timer bewerkstelligen.

Also die Idee:

Im plugin_init wird eine Timerfunktion aufgerufen.
Befehl: set_timer("timelimit_control",30,99999);
Code:
public timelimit_control(Timer,Repeat,HLUser,HLParam)
{
 if (getvar("mp_timelimit")>90){
        	exec("mp_timelimit 90");
 }
 return PLUGIN_CONTINUE;
}
Vielleicht klappt es so. Ich habe den Code jetzt einfach mal so hingeschrieben. Ohne zu testen.

Autor:  Loki1 [ 27.05.2002, 12:35 ]
Betreff des Beitrags: 

hmmm, der Event geht nicht... mist...

mal schauen, dann werde ich wohl immer am Anfang einer Runde überprüfen lassen, auf was mp_timelimit gesetzt ist. Event 62 funktioniert doch, wenn ich das richtig in Erinnerung habe, oder?

da hätt ich ja lange ausprobieren können, ohne zu wissen, dass der Event net geht...

DANKE!

Autor:  Sir Drink a lot [ 27.05.2002, 12:53 ]
Betreff des Beitrags: 

na klar. Round_Start geht.

wenn Dir die Überprüfung ausreicht.
Ich glaube, den nutze ich nauch mal für ein neues Timerem. Dann kann man ja auf den Timer fast verzichten :-)

Seite 1 von 1 Alle Zeiten sind UTC+01:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/