Üdv!
Megpróbáltam egy fórumozó kérését teljesíteni, hát ez lett belőle.
Nem tudtam mire szeretné használni, így még mindig értelmetlen számomra a script, dehát ez van.
Ez a script tulajdonképpen annyit tesz, hogy a betöltődésekor létrehoz egy fájlt (ha nincs még), két parancsa van: /nevlista, /nevment. A névlistával kilistázza az elmentett neveket, a névmenttel pedig elmenti azt.
Lehetett volna másképp is / egyszerűbben, de most a dini-nek a beállító/lekéregetős módszerét alkalmaztam, tehát így néz ki a fájl:
MennyiNév=3
1=blackdog476
2=pista
3=teszt
És így írja ki:
Idő: ~10perc (sokat szenvedtem vele)
Kód:
#include <a_samp>
#include <zcmd>
#include <dini>
#define FAJL \"nevlista.txt\"
#define PREFIX \"[Névmentő]\"
#define DEBUG //minden egyes műveletnél leellenőrzi, hogy létezik-e a fájl. Kikapcsoláshoz: sor elejére-> //
#define STRING1 \"{00ff00}[NÉVMENTŐ]{ff0000} Nevek betöltése..\"
#define STRING2 \"{00ff00}[NÉVMENTŐ]{ff0000} Név mentése...\"
#define STRING3 \"{00ff00}[NÉVMENTŐ]{ff0000} Név elmentve!\"
stock checkFile() {
if (fexist(FAJL)) {
print(\"\"PREFIX\" Fájl metalálva.\");
} else {
print(\"\"PREFIX\" Nem található fájl (\"FAJL\")!\");
print(\"\"PREFIX\" Fájl létrehozása...\");
new File:h = fopen(FAJL,io_write);
if(h) { fwrite(h,\"MennyiNév=0\"); fclose(h); print(\"Fájl létrehozva!\"); }
else print(\"Fájl létrehozása sikertelen!\");
}
}
CMD:nevment(playerid) {
#if defined DEBUG
checkFile();
#endif
SendClientMessage(playerid,-1,STRING2);
new mennyi = dini_Int(FAJL,\"MennyiNév\");
new string[4];
new name[24];
GetPlayerName(playerid,name,24);
valstr(string,mennyi+1);
dini_Set(FAJL,string,name);
dini_IntSet(FAJL,\"MennyiNév\",mennyi+1);
SendClientMessage(playerid,-1,STRING3);
return 1;
}
CMD:nevlista(playerid) {
SendClientMessage(playerid,-1,STRING1);
new kimenet[128+16]; //max chat karakterek
new mennyi = dini_Int(FAJL,\"MennyiNév\");
new a[4],b[32];
for(new i=1; i<=mennyi;i++) {
format(a,4,\"%d\",i);
format(b,32,\"%s, \",dini_Get(FAJL,a));
strcat(kimenet,b);
}
SendClientMessage(playerid,-1,kimenet);
return 1;
}
public OnFilterScriptInit() {
checkFile();
return 1;
}