WItcher now klasa

Status
Zamknięty.

Timi10

User
Zarejestrowany
Dołączył
Sierpień 16, 2010
Posty
11
Liczba reakcji
1
Chdzialbym zrobic nowa klase Witcher nawalala by z dwoch mieczy i z magii sorcerera. Co level szlo by jej po 50hp i mp. CZy mogl by mi ktos pomoc w zrealizowaniu tego pomyslu prosze o szybka pomoc.
 
Odp: WItcher now klasa

Zaczniemy od modyfikowania player.cpp:
Ju? na pocz?tku pliku znajdujemy:
const int Player::gainManaVector[5][2] = {{6,1},{3,1},{3,1},{4,1},{6,1}};
const int Player::gainHealthVector[5][2] = {{6,1},{6,1},{6,1},{4,1},{3,1}};

zmieniamy to na:
Kod:
const int Player::gainManaVector[6][2] = {{6,1},{3,1},{3,1},{4,1},{6,1},{12,1}};
const int Player::gainHealthVector[6][2] = {{6,1},{6,1},{6,1},{4,1},{3,1},{1,1}};
Jak zauwa?yli?cie lub
nie, zamiast [5] mamy teraz [6], m?wi to serwerowi, ?e teraz jest 6 profesji,a nie 5. na ko?cu ka?dego wiersza zosta?y te? dodane pewne liczby. {12,1} m?wi serwerowi, ?e co 12 sekund mana tej profesji ma rosn?? o 1 punkt. {1,1} m?wi za?, ?e co 1 sekunde ?ycie tej profesji ma rosn?? o 1 punkt.
Czemu takie liczby, a nie inne? Ot?? z g?ry sobie ustalilem, ?e m?j barbarzy?ca b?dzie posiada? najszybsz? regeneracj? ?ycia i najwolniejsz? regeneracj? many ze wszystkich innych klas. Wy wklepcie sobie liczby jakie wolicie. :P
Troche ni?ej w player.cpp widzimy:
const int Player::CapGain[5] = {10, 10, 10, 20, 25};
const int Player::ManaGain[5] = {5, 30, 30, 15, 5};
const int Player::HPGain[5] = {5, 5, 5, 10, 15};

zmieniamy to na:
Kod:
const int Player::CapGain[6] = {10, 10, 10, 20, 25, 35};
const int Player::ManaGain[6] = {5, 30, 30, 15, 5, 5};
const int Player::HPGain[6] = {5, 5, 5, 10, 15, 20};
Liczby nowo dodane, czyli 35, 5 i 20 m?wi? o ile b?dzie wzarsta? ud?wig, mana i ?ycie podczas levelowania. Wszystko jasne? Idziemy dalej.
W player.cpp odnajdujemy funkcj? Player::getReqSkillTries i zmieniamy:
float SkillMultipliers[7][5] = {
{1.5f, 1.5f, 1.5f, 1.2f, 1.1f}, // Fist
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f}, // Club
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f}, // Sword
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f}, // Axe
{2.0f, 2.0f, 1.8f, 1.1f, 1.4f}, // Distance
{1.5f, 1.5f, 1.5f, 1.1f, 1.1f}, // Shielding
{1.1f, 1.1f, 1.1f, 1.1f, 1.1f} // Fishing
};

na:
Kod:
float SkillMultipliers[7][6] = {
{1.5f, 1.5f, 1.5f, 1.2f, 1.1f, 1.1f}, // Fist
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f, 1.0f}, // Club
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f, 1.8f}, // Sword
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f, 1.0f}, // Axe
{2.0f, 2.0f, 1.8f, 1.1f, 1.4f, 1.8f}, // Distance
{1.5f, 1.5f, 1.5f, 1.1f, 1.1f, 1.5f}, // Shielding
{1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f} // Fishing
};
Warto?ci przedstawione powy?ej informuj? nas jak d?ugo trzeba trenowa?, aby awansowa? w danym skillu. Im wi?ksza liczba, tym d?u?ej trzeba trenowa?.
M?j barbarzy?ca najlepiej zna sie na obs?udze topor?w i broni obuchowych, a najs?abiej na shieldingu i mieczach.
Przechodzimy teraz do funkcji Player::getReqMana i odnajdujemy w niej wiersz:
float ManaMultiplier[5] = { 1.0f, 1.1f, 1.1f, 1.4f, 3};
i zmieniamy go na:
float ManaMultiplier[6] = { 1.0f, 1.1f, 1.1f, 1.4f, 3, 6};
Tutaj liczby m?wi? nam jak d?ugo trzeba rzuca? czary, aby awansowa? w mlvl. Im wi?ksza liczba, tym wi?cej czar?w trzeba rzuci?.
M?j barbarzy?ca b?dzie musia? si? sporo natrudzi? by wskoczy? na 1 mlvl. ;-)
Preskakujemy teraz do funkcji Player::gainManaTick() i zmieniamy w niej:
if(vocation >= 0 && vocation < 5)
na:
if(vocation >= 0 && vocation < 6)
To samo robimy w funkcji Player::gainHealthTick()
Teraz przenosimy sie do player.h gdzie zmieniamy:
static const int CapGain[5]; //for level advances
static const int ManaGain[5];
static const int HPGain[5];
static const int gainManaVector[5][2];
static const int gainHealthVector[5][2];

na:
Kod:
static const int CapGain[6]; //for level advances
static const int ManaGain[6];
static const int HPGain[6];
static const int gainManaVector[6][2];
static const int gainHealthVector[6][2];
Odszukujemy r?wnie?:
enum playervoc_t {
VOCATION_NONE = 0,
VOCATION_SORCERER = 1,
VOCATION_DRUID = 2,
VOCATION_PALADIN = 3,
VOCATION_KNIGHT = 4,
};

i zmieniamy na:
Kod:
enum playervoc_t {
VOCATION_NONE = 0,
VOCATION_SORCERER = 1,
VOCATION_DRUID = 2,
VOCATION_PALADIN = 3,
VOCATION_KNIGHT = 4,
VOCATION_BARBARIAN = 5
};
To tyle je?li chodzi o zmiany w player.cpp i player.h
 
Odp: WItcher now klasa

Ok dzi?ki, ale czy m?g? by? mi da?, aby profesja mog?a atakowa? dwoma mieczami, ale ?eby nie mogla nosi? tarczy? Oczywi?cie reput dla ciebie leci.:)
 
Status
Zamknięty.
Back
Do góry