Névmentő

Indította blackdog476, 2014. november 28. - 22:10:20

Előző téma - Következő téma

blackdog476

Ü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. :D
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: http://i.imgur.com/FDj5qas.png\" alt=\"FDj5qas.png\" />
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;
}

ZyZu.

Jó lett! Szerintem régi nevek előásásért kérte.. ( aka system ), viszont MySQL -ben sokkal jobb.  :$  ;)

Flash

Egyefene lehetsz az utódom  8)


ZyZu: Minek ide mysql? Az alap fájlkezelő is megteszi, akinek meg mysql-es a szervere annak az aka rendszere is valószínű mysql-es és megtudta írni.
szép munka blackdog476

blackdog476


BoOy

Idézetet írta: ƒlaﻛh date=1417209756\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51553\" data-ipsquote-contentclass=\"forums_TopicEgyefene lehetsz az utódom  8)
 
Ha már én is megengedtem neked.... :$
Szép munka blackdog476 :)  ^-^

blackdog476


Athos005

blackdog476 nagyon szépen köszönöm hogy rám szántad az idődet  ;D ++! Zyzu amit írt hasonlóra szeretném felhasználni! 

blackdog476

Nincs mit, örülök, hogy segíthettem :)

Th0mas


Chrispapa


[GA]MER

Ennye pont kellett egy ilyen, köszi a feltöltést! :)

Dani99

Szerintem is jó lett.