Zauberfix aus Serverbranch eingepatcht

This commit is contained in:
Katja Zedel 2001-03-09 06:28:24 +00:00
parent 7d70ca82b5
commit e4cd59d5e9
2 changed files with 51 additions and 35 deletions

View File

@ -1,6 +1,6 @@
/* vi: set ts=2: /* vi: set ts=2:
* *
* $Id: spell.c,v 1.13 2001/03/04 18:41:25 enno Exp $ * $Id: spell.c,v 1.14 2001/03/09 06:28:24 katze Exp $
* Eressea PB(E)M host Copyright (C) 1998-2000 * Eressea PB(E)M host Copyright (C) 1998-2000
* Christian Schlittchen (corwin@amber.kn-bremen.de) * Christian Schlittchen (corwin@amber.kn-bremen.de)
* Katja Zedel (katze@felidae.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de)
@ -5034,31 +5034,45 @@ sp_dreamreading(castorder *co)
} }
/* ------------------------------------------------------------- */ /* ------------------------------------------------------------- */
/* Wirkt power/2 Runden auf bis zu power^2 Personen
* mit einer Chance von 5% vermehren sie sich */
int int
sp_sweetdreams(castorder *co) sp_sweetdreams(castorder *co)
{ {
unit *u; unit *u;
int duration;
region *r = co->rt; region *r = co->rt;
unit *mage = (unit *)co->magician; unit *mage = (unit *)co->magician;
int cast_level = co->level; int cast_level = co->level;
int power = co->force; int power = co->force;
spellparameter *pa = co->par; spellparameter *pa = co->par;
int men, n;
int duration = power/2;
int opfer = power*power;
/* Schleife über alle angegebenen Einheiten */
for (n = 0; n < pa->length; n++) {
/* sollte nie negativ werden */
if (opfer < 1)
break;
if(pa->param[n]->flag == TARGET_RESISTS
|| pa->param[n]->flag == TARGET_NOTFOUND)
continue;
/* Zieleinheit */ /* Zieleinheit */
u = pa->param[0]->data.u; u = pa->param[n]->data.u;
men = min(opfer, u->number);
opfer -= men;
/* Nichts machen als ein entsprechendes Attribut an die Einheit legen. */ /* Nichts machen als ein entsprechendes Attribut an die Einheit legen. */
/* Wirkt power/2 Runden auf bis zu power^2 Personen in einer Einheit create_curse(mage,&u->attribs,C_ORC,0,power,duration,5,men);
* mit einer Chance von 5% vermehren sie sich */
duration = power/2;
create_curse(mage,&u->attribs,C_ORC,0,power,duration,5,power*power);
set_curseflag(u->attribs, C_ORC, 0, CURSE_ISNEW); set_curseflag(u->attribs, C_ORC, 0, CURSE_ISNEW);
sprintf(buf, "%s verschafft %s ein interessanteres Nachtleben.", sprintf(buf, "%s verschafft %s ein interessanteres Nachtleben.",
unitname(mage), unitname(u)); unitname(mage), unitname(u));
addmessage(r, mage->faction, buf, MSG_EVENT, ML_INFO); addmessage(r, mage->faction, buf, MSG_EVENT, ML_INFO);
}
return cast_level; return cast_level;
} }
@ -7645,24 +7659,6 @@ spell spelldaten[] =
(spell_f)sp_magicboost, patzer (spell_f)sp_magicboost, patzer
}, },
{SPL_SUMMONUNDEAD, "Mächte des Todes",
"Nächtelang muss der Schwarzmagier durch die Friedhöfe und Gräberfelder "
"der Region ziehen um dann die ausgegrabenen Leichen beleben zu können. "
"Die Untoten werden ihm zu Diensten sein, doch sei der Unkundige gewarnt, "
"dass die Beschwörung der Mächte des Todes ein zweischneidiges Schwert "
"sein kann.",
NULL,
NULL,
M_CHAOS, (SPELLLEVEL | FARCASTING), 5, 4,
{
{R_AURA, 5, SPC_LEVEL},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}},
(spell_f)sp_summonundead, patzer_peasantmob
},
{SPL_BERSERK, "Blutrausch", {SPL_BERSERK, "Blutrausch",
"In diesem blutigen Ritual opfert der Magier vor der Schlacht ein " "In diesem blutigen Ritual opfert der Magier vor der Schlacht ein "
"Neugeborenes vor den Augen seiner Armee. Die so gerufenen Blutgeister " "Neugeborenes vor den Augen seiner Armee. Die so gerufenen Blutgeister "
@ -7699,6 +7695,24 @@ spell spelldaten[] =
(spell_f)sp_fumblecurse, patzer_fumblecurse (spell_f)sp_fumblecurse, patzer_fumblecurse
}, },
{SPL_SUMMONUNDEAD, "Mächte des Todes",
"Nächtelang muss der Schwarzmagier durch die Friedhöfe und Gräberfelder "
"der Region ziehen um dann die ausgegrabenen Leichen beleben zu können. "
"Die Untoten werden ihm zu Diensten sein, doch sei der Unkundige gewarnt, "
"dass die Beschwörung der Mächte des Todes ein zweischneidiges Schwert "
"sein kann.",
NULL,
NULL,
M_CHAOS, (SPELLLEVEL | FARCASTING), 5, 6,
{
{R_AURA, 5, SPC_LEVEL},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}},
(spell_f)sp_summonundead, patzer_peasantmob
},
{SPL_COMBATRUST, "Rosthauch", {SPL_COMBATRUST, "Rosthauch",
"Mit diesem Ritual wird eine dunkle Gewitterfront " "Mit diesem Ritual wird eine dunkle Gewitterfront "
"beschworen, die sich unheilverkündend über der Region auftürmt. " "beschworen, die sich unheilverkündend über der Region auftürmt. "
@ -8449,7 +8463,7 @@ spell spelldaten[] =
"dieses Zaubers kann es daran sterben.", "dieses Zaubers kann es daran sterben.",
NULL, NULL,
NULL, NULL,
M_TRAUM, (COMBATSPELL | SPELLLEVEL ), 5, 11, M_TRAUM, (COMBATSPELL | SPELLLEVEL), 5, 11,
{ {
{R_AURA, 2, SPC_LEVEL}, {R_AURA, 2, SPC_LEVEL},
{0, 0, 0}, {0, 0, 0},
@ -8468,9 +8482,10 @@ spell spelldaten[] =
"es einige Wochen später...", "es einige Wochen später...",
NULL, NULL,
"u+", "u+",
M_TRAUM, (UNITSPELL | TESTRESISTANCE), 5, 12, M_TRAUM,
(UNITSPELL | TESTRESISTANCE | TESTCANSEE | SPELLLEVEL), 5, 12,
{ {
{R_AURA, 30, SPC_FIX}, {R_AURA, 5, SPC_LEVEL},
{0, 0, 0}, {0, 0, 0},
{0, 0, 0}, {0, 0, 0},
{0, 0, 0}, {0, 0, 0},

View File

@ -1024,7 +1024,8 @@ show_newspells(void)
/* Alle geänderten Zauber in das array newspellids[]. mit SPL_NOSPELL /* Alle geänderten Zauber in das array newspellids[]. mit SPL_NOSPELL
* terminieren */ * terminieren */
spellid_t newspellids[] = { SPL_UNHOLYPOWER, SPL_NOSPELL }; spellid_t newspellids[] = { SPL_UNHOLYPOWER, SPL_SUMMONUNDEAD,
SPL_ORKDREAM, SPL_NOSPELL };
/* die id's der neuen oder veränderten Sprüche werden in newspellids[] /* die id's der neuen oder veränderten Sprüche werden in newspellids[]
* abgelegt */ * abgelegt */