Tabela doświadczenia jak zrobić? umiem tylko na ifach

0

witam, w jaki sposób w c++ mogę to

if(lv = 1){
return (200);

przerobić do tabeli expa?
naprzyklad

{
1 = 200,
2 = 400,
3 = 1000,
4 = 3000
}
0

Zrób tablicę (poczytaj o c++ array) i w funkcji np "getLevelExperienceCap(tutaj nr levelu jako parametr)" zwracaj to co masz pod danym indeksem. Pamiętaj też o tym ze indeksy są liczone od zera, a levele od jedynki.

0

zadnej tablicy nie rob uzyj std::map

1
	int arr[] = {200, 400, 1000, 3000};
	int level = 2;
	int exp = arr[level - 1];
	cout << "For level " << level << " exp is = " << exp << endl;

https://ideone.com/t0teTR

A tak w ogóle to poczytaj o http://www.cprogramming.com/tutorial/stl/stlmap.html

0
vpiotr napisał(a):
	int arr[] = {200, 400, 1000, 3000};
	int level = 2;
	int exp = arr[level - 1];
	cout << "For level " << level << " exp is = " << exp << endl;

https://ideone.com/t0teTR

A tak w ogóle to poczytaj o http://www.cprogramming.com/tutorial/stl/stlmap.html

próbowałem na różne sposoby zawsze zwraca mi zero

nie wiem czy to istotne jest ale robie to wśrodku tego

exp_t getExpForLv(const int32_t& lv) const
{

}
0

@vpiotr: ok działa, wina kompilatora.musiałem przebudować,
ale jest jedno ale.
w grze jak się zaloguję wszystko świetnie jest.
mam lv 1 ustawie lv 2 w bazie
zrobie relog
i wywala .exe

0

@vpiotr: po relogu wywala aplikacje.
tak to zrobione mam

	 exp_t getExpForLv(const int32_t& lv) const
{	
exp_t x = lv;
	int arr[] = {
		300, 
		500, 
		1000, 
		3000, 
		1, 
		2, 
		3, 
		4, 
		5
};
	int zwracam_tabele_expa = arr[x];
	return zwracam_tabele_expa;
	}
0

@vpiotr:
zmieniłem teraz poprawnie zwraca exp, ale dalej po wylogowaniu i wejsciu do gry wywala apke,

może to przez tego const?

	 exp_t getExpForLv(const int32_t& lv) const
{	
	int arr[] = {
		300,     //0 
		500,     //1
		1000,    //2
		3000,    //3
		1, 
		2, 
		3, 
		4, 
		5
};
	int zwracam_tabele_expa = arr[lv - 1];
	return zwracam_tabele_expa;
	}

1 użytkowników online, w tym zalogowanych: 0, gości: 1