Ein neues Thema erstellen  Auf das Thema antworten  [ 48 Beiträge ]  Gehe zu Seite 1 2 3 Nächste
Autor Nachricht
 Betreff des Beitrags: Kein admin_command in exec()
BeitragVerfasst: 07.04.2002, 22:22 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
In der naechsten Version von Admin Mod wird es nicht mehr moeglich sein, 'admin_command' innerhalb eines exec() Aufrufs zu benutzen (Einzige Ausnahme: exec("logd_reg ...")).



Anscheinend gibt es noch viele Plugins, die sowas verwenden. Derartige Aufrufe sind durch den Einsatz der Funktion plugin_exec() zu ersetzen.



Bitte ueberprueft in euren Plugins, ob ihr betroffen seid und aendert das entsprechend. Kuckt in Admin/scripting/include/admin.inc und Admin/scripting/examples/plugin_chat.sma nach, wenn ihr nicht wisst, wie man plugin_exec() verwendet. Wenn jemand meint, er habe einen Fall, in dem ein Ersatz nicht moeglich ist, dann moege er dies hier bitte posten.

_________________
There are no stupid questions, only stupid people.


Zuletzt geändert von daRope am 17.07.2002, 15:02, insgesamt 1-mal geändert.

Nach oben
   
 Betreff des Beitrags: Re: Kein admin_command in exec()
BeitragVerfasst: 07.04.2002, 23:59 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Zitat:
In der naechsten Version von Admin Mod wird es nicht mehr moeglich sein, 'admin_command' innerhalb eines exec() Aufrufs zu benutzen ...
Mich würde interessieren wieso ihr euch dazu entschieden habt - gab es damit Probleme ?

Bio

PS: Habt ihr schon eine Vorstellung über das Erscheinungsdatum der neuen AM Version ?

_________________
It's not a bug, it's a feature !


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.04.2002, 01:26 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Ich hab mal meine Plugins gescannt:
Das einzige, dass neben den logds auffällig wurde war plugin_sank_antiflood.sma .
Aber ich bin ja auch nicht derjenige, der dem Plugin-Overkill frönt.

Für alle, die mal schnell Ihre sma-Sammlung scannen wollen. Unter Windows in Suchen gehen Name: *.sma Enthaltener Text: admin_command Suchen in: X:\admin\scripting\myscripts
Unter Linux solltet Ihr im entsprechenden scripting-Verzeichnis. grep anwenden:
grep 'admin_command' *.sma

Ich tippe ja wegen admin_command auf eine Sicherheitslücke, aber was man damit machen könnte, würde mich auch interessieren.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 08.04.2002, 01:46 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Zitat:
... Für alle, die mal schnell Ihre sma-Sammlung scannen wollen. Unter Windows in Suchen gehen Name: *.sma Enthaltener Text: admin_command Suchen in: X:\admin\scripting\myscripts
...
Danke. Guter Tip !

Bio

_________________
It's not a bug, it's a feature !


Nach oben
   
 Betreff des Beitrags: Re: Kein admin_command in exec()
BeitragVerfasst: 08.04.2002, 10:44 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
Mich würde interessieren wieso ihr euch dazu entschieden habt - gab es damit Probleme ?
Wie Knight richtig getippt hat konnte das missbraucht werden, wenn Plugin Authoren nachlaessig mit dem exec() Befehl hantieren. Da AM nach dem Prinzip "better safe than sorry" entwickelt wird, und Plugin Authoren nicht unbedingt dafuer bekannt sind, auf diese Dinge selber zu achten, wurde es eben komplett gesperrt. Wie gesagt sollte es keine Probleme geben, da man plugin_exec() verwenden kann. Das sollte man eigentlich schon mimmer getan haben, da es das Rechtesystem aufrechterhaelt.
Zitat:

PS: Habt ihr schon eine Vorstellung über das Erscheinungsdatum der neuen AM Version ?
Naja, so in etwa, aber dazu sag ich nix ausser dem ueblichen, langweiligen "when it's done". =) Es gibt aber keinen konkreten Termin.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags: SYNTAX?
BeitragVerfasst: 14.04.2002, 00:54 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
...Nunja, ich fände es trotzdem mal ganz interessant den Syntax zu erfahren...
Wie verwende ich zum Beispiel den Befehl 'admin_psay <target> <msg>' über 'plugin_exec()' ?!? das einzige Beispiel das ich gefunden habe war in plugin_chat und aussagelos... aber wie bereits an anderer Stelle erwähnt, ich bin neu im Geschäft 8)


:wink: MFG SN8P

_________________
Denn nur wer was zu sagen hat,
Der hat's, wenn es nicht unabdingbar ist

http://clan-ggg.de.vu/


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2002, 01:00 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
hm...dann muss ich wohl meinen Taskplaner bezüglich dieser Sache nochmal überdenken.

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2002, 01:24 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Zitat:
hm...dann muss ich wohl meinen Taskplaner bezüglich dieser Sache nochmal überdenken.
Wie meinst Du das ?!?

_________________
Denn nur wer was zu sagen hat,
Der hat's, wenn es nicht unabdingbar ist

http://clan-ggg.de.vu/


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2002, 01:43 

Registriert: 23.02.2002, 12:35
Beiträge: 86
wird dieser Befehl komplett entfernt oder kann ich ihn auch noch so benutzen um in configs AM Befehle auszuführen

_________________
ist gar nicht so schwer.... husch husch geht eben nicht :)

suchen geht aber..!!! http://board.battlenation.de/viewtopic.php?t=1633

Server IP: 62.80.115.184:27015
My Page: www.cs-point.de.vu


Nach oben
   
 Betreff des Beitrags: Re: SYNTAX?
BeitragVerfasst: 14.04.2002, 11:46 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
...Nunja, ich fände es trotzdem mal ganz interessant den Syntax zu erfahren...
Die Syntax fnidet sich wie immer in den Inlcudedateien:
Code:
 
native plugin_exec( sCommand[], sArguments[] );

also:

plugin_exec("admin_psay", "dau Hallo Dau");

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2002, 11:47 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
wird dieser Befehl komplett entfernt oder kann ich ihn auch noch so benutzen um in configs AM Befehle auszuführen
Nein, natuerlich wird admi_command nicht vollstaendig entfernt. Schliesslich will man ja von der Serverconsole aus auf die AM Befehle zugreifen koennen. Es geht nur um die Verwendung mit exec().

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2002, 13:59 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Ich bin heute mal wieder etwas schwer von Begriff....

Also:

ein exec (admin_command admin_psay dau, Hallo Dau) geht nicht mehr.

(Habe die ^" in dem Beispiel weggelassen)

gehen denn noch exec(csg_say xxxx) oder andere zugriffe mit exec, die nicht zu AdminMod gehören ?

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2002, 17:07 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Jup. Was andere MM Plugins anstellen, geht mich nix an. :)

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags: Re: SYNTAX?
BeitragVerfasst: 14.04.2002, 17:15 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Zitat:
Zitat:
...Nunja, ich fände es trotzdem mal ganz interessant den Syntax zu erfahren...
Die Syntax fnidet sich wie immer in den Inlcudedateien:
Code:
 
native plugin_exec( sCommand[], sArguments[] );

also:

plugin_exec("admin_psay", "dau Hallo Dau");
Ich schonwieder... ich hab' mal wieder nicht tatenlos rumgesessen sondern weiter geforscht und kopiert, überlegt und eingefügt...

Als Beweis, das ist dabei rausgekommen:
Code:
new Param[MAX_TEXT_LENGTH];
...
     snprintf(Param, MAX_TEXT_LENGTH, "%s Your console has been activated/npress ^ to to toggle it!", User);
     plugin_exec("admin_psay", Param);
...

_________________
Denn nur wer was zu sagen hat,
Der hat's, wenn es nicht unabdingbar ist

http://clan-ggg.de.vu/


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2002, 17:29 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Und, funktioniert das? Ich wage es zu bezweifeln. Schon getestet?

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2002, 17:39 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Zitat:
Und, funktioniert das? Ich wage es zu bezweifeln. Schon getestet?
...gehört nicht in diesen Thread -> aber in diesen!

_________________
Denn nur wer was zu sagen hat,
Der hat's, wenn es nicht unabdingbar ist

http://clan-ggg.de.vu/


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 02:27 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Also ich muss sagen, dass ich immer noch nicht ganz verstehe, was das mit plugin_exec auf sich hat.

Ich will doch adminmod Befehle auch noch automatisch an die User verteilen können.

Oder betrifft das ganze nicht den execclient Befehl ?

Hm...Bei plugin_exec muss doch der User, der einen Befehl eingibt ja auch die Rechte für den Befehl haben, den plugin_exec ausführt. Oder seh ich das falsch ?

In meinem Taskplaner werden z.B. bis zu 10 Befehle mit einer gewissen Wartezeit zueinander aus einem Textfile ausgelesen und dann nacheinander mit exec ausgeführt.

das Textfile enthält dann die Befehle z.B.
admin_command admin_csay Hallo Leute, 60
admin_command admin_csay Willkommen zum Clanwar, 10
etc.
Die Timer werden automatisch bei plugin_init gelesen.

Im plugin_chat (meesagemode) ist ja definitiv der User mit Adminrechten vorhanden, der das plugin_exec ausführen darf (oder bei fehlenden Rechten eben nicht).

Lasst mich bitte nicht dumm sterben :-)

Gruss,
SDal

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 11:09 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
Ich will doch adminmod Befehle auch noch automatisch an die User verteilen können.
Will ich das?
Zitat:
Oder betrifft das ganze nicht den execclient Befehl ?
Huh? Was hat denn admin_command mit execclient() zu tun? Das macht doch von vornherein keinen Sinn.
Zitat:
Hm...Bei plugin_exec muss doch der User, der einen Befehl eingibt ja auch die Rechte für den Befehl haben, den plugin_exec ausführt. Oder seh ich das falsch ?
Korrekt. So soll das auch sein. Eine saubere Trennung der Rechte bedingt, dass ich mir ganz genau ueberlege, wer welche Rechte bekommt und das explizit in meinem Plugin ausprogrammiere.
Zitat:
das Textfile enthält dann die Befehle z.B.
admin_command admin_csay Hallo Leute, 60
admin_command admin_csay Willkommen zum Clanwar, 10
etc.
Die Timer werden automatisch bei plugin_init gelesen.
Tja, das sieht nach einem Problem aus. Deswegen gibt es ja diesen Thread hier. Ich wuerde mal sagen, Du solltest nicht mit admin_command von hinten ins Auge schiessen, sondern stattdessen Hilfsfunktionen haben, die das gewuenschte uebernehmen. Hier ist doch bleistielsweise der ganze Overhead, der in admin_csay steckt voellig ueberfluessig.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 13:27 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
ups...das execclient hatte hier nix damit zu tun. War ich mit den Gedanken bei dem Plugin von Spoocy, da es nicht mit dem plugin_exec bei mir funktioniert hat.
Zitat:
Ich will doch adminmod Befehle auch noch automatisch an die User verteilen können.
Das war von mir ganz falsch ausgedrückt. Sorry. Was ich eigentlich sagen will ist, ich will noch manche adminmod Befehle automatisch auf die User anwenden können.(z.B. admin_gag oder admin_llama)
Meine derzeitige Erfahrung bei mir ist, das das plugin_exec eben nicht funktioniert, wenn der User, auf den der Befehl angewendet werden soll, keine Adminrechte hat. Siehe dazu den Thread von Spoocy.
Zitat:
Du solltest nicht mit admin_command von hinten ins Auge schiessen, sondern stattdessen Hilfsfunktionen haben, die das gewuenschte uebernehmen. Hier ist doch bleistielsweise der ganze Overhead, der in admin_csay steckt voellig ueberfluessig.
Was genau meinst Du mit Overhead....
Aber ich hätte das admin_command im Textfile weglassen und es ins Plugin einbauen können. Stimmt. Da war ich dann wohl ein wenig zu faul. :oops:

(auch das admin_ kann ja noch weg...Jetzt sehe ich es erst. Naja, muss ich mir demnächst doch mal mehr Mühe machen. Ich optimiere den Code immer zu wenig. Wenn es irgendwie funktioniert, lasse ich es immer so, wie es ist, anstatt über Optimierungsmassnahmen nachzudenken.)

Das muss ich dann wirklich nochmal mit plugin_exec testen.

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 15:44 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
Meine derzeitige Erfahrung bei mir ist, das das plugin_exec eben nicht funktioniert, wenn der User, auf den der Befehl angewendet werden soll, keine Adminrechte hat.
Ich weisz. Das soll so.
Zitat:
Was genau meinst Du mit Overhead....
Mit Overhead meine ich den Unterschied zwischen den folgenden beiden Versionen (Vaporcode):

Gut:
Code:
public csay(Timer,Repeat,HLName,HLParam) {
        new Msg[MAX_TEXT_LENGTH];
        convert_string(Msg, HLParam, sizeof(Msg));	
        centersay(Msg,10,0,255,0);
}

public plugin_init() {
        /* irgendwas hier */
       set_timer("csay", zeit, 0, Message);
        return PLUGIN_CONTINUE;
}
Schlecht:
Code:
public admin_csay(HLCommand,HLData,HLUserName,UserIndex) {
	new Color[MAX_DATA_LENGTH];
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new Message[MAX_DATA_LENGTH];
	new User[MAX_NAME_LENGTH];

	convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
	convert_string(HLData,Data,MAX_DATA_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);

	strbreak(Data,Color,Message,MAX_DATA_LENGTH);
	if (streq(Color,"red")==1) {
		centersay(Message,10,250,10,10);
	} else if ( streq(Color, "blue")==1) {
		centersay(Message,10,10,10,250);
	} else if ( streq(Color, "green")==1) {
		centersay(Message,10,10,250,10);
	} else if ( streq(Color, "white")==1) {
		centersay(Message,10,250,250,250);
	} else if ( streq(Color, "yellow")==1) {
		centersay(Message,10,250,250,10);
	} else if ( streq(Color, "purple")==1) {
		centersay(Message,10,250,10,250);
	} else {
		centersay(Data,10,15,250,10);
	}
	log_command(User,Command,Data);
	return PLUGIN_HANDLED;
}

public wassagen(Timer,Repeat,HLName,HLParam) {
        new Msg[MAX_TEXT_LENGTH];
        convert_string(Msg, HLParam, sizeof(Msg));	
        exec("admin_command admin_csay ebbes");
}

public plugin_init() {
        /* irgendwas hier */
       set_timer("wassagen", zeit, 0, Message);
        return PLUGIN_CONTINUE;
}

_________________
There are no stupid questions, only stupid people.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 48 Beiträge ]  Gehe zu Seite 1 2 3 Nächste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"