Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|

Zapisywanie - Odczytywanie z/do pliku.
#1
Napisano 27.07.2011 23:53
#2
Napisano 28.07.2011 01:07
i
str_to_num - odczyt liczby (kownertuje string na liczbe)
num_to_str - zapis liczby (konwertuje liczbe na string)
💸 SellYourSkins.com - Łatwo sprzedaj swoje skiny do CS:GO
💸⇄🃏 Automatyczny Bot Levelowania Steam - LVLUPSteam.com
🛒Coinsy CSGOPolygon Za SMS, PSC, Przelew - CoinSell.pro
Twój Sklep CS2 - CSGOPAKA
Coinsy do CSGOPolygon, CSGO500, CSGOEmpire - CSGOLombard.com
💸 Graj w CS2 / CS 1.6 i zarabiaj - BoostProject.pro
CS2 Gambling Sites and Free Betting Codes - DreamCodes.gg
Otwieraj skrzynki i wygrywaj najlepsze skiny CS2 na SkinsProject.gg
🤑 Accept CS2 skins for online payments and donations - SkinsMoney
Płatności SMS Premium Rate oraz Direct Biling - SimPay.pl
Szukasz noclegu? Kwatery, noclegi, tanie noclegi, wakacje oferty, wczasy nad jeziorem - RuszajWPolske.pl
#3
Napisano 05.08.2011 19:14
Wiec załóżmy że wcześniej utworzyłem plik tekstowy w cstrike o BAZAR i chciałbym do niego zapisać:
new ilosc_pieniedzy[32], nazwa_gracza[32][128] nazwa[id] = str_to_num(nazwa_gracza); ilosc[id] = str_to_num(ilosc_pieniedzy);
write_file("BAZAR.txt", "Nazwa gracza: %i Ilosc pieniedzy: %s",nazwa[id],ilosc[id]);//linia 0
Czy to starczy?
#5
Napisano 07.08.2011 14:45
formatex(nazwa_gracza[0] ,sizeof(nazwa_gracza) - 1 ,Nie wiem co tutaj...) formatex(ilosc_pieniedzy[0] ,=sizeof(ilosc_pieniedzy) - 1 ,Nie wiem co tutaj...)
#6
Napisano 07.08.2011 14:48

static szLine[64]; formatex(szLine, charsmax(63), "Nick = %s, kasa = %d", nazwa_gracza[0], str_to_num(ilosc_pieniedzy[0])); write_file("Bazar.txt", szLine);
#7
Napisano 07.08.2011 14:54
Zapiszę mi to wszystko w jednej linijce ?
I jeszcze jakbym mógł sprawdzić ile jest lini w tym pliku tekstowym (ilość linijek potrzebna mi jest do pętli w menu

#9
Napisano 07.08.2011 15:13
Czy to menu które będzie dodawało co linie jedną opcje w menu zadziała : ?
public XXX(id) { if(is_user_bot(id)) return PLUGIN_CONTINUE; iSize = file_size("Bzar.txt", 1); new text[512] new menu = menu_create("Menu :","YYY") menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); for(new i=0;i<iSize;i++) { formatex(text, 511,"Nick: %s Ilosc: %i",nazwa[i], ilosc[i]) menu_additem(menu,text) } menu_display(id,menu,0) return PLUGIN_CONTINUE; } public YYY(id,menu,item) { if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: { Tutaj chcialbym bo to 1. linia zeby z niej odejmowalo ilosc[id] z kasy. Czyli wybieram pierwsza opcje o odejmuje mi ilosc[id] z kasy. } case 1: { To samo tylko tutaj juz z drugiej lini. } menu_destroy(menu); return PLUGIN_CONTINUE; }
Tylko mam jeszcze wątpliwości co do tworzenia case 0 , case 1 itd...bo ja nie bd. wiedział ile ich jest wiec chyba tez bd. trzeba petle...
Wcześniej przed wyświetleniem menu bd. trzeba odczytać tez z pliku chyba

#10
Napisano 07.08.2011 15:20
new fp=fopen("Bazar.txt", "rt"); while(!feof(fp)){ fgets(fp, szLine, 63); }
wystarczy że item >= 0 i wtedy możesz użyć write_file(plik, linia, item)
Dlaczego nie użyjesz nvault?
#11
Napisano 07.08.2011 15:24
Po prostu nie bd. wiedział ile jest opcji...
A jeżeli mam nick mogę jakoś sprawdzić czy dany gracz jest na serwerze i np. ustawić mu xxx[id]=1 ?
Myślałem że z nvault więcej roboty

Użytkownik KariiO edytował ten post 07.08.2011 15:26
#12
Napisano 07.08.2011 15:30
new player = find_player ( "a", "KariiO") ; if(player){ xxx[player] = 10000; }
#13
Napisano 07.08.2011 15:36
Nazwa:przyklad1 Ilosc:przyklad1 Nazwa:przyklad2 Ilosc:przyklad2 // <- całą tą linie ma usunąć...
Wraz z enterem bo nie chciałbym takiego efektu:
Nazwa:przyklad1 Ilosc:przyklad1
#14
Napisano 07.08.2011 15:46
#15
Napisano 07.08.2011 15:49
Przykładowo mam przedmiot wystawiam go na bazar za konkretną ceną. W tym momencie przechowuję nick swój w celu wyrzucenia mi tego itemu po wylicytowaniu go przez kogoś innego na bazarze + dania mi kasy za wylicytowanie go , cenę aby wyświetlało w menu , i id przedmiotu aby po prostu dać go osobie która go wylicytowała)
Menu ma być żeby można było licytować.
#16
Napisano 07.08.2011 17:35
W ten sposób w tablicy możesz robić co chcesz,a dane będą automatycznie przenoszone na nową mapę.
Dołączam tę nieco wolniejszą, ale przystępniejszą (bo tekstową) wersję serializacji
#17
Napisano 07.08.2011 17:46
Dzięki wielkie , nie wiedziałem że można tak zrobićŁatwiej to zrobić z użyciem zwykłych tablic. Jak chcesz mieć te aukcje zapisywane co mapę to serializuj je w pliku przy każdej operacji dodaj/usuń. Do serializacji możesz użyć fwrite_blocks i fread_blocks.
W ten sposób w tablicy możesz robić co chcesz,a dane będą automatycznie przenoszone na nową mapę.
Dołączam tę nieco wolniejszą, ale przystępniejszą (bo tekstową) wersję serializacjiSpoiler

Wielki +
Bd. miał czas zobaczę czy się w tym odnajdę

#18
Napisano 08.08.2011 20:25
Ten temat został zamknięty przez moderatora.
Powód: Rozwiązane
Jeśli się z tym nie zgadzasz,

Z pozdrowieniami,
Zespół AMXX.PL
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych