diff --git a/src/common/gamecode/monster.c b/src/common/gamecode/monster.c index 73e8da7ca..c5e98fea7 100644 --- a/src/common/gamecode/monster.c +++ b/src/common/gamecode/monster.c @@ -866,15 +866,15 @@ learn_monster(unit *u) * Lerntage hat. */ for(sk=0;sk 0) c++; + if (get_skill(u, sk)) c++; if(c == 0) return; n = rand()%c + 1; c = 0; - for(sk=0;sk 0) { + for (sk=0;skfaction->locale, keywords[K_STUDY]), @@ -948,7 +948,13 @@ plan_monsters(void) if (u->faction->no != MONSTER_FACTION) continue; /* Monster bekommen jede Runde ein paar Tage Wahrnehmung dazu */ +#if SKILLPOINTS change_skill(u, SK_OBSERVATION, u->number * 10); +#else + if (learn_skill(u, SK_OBSERVATION, u->number * 10)) { + change_skill(u, SK_OBSERVATION, u->number); + } +#endif ta = a_find(u->attribs, &at_hate); if (ta && strncmp(u->lastorder, "WARTEN", 6) != 0) { @@ -1090,9 +1096,15 @@ plan_monsters(void) un = createunit(r, findfaction(MONSTER_FACTION), ra, new_race[RC_DRACOID]); name_unit(un); change_money(u, -un->number * 50); - set_skill(un, SK_SPEAR, un->number * (180 + rand() % 500)); - set_skill(un, SK_SWORD, un->number * (180 + rand() % 500)); - set_skill(un, SK_LONGBOW, un->number * (90 + rand() % 300)); +#if SKILLPOINTS + set_skill(un, SK_SPEAR, un->number * (level_days(3) + rand() % (level_days(6)-level_days(3)))); + set_skill(un, SK_SWORD, un->number * (level_days(3) + rand() % (level_days(6)-level_days(3)))); + set_skill(un, SK_LONGBOW, un->number * (level_days(2) + rand() % (level_days(4)-level_days(2)))); +#else + set_skill(un, SK_SPEAR, un->number * (3 + rand() % 4)); + set_skill(un, SK_SWORD, un->number * (3 + rand() % 4)); + set_skill(un, SK_LONGBOW, un->number * (2 + rand() % 3)); +#endif switch (rand() % 3) { case 0: set_item(un, I_LONGBOW, un->number); diff --git a/src/common/kernel/battle.c b/src/common/kernel/battle.c index 1ae6c5366..bdbca3178 100644 --- a/src/common/kernel/battle.c +++ b/src/common/kernel/battle.c @@ -953,7 +953,7 @@ drain_exp(unit *u, int n) } } if (sk != NOSKILL) { - change_skill(u, sk, -1); + change_skill(u, sk, -n); } } #else @@ -976,7 +976,7 @@ drain_exp(unit *u, int n) } if (sk != NOSKILL) { n = min(n, get_skill(u, sk)); - change_skill(u, sk, -n); + change_skill(u, sk, -1); } } #endif diff --git a/src/common/kernel/ship.c b/src/common/kernel/ship.c index 9f5f325d6..0fbbb3f98 100644 --- a/src/common/kernel/ship.c +++ b/src/common/kernel/ship.c @@ -492,4 +492,5 @@ register_ships(void) #ifndef NOXMLBOATS xml_register(&xml_ships, "eressea ship", 0); #endif -} \ No newline at end of file +} + diff --git a/src/common/settings-eressea.h b/src/common/settings-eressea.h index d2935f927..02dee3107 100644 --- a/src/common/settings-eressea.h +++ b/src/common/settings-eressea.h @@ -27,4 +27,4 @@ #define SKILLPOINTS 1 #define TEACHDIFFERENCE 1 -#define PEASANT_ADJUSTMENT 1 +#define PEASANT_ADJUSTMENT 0