Szerző Téma: Dinivel lehetséges?  (Megtekintve 1530 alkalommal)

Nem elérhető ROOCK

  • 183
    • Profil megtekintése
Dinivel lehetséges?
« Dátum: 2015. Augusztus 19. - 18:56:31 »
0 Show voters
Üdv Ferumozók! :)
Valahogy lehetséges hogy dinivel kiolvassuk a létező fileok(egy mappán belüli) nevét? tehát
pl van egy mappám hogy users és azon belül van pl 10 file
pl player1.ply player2.ply player3.ply... igy tovább
és ezeket valahogy kilistázni egy parancsal mert a dininek van egy olyan része ami azt nézi hogy létezik e a file és ha létezik az a file aminek minden karakter minden szám a neve azt irja ki...
jó ez egy kicsit bonyolultan hangzik dióhéjban
mappábol fileok nevét kilistázni (csak a címeket)
remélem valamennyire értitek és remélem megvalósítható :D köszi előre is a segítséget :D
« Utoljára szerkesztve: 2015. Augusztus 19. - 18:57:05 írta Flash »

Dinivel lehetséges?
« Válasz #1 Dátum: 2015. Augusztus 19. - 22:31:11 »
0 Show voters
Valahogy biztos, ha csak player1 player2 meg ilyesmiket akarsz akkor for ciklussal könnyen meglesz. De am karakter mentésnél elég a karakter nevét menteni, és akkor a nevét kérdezed le hogy létezik-e olyan fájl.

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Dinivel lehetséges?
« Válasz #2 Dátum: 2015. Augusztus 19. - 23:04:25 »
0 Show voters
Lehetséges, lekérdezel minden játékos fájlt majd betöltöd egy ciklussal. Sok mindent nem lehet megcsinálni dini segítségével, de még a regisztrációs számot is le lehet kérdezni mert megoldották, csak hosszú a kódok ennyi a dini hátránya, meg persze lassú mint a szemét.
http://wiki.sa-mp.com/wiki/Control_Structures#for_.28.29
http://sampforum.hu/index.php?topic=3075.0
 
dini_Get(filename[], key[])

Nem elérhető divkn

  • 3259
    • Profil megtekintése
Dinivel lehetséges?
« Válasz #3 Dátum: 2015. Augusztus 19. - 23:11:49 »
0 Show voters
Elég szűkösek a funkciók, szóval ezt egyszerűbben csak úgy lehet megoldani hogy létrehoztatsz egy szöveges dokumentumot, és ebben pedig egymás alá felsorolod a regisztrált tagok fájl neveit és fread-al pedig kiolvasod.
 

new name[MAX_PLAYER_NAME];
new File:file = fopen(\"nevek.txt\",io_read);
if(file)
{
  while(fread(file,name))
  {
    printf(\"%s\",name);
  }
}

Nem elérhető ROOCK

  • 183
    • Profil megtekintése
Dinivel lehetséges?
« Válasz #4 Dátum: 2015. Augusztus 20. - 09:08:49 »
0 Show voters
Norbinator nen csak player 1 player 2 szeretnek hanem az osszes nevet amu regisztralva van
Zyzu ha betoltok minden egyes fajlt azzal ugy leterhelnem a servert ahogy csak lehet es amikor beirjak ezt a parancsot akkor elkezdene laggolni ,erre mar gondoltam en is de ezt ki is ejtettem
Divkn erre is gondoltam már de nem tudom h ha pl egy felhasznalot torlok azt hogy keressem meg a fileon belul es toroljem?
Tehát azt értem h ha regizik belerak egy + sort a nevével de ha pl cheatel vagy szabalyt szeg es bannolom akkor hogy keresem meg az ő nevét és torlom?
DE amugy ezeket meglehet sinalni valami gyorsabb filekezelobe? Most hirtelrn nem vagyok bene biztos asszem a dfile a leggyorsabb passz :)
« Utoljára szerkesztve: 2015. Augusztus 20. - 09:18:17 írta ROOCK »

Dinivel lehetséges?
« Válasz #5 Dátum: 2015. Augusztus 20. - 11:15:51 »
0 Show voters
Te írtál ilyen player1,2,3 azt hittem RegID-re gondolsz annál a résznél...

Nem elérhető ROOCK

  • 183
    • Profil megtekintése
Dinivel lehetséges?
« Válasz #6 Dátum: 2015. Augusztus 20. - 12:03:36 »
0 Show voters
ja neem ugy értettem a player1,2,3 at hogy playerid hanem playerek pl ROOCK John_Alfred... etc.

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Dinivel lehetséges?
« Válasz #7 Dátum: 2015. Augusztus 20. - 16:36:43 »
0 Show voters
Van egy másik megoldás!!!
http://forum.sa-mp.com/showthread.php?t=92246
Van ez a File Manager plugin.
Ennek használatával:
 
new dir:dHandle = dir_open(\"./scriptfiles/users/\");
new item[40], type;
while(dir_list(dHandle, item, type))
{
    if(type == FM_FILE) printf(\"%s is a file\", item);
    else if(type == FM_DIR) printf(\"%s is a directory\", item);
}
dir_close(dHandle);

 
Vágod? :)
« Utoljára szerkesztve: 2015. Augusztus 20. - 21:33:07 írta skyLine »

Nem elérhető ROOCK

  • 183
    • Profil megtekintése
Dinivel lehetséges?
« Válasz #8 Dátum: 2015. Augusztus 20. - 20:11:02 »
0 Show voters
nem ezt nem vágom de elkezdem tanulmányozni hátha valamit kihozok belőle :D

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Dinivel lehetséges?
« Válasz #9 Dátum: 2015. Augusztus 20. - 20:58:57 »
+1 Show voters
CMD:nevek(playerid) {
new dir:dHandle = dir_open(\"./scriptfiles/users/\");
new item[40], type, string[1024];
while(dir_list(dHandle, item, type))
{
    format(string, sizeof(string), \"%s%s\\n\", string, item);
}
dir_close(dHandle);
ShowPlayerDialog(playerid, 1001, DIALOG_STYLE_LIST, \"Regisztrált játékosok nevei\", string, \"Mégse\", \"Mégse\");
return 1;
}
« Utoljára szerkesztve: 2015. Augusztus 20. - 21:25:53 írta skyLine »

Nem elérhető ROOCK

  • 183
    • Profil megtekintése
Dinivel lehetséges?
« Válasz #10 Dátum: 2015. Augusztus 21. - 00:40:15 »
0 Show voters
hát őőő ez izéé Unknow command valamért nem látja a parancsot vagy nem érzékeli vagy nem tudom :/

Dupla hozzászólás automatikusan összefûzve. ( 2015. Augusztus 21. - 14:53:33 )

jolvan elrontottam vmit a pluginberakásnál de most egy mégnagyobb kérdés valahogy ezekbe a fileokba belehetne lépni h kiolvassak belőle egy stringet?
« Utoljára szerkesztve: 2015. Augusztus 21. - 14:53:33 írta ROOCK »

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Dinivel lehetséges?
« Válasz #11 Dátum: 2015. Augusztus 21. - 19:03:11 »
0 Show voters
hátja
 
CMD:nevek(playerid) {
        new dir:dHandle = dir_open(\"./scriptfiles/users/\");
        new item[40], type, string[1024];
        while(dir_list(dHandle, item, type))
        {
            format(string, sizeof(string), \"%s%s\\n\", string, item);
        }
        dir_close(dHandle);
       
        ShowPlayerDialog(playerid, 1001, DIALOG_STYLE_LIST, \"Regisztrált játékosok nevei\", string, \"Kiválaszt\", \"Mégse\");
        return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
if(dialogid == 1001 && response) {
    new filename[128];
    format(filename, 128, \"accounts/%s\", inputtext);
    ///filename a fájl nevét tartalmazza (elérési útját)
}
return 1;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal