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

readfile Problem ... wer kann helfen ?
https://www.adminmod.de/viewtopic.php?t=3431
Seite 2 von 2

Autor:  Viper_de [ 04.07.2002, 15:07 ]
Betreff des Beitrags: 

Bist wie immer etwas schneller :lol:
Aber ich hatte gestern keine Zeit mehr ...

Naja, die sma kannst Du natürlich haben. Aber sag mir bloß nicht das Variablen wie "Text2" "Text3" ... nicht besonders viel sagend sind :roll:

Deine Funktionen muß ich mir gleich morgen Abend mal ansehen ( heute bin ich nicht zuhause ) ... und dann in alter Gewohnheit bei mir einfügen :lol:

Viper

Autor:  Sir Drink a lot [ 04.07.2002, 17:06 ]
Betreff des Beitrags: 

Ui...

Du setzt aber immer sehr viele große Arrays in Deinen Funktionen. Da kann es mal zu einem AMX-Error 3 kommen, was ja eigentlich der Grund war für diesen Beitrag hier.

Die Rename-Funktion ist auch etwas heftig, da Du ja eigentlich die WONID aller auf dem Server mit denen in der Faker-Liste vergleichst und bei gleichen WONIDs umbenennst.

Ich habe mich dazu entschlossen, wirklich nur die umzubenennen, die auch wirklich mit gefaktem Namen spielen.

ich habe einfach wieder die look Funktion dafür genommen:
Code:
public look(a) {
	new i;
	new j;
	new maxplayers = maxplayercount();
	new Name[MAX_DATA_LENGTH];
	new SessionID;
	new Team;
	new Text[MAX_TEXT_LENGTH];
	new WONID;
	new WONID2;
	
	if (fileexists(TextFile) == 1) 
	{
	        selfmessage( "------------------------------- Spielerliste: ------------------------------");
		snprintf(Text,MAX_TEXT_LENGTH,"ORIGINALNAME^t^t^t^t^t^t^t^t^t^t^t^t^t^tSPIELER-FAKE-NAME");
		selfmessage(Text);
		selfmessage("");
		new strMessage[MAX_DATA_LENGTH];
		for(j=1; j <= LOOK_COUNTER; j++) {
			for(i=1; i<=maxplayers; i++) {
				if(playerinfo(i,Name,MAX_DATA_LENGTH,SessionID,WONID,Team)==1) {
					if (readfile(TextFile, strMessage, j, MAX_DATA_LENGTH) != 0) {
						new strWONID[MAX_DATA_LENGTH];
						strbreak(strMessage, strWONID, strMessage, MAX_DATA_LENGTH);
						WONID2 = (strtonum(strWONID));
						if(a==0){
							if (WONID2 == WONID){
								snprintf(Text, MAX_TEXT_LENGTH, "%s ^t^t^t^tspielt als %s", strMessage, Name);
								selfmessage(Text);
							}
						}else{
							if (WONID2 == WONID && streq(strMessage,Name)==0){
								snprintf(Text, MAX_TEXT_LENGTH, "%s ^t^t^t^twurde umbenannt in %s", Name, strMessage);
								snprintf(Text,MAX_TEXT_LENGTH,"name ^"%s^"",strMessage);
								selfmessage(Text);
								execclient(Name,Text);
							}
						}	
					}
				}
			}
		}
		selfmessage( "------------------------------------------------------------------------------");
	} else {
		selfmessage("-------------- ADMIN_LOOK --------------");
		selfmessage("");
		selfmessage("Fehler:");
		selfmessage("Kann LOOK.TXT nicht finden");
		selfmessage("");
		selfmessage("-----------------------------------------------");
		
	}
	return PLUGIN_HANDLED;
}
jetzt wird mit admin_look einfach die look(0) aufgerufen, also a==0 und mit admin_look_rename look(1).

Das kann man natürlich noch feiner machen in der Funktion look(). Aber ich war jetzt zu faul....wie so häufig...

Autor:  Viper_de [ 05.07.2002, 13:46 ]
Betreff des Beitrags: 

Hallo !

Naja, ich weiß das das PlugIn weder schön aussieht noch besonders clever gecoded ist.

Normalerweise bin ich es von Visual C++ auch gewohnt den Variablen kennzeichnendere Namen zu geben wie iWonID und sText.
Das ich die Funktion look() nicht als eigenständige Funktion gecoded hab ist ebenfalls unschön.

Aber eigentlich sollte das PlugIn nur die WonIDs der Spieler ausgeben, weil es eigentlich nur ein Test sein sollte um mich mit Small und der PlugIn coderei vertraut zu machen.

heute würde das ganze auch besser aussehen, aber das ganze Ding neu zu schreiebn ... naja, da bin ich zu faul zu :roll:

Bei rename ist bei mir auch noch ein kleiner Fehler.
Ein Spieler bei uns heißt" -=[S:M]=-|blabla "( oder so ) ... nach rename heißt er aber nur noch " -=[ " .
Ich denke das es daran liegt das ich den String der das Kommando
"name Name" enthällt nicht so aussieht wie bei Dir
"name ^"Name^" "
Aber da ich nicht wußte wie man die _"_ hinbekommt, und ich erst mal sehen wollte ob es überhaubt läuft denke ich das es nach dieser Änderung funktionieren wird.
Code:
streq(strMessage,Name)==0)
Das ist ne gute Idee, werde ich bei mir auch mal einbauen, obwohl ich nicht denke das es ein Problem ist wenn ich einen Spieler mit dem gleichen namen rename den er schon hat.
Code:
snprintf(Text, MAX_TEXT_LENGTH, "%s ^t^t^t^twurde umbenannt in %s", Name, strMessage); 
Aber was sollen die ^t Anweisungen ? Also ich kann mir jetzt nicht ganz vorstellen wie "Text" nach dieser Anweisung aussehen soll. ^t = tilde ???

Naja, das nächste PlugIn wird schöner :D

Viper

Autor:  Warhead [ 05.07.2002, 14:16 ]
Betreff des Beitrags: 

^t dürfte Tabulator sein.

Autor:  Sir Drink a lot [ 05.07.2002, 18:15 ]
Betreff des Beitrags: 

korrekt. ^t sind horizontale Tabulatoren. Sieht aber immer noch scheiße aus :-(.

Ich wollte die Anzeige mal was besser darstellen in der selfmessage.

Hier mal mehr:
Code:
Control characters
'^a' Audible alarm (beep)
'^b' Backspace
'^e' Escape
'^f' Formfeed
'^n' Newline
'^r' Carriage Return
'^t' Horizontal tab
'^v' Ver t i cal t ab
'^^' ^ the caret itself
'^'' ' single quote
'^"' " double quote
'^ddd;' character code with decimal code \ddd"
weiß aber nicht, ob alle gehen.

Autor:  Viper_de [ 05.07.2002, 18:49 ]
Betreff des Beitrags: 

Damit es besser aussieht habe ich folgendes gemacht:
Code:
snprintf(Text3,20,"%s                      ",Name);
strncat(Text3,Text4,62,MAX_TEXT_LENGTH);
Eigentlich sollte jetzt einem String "Name" soviele Leerzeichen angehängt werden bis halt die Stringlänge von 20 erreicht ist. "Text4" sollte somit immer ab Zeichen 20 ( mal /0 nicht mitgezählt ) beginnen.

So 100% funzt es nicht, aber es ist besser als vorher.

Thx übrigens für die ^Liste :)

Viper

Autor:  Sir Drink a lot [ 05.07.2002, 19:37 ]
Betreff des Beitrags: 

Diese Idee mit strcat ist mir auch gerade eingefallen.

Das werde ich wohl noch so ändern.

Autor:  Biohazard1 [ 09.07.2002, 15:54 ]
Betreff des Beitrags: 

Evtl. könnt ihr noch ein paar Zeilen aus dem plugin_logd_spooky_names zur Umbenennung der Player verwenden.

www.ekclan.de/plugins/plugin_logd_spooky_names.zip

Bio

Autor:  Viper_de [ 09.07.2002, 16:07 ]
Betreff des Beitrags: 

Da das mit dem umbenennen schon abgehackt ist, kann ich ( bzw. wir ) das PlugIn dafür nicht mehr brauchen.

Aber ich habe was anderes darin gefunden was ich brauchen kann. :D

Danke

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