Hi Leute,
da mein vorheriges Vorhaben nur teilweise verwirklichbar war, wollte ich nun fragen ob und wie es möglich ist, dass es die Commands aus meinem Adminscript in einem Extra-Logfile speichert ?!?
Gruß
Colin
Hi Leute,
da mein vorheriges Vorhaben nur teilweise verwirklichbar war, wollte ich nun fragen ob und wie es möglich ist, dass es die Commands aus meinem Adminscript in einem Extra-Logfile speichert ?!?
Gruß
Colin
Wenn dein Adminscript in einem extra FS ist, dannin OnPlayerCommandText (NICHTin einen cmd) :
new name[MAX_PLAYER_NAME], s[100];
GetPlayerName(playerid,name,sizeof(name));
format(s,sizeof(s),"%s nutzte %s\r\n",name,cmdtext[0]);
new File:gla=fopen("admcmds.txt",io_append); fwrite(gla,s); fclose(gla);
Sollten es nur einzelne cmds sein, dann fügst du dies in die cmds ein
Wobei du, wenn du deine Adminbefehle mit im Gamemode hast, eine Funktion erstellen solltest, die du dann immer am Ende eines Admin Befehls aufrufst und die den Code von Keks beinhaltet.
Ne, ich hab ein extra Adminscript sprich ein FS für die Admin-Commands, welche somit nicht im Gamemode sind
Gruß
Colin
EDIT:
Es ist jetzt doch ein Problem aufgetaucht. Also ich habe das jetzt eingefügt, aber jetzt bekomme ich folgende Errors:
C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1602) : warning 219: local variable "name" shadows a variable at a preceding level
C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1602) : warning 219: local variable "s" shadows a variable at a preceding level
C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1633) : warning 219: local variable "name" shadows a variable at a preceding level
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Header size: 1836 bytes
Code size: 73080 bytes
Data size: 57740 bytes
Stack/heap size: 16384 bytes; estimated max. usage=4341 cells (17364 bytes)
Total requirements: 149040 bytes
3 Warnings.
Die 2 Zeilen sind folgende:
new name[MAX_PLAYER_NAME], s[80]; // Zeile 1602
new string[128],name[18],name2[18] // Zeile 1633
Was kann ich hier tun ?!?
Gruß
Colin
geht das nicht einfach mit include?
colin lösch Zeile 1602 einfach raus und zeile 1633 new string[128],name2[18] einfach das name[18] rauslöschen
Ok funzt alles Jetzt wollt ich noch, dass es die Uhrzeit und das Datum anzeigt wann die jeweiligen Commands eingegeben wurden ?!?
Wär cool
Gruß
Colin
new name[MAX_PLAYER_NAME], s[100],tag,monat,jahr,std,minuten,sek;
GetPlayerName(playerid,name,sizeof(name));
Getdate(tag,monat,jahr);
Gettime(std,minuten,sek);
format(s,sizeof(s),"%s nutzte %s am %d.%d.%d um %d:%d:%dUhr\r\n",name,cmdtext[0],tag,monat,jahr,std,minuten,sek);
new File:gla=fopen("admcmds.txt",io_append); fwrite(gla,s); fclose(gla);
ich glaub so müsste es stimmen
Da bekomme ich folgende Errors:
C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(357) : error 017: undefined symbol "Getdate"
C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(358) : error 017: undefined symbol "Gettime"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
Und hier die Zeilen dazu:
Getdate(tag,monat,jahr); // 357
Gettime(std,minuten,sek); // 358
Gruß
Colin
gettime und getdate klein sorry
Kk, thx a lot euch allen, funzt genauso wie ich mir das vorgestellt hab
Gruß
Colin
Sorry für Doppelpost aber jetzt ist doch ein Problem aufgetaucht.
Und zwar speichert es doch alle Commands bzw. von jedem User die Commands in der extra Datei, aber es sollen ja in dieser Datei nur die Commands die die Admins von Level 1-5 eingeben speichern und nicht die Commands von jedem, da dann doch auch die Teleportcommands usw. gespeichert werden
Gruß
Colin
OnPLayerCommand Text
{
if(PlayerData[playerid][Level] >= 1) //da musste deine definitions von den Adminlvls einfügen
{
new name[MAX_PLAYER_NAME], s[100],tag,monat,jahr,std,minuten,sek;
GetPlayerName(playerid,name,sizeof(name));
getdate(tag,monat,jahr);
gettime(std,minuten,sek);
format(s,sizeof(s),"%s nutzte %s am %d.%d.%d um %d:%d:%dUhr\r\n",name,cmdtext[0],tag,monat,jahr,std,minuten,sek);
new File:gla=fopen("admcmds.txt",io_append); fwrite(gla,s); fclose(gla);
return 1;
}
return 1;
}
versuchs mal so vll geht's ja
OnPLayerCommand Text
{
if(PlayerData[playerid][Level] >= 1) //da musste deine definitions von den Adminlvls einfügen
{
new name[MAX_PLAYER_NAME], s[180],tag,monat,jahr,std,minuten,sek;
GetPlayerName(playerid,name,sizeof(name));
getdate(tag,monat,jahr);
gettime(std,minuten,sek);
format(s,sizeof(s),"%s nutzte %s am %d.%d.%d um %d:%d:%dUhr\r\n",name,cmdtext,tag,monat,jahr,std,minuten,sek);
new File:gla=fopen("admcmds.txt",io_append);
if(gla) {
fwrite(gla,s);
fclose(gla);
}
}
return 1;
}
- string s würd ich größer machen
- gab keinen grund cmdtext[0] zu nehmen,cmdtext ist das Gleiche
- return 1; am ende solltest du weg lassen je nachdem wo du den Code in OnPlayerCommandText einfügt,lass es lieber weg und alles ist ok.
- Abfrage ob admcmds.txt erfolgeich geöffnet wurde kann nicht schaden.
Also ich habe Adminlevel 1-5 muss ich das dann so schreiben ??
if(PlayerData[playerid][Level] >= 1)
if(PlayerData[playerid][Level] >= 2)
if(PlayerData[playerid][Level] >= 3)
if(PlayerData[playerid][Level] >= 4)
if(PlayerData[playerid][Level] >= 5)
Oder wie kann ich das sonst für alle Level definieren ?!?
Gruß
Colin
für lvl1 bis zum höchsten lvl dann muss es if(PlayerData[playerid][Level] >= 1) lauten
ab lvl2 bis zum höchsten if(PlayerData[playerid][Level] >= 2) usw
if(PlayerData[playerid][Level] >= 1)
Dies reicht, es checkt, ob das adm Level höher gleich 1 ist
Goldkiller: Es ist bei mir nur ne Angewohnheit mit dem [0] dahinter
Also ich habe es jetzt folgendermaßen eingefügt:
if(GetPlayerLevel(playerid) >= 1) //da musste deine definitions von den Adminlvls einfügen
{
new name[MAX_PLAYER_NAME], s[180],tag,monat,jahr,std,minuten,sek;
GetPlayerName(playerid,name,sizeof(name));
getdate(tag,monat,jahr);
gettime(std,minuten,sek);
format(s,sizeof(s),"%s nutzte %s am %d.%d.%d um %d:%d:%dUhr\r\n",name,cmdtext,tag,monat,jahr,std,minuten,sek);
new File:gla=fopen("admcmds.txt",io_append);
if(gla) {
fwrite(gla,s);
fclose(gla);
}
}
Und bekomme dabei folgende Errors:
C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1612) : error 017: undefined symbol "name"
C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1612) : error 017: undefined symbol "name"
C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1612) : error 029: invalid expression, assumed zero
C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1612) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Die Zeile dazu lautet:
GetPlayerName(playerid,name,sizeof(name));
Gruß
Colin
new name[MAX_PLAYER_NAME];
~~Sorry~~