GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: blackdog476 - 2014. november 28. - 22:10:20

Cím: Névmentő
Írta: blackdog476 - 2014. november 28. - 22:10:20
Ü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: \"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;
}
Cím: Névmentő
Írta: ZyZu. - 2014. november 28. - 22:15:06
Jó lett! Szerintem régi nevek előásásért kérte.. ( aka system ), viszont MySQL -ben sokkal jobb.  :$  ;)
Cím: Névmentő
Írta: Flash - 2014. november 28. - 22:22:36
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
Cím: Névmentő
Írta: blackdog476 - 2014. november 28. - 22:32:53
Köszi :)
Cím: Névmentő
Írta: BoOy - 2014. november 29. - 11:16:57
Idézetet írta: ƒlaﻛh date=1417209756\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51553\" data-ipsquote-contentclass=\"forums_Topic
Egyefene lehetsz az utódom  8)
 
Ha már én is megengedtem neked.... :$
Szép munka blackdog476 :)  ^-^
Cím: Névmentő
Írta: blackdog476 - 2014. november 29. - 11:41:08
Köszi :D
Cím: Névmentő
Írta: Athos005 - 2014. november 29. - 15:39:42
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! 
Cím: Névmentő
Írta: blackdog476 - 2014. november 29. - 15:43:27
Nincs mit, örülök, hogy segíthettem :)
Cím: Névmentő
Írta: Th0mas - 2014. november 29. - 15:47:12
Szép! :D
Cím: Névmentő
Írta: Chrispapa - 2014. november 29. - 18:16:17
Szép ment a +
Cím: Névmentő
Írta: [GA]MER - 2014. november 29. - 20:50:51
Ennye pont kellett egy ilyen, köszi a feltöltést! :)
Cím: Névmentő
Írta: Dani99 - 2014. december 31. - 20:47:10
Szerintem is jó lett.