Ein neues Thema erstellen  Auf das Thema antworten  [ 38 Beiträge ]  Gehe zu Seite 1 2 Nächste
Autor Nachricht
BeitragVerfasst: 15.04.2002, 23:00 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
also ich hab mir da was zusammen gebastelt , dieses script prüft alle 30 sek, ob ein user unter falschen namen spielt und wenn er es tut wird er umbennant.Nun zu meinem problem, wenn ich den timer an mache, schmiert der server nach 30 ab , aber nur wenn ein user drauf ist , wenn ich den server starte und über HLSW nur schau dann bleibt der nach 30 sek online.Gehe ich dann auf den server drauf schmiert er nach 30 sek ab.

Jetzt hab ich den timer mal abgeschaltet sodas ich es per hand aufrufen muss, ich geh ins game geb "admin_check" ein und es geht, er stürtzt nicht ab und ich werde umbennaht wenn ich einen falschen namen habe. Das kann ich so oft nach einnander eingeben der server stürtzt nicht ab , es muß was mit dem timer zu tun haben.

Nun noch kleine infos , in der name.txt steht "wonid name" und nun der schöne code :)
Code:
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

new STRING_VERSION[MAX_DATA_LENGTH] = "1.0";
new time;

public admin_check(HLCommand,HLData,HLUserName,UserIndex)
{
	new i;
	new j;
	new maxplayers = maxplayercount();
	new Name[MAX_NAME_LENGTH];
	new SessionID;
	new Team;
	new Text[MAX_TEXT_LENGTH];
	new User[MAX_NAME_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new WonID;
	new WonID2;
	new Command[MAX_COMMAND_LENGTH];
	new strName[MAX_DATA_LENGTH];
	new strWonID[MAX_DATA_LENGTH];
	new str[MAX_DATA_LENGTH];
	new TextFile[MAX_DATA_LENGTH];
	new counter = 0;

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

	if(strcasestr(Data, "stop")!=-1)
	{
	kill_timer(time);
	selfmessage("[SERVER]: Namescheck wurde angehalten.");
	return PLUGIN_HANDLED;
	}

	if(strcasestr(Data, "start")!=-1)
	{
	kill_timer(time);
	time = set_timer("admin_check", 30, 370)
	selfmessage("[SERVER]: Namescheck wurde gestartet.");
	}

	strcpy(TextFile, "name.txt", MAX_DATA_LENGTH);
	if (fileexists(TextFile) == 1)
	{
	counter = filesize(TextFile, 1)
  	}
	else
	{
	counter = 0;
	return PLUGIN_HANDLED;
  	}


	if (fileexists(TextFile) == 1)
	{
		for(i=1; i<=maxplayers; i++)
		{
			for(j=1; j <= counter; j++)
			{

				if(playerinfo(i,Name,MAX_NAME_LENGTH,SessionID,WonID,Team)==1)
				{

					if (readfile(TextFile, str, j, MAX_TEXT_LENGTH) != 0)
					{

						strbreak(str, strWonID, strName, MAX_TEXT_LENGTH);
						WonID2 = (strtonum(strWonID));
						if (WonID2 == WonID)
						{
							if (streq(strName, Name)==0)
							{
							snprintf(Text, MAX_TEXT_LENGTH, "name ^"%s^"", strName);
							execclient(Name,Text);
							typesay("Nein, Nein, es wird hier nur unter original Namen gespielt !",5,255,0,0);
							}
						}
					}
				}
			}
		}
	selfmessage("[SERVER]: Namescheck abgeschlossen.");
	}
return PLUGIN_CONTINUE;
}	
public plugin_init()
{
	plugin_registerinfo("Fake name","Codet bei MrSpoocy www.foc-clan.de",STRING_VERSION);
	plugin_registercmd("admin_check","admin_check",ACCESS_VOTE_MAP,"Mit admin_check kann man pruefen welche user unter anderem namen spielen , sie werden automatisch umbennat (muessen in der name.txt stehen mit wonid)");
	time = set_timer("admin_check", 30, 370);
	return PLUGIN_CONTINUE;
}
ich erwarte antwort von "daRope" :)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 23:38 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Du übergibst dem Timer keine Parameter, willst diese dann aber mit convert_string umwandeln und weiter unten auswerten. Desweiteren wäre zu prüfen ob der Funktionskopf von admin_check dem eines Timers entspricht.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 23:45 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
da ich noch anfänger in small bin , könntest du es bitte genauer beschrieben ? oder gar die lösung schreiben ?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 00:27 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Das hat nix mit small zu tun, sondern mit Deiner set_timer-Funktion. Die ist auf www.adminmod.org und in den Includes beschrieben.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 00:35 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Du hast da irgendwo stehen:
Code:
  time = set_timer("admin_check", 30, 370);
laut Syntax für den Befehl
Code:
  set_timer(sFunction, iWaitSeconds, iRepeatCount, sParameter = "")
würde ich das Ganze dann etwa so coden:
Code:
  time = set_timer("admin_check", 30, 1, "");
wobei ich mich allerdings erst seit gestern mit plugin-coding beschäftige... mal seh'n was daRope dazu meint...
:-?

_________________
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: 16.04.2002, 09:24 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
wobei ich mich allerdings erst seit gestern mit plugin-coding beschäftige... mal seh'n was daRope dazu meint...
:-?
Bist Du sicher, dass Du das wissen willst? ;) Nu' tu nich' so, als ob Du bei mir nix lernen koenntest. :D

Spoocy, ich sag da nix zu. Kuck in die Sourcen von plugin_message.sma und schau Dir an, wie eine Funktion auszusehen hat, die von einem Timer aufgerufen wird. Die sieht naemlich anders aus, als eine, die von der Konsole aufgerufen wird.

Und das der Server erst abschmier, wenn ein User drauf ist, ist auch klar. Denn vorher laeuft der Timer noch garnicht. Adminmod wird erst "gestartet", wenn der erste User drauf kommt. Du kannst das aber auch von Hand machen, indem Du in der Serverkonsole einfach nur admin_command eintippst. Das hat denselben Effekt und Du musst nicht als Spieler auf den Server gehen.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 13:43 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
ich werd besser :-)) ich hatte mir plugin_message.sma angeschaut , weil ich ja wuste das dort ein timer is , ich selbst hatte auch schon mal zum test ein script geschrieben was in einer "timerschleife" hing un beliebig Ab/An geschaltet werden konnte , aber ich weis nich warum das nicht geht.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 16:20 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
So sieht eine Funktion in plugin_message aus, die von einem Timer aufgerufen wird:



Code:
public say_stuff(Timer,Repeat,HLName,HLParam)


Und so sieht eine Funktion aus, die von Hand aufgerufen wird:
Code:
public admin_ban(HLCommand,HLData,HLUserName,UserIndex)
Schon die Namen der Variablen sollten irgendwie den Verdacht wecken, dass sich die Parameter unterscheiden.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 17:43 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
juhu , es geht (fast :))

Also , wer das plug in nutzen will solls raus kopieren hat aber noch einen cleinen fehler .....mehr dazu unten.

in die vault.ini mus vollgendes geschrieben werden.

fakenamemsg xx ##Die nachricht die angezeigt werden soll wenn einer unter Falschen namen spielt
fakenameps xxx ##Die nachricht die unten angezeigt wird als P.S.:
fakenamesek xx ##Die zeit in der er prüfen soll

INFO:
Dieses script prüft alle x sek ob ein user unter falschen namen spielt.Wenn er das tut wird er umbennant und im Chat erscheit eine nachricht. Dazu mussen die namen in der "name.txt" stehen.

Folgendes format:
WonID Originalname
123456 MrSpoocy
Code:
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

new STRING_VERSION[MAX_DATA_LENGTH] = "1.0";
new time;
new fsek[MAX_DATA_LENGTH];

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


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

	if(strcasestr(Data, "stop")!=-1)
	{
	kill_timer(time);
	selfmessage("[SERVER]: Namescheck wurde angehalten.");
	return PLUGIN_HANDLED;
	}

	if(strcasestr(Data, "start")!=-1)
	{
	kill_timer(time);
	time = set_timer("go", fsek[0], 370)
	selfmessage("[SERVER]: Namescheck wurde gestartet.");
	return PLUGIN_HANDLED;
	}

	if(strcasestr(Data, "start")==-1 && strcasestr(Data, "stop")==-1)
	{
	consgreet("Es fehlt leider der command. admin_check <start/stop>");
	return PLUGIN_HANDLED;
	}
return PLUGIN_CONTINUE;
}

public go()
{
	new TextFile[MAX_DATA_LENGTH];
	new counter = 0;
	new i;
	new maxplayers = maxplayercount();
	new j;
	new Name[MAX_NAME_LENGTH];
	new WonID;
	new SessionID;
	new Team;
	new str[MAX_DATA_LENGTH];
	new strWonID[MAX_DATA_LENGTH];
	new strName[MAX_DATA_LENGTH];
	new WonID2;
	new Text[MAX_TEXT_LENGTH];
	new fmsg[MAX_DATA_LENGTH];
	new fps[MAX_DATA_LENGTH];

	strcpy(TextFile, "name.txt", MAX_DATA_LENGTH);
	if (fileexists(TextFile) == 1)
	{
	counter = filesize(TextFile, 1)
  	}
	else
	{
	counter = 0;
	return PLUGIN_HANDLED;
  	}


	if (fileexists(TextFile) == 1)
	{
	get_vaultdata("fakenamemsg",fmsg, MAX_DATA_LENGTH);
	get_vaultdata("fakenameps",fps, MAX_DATA_LENGTH);
		for(i=1; i<=maxplayers; i++)
		{
			for(j=1; j <= counter; j++)
			{

				if(playerinfo(i,Name,MAX_NAME_LENGTH,SessionID,WonID,Team)==1)
				{

					if (readfile(TextFile, str, j, MAX_TEXT_LENGTH) != 0)
					{

						strbreak(str, strWonID, strName, MAX_TEXT_LENGTH);
						WonID2 = (strtonum(strWonID));
						if (WonID2 == WonID)
						{
							if (streq(strName, Name)==0)
							{
							snprintf(Text, MAX_TEXT_LENGTH, "name ^"%s^"", strName);
							execclient(Name,Text);
							typesay(fmsg,5,255,0,0);
							say(fps)
							}
						}
					}
				}
			}
		}
	selfmessage("[SERVER]: Namescheck abgeschlossen.");
	}
return PLUGIN_CONTINUE;
}

public plugin_init()
{
	plugin_registerinfo("Fake name","Codet bei MrSpoocy www.foc-clan.de",STRING_VERSION);
	plugin_registercmd("admin_check","admin_check",ACCESS_KICK,"Mit admin_check kann man pruefen welche user unter anderem namen spielen , sie werden automatisch umbennat (muessen in der name.txt stehen mit wonid)");
	get_vaultdata("fakenamesek",fsek, MAX_DATA_LENGTH);
	time = set_timer("go", fsek[0], 370);
	return PLUGIN_CONTINUE;
}
ein problem is noch , das der timer irendwie alle 50sek checkt, auch wenn ich 30 eingestellt habe , geb ich die zeit die er läd mit say(fsek[0]) aus steht 30 da , aber dennoch macht er es alle 50sek . Setz ich nun stat fsek[0] eine zahl dann geht es , ich hab 0 anung warum das so is


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 18:00 

Registriert: 17.12.2001, 01:00
Beiträge: 697
Die set_timer Funktion erwartet als Sekunden-Wert auch einen Integer-Wert. fsek ist aber ein String. An der Position fsek[0] steht die "3", die einem Integer-Wert (nach ASCII) von 51 entspricht. Dein Timer wird also alle 51 (!!) Sekunden aufgerufen, so wie Du es programmiert hast. :P
Wie war das nochmal ? Du bist PHP-Coder ? :lol:


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 18:04 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
Juge las die scheiße ,
1. was hat PHP mit small zu tun
2. wenn du nicht richtig helfen kannst lass deine posts

du nervst !

so weit ich weis kann dann strtonum oder numtostr helfen , bin mir nicht sicher


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 18:11 

Registriert: 17.12.2001, 01:00
Beiträge: 697
ROTFLMAOSHIPMP


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.04.2002, 09:25 
AM.de Team
Benutzeravatar

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



1. was hat PHP mit small zu tun








Beide sind von der Syntax sehr stark an C angelehnt, bzw. davon abgeleitet. Hat also schon was miteinander zu tun. Irgenwie darf man ruhig davon ausgehen, dass jemand, der

gut PHP schreiben kann, auch wenig Probleme in Small haben sollte.



Warhead: Lass mal gut sein, Du musst hier nicht in jedem Thread davon anfangen.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.04.2002, 15:16 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
So nun gehts :-)

Also wie oben geschrieben müst ihr es einstellen.

hier der code:
Code:
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

new STRING_VERSION[MAX_DATA_LENGTH] = "1.0";
new time;
new fsek[MAX_DATA_LENGTH];
new stimer = 30;

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


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

	if(strcasestr(Data, "stop")!=-1)
	{
	kill_timer(time);
	selfmessage("[SERVER]: Namescheck wurde angehalten.");
	return PLUGIN_HANDLED;
	}

	if(strcasestr(Data, "start")!=-1)
	{
	kill_timer(time);
	time = set_timer("go", stimer, 99999)
	selfmessage("[SERVER]: Namescheck wurde gestartet.");
	return PLUGIN_HANDLED;
	}

	if(strcasestr(Data, "start")==-1 && strcasestr(Data, "stop")==-1)
	{
	consgreet("Es fehlt leider der command. admin_check <start/stop>");
	return PLUGIN_HANDLED;
	}
return PLUGIN_CONTINUE;
}

public go()
{
	new TextFile[MAX_DATA_LENGTH];
	new counter = 0;
	new i;
	new maxplayers = maxplayercount();
	new j;
	new Name[MAX_NAME_LENGTH];
	new WonID;
	new SessionID;
	new Team;
	new str[MAX_DATA_LENGTH];
	new strWonID[MAX_DATA_LENGTH];
	new strName[MAX_DATA_LENGTH];
	new WonID2;
	new Text[MAX_TEXT_LENGTH];
	new fmsg[MAX_DATA_LENGTH];
	new fps[MAX_DATA_LENGTH];

	strcpy(TextFile, "name.txt", MAX_DATA_LENGTH);
	if (fileexists(TextFile) == 1)
	{
	counter = filesize(TextFile, 1)
  	}
	else
	{
	counter = 0;
	return PLUGIN_HANDLED;
  	}


	if (fileexists(TextFile) == 1)
	{
	get_vaultdata("fakenamemsg",fmsg, MAX_DATA_LENGTH);
	get_vaultdata("fakenameps",fps, MAX_DATA_LENGTH);
		for(i=1; i<=maxplayers; i++)
		{
			for(j=1; j <= counter; j++)
			{

				if(playerinfo(i,Name,MAX_NAME_LENGTH,SessionID,WonID,Team)==1)
				{

					if (readfile(TextFile, str, j, MAX_TEXT_LENGTH) != 0)
					{

						strbreak(str, strWonID, strName, MAX_TEXT_LENGTH);
						WonID2 = (strtonum(strWonID));
						if (WonID2 == WonID)
						{
							if (streq(strName, Name)==0)
							{
							snprintf(Text, MAX_TEXT_LENGTH, "name ^"%s^"", strName);
							execclient(Name,Text);
							typesay(fmsg,5,255,0,0);
							say(fps);
							}
						}
					}
				}
			}
		}
	selfmessage("[SERVER]: Namescheck abgeschlossen.");
	}
return PLUGIN_CONTINUE;
}

public plugin_init()
{
	plugin_registerinfo("Fake name","Codet bei MrSpoocy www.foc-clan.de",STRING_VERSION);
	plugin_registercmd("admin_check","admin_check",ACCESS_KICK,"Mit admin_check kann man pruefen welche user unter anderem namen spielen , sie werden automatisch umbennat (muessen in der name.txt stehen mit wonid)");
	get_vaultdata("fakenamesek",fsek, MAX_DATA_LENGTH);
	new VaultData[MAX_DATA_LENGTH];

	if(get_vaultdata("fakenamesek", VaultData, MAX_DATA_LENGTH) != 0)
	{
	stimer = strtonum(VaultData);
	}
	time = set_timer("go", stimer, 99999);
	return PLUGIN_CONTINUE;
}
werd später noch als zip datei online stellen.


Zuletzt geändert von MrSpoocy am 18.04.2002, 00:46, insgesamt 1-mal geändert.

Nach oben
   
 Betreff des Beitrags: Für LAN
BeitragVerfasst: 18.04.2002, 00:13 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Ich hab' mir gedacht, dass das doch auch im LAN ganz nett wäre und hab' daher mal versucht das ganze so umzuschreiben, das es auf IPs aufbaut. :wink:
Ich hab's noch nicht getestet aber dafür fehler- und warning-frei kompiliert 8)
Code:
/************************
* PLUGIN 'FakeName_LAN' *
*                       *
* changes by GGGSN8P    *
*************************/

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

#define	MAX_IPADDRESS	32
#define	MAX_IPDESCRIPT 30

new	STRING_VERSION[MAX_DATA_LENGTH]	=	"1.0";
new	UserIP[MAX_PLAYERS][MAX_IPADDRESS];

new	time;
new	fsek[MAX_DATA_LENGTH];
new	stimer = 30;

public admin_check(HLCommand,HLData,HLUserName,UserIndex)
{
	new	User[MAX_NAME_LENGTH];
	new	Data[MAX_DATA_LENGTH];
	new	Command[MAX_COMMAND_LENGTH];
	new	strUserIndex[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(strcasestr(Data,	"stop")!=-1)
	{
		kill_timer(time);
		selfmessage("[SERVER]: Namescheck	wurde	angehalten.");
		return PLUGIN_HANDLED;
	}
	if(strcasestr(Data,	"start")!=-1)
	{
		kill_timer(time);
		numtostr(UserIndex,strUserIndex);
		time = set_timer("go", fsek[0],	99999, strUserIndex);
		selfmessage("[SERVER]: Namescheck	wurde	gestartet.");
		return PLUGIN_HANDLED;
	}
	if(strcasestr(Data,	"start")==-1 &&	strcasestr(Data, "stop")==-1)
	{
		consgreet("Es	fehlt	leider der command.	admin_check	<start/stop>");
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

public go(strUserIndex[])
{
	new	TextFile[MAX_DATA_LENGTH];
	new	counter	=	0;
	new	i;
	new	maxplayers = maxplayercount();
	new	j;
	new	UserIndex;
	new	Name[MAX_NAME_LENGTH];
	new	strLine1[MAX_DATA_LENGTH];
	new	strLine2[MAX_DATA_LENGTH];
	new	strUserIP1[MAX_DATA_LENGTH];
	new	strUserIP2[MAX_DATA_LENGTH];
	new	Dummy[MAX_DATA_LENGTH];
	new	UserIP1;
	new	UserIP2;
	new	strName[MAX_DATA_LENGTH];
	new	Text[MAX_TEXT_LENGTH];
	new	fmsg[MAX_DATA_LENGTH];
	new	fps[MAX_DATA_LENGTH];

	UserIndex	=	strtonum(strUserIndex);
	strcpy(TextFile, "lanname.txt",	MAX_DATA_LENGTH);
	if (fileexists(TextFile) ==	1)
	{
		counter	=	filesize(TextFile, 1);
	}
	else
	{
		counter	=	0;
		return PLUGIN_HANDLED;
	}
	if (fileexists(TextFile) ==	1)
	{
		get_vaultdata("fakenamemsg",fmsg,	MAX_DATA_LENGTH);
		get_vaultdata("fakenameps",fps,	MAX_DATA_LENGTH);
		for(i=1; i<=maxplayers;	i++)
		{
			for(j=1; j <=	counter; j++)
			{
				//Hier wird	WONID	durch	IP ersetzt
				//Der	vergleich	geht über	UserIndex	('iplist.pfn')
				if (readfile("iplist.pfn",strLine1,UserIndex,MAX_DATA_LENGTH)	!= 0)
				{
					strbreak(strLine1, strUserIP1, Dummy,	MAX_TEXT_LENGTH);
//					strncpy(strUserIP1,strLine1,index(strLine1,";"),MAX_DATA_LENGTH);
					UserIP1	=	strtonum(strUserIP1);
					if (readfile(TextFile, strLine2, j,	MAX_DATA_LENGTH) !=	0)
					{
						//strbreak(str,	first, second, maxlen)
						strbreak(strLine2,strUserIP2,strName,MAX_DATA_LENGTH);
						UserIP2	=	strtonum(strUserIP2);
						if (UserIP2	== UserIP1)
						{
							if (streq(strName, Name)==0)
							{
								snprintf(Text, MAX_TEXT_LENGTH,	"name	^"%s^"", strName);
								execclient(Name,Text);
								typesay(fmsg,5,255,0,0);
								say(fps);
							}
						}
					}
				}
			}
		}
	}
	selfmessage("[SERVER]: Namescheck	abgeschlossen.");
	return PLUGIN_CONTINUE;
}

public plugin_connect(HLUserName,	HLIP,	UserIndex)
{
	new	Text[MAX_TEXT_LENGTH];
	new	User[MAX_NAME_LENGTH];
//	new	UserIP[MAX_DATA_LENGTH];

	if (UserIndex	>= 1 &&	UserIndex	<= MAX_PLAYERS)
	{
		strinit(UserIP[UserIndex]);
		convert_string(HLIP, UserIP[UserIndex],	MAX_IPADDRESS);
		convert_string(HLUserName,User,MAX_NAME_LENGTH);
		// add User	to List
		snprintf(Text, MAX_TEXT_LENGTH,	"%s	%s",UserIP,User);
		writefile("iplist.pfn",	Text,	UserIndex);
	}
	return PLUGIN_CONTINUE;
}

public plugin_disconnect(HLUserName, UserIndex)
{
	new	Text[MAX_TEXT_LENGTH];

	if (UserIndex	>= 1 &&	UserIndex	<= MAX_PLAYERS)
	{
		// delete	User from	List
		snprintf(Text, MAX_TEXT_LENGTH,	"");
		writefile("iplist.pfn",	Text,	UserIndex);
		strinit(UserIP[UserIndex]);
	}
	return PLUGIN_CONTINUE;
}

public plugin_init()
{
	plugin_registerinfo("Fake	name","Codet bei MrSpoocy	www.foc-clan.de",STRING_VERSION);
	plugin_registercmd("admin_check","admin_check",ACCESS_KICK,"Mit	admin_check	kann man pruefen welche	user unter anderem namen spielen , sie werden	automatisch	umbennat (muessen	in der name.txt	stehen mit wonid)");
	get_vaultdata("fakenamesek",fsek,	MAX_DATA_LENGTH);
	new	VaultData[MAX_DATA_LENGTH];
	if(get_vaultdata("fakenamesek",	VaultData, MAX_DATA_LENGTH)	!= 0)
	{
		stimer = strtonum(VaultData);
	}
	time = set_timer("go", stimer, 99999);
	return PLUGIN_CONTINUE;
}
PLEASE return report!

_________________
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: 18.04.2002, 01:20 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Dein Plugin birgt aber noch ein paar Probleme und Fallen, MrSpoocy. Was ist zum Beispiel wenn der Player den du umbenennen möchtest zu diesem Zeitpunkt tot ist ? Dann kannst du ihn nicht umbenennen und beim nächsten Mal wird der Befehl (sofern es der gleiche Name ist) nicht angenommen. Da zu ein kleines Beispiel:

Wie alle wissen müssten kann man mit name NeuerName seinen Namen im Spiel ändern. Allerdings gilt das wie oben schon gesagt nur wenn man lebt. Sollte man versuchen seinen Namen zu wechseln obwohl man tot ist, passiert nichts und auch der Name wird nicht gewechselt. Versucht man nun in der neuen Runde den Namen wieder in NeuerName zu ändern, so wird auch das nicht akzeptiert (Ich weiß zwar nicht wieso das so ist, aber es scheint programmtechnisch so in AdminMod verankert zu sein - evtl. ist es auch ein Bug). Vielleicht weiß daRope Rat. Um seinen Namen dennoch in NeuerName ändern zu können, muß man vorher seinen Namen in einen anderen wandeln und danach wird auch wieder name NeuerName angenommen.

FAZIT: Abfrage auf tot oder lebend einbauen.

Bio

BTW: Folgendes ist keine 'elegante' Lösung:
Code:
	if (fileexists(TextFile) == 1)
	{
		counter = filesize(TextFile, 1)
	} else {
		counter = 0;

		return PLUGIN_HANDLED;
	}
	if (fileexists(TextFile) == 1)
	{
Warum nicht alles unter ein if (fileexists(TextFile) == 1) ?

Auch folgende Stelle ist nicht ganz 'assrein':
Code:
counter = filesize(TextFile, 1)
Was ist wenn die Textdatei Leerzeilen enthält ?

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


Zuletzt geändert von Biohazard1 am 18.04.2002, 01:26, insgesamt 1-mal geändert.

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

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
Ich weis net , die abfrage is eigendlich nicht nötig. ich hab mir sein script zwar nicht ganau angeschaut aber wenn er es von meinem kopiert hat dan ist bei ihm auch der timer drin , dass er alle 15 sek neu prüfen soll , also wenn einer tot ist ist das nicht so das problem , weil er lebt ja auch mal wieder , und dann kann das script den namen ändern.

P.S.: Ich hatte in dem script 1 kleinen fehler habs nun geändert :-)

Und ich hab auch noch andere sinnvolle scipte soll ich sie mal posten ?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.04.2002, 01:29 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Zitat:
Ich weis net , die abfrage is eigendlich nicht nötig. ich hab mir sein script zwar nicht ganau angeschaut aber wenn er es von meinem kopiert hat dan ist bei ihm auch der timer drin ...
Ich spreche von deinem Plugin, nicht von dem was Sn8p etwas geändert hat.
Zitat:
... dass er alle 15 sek neu prüfen soll , also wenn einer tot ist ist das nicht so das problem , weil er lebt ja auch mal wieder , und dann kann das script den namen ändern.
Du hast meinen Post anscheinend nicht verstanden. Bitte lies ihn nocheinmal.

Bio

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.04.2002, 01:33 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Zitat:

Du hast meinen Post anscheinend nicht verstanden. Bitte lies ihn nocheinmal.

Bio
Meine Freundin sagt bei sowas immer: "Musst Du's halt nochmal anders erklären..!" :wink:

_________________
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: 18.04.2002, 01:37 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
Das script ist seit heute nachmitag auf dem sever , und es geht , wenn der user seinen namen ändert dann wird er innerhalb von 15 sek umbenannt , ist der user aber garde tot, dann passiert nix , dann ist der user wieder am leben die nästen 15 sek sind um und der user wird umbennat !! ich habs getetet , (kann sein das es in CS nicht geht aber meine plugins sind für DoD). Also ich weis net warum ich extra noch prüfen sollte ob der user lebt.

Zu dem file , wenn lehrstellen sind ist das 0 problem , da dann wonid = 0 ist , und das es auf dem server keinen mit wonid 0 gibt passiert auch nix , er arbeitet normal weiter , dauert nur bissel länger da er eine zeihle mehr hat , is also nicht das problem. Oben hatte ich auch geschriben wie man die name.txt anlegen muß wenn man sie nicht so anlegt und ein fehler passiet (was eigendlich nicht sein sollte ) ist es ja nicht meine schuld , wir können das script ja gern testen 194.242.45.10:5850 is unser server.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 38 Beiträge ]  Gehe zu Seite 1 2 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 ]"