marcin107 Temat założony przez niniejszego użytkownika |
Zagadka... przynajmniej dla mnie. » 2011-08-11 16:59:14 Witam, z góry uprzedzam że mogłem napisać ten temat trochę niezrozumiale bo ciężko to wytłumaczyć. Mam pewną zagadkę z którą mam problem konkretnie: Wyobraźcie sobie że jakaś broń ma 9 poziomów ulepszeń, zaczyna się od poziomu 1, i za każdym razem kiedy chce się ulepszyć o 1 jest ryzyko nie powodzenia, broń dodaje na każdym poziomie x obrażeń więcej, obrażenia zapisałem na tablicy, dodają się one w sposób, jeżeli powiedzie się ulepszenie to na pierwszym poziomie obrazeniabroni[ 9 ] = { 2, 4, 8, 16, 32, 64, 128, 256, 512 ); obrazeniafizyczne = 5; poziombroni = 1; obrazeniafizyczne = obrazeniafizyczne + obrazeniabroni[ poziombroni ] poziombroni++
a n drugim: obrazeniafizyczne = obrazeniafizyczne - obrazeniabroni[ poziombroni - 1 ] obrazeniafizyczne = obrazeniafizyczne + obrazeniabroni[ poziombroni ] Natomiast jak zrobić żeby odejmowały się wszystkie obrażenia dodatkowe z broni? Czyli powiedzmy że broń rozwaliła mi się na 5 poziomie, jak odjąć od obrażeń fizycznych obrażenia które powinna zadawać broń ? |
|
pekfos |
» 2011-08-11 17:04:43 huh? ogarnij to. |
|
marcin107 Temat założony przez niniejszego użytkownika |
» 2011-08-11 17:09:28 To inaczej, kilka deklaracji mogłem nie wypisać, ale mniej więcej będzie wiadomo o co chodzi, cel tego mieści się przy spaleniu przedmiotu, konkretnie trzeba odjąć jego obrażenia nawet jak będzie na x poziomie, a ja nie wiem jak.. int fizdmgja = 38; int sword = 0; int upgradechance[ 9 ] = { 100, 90, 80, 70, 60, 50, 40, 35, 30 }; int swordcosts[ 9 ] = { 50, 100, 200, 400, 800, 1600, 3200, 6400, 12800 }; int sworddmg[ 9 ] = { 2, 4, 8, 16, 32, 64, 128, 256, 512 };
void nmoney1() { std::cout << "Za malo zlota!\n"; Sleep( 1000 ); itemupgrades(); }
void zakupiony() { std::cout << "Nie posiadasz tego itemu!\n"; Sleep( 1000 ); itemupgrades(); }
void brakopcji() { std::cout << "Nie ma takiej opcji!"; Sleep( 1000 ); itemupgrades(); }
void surewybor() { std::cout << "Czy kontynuowac?\n"; std::cout << "1 - tak\n"; std::cout << "2 - nie\n"; std::cin >> surewybor2; if( surewybor2 == 1 ) { } else if( surewybor2 == 2 ) itemupgrades(); else brakopcji(); }
void spalony() { using namespace std; cout << "Ulepszenie itemu nie powiodlo sie!"; Sleep( 1000 ); itemupgrades(); }
void ulepszony() { using namespace std; cout << "Ulepszenie itemu powiodlo sie!\n\n"; Sleep( 1000 ); }
if( poz1 == 1 ) { cout << "Koszt upgrade na poziom +" << sword + 1 << " to " << swordcosts[ sword ] << " zlota\n"; cout << "Szansa na poprawne ulepszenie itemu to " << upgradechance[ sword ] << "%\n"; cout << "Masz " << zloto << " zlota\n"; if( zloto < swordcosts[ sword ] ) nmoney1(); surewybor(); if( surewybor2 == 1 ) { srand( time( NULL ) ); spali = rand() % 100; zloto = zloto - swordcosts[ sword ]; if( spali < upgradechance[ sword ] ) ulepszony(); else { Sleep( 2000 ); sword = 0; poz1 = 0; spalony(); } sword++; fizdmgja = fizdmgja + sworddmg[ sword ]; if( sword >= 1 ) fizdmgja = fizdmgja - sworddmg[ sword - 1 ]; itemupgrades(); } } else zakupiony(); |
|
pekfos |
» 2011-08-11 17:13:17 zapisz sobie jakie były na początku i przywróć. |
|
marcin107 Temat założony przez niniejszego użytkownika |
» 2011-08-11 17:18:00 o kurde, dobre. nie wpadłem na to... dzięki... |
|
SeaMonster131 |
» 2011-08-11 17:20:56 obrazeniafizyczne -= obrazeniabroni[ poziom_before_dead - 1 ]; Czy coś takiego :P |
|
marcin107 Temat założony przez niniejszego użytkownika |
» 2011-08-11 17:24:15 a można dodać do siebie jakoś zakres tablic jak np: w tym wypadku, bym chciał odjąć od fizdmgja zakres tablic od 0 do poziomu na którym rozwala się broń? |
|
Mrowqa |
» 2011-08-11 17:26:56 for(; lv_weapon == 1; ) dmg -= dmg_for_upgrade[ lv_weapon-- ];
Czy jakoś tak ;) Zawsze możesz stworzyć bazę itemu ;) (co polecam) /edit: @up nie rozumiem ;/ (uprzedziłeś mnie, to odp. na wcześniejsze pyt.) |
|
« 1 » 2 |