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
StreamPay.pl - Legalna platforma do dotacji dla streamerów i twórców
#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 0Czy 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,
raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.Z pozdrowieniami,
Zespół AMXX.PL
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych


Dodatki SourceMod



Temat jest zamknięty









