-
Sziasztok!
Hogyan kell azt, hogy ezt>> (( printf(\"%s banolta %s játékost. Indok: %s.\",Nev1, Nev2, indok); )) ne a szerverlogba írja bele a szerver, hanem a mondjuk egy Logs mappában egy Ban_Log.txt-be írja?
-
Megírod a parancsot, és a függvényekhez(dini-vel pl):
new file[128];
format(file, 128, \"/Logs/Ban_Log.ini\");
if(!fexist(file)) return dini_Create(file), dini_IntSet(file, string); // string = a leformázott karakterlánc a parancsnál
dini_IntSet(file, string);
-
HRP Régi módjában ezt használtam talán hasznodra lehet:
public Log(filename[],string[])
{
new entry[256], fileurl[256];
format(entry, sizeof(entry), \"[%s]%s\\n\",GetFormattedDateAndTime(),string);
new File:hFile;
format(fileurl,sizeof(fileurl),\"Logs/%s\",filename);
hFile = fopen(fileurl, io_append);
fwrite(hFile, entry);
fclose(hFile);
}
GetFormattedDateAndTime()-os cuccot kell csak kiszedni mivel az saját cucc és nem publikált includeban van...tehát 1 dátum lekérdezést kell beírni még vagy ha a formázott szövegben alapból van dátum akkor nem kell külön...
public Log(filename[],string[])
{
new entry[256], fileurl[256];
format(entry, sizeof(entry), \"%s\\n\",string);
new File:hFile;
format(fileurl,sizeof(fileurl),\"Logs/%s\",filename);
hFile = fopen(fileurl, io_append);
fwrite(hFile, entry);
fclose(hFile);
}
itt a módosított kód...ez sajnos nem teljesen optimalizált de a célnak megfelelõ...
-
Megírod a parancsot, és a függvényekhez(dini-vel pl):
new file[128];
format(file, 128, \"/Logs/Ban_Log.ini\");
if(!fexist(file)) return dini_Create(file), dini_IntSet(file, string); // string = a leformázott karakterlánc a parancsnál
dini_IntSet(file, string);
Miért IntSet, ha szöveget tárolunk?
Amúgy itt a parancs:
CMD:kick(playerid, params[])
{
if(IsLogged[playerid] == 1)
{
if(pInfo[playerid][Aszint] >= 2)
{
if(sscanf(params, \"us[256]\", giveplayerid, str)) return SendClientMessage(playerid, COLOR_GREY, \"Használat: /kick [id] [indok]\");
{
GetPlayerName(playerid, Nev, sizeof(Nev));
GetPlayerName(giveplayerid, Nev2, sizeof(Nev2));
format(szoveg, sizeof(szoveg), \"%s kidobta %s játékost. Indok: %s\", Nev, Nev2, str);
SendClientMessageToAll(COLOR_YELLOW, szoveg);
Kick(giveplayerid);
}
}else{
SendClientMessage(playerid, COLOR_RED, \"A kívánt parancs használatához nincs jogosultságod!\");
}
}
return 1;
}
Ban parancsnál is ugyanez van, csak a végén Ban(giveplayerid); van.
+ info: dini-t használok!
-
Megírod a parancsot, és a függvényekhez(dini-vel pl):
new file[128];
format(file, 128, \"/Logs/Ban_Log.ini\");
if(!fexist(file)) return dini_Create(file), dini_IntSet(file, string); // string = a leformázott karakterlánc a parancsnál
dini_IntSet(file, string);
Miért IntSet, ha szöveget tárolunk?
Amúgy itt a parancs:
CMD:kick(playerid, params[])
{
if(IsLogged[playerid] == 1)
{
if(pInfo[playerid][Aszint] >= 2)
{
if(sscanf(params, \"us[256]\", giveplayerid, str)) return SendClientMessage(playerid, COLOR_GREY, \"Használat: /kick [id] [indok]\");
{
GetPlayerName(playerid, Nev, sizeof(Nev));
GetPlayerName(giveplayerid, Nev2, sizeof(Nev2));
format(szoveg, sizeof(szoveg), \"%s kidobta %s játékost. Indok: %s\", Nev, Nev2, str);
SendClientMessageToAll(COLOR_YELLOW, szoveg);
Kick(giveplayerid);
}
}else{
SendClientMessage(playerid, COLOR_RED, \"A kívánt parancs használatához nincs jogosultságod!\");
}
}
return 1;
}
Ban parancsnál is ugyanez van, csak a végén Ban(giveplayerid); van.
+ info: dini-t használok!
[/quote]
Mert a dini_IntSet = fájlba írás
-
kipróbáltad hogy mûködik e a kód? ( mármint Johnies00 te a dinis kódot )
-
Mert a dini_IntSet = fájlba írás
Igen fájlba írás, de ezzel a függvénnyel csak számokat írhatsz. Szövegre a dini_Set függvény van.
Amúgy azt használd ami Richard bemásolt, ide felesleges a dini.
-
Mert a dini_IntSet = fájlba írás
Igen fájlba írás, de ezzel a függvénnyel csak számokat írhatsz. Szövegre a dini_Set függvény van.
Amúgy azt használd ami Richard bemásolt, ide felesleges a dini.
[/quote]
am én kemény 10 percet használtam dinit de nem láttam olyan lehetõséget hogy str hozzáfûzés hanem megadott sorhoz megadott értéket tudok hozzárendelni...tehát mondjuk az \"Admin\" sorhoz a 3-as értéket rendelem hozzá...de lehet tévedek és van olyan lehetõség hogy stringeket fûz hozzá de az biztos nem az IntSet-es függvény :)
-
Igen észrevettem hogy apszolute hülyeséget írtam, sorry. :hihi:
-
public Log(filename[],string[])
{
new entry[256], fileurl[256];
format(entry, sizeof(entry), \"%s\\n\",string);
new File:hFile;
format(fileurl,sizeof(fileurl),\"Logs/%s\",filename);
hFile = fopen(fileurl, io_append);
fwrite(hFile, entry);
fclose(hFile);
}
itt a módosított kód...ez sajnos nem teljesen optimalizált de a célnak megfelelõ...
És mikor a Logs mappa nincs létrehozva a jelenlegi samp úgy crashel hogy azt se fogod tudni mi a baja. És vagy 3 4 órát elcseszhetsz vele ha nem ismered az ilyen hibát. :D :D
-
public Log(filename[],string[])
{
new entry[256], fileurl[256];
format(entry, sizeof(entry), \"%s\\n\",string);
new File:hFile;
format(fileurl,sizeof(fileurl),\"Logs/%s\",filename);
hFile = fopen(fileurl, io_append);
fwrite(hFile, entry);
fclose(hFile);
}
itt a módosított kód...ez sajnos nem teljesen optimalizált de a célnak megfelelõ...
És mikor a Logs mappa nincs létrehozva a jelenlegi samp úgy crashel hogy azt se fogod tudni mi a baja. És vagy 3 4 órát elcseszhetsz vele ha nem ismered az ilyen hibát. :D :D
[/quote]
ne a szerverlogba írja bele a szerver, hanem a mondjuk egy Logs mappában egy Ban_Log.txt-be írja?
[/quote]
:)
-
Köszi minden segítõ kéznek, fõleg neked Ricsi :)
-
Akkor újra:
És mikor a Logs mappa nincs létrehozva a jelenlegi samp úgy crashel hogy azt se fogod tudni mi a baja. És vagy 3 4 órát elcseszhetsz vele ha nem ismered az ilyen hibát. :D :D
[/quote]