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

Zmienna przechowująca pięć rzeczy.


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

#1 Screeaam...

    ; ooo

  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.09.2010 11:18

Dobra, kolejny temat tym razem z jednym pytaniem bo niestety poprzedni został usunięty...

Jak zrobić, aby gracz mógł przechować pięć zmiennych (tak jakby itemów) i że jak wpisze komendę to mu się wyświetli menu z tymi itemami...?

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 21.09.2010 13:46

eee tablica ?
new tablica[5];
  • +
  • -
  • 1

#3 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.09.2010 13:55

ale new tablica[5] czy new tablica[33][5]?

I wykorzystanie to np:

tablica[0] = 1
tablica[1] = 1?

#4 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 21.09.2010 13:57

new aTablica[33][5];
Użycie:
aTablica[id][0] = 1;
  • +
  • -
  • 1

#5 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 21.09.2010 13:59

Może inaczej :
new tablica[33][5];

tablica[id] = {1,2,3,4,5};

wtedy :
tablica[id][0] == 1
tablica[id][1] == 2
tablica[id][2] == 3
itd.
  • +
  • -
  • 1

#6 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.09.2010 14:12

Może inaczej :
new tablica[33][5];

tablica[id] = {1,2,3,4,5};

wtedy :
tablica[id][0] == 1
tablica[id][1] == 2
tablica[id][2] == 3
itd.


tablica[id] = {1,2,3,4,5}; Gdzie to dać i po co to?

Rozumiem, że maks posunięcia to:

tablica[id][0] == 1
tablica[id][1] == 2
tablica[id][2] == 3
tablica[id][3] == 4
tablica[id][4] == 5

Maks mogę tak zrobić?

I jak jeszcze do tego dodać, że jak gracz dostanie jakiś item to do tego właśnie dobierana jest automatycznie pierwsza wolna zmienna? Czyli np. Gracz ma item ze zmeinną coś[id] i równocześnie dobiera do tego tablica[id][0] = 1?

Użytkownik Screeaam... edytował ten post 21.09.2010 14:15


#7 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 21.09.2010 14:15

[Kurs C++] VI. Tablice zmiennych
jeszcze coś ?
  • +
  • -
  • 1

#8 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.09.2010 14:22

Tak: ;P


I jak jeszcze do tego dodać, że jak gracz dostanie jakiś item to do tego właśnie dobierana jest automatycznie pierwsza wolna zmienna? Czyli np. Gracz ma item ze zmeinną coś[id] i równocześnie dobiera do tego tablica[id][0] = 1?

#9 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 21.09.2010 14:52

new aTablica[33][5];

for(new i = 0; i < 5; i++)
{
if(!aTablica[id][i])
return i;
}

Można tak, a można jeszcze dorobić kolejną zmienną i ją inkrementować przy dostaniu itemu i jeśli zmienna == 5 resetujemy ją i jedziemy od nowa, bądź blokujemy danie kolejnego itemu.
Druga metoda jest zdecydowanie optymalniejsza.

Użytkownik Owner123 edytował ten post 21.09.2010 14:53

  • +
  • -
  • 1

#10 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.09.2010 15:10

new aTablica[33][5];

for(new i = 0; i < 5; i++)
{
if(!aTablica[id][i])
return i;
}

Można tak, a można jeszcze dorobić kolejną zmienną i ją inkrementować przy dostaniu itemu i jeśli zmienna == 5 resetujemy ją i jedziemy od nowa, bądź blokujemy danie kolejnego itemu.
Druga metoda jest zdecydowanie optymalniejsza.



Możesz podać przykład z drugim sposobem?

#11 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 21.09.2010 15:35

new g_aTablica[33][5];
new g_iItemNum[33];

AwardItem(id, itemnum = 0)
{
//aby nie dostać Index out of bounds
if(g_iItemNum[id] >= 5)
return;

// zdobywa item o jakimś id
g_aTablica[id][g_iItemNum[id]] = itemnum;
//inkrementujemy zmienną kontrolną
g_iItemNum[id]++;

return;
}

  • +
  • -
  • 1

#12 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.09.2010 15:46

g_iItemNum[id]


Zmienna przechowująca itemy / nazwy itemków?

#13 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 21.09.2010 15:50

Zmienna przechowująca ilość itemów.
id itemów przechowuję g_aTablica[id]

Użytkownik Owner123 edytował ten post 21.09.2010 15:50

  • +
  • -
  • 1

#14 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.09.2010 15:57

No ok, ale jak teraz dodać np. 20 itemków i żeby maks można było mieć pięć?

#15 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 21.09.2010 16:14

new g_aTablica[33][5];
new g_iItemNum[33];

AwardItem(id, itemnum = 0)
{
//aby nie dostać Index out of bounds
if(g_iItemNum[id] >= 5)
return;

//jakis switch z 20 itemami

// zdobywa item o jakimś id
g_aTablica[id][g_iItemNum[id]] = itemnum;
//inkrementujemy zmienną kontrolną
g_iItemNum[id]++;

return;
}

DropItem(id)
{
//resetujemy zmienne dotyczące itemów

//teraz nie mamy żadnego itemu, wiec resetujemy
g_iItemNum[id] = 0;

//resetujemy również naszą tablice z id itemow
for(new i = 0; i < 5; i++)
g_aTablica[id][i] = 0;
}


Ew. można wywalić switcha za to zrobić tablice gracza z 20 elementami (po 1 dla kazdego itemu)
new g_aTablica[33][20];
new g_iItemNum[33];

AwardItem(id, itemnum = 0)
{
//aby nie dostać Index out of bounds
if(g_iItemNum[id] >= 5)
return;

// zdobywa item o jakimś id
g_aTablica[id][itemnum] = 1;
//inkrementujemy zmienną kontrolną
g_iItemNum[id]++;

return;
}

DropItem(id)
{
//teraz nie mamy żadnego itemu, wiec resetujemy
g_iItemNum[id] = 0;

//resetujemy również naszą tablice z id itemow
for(new i = 0; i < 20; i++)
g_aTablica[id][i] = 0;
}

Użytkownik Owner123 edytował ten post 21.09.2010 16:16

  • +
  • -
  • 1

#16 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.09.2010 16:16

No tak, ale gdzie mam te itemy wsadzić, żeby mógł je wziąć?

#17 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 21.09.2010 16:18

W sumie to tutaj masz gotowca, jedyne co musisz zrobić, to dodać jakieś nazwy + moce.
Ew. pokaż swoją funkcje od dostawania itemów.

Użytkownik Owner123 edytował ten post 21.09.2010 16:18

  • +
  • -
  • 0

#18 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.09.2010 16:38

No tak, ale gdzie mam dodać moje itemy żeby one były kompatybilne z tym wyżej?




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

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