Ein neues Thema erstellen  Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Ein universales Plugin
BeitragVerfasst: 13.05.2004, 15:22 

Registriert: 13.05.2004, 15:12
Beiträge: 2
Ich wollte ein universales Plugin schreiben, doch leider funktioniert der zweite Teil nicht. HL kann nicht zwischen den Namen und den Befehl entscheiden. Der Quellcode sieht folgendermaßen aus:
Code:
/* All commands for Server and Client */
/*$Id: plugin_loser_do.sma,v 1.0 4/14/2004 player ICQ: 172913668 Exp $*/

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


#define ACCESS_DO 131071
#define ACCESS_DOTARGET 65023

new STRING_VERSION[MAX_DATA_LENGTH] = "2.51.00"; 

public admin_dotarget(HLCommand,HLData,HLUserName,UserIndex) { 
	new Command[MAX_COMMAND_LENGTH]; 
	new Data[MAX_DATA_LENGTH]; 
	new User[MAX_NAME_LENGTH];
	new target_user[MAX_DATA_LENGTH];

	convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
	convert_string(HLData,Data,MAX_DATA_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	if (check_user(target_user) == 1) {
		new real_user[MAX_NAME_LENGTH];
		get_username(target_user,real_user,MAX_NAME_LENGTH);
		say_command(User,Command,real_user);
		execclient(real_user, Data);
	} else {
		selfmessage("Unrecognized player: ");
		selfmessage(Data);
	}	
	return PLUGIN_HANDLED; 
} 



public admin_do(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[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);
	execute_command(User,Command,"",Data);
	return PLUGIN_HANDLED;
}

	
public plugin_init() { 
	plugin_registerinfo("All DoD commands","Also do commands on a players HL.",STRING_VERSION); 

	plugin_registercmd("admin_dotarget","admin_dotarget",ACCESS_DO,"admin_dotarget <target> [<data>]: Let you execute commands on the targets HL."); 
	plugin_registercmd("admin_do","admin_do",ACCESS_DOTARGET,"admin_do <data>:  execute every server command on server(for example: exit");
		
	
	return PLUGIN_CONTINUE;
}
*Code tags bitte beim nächsten Mal nicht vergessen (Sir D.)*


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 13.05.2004, 16:35 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
nun...kurze Erklärung über das Daten Handling:

lass Dir einfach mal nach dem convert_string den Command, die Data und den User als selfmessage ausgeben.
Das lässt erkennen, welche Daten an diese Funktion geliefert werden.

Denn es ist nämlich so, dass
im Command z.B. 'admin_dotarget' steht,
in der Data steht der 'Befehl der ausgeführt werden soll' 'Zielperson'
im User steht der Name des Admins, der den admin_ Befehl abgesendet hat.
im UserIndex steht der UserIndex des Admins, der den admin_ Befehl abgesendet hat.

Mit diesem Wissen muss man jetzt einfach arbeiten :)
Es gilt also Hauptsächlich die Data auszuwerten!! In dem Fall müsste man die Data in die 2 Teile trennen (z.B. mit Befehlen aus der string.inc).

Ich hoffe, das der Ansatz Dir weiterhilft :)

*P.S.: das z.B. strbreak(Data,auszuführendeBefehl,Target,MAX_DATA_LENGTH); sollte auch in admin_dotarget eingebaut werden, da diese Funktion so auch nicht funktioniert :)

_________________
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.05.2004, 13:05 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
keiner benutzt hier strbreak. marco, wie oft muss ich dir noch sagen dass du strsep verwenden sollst?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.05.2004, 13:08 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
:lol:

_________________
There are no stupid questions, only stupid people.


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

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Würde mir mal jemand erklären, warum ich strbreak nicht nutzen sollte? Ich hatte damit bislang keine Probleme. Und ohne triftigen Grund werde ich davon auch nicht abweichen.

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


Nach oben
   
 Betreff des Beitrags: Danke!
BeitragVerfasst: 14.05.2004, 16:23 

Registriert: 13.05.2004, 15:12
Beiträge: 2
Vielen Dank für die Hilfe erstmal, werde ein bisschen rumprobieren.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.05.2004, 22:40 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
http://sourceforge.net/tracker/index.ph ... tid=103570
;)

Jaja, weiss schon, der Grund fehlt immernoch. :)

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14.05.2004, 23:57 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Ok, dann warte ich mal weiter auf eine Antwort.

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


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 8 Beiträge ] 


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 ]"