Tablica jest to zbiór zmiennych tego samego typu, np. zamiast dla każdego gracza robić osobną zmienną
new zmienna1, zmienna2, zmienna3, zmienna4, zmienna5; //itd.
można zebrać te zmienne do "kupy" (wygodniejsze)
new tablica[33] //max 32 graczy +1(dla wygody ponieważ tablica indeksowana jest od 0, czyli indeksy tej tablicy
//to 0,1,2,3,4,...,32 i na tym koniec, czyli razem 33 indeksy)
//i możemy sobie przypisać dane
tablica[4] = 5
tablica[id] = 99 //pod id kryje się index gracza, czyli od 1 do 32 i 0 jako serwer
Oczywiście można też zrobić tablice wielowymiarowe, lecz obrazowo Ci tego nie przedstawie (coś ala arkusz w Excel'u, czyli masz wymiar x i y, np. wykres drogi od czasu z fizyki)[poszukaj sobie jakiś poradnik o tablicach wielowymiarowych dla c++, tam powinny być obrazki dla lepszego ogaru]
I tu przykład, aby nie robić kilku osobnych zmiennych tego samego typu dla jednego gracza można utworzyć tablicę dwu wymiarową
new tablica[33][4] //chcemy aby dla każdego gracza zapisywało 4 różne wartości
//przypisanie wartości (przykład)
tablica[id][0] = 2
tablica[id][1] = 22
tablica[id][2] = 222
tablica[id][3] = 2222
Oczywiście można połączyć ze sobą enum i tablice (po prostu zamienisz nic nie mówiące Ci liczby na nazwy które skojarzysz)
enum {none=0, Mag, Mnich, Paladyn}
new exp_kazdej_klasy[33][4] // W tutorialu o strukturach jest lepiej opisane połączenie enum+tablic
//(daję tylko najprostszy przykład)
exp_kazdej_klasy[id][none] = 0
exp_kazdej_klasy[id][Mag] = 5424
exp_kazdej_klasy[id][Mnich] = 1564
exp_kazdej_klasy[id][Paladyn] = 348
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.
|

Ile zmiennych mozna zapisac do vault
#21
Napisano 14.02.2013 16:52
Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !
#22
Napisano 14.02.2013 17:57
pierwsza "tablica" [2] tak ? - odpowiada za nie [1] , tak [2] (false ,true tjb)
druga [25] za 24 bronie ktore sa
trzecia [33] oczywisce za gracza
i chodzi mi o taki zapis
tworze tablice zeby uporzadkowac sobie wszystkie 24 bronie np
enum : glock,usp,deagle,p228 itp ...
i moje [25] w zmiennej po kolei odpowiada za kazda bron tak jak zapisalem w enumie
a od [2] mi chodzi aby sie zmienialo w zaleznosci od jakiegos mojego if'a (oczywiscie na poczatku kodu przyjmuje wartosc zmienna[1]<-- na false[25][33] )
i gdy w kodzie wstawie ze za cos tam dostaje zmienna sie zmienia na [2](czyli na tak) ale z indeksem jakiejs broni ktora mam czyli np "zmienna[2][1][33]"
W finale chce zeby mi wyszlo ze Gdy :
Zmienna [2]<-- bedzie na tak [1] <-- pierwsza bron z enum(glock)[33]<-- tutaj id gracza... to gdy ten warunek sie spelni to gracz dostanie Glocka
Zwiezle i na temat
Zmienna [2][25][33]
[2] - (Gdy gracz np. uzyska 10 fragow to sie przelacza)
[25] - (Tu w tym jest index broni.. chodzi mi o to aby bylo wiadomo jaka bron jest ustawiona na [2] czyli na "tak" to ta bron jest dostepna dla gracza
[33] - ( tu najproszte zapisuje to wszystko dla gracza)
Nie wiem jak to inaczej napisac ;]
W Metin modzie widzialem takie cos podobnego
Moje Prace:
[CoD Nowy] Dodatkowy Exp na wybranych mapach > http://cs-24h.eu/index.php?/topic/21-dodatkowy-exp-na-wybranych-mapach/
[Perk] KameHameHa > http://cs-24h.eu/index.php?/topic/108-kamehameha/#entry408
[Perk] Handlarz Smierci > http://cs-24h.eu/index.php?/topic/109-handlarz-smierci/
#23
Napisano 19.02.2013 12:46
potrzebuje zmienna takiego typu zmienna [2][25][33]
pierwsza "tablica" [2] tak ? - odpowiada za nie [1] , tak [2] (false ,true tjb)
druga [25] za 24 bronie ktore sa
trzecia [33] oczywisce za gracza
i chodzi mi o taki zapis
tworze tablice zeby uporzadkowac sobie wszystkie 24 bronie np
enum : glock,usp,deagle,p228 itp ...
i moje [25] w zmiennej po kolei odpowiada za kazda bron tak jak zapisalem w enumie
a od [2] mi chodzi aby sie zmienialo w zaleznosci od jakiegos mojego if'a (oczywiscie na poczatku kodu przyjmuje wartosc zmienna[1]<-- na false[25][33] )
i gdy w kodzie wstawie ze za cos tam dostaje zmienna sie zmienia na [2](czyli na tak) ale z indeksem jakiejs broni ktora mam czyli np "zmienna[2][1][33]"
Numer pierwszego wymiaru raczej jest adresem komórki w której jest zapisana wartość (liczba, znak, wartość logiczna).
(cześć jestem gońcem i wypełniam komórkę C6, możesz opróżnić tę komórkę "pamięci" kopiując mnie do zmiennej pomocniczej, usunąć wartosc w komórce i umieścić mnie w wolnej komórce stosując zasady gry, np. B4)
Jeżeli potrzebujesz tablicy typu boolean do zapisania czy gracz odblokował daną broń to ją stwórz!

Jeżeli chodzi Ci o zapytanie czy odblokował daną broń wystarczą dwa wymiary, pierwszy to gracze, a drugi bronie, przykład:
odblokowal[id][glock] = true
(id - indeks gracza, glock - przyjmijmy że to enum)
To samo z odczytem etc.
Przykładowo do zapisu i odczytu cen broni dla poszczególnego gracza stworzysz tablice o tych samych wymiarach tylko że typ danych bedzie liczbą całkowitą bądź zmiennoprzecinkową.
(przykład tablicy trójwymiarowej - gracze w cs i pewnie też Ty siedzący na krześle/rumaku, jeżeli przyjmiemy że chcemy cię odszukać podajemy położenie, czyli wartości na osiach x, y, z)
Pisane z telefonu i dawno pluginów nie pisałem, proszę o wyrozumiałość.
DarkGL to mój autorytet.
skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować
#24
Napisano 19.02.2013 16:16
enum weapons { glock = 0,
usp, p228, dgl, es57, elite, uzi, tmp, mp5, ump, p90, m3, xm, ak, galil, m4, famas, sg552, aug, scout, awp, g3sg1, sg550, m249 }
new bool:unlocked_weapons[33][weapons]
public ZapiszBronie(id)
{
new vaultkey[64], vaultdata[256], temp[2];
formatex(vaultkey, 63, "%s-wpn", nazwa_gracza[id]);
for(new i = 0; i < _:weapons; i++)
{
formatex(temp, sizeof(temp), "%i#", unlocked_weapons[id][weapons:i])
add(vaultdata, sizeof(vaultdata), temp)
}
nvault_set(w_vault,vaultkey,vaultdata);
}
public WczytajBronie(id)
{
new vaultkey[64], vaultdata[256];
formatex(vaultkey,63,"%s-wpn", nazwa_gracza[id]);
nvault_get(w_vault,vaultkey,vaultdata,255);
new danegracza[weapons][2];
explode(vaultdata, '#', danegracza, weapons, 1);
for(new i = 0; i < _:weapons; i++)
{
unlocked_weapons[id][weapons:i] = danegracza[weapons:i][0] == '1' ? false : true;
}
}
stock explode(const string[],const character,output[][],const maxs,const maxlen)
{
new iDo = 0;
new len = strlen(string);
new oLen = 0;
do
{
oLen += (1+copyc(output[iDo++],maxlen,string[oLen],character))
}
while(oLen < len && iDo < maxs)
}
Zakładam, że działa, nie testowałem, bo nie ma jak ;F Kompilować się kompiluje, więc myślę, że problemów nie będzie

Niezbędne rzeczy:
Pojęcie o zmiennych i tablicach.
http://amxx.pl/topic...-troche-o-enum/
http://amxx.pl/topic/42028-struktury/
Dodatkowo:
http://amxx.pl/topic/28415-typ/
W kodzie jest dużo dziwnych rzeczy, np. _:cośtam - zbytnio się tym nie przejmuj ;D Jest to wymagane, by nie było ostrzeżeń przy kompilacji
#25
Napisano 19.02.2013 16:49

Moje Prace:
[CoD Nowy] Dodatkowy Exp na wybranych mapach > http://cs-24h.eu/index.php?/topic/21-dodatkowy-exp-na-wybranych-mapach/
[Perk] KameHameHa > http://cs-24h.eu/index.php?/topic/108-kamehameha/#entry408
[Perk] Handlarz Smierci > http://cs-24h.eu/index.php?/topic/109-handlarz-smierci/
#26
Napisano 12.03.2013 17:52
Moje Prace:
[CoD Nowy] Dodatkowy Exp na wybranych mapach > http://cs-24h.eu/index.php?/topic/21-dodatkowy-exp-na-wybranych-mapach/
[Perk] KameHameHa > http://cs-24h.eu/index.php?/topic/108-kamehameha/#entry408
[Perk] Handlarz Smierci > http://cs-24h.eu/index.php?/topic/109-handlarz-smierci/
#27
Napisano 12.03.2013 17:55
Ten temat został zamknięty przez moderatora.
Powód: Temat zamknięty na prośbę użytkownika.
Z pozdrowieniami,
Zespół AMXX.PL
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych