Vin I, II:

* Parteien mit 3 NMR werden nicht gelöscht

Vin II:
* Hunger halbiert Lernerfolg
* Hunger verhindert ZAUBERE nicht
This commit is contained in:
Enno Rehling 2002-01-13 09:14:13 +00:00
parent 603e0cd489
commit ea99e6d663
7 changed files with 30 additions and 12 deletions

View File

@ -1082,16 +1082,18 @@ quit(void)
remove("inactive"); remove("inactive");
for (f = factions; f; f = f->next) if(!fval(f, FL_NOIDLEOUT)) { for (f = factions; f; f = f->next) if(!fval(f, FL_NOIDLEOUT)) {
#if REMOVENMRTIMEOUT
if (turn - f->lastorders >= ORDERGAP) { if (turn - f->lastorders >= ORDERGAP) {
destroyfaction(f); destroyfaction(f);
continue; continue;
} }
#endif
if (turn - f->lastorders >= (ORDERGAP - 1)) { if (turn - f->lastorders >= (ORDERGAP - 1)) {
inactivefaction(f); inactivefaction(f);
continue; continue;
} }
} }
#ifdef REMOVENMRNEWBIE #if REMOVENMRNEWBIE
puts(" - beseitige Spieler, die sich nach der Anmeldung nicht " puts(" - beseitige Spieler, die sich nach der Anmeldung nicht "
"gemeldet haben..."); "gemeldet haben...");
@ -2957,6 +2959,7 @@ setdefaults (void)
set_string(&u->thisorder, u->lastorder); set_string(&u->thisorder, u->lastorder);
for(S = u->orders; S; S = S->next) { for(S = u->orders; S; S = S->next) {
const char * cmd;
keyword_t keyword = igetkeyword(S->s, u->faction->locale); keyword_t keyword = igetkeyword(S->s, u->faction->locale);
switch (keyword) { switch (keyword) {
@ -3010,11 +3013,13 @@ setdefaults (void)
case K_WORK: case K_WORK:
case K_DRIVE: case K_DRIVE:
case K_MOVE: case K_MOVE:
if(!global.disabled[K_WORK] && fval(u, FL_HUNGER)) { cmd = S->s;
set_string(&u->thisorder, locale_string(u->faction->locale, "defaultorder")); #if HUNGER_DISABLES_LONGORDERS
} else { if (fval(u, FL_HUNGER)) {
set_string(&u->thisorder, S->s); cmd = locale_string(u->faction->locale, "defaultorder");
} }
#endif
set_string(&u->thisorder, cmd);
break; break;
/* Wird je diese Ausschliesslichkeit aufgehoben, muss man aufpassen /* Wird je diese Ausschliesslichkeit aufgehoben, muss man aufpassen

View File

@ -455,6 +455,7 @@ learn(void)
for (r = regions; r; r = r->next) { for (r = regions; r; r = r->next) {
for (u = r->units; u; u = u->next) { for (u = r->units; u; u = u->next) {
int days;
if (rterrain(r) == T_OCEAN){ if (rterrain(r) == T_OCEAN){
/* sonderbehandlung aller die auf Ozeanen lernen können */ /* sonderbehandlung aller die auf Ozeanen lernen können */
if (u->race != new_race[RC_AQUARIAN] if (u->race != new_race[RC_AQUARIAN]
@ -666,13 +667,17 @@ learn(void)
lmod += 5; lmod += 5;
} }
learning = max(0, 30 + lmod); learning = max(0, 30 + lmod);
change_skill(u, (skill_t)i, (int)((u->number * dice(2,learning) + a->data.i) * multi)); days = (int)((u->number * dice(2, learning) + a->data.i) * multi);
#else #else
change_skill(u, (skill_t)i, (int)((u->number * dice(2,30) + a->data.i) * multi)); days = (int)((u->number * dice(2, 30) + a->data.i) * multi);
#endif #endif
#else #else
change_skill(u, (skill_t)i, (int)((u->number * 30 + a->data.i) * multi)); days = (int)((u->number * 30 + a->data.i) * multi);
#endif #endif
#if HUNGER_DISABLES_LONGORDERS
days = days / 2;
#endif
change_skill(u, (skill_t)i, days);
if (a) { if (a) {
a_remove(&u->attribs, a); a_remove(&u->attribs, a);
a = NULL; a = NULL;

View File

@ -1202,7 +1202,7 @@ findkeyword(const char *s, const struct locale * lang)
struct lstr * lnames = get_lnames(lang); struct lstr * lnames = get_lnames(lang);
int i; int i;
#ifdef AT_PERSISTENT #ifdef AT_PERSISTENT
if(*s == '@') s++; if (*s == '@') s++;
#endif #endif
if (findtoken(&lnames->keywords, s, (void**)&i)==E_TOK_NOMATCH) return NOKEYWORD; if (findtoken(&lnames->keywords, s, (void**)&i)==E_TOK_NOMATCH) return NOKEYWORD;
if (global.disabled[i]) return NOKEYWORD; if (global.disabled[i]) return NOKEYWORD;

View File

@ -2929,10 +2929,12 @@ magic(void)
for (so = u->orders; so; so = so->next) { for (so = u->orders; so; so = so->next) {
if (igetkeyword(so->s, u->faction->locale) == K_CAST) { if (igetkeyword(so->s, u->faction->locale) == K_CAST) {
#if HUNGER_DISABLES_LONGORDERS
if (fval(u, FL_HUNGER)) { if (fval(u, FL_HUNGER)) {
cmistake(u, so->s, 224, MSG_MAGIC); cmistake(u, so->s, 224, MSG_MAGIC);
continue; continue;
} }
#endif
if (r->planep && fval(r->planep, PFL_NOMAGIC)) { if (r->planep && fval(r->planep, PFL_NOMAGIC)) {
cmistake(u, so->s, 269, MSG_MAGIC); cmistake(u, so->s, 269, MSG_MAGIC);
continue; continue;

View File

@ -18,4 +18,6 @@
#define NEW_RESOURCEGROWTH 1 #define NEW_RESOURCEGROWTH 1
#define LARGE_CASTLES 1 #define LARGE_CASTLES 1
#define GROWING_TREES 1 #define GROWING_TREES 1
#define REMOVENMRNEWBIE #define REMOVENMRNEWBIE 1
#define REMOVENMRTIMEOUT 1
#define HUNGER_DISABLES_LONGORDERS 1

View File

@ -18,4 +18,6 @@
#define NEW_RESOURCEGROWTH 0 #define NEW_RESOURCEGROWTH 0
#define LARGE_CASTLES 0 #define LARGE_CASTLES 0
#define GROWING_TREES 0 #define GROWING_TREES 0
#undef REMOVENMRNEWBIE #define REMOVENMRNEWBIE 0
#define REMOVENMRTIMEOUT 0
#define HUNGER_DISABLES_LONGORDERS 1

View File

@ -18,4 +18,6 @@
#define NEW_RESOURCEGROWTH 1 #define NEW_RESOURCEGROWTH 1
#define LARGE_CASTLES 1 #define LARGE_CASTLES 1
#define GROWING_TREES 1 #define GROWING_TREES 1
#undef REMOVENMRNEWBIE #define REMOVENMRNEWBIE 0
#define REMOVENMRTIMEOUT 0
#define HUNGER_DISABLES_LONGORDERS 0