←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

zapis nickow do pliku

  • +
  • -
Joke's Photo Joke 17.02.2012

Witam mam takowy problem, potrzebuję sposob na zapis samych nickow jeden pod drugim do pliku, gdyz chcę zeby dalo się wyswietlić to jako "motd", zapis do pliku potrafię zrobić ale jest tam nawalone trochę niepotrzebnych informacji, nie wiem jaki kod dać żeby zapisywało same nicki. I drugie zapytanie czy da radę żeby drugi raz nie zapisywało do pliku danego nicku , Pozdrawiam proszę o pomoc Dołączona grafika
Quote

  • +
  • -
ImSpY's Photo ImSpY 17.02.2012

Czyli tylko chcesz zapisać nicki do pliku?

/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("zapisz_nicki", "zapis", ADMIN_BAN, "Zapis nickow do pliku")
}
public zapis(){
new gracze[32],ilosc,nick[33];
get_players(gracze,ilosc);
for(new i=0;i<ilosc;i++){
get_user_name(gracze[i],nick,32);
write_file("nicki.txt",nick);
}
}

To po wpisaniu w konsoli zapisz_nicki dopisze do pliku nicki.txt graczy aktualnie będących na serwerze.
Co do zapisywania tylko raz - wystarczy sprawdzić czy w pliku jest już taki nick - użyjesz read_file i equali / equal i zalatwione.
Edited by ImSpY, 17.02.2012 10:41.
Quote

  • +
  • -
Joke's Photo Joke 17.02.2012

dzięki za pomoc :)

hmmm a kto mi powie jak uzyc read_file zeby odczytalo wszystkie linie, a nie jedna wybrana? :)

read_file(plik, linia, tekst, 255, len)



plik-ścieżka do pliku
linia-linia którą wczytujemy
tekst-zmienna która przechowuje nam naszą wczytaną linię
len-ilość wczytanych znaków.


Edited by Joke, 17.02.2012 15:24.
Quote

  • +
  • -
Fili:P's Photo Fili:P 17.02.2012

petla lecisz po calym pliku
Quote

  • +
  • -
DarkGL's Photo DarkGL 17.02.2012

Dokumentacja AMXX.pl: Core >> file > read_file

masz tam przykład użycia

//Wypisuje w konsoli zawartość pliku cstrke/liblist.gam linia po linii

new szLine[32], iLen;
for(new i=0;read_file("liblist.gam", i, szLine, 31, iLen);i++){
	log_amx("%s", szLine);
}
Quote

  • +
  • -
Joke's Photo Joke 17.02.2012

wielkie dzięki za pomoc :)

jeszcze jeden mały problemik do rozwiązania, mam taki kod i chcę jakiś większy odstęp pomiędzy nickami dlatego też spróbowałem tak:

write_file(plik, ("%s  |  ",nick));

no ale nic z tego nie wyszlo i nadal zapisuje sam nick , jakaś porada ? :P
Quote

  • +
  • -
ImSpY's Photo ImSpY 18.02.2012

Czym edytujesz text? Notatnikiem? Jak otworzysz w notepad++ to będzie linia pod linią :D
Quote

  • +
  • -
Joke's Photo Joke 18.02.2012

wordpad ;d da rade jakos zrobic odstepy wieksze ? bo linia bod linia tez mi za bardzo nie pasi ;P
Edited by Joke, 18.02.2012 00:34.
Quote

  • +
  • -
Joke's Photo Joke 18.02.2012

a z reszta juz nie potrzeba ;d dalem

write_file(plik, ("%s",nick));
write_file(plik, " ,");

i tyle :D
Quote