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! (tablica jest zbiorem elementów TEGO SAMEGO TYPU! Nie możesz w jednej komórce przechować liczbę zmiennoprzecinkową, a w drugiej boolean, tak w roli ścisłości)
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: 0
0 użytkowników, 0 gości, 0 anonimowych