Zmienna przechowująca pięć rzeczy.
Screeaam... 21.09.2010
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...?
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...?
Screeaam... 21.09.2010
ale new tablica[5] czy new tablica[33][5]?
I wykorzystanie to np:
tablica[0] = 1
tablica[1] = 1?
I wykorzystanie to np:
tablica[0] = 1
tablica[1] = 1?
Knopers
21.09.2010
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.
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.
Screeaam... 21.09.2010
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
Screeaam... 21.09.2010
Tak:
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?
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?
Owner123
21.09.2010
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
Screeaam... 21.09.2010
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?
Owner123
21.09.2010
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;
}
Owner123
21.09.2010
Zmienna przechowująca ilość itemów.
id itemów przechowuję g_aTablica[id]
Użytkownik Owner123 edytował ten post 21.09.2010 15:50
id itemów przechowuję g_aTablica[id]
Użytkownik Owner123 edytował ten post 21.09.2010 15:50
Screeaam... 21.09.2010
No ok, ale jak teraz dodać np. 20 itemków i żeby maks można było mieć pięć?
Owner123
21.09.2010
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
Owner123
21.09.2010
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
Ew. pokaż swoją funkcje od dostawania itemów.
Użytkownik Owner123 edytował ten post 21.09.2010 16:18
Screeaam... 21.09.2010
No tak, ale gdzie mam dodać moje itemy żeby one były kompatybilne z tym wyżej?