Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Ile zmiennych mozna zapisac do vault


  • Zamknięty Temat jest zamknięty
26 odpowiedzi w tym temacie

#21 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 14.02.2013 16:52

Nie jasno napisałeś i nic nie zrozumiałem. Ale podaję Ci cytat w którym jest opisane działanie tablic.

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 :P)

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 :D)[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


  • +
  • -
  • 1

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#22 Yakashi

    Wszechpomocny

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:332
  • Imię:Krzysiek
  • Lokalizacja:Public Respawn(id)
Offline

Napisano 14.02.2013 17:57

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]"

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

#23 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

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! :D (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ść.
  • +
  • -
  • 1

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#24 A może sma?

    Godlike

  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 19.02.2013 16:16

Booom:

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/

Spoiler


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
  • +
  • -
  • 1

#25 Yakashi

    Wszechpomocny

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:332
  • Imię:Krzysiek
  • Lokalizacja:Public Respawn(id)
Offline

Napisano 19.02.2013 16:49

No elegancko :D zaraz po testuje

#26 Yakashi

    Wszechpomocny

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:332
  • Imię:Krzysiek
  • Lokalizacja:Public Respawn(id)
Offline

Napisano 12.03.2013 17:52

mozna zamknac

#27 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 12.03.2013 17:55

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych