forked from github/server
- Neuer Draig-Zauber
This commit is contained in:
parent
74604e5806
commit
301109f949
|
@ -1,6 +1,6 @@
|
||||||
/* vi: set ts=2:
|
/* vi: set ts=2:
|
||||||
*
|
*
|
||||||
* $Id: spell.c,v 1.3 2001/01/31 13:03:18 corwin Exp $
|
* $Id: spell.c,v 1.4 2001/01/31 14:32:58 corwin 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)
|
||||||
|
@ -3016,6 +3016,78 @@ sp_wisps(castorder *co)
|
||||||
return cast_level;
|
return cast_level;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------- */
|
||||||
|
/* Name: Unheilige Kraft
|
||||||
|
* Stufe: 10
|
||||||
|
* Gebiet: Draig
|
||||||
|
* Kategorie: Untote Einheit, positiv
|
||||||
|
*
|
||||||
|
* Wirkung:
|
||||||
|
* transformiert (Stufe)W10 Untote in ihre stärkere Form
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Flag:
|
||||||
|
* (SPELLLEVEL | TESTCANSEE)
|
||||||
|
*/
|
||||||
|
|
||||||
|
static int
|
||||||
|
sp_unholypower(castorder *co)
|
||||||
|
{
|
||||||
|
unit *mage = (unit *)co->magician;
|
||||||
|
int cast_level = co->level;
|
||||||
|
spellparameter *pa = co->par;
|
||||||
|
int i;
|
||||||
|
int n;
|
||||||
|
|
||||||
|
n = dice(cast_level, 10);
|
||||||
|
|
||||||
|
for (i = 0; i < pa->length && n > 0; i++) {
|
||||||
|
race_t target_race;
|
||||||
|
unit *u = pa->param[n]->data.u;
|
||||||
|
|
||||||
|
switch(u->race) {
|
||||||
|
case RC_SKELETON:
|
||||||
|
target_race = RC_SKELETON_LORD; break;
|
||||||
|
case RC_ZOMBIE:
|
||||||
|
target_race = RC_ZOMBIE_LORD; break;
|
||||||
|
case RC_GHOUL:
|
||||||
|
target_race = RC_GHOUL_LORD; break;
|
||||||
|
default:
|
||||||
|
cmistake(mage, strdup(co->order), 280, MSG_MAGIC);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(u->number <= n) {
|
||||||
|
n -= u->number;
|
||||||
|
u->race = target_race;
|
||||||
|
add_message(&co->rt->msgs, new_message(mage->faction,
|
||||||
|
"unholypower_effect%u:mage%u:target%s:targetrace", mage, u));
|
||||||
|
} else {
|
||||||
|
unit *un;
|
||||||
|
|
||||||
|
/* Wird hoffentlich niemals vorkommen. Es gibt im Source
|
||||||
|
* vermutlich eine ganze Reihe von Stellen, wo das nicht
|
||||||
|
* korrekt abgefangen wird. Besser (aber nicht gerade einfach)
|
||||||
|
* wäre es, eine solche Konstruktion irgendwie zu kapseln. */
|
||||||
|
if(fval(u, FL_LOCKED) || fval(u, FL_HUNGER)
|
||||||
|
|| is_cursed(u->attribs, C_SLAVE, 0)) {
|
||||||
|
cmistake(mage, strdup(co->order), 74, MSG_MAGIC);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
un = createunit(co->rt, u->faction, n, target_race);
|
||||||
|
scale_number(u, u->number - n);
|
||||||
|
add_message(&co->rt->msgs, new_message(mage->faction,
|
||||||
|
"unholypower_limitedeffect%u:mage%u:target%s:race%i:amount",
|
||||||
|
mage, u, race[u->race].name[n==1?0:1], n));
|
||||||
|
n = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cast_level;
|
||||||
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
/* Name: Todeswolke
|
/* Name: Todeswolke
|
||||||
* Stufe: 11
|
* Stufe: 11
|
||||||
|
@ -7830,6 +7902,24 @@ spell spelldaten[] =
|
||||||
{0, 0, 0}},
|
{0, 0, 0}},
|
||||||
(spell_f)sp_destroy_magic, patzer
|
(spell_f)sp_destroy_magic, patzer
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{SPL_UNHOLYPOWER, "Unheilige Kraft",
|
||||||
|
"Nur geflüstert wird dieses Ritual an den dunklen Akademien an die "
|
||||||
|
"Adepten weitergegeben, gehört es doch zu den finstersten, die je "
|
||||||
|
"niedergeschrieben wurden. Durch die Anrufung unheiliger Dämonen "
|
||||||
|
"wird die Kraft der lebenden Toten verstärkt und sie verwandeln "
|
||||||
|
"sich in untote Monster großer Kraft.",
|
||||||
|
NULL,
|
||||||
|
"u+",
|
||||||
|
M_CHAOS, (SPELLLEVEL | TESTCANSEE), 5, 10,
|
||||||
|
{
|
||||||
|
{R_AURA, 8, SPC_LEVEL},
|
||||||
|
{R_PEASANTS, 50, SPC_LEVEL},
|
||||||
|
{0, 0, 0},
|
||||||
|
{0, 0, 0},
|
||||||
|
{0, 0, 0}},
|
||||||
|
(spell_f)sp_unholypower, patzer
|
||||||
|
},
|
||||||
|
|
||||||
{SPL_DEATHCLOUD, "Todeswolke",
|
{SPL_DEATHCLOUD, "Todeswolke",
|
||||||
"Mit einem düsteren Ritual und unter Opferung seines eigenen Blutes "
|
"Mit einem düsteren Ritual und unter Opferung seines eigenen Blutes "
|
||||||
|
@ -8001,14 +8091,15 @@ spell spelldaten[] =
|
||||||
},
|
},
|
||||||
|
|
||||||
{SPL_PUTTOREST, "Seelenfrieden",
|
{SPL_PUTTOREST, "Seelenfrieden",
|
||||||
"Dieses magische Ritual beruhigt die gequälten Seelen der gewaltsam zu Tode "
|
"Dieses magische Ritual beruhigt die gequälten Seelen der gewaltsam "
|
||||||
"gekommenen und ermöglicht es ihnen so, ihre letzte Reise in die Anderlande "
|
"zu Tode gekommenen und ermöglicht es ihnen so, ihre letzte Reise in "
|
||||||
"zu beginnen. Je Stufe des Zaubers werden ungefähr 50 Seelen ihre Ruhe "
|
"die Anderlande zu beginnen. Je Stufe des Zaubers werden ungefähr 50 "
|
||||||
"finden. Der Zauber vermag nicht, bereits wieder auferstandene lebende Tote "
|
"Seelen ihre Ruhe finden. Der Zauber vermag nicht, bereits wieder "
|
||||||
"zu erlösen, da deren Bindung an diese Welt zu stark ist.",
|
"auferstandene lebende Tote zu erlösen, da deren Bindung an diese "
|
||||||
|
"Welt zu stark ist.",
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
M_TRAUM, (0), 5, 2,
|
M_TRAUM, (SPELLLEVEL), 5, 2,
|
||||||
{
|
{
|
||||||
{R_AURA, 3, SPC_LEVEL},
|
{R_AURA, 3, SPC_LEVEL},
|
||||||
{R_TREES, 1, SPC_FIX},
|
{R_TREES, 1, SPC_FIX},
|
||||||
|
@ -8019,10 +8110,10 @@ spell spelldaten[] =
|
||||||
},
|
},
|
||||||
|
|
||||||
{SPL_ICASTLE, "Traumschlößchen",
|
{SPL_ICASTLE, "Traumschlößchen",
|
||||||
"Mit Hilfe dieses Zaubers kann der Traumweber die Illusion eines beliebigen "
|
"Mit Hilfe dieses Zaubers kann der Traumweber die Illusion eines "
|
||||||
"Gebäudes erzeugen. Die Illusion kann betreten werden, ist aber ansonsten "
|
"beliebigen Gebäudes erzeugen. Die Illusion kann betreten werden, ist "
|
||||||
"funktionslos und benötigt auch keinen Unterhalt. Sie wird einige Wochen "
|
"aber ansonsten funktionslos und benötigt auch keinen Unterhalt. Sie "
|
||||||
"bestehen bleiben.",
|
"wird einige Wochen bestehen bleiben.",
|
||||||
"ZAUBERE \"Traumschlößchen\" <Gebäude-Typ>",
|
"ZAUBERE \"Traumschlößchen\" <Gebäude-Typ>",
|
||||||
"c",
|
"c",
|
||||||
M_TRAUM, (0), 5, 3,
|
M_TRAUM, (0), 5, 3,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* vi: set ts=2:
|
/* vi: set ts=2:
|
||||||
*
|
*
|
||||||
* $Id: spell.h,v 1.3 2001/01/31 13:03:19 corwin Exp $
|
* $Id: spell.h,v 1.4 2001/01/31 14:32:58 corwin 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)
|
||||||
|
@ -192,6 +192,7 @@ enum {
|
||||||
SPL_BECOMEWYRM,
|
SPL_BECOMEWYRM,
|
||||||
SPL_ETERNIZEWALL,
|
SPL_ETERNIZEWALL,
|
||||||
SPL_PUTTOREST,
|
SPL_PUTTOREST,
|
||||||
|
SPL_UNHOLYPOWER,
|
||||||
MAXALLSPELLS,
|
MAXALLSPELLS,
|
||||||
NO_SPELL = (spellid_t) -1
|
NO_SPELL = (spellid_t) -1
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* vi: set ts=2:
|
/* vi: set ts=2:
|
||||||
*
|
*
|
||||||
* $Id: zombies.c,v 1.2 2001/01/26 16:19:41 enno Exp $
|
* $Id: zombies.c,v 1.3 2001/01/31 14:32:58 corwin 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)
|
||||||
|
@ -85,7 +85,7 @@ age_undead(unit *u)
|
||||||
void
|
void
|
||||||
age_skeleton(unit *u)
|
age_skeleton(unit *u)
|
||||||
{
|
{
|
||||||
if (rand()%100 < age_chance(u->age, 27, 1)) {
|
if (u->faction->no == 0 && rand()%100 < age_chance(u->age, 27, 1)) {
|
||||||
double q = (double) u->hp / (double) (unit_max_hp(u) * u->number);
|
double q = (double) u->hp / (double) (unit_max_hp(u) * u->number);
|
||||||
u->race = RC_SKELETON_LORD;
|
u->race = RC_SKELETON_LORD;
|
||||||
u->irace = RC_SKELETON_LORD;
|
u->irace = RC_SKELETON_LORD;
|
||||||
|
@ -97,7 +97,7 @@ age_skeleton(unit *u)
|
||||||
void
|
void
|
||||||
age_zombie(unit *u)
|
age_zombie(unit *u)
|
||||||
{
|
{
|
||||||
if (rand()%100 < age_chance(u->age, 27, 1)) {
|
if (u->faction->no == 0 && rand()%100 < age_chance(u->age, 27, 1)) {
|
||||||
double q = (double) u->hp / (double) (unit_max_hp(u) * u->number);
|
double q = (double) u->hp / (double) (unit_max_hp(u) * u->number);
|
||||||
u->race = RC_ZOMBIE_LORD;
|
u->race = RC_ZOMBIE_LORD;
|
||||||
u->irace = RC_ZOMBIE_LORD;
|
u->irace = RC_ZOMBIE_LORD;
|
||||||
|
@ -109,7 +109,7 @@ age_zombie(unit *u)
|
||||||
void
|
void
|
||||||
age_ghoul(unit *u)
|
age_ghoul(unit *u)
|
||||||
{
|
{
|
||||||
if (rand()%100 < age_chance(u->age, 27, 1)) {
|
if (u->faction->no == 0 && rand()%100 < age_chance(u->age, 27, 1)) {
|
||||||
double q = (double) u->hp / (double) (unit_max_hp(u) * u->number);
|
double q = (double) u->hp / (double) (unit_max_hp(u) * u->number);
|
||||||
u->race = RC_GHOUL_LORD;
|
u->race = RC_GHOUL_LORD;
|
||||||
u->irace = RC_GHOUL_LORD;
|
u->irace = RC_GHOUL_LORD;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* vi: set ts=2:
|
/* vi: set ts=2:
|
||||||
*
|
*
|
||||||
* $Id: korrektur.c,v 1.7 2001/01/31 13:03:20 corwin Exp $
|
* $Id: korrektur.c,v 1.8 2001/01/31 14:32:59 corwin 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)
|
||||||
|
@ -998,7 +998,7 @@ 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_ETERNIZEWALL, SPL_PUTTOREST, SPL_NOSPELL };
|
spellid_t newspellids[] = { SPL_ETERNIZEWALL, SPL_PUTTOREST, SPL_UNHOLYPOWER, 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 */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Kommentare sind erlaubt. Endlich.
|
# Kommentare sind erlaubt. Endlich.
|
||||||
# $Id: messages.de,v 1.2 2001/01/31 13:03:20 corwin Exp $
|
# $Id: messages.de,v 1.3 2001/01/31 14:32:59 corwin Exp $
|
||||||
|
|
||||||
# Fehlermeldungen:
|
# Fehlermeldungen:
|
||||||
msg_errors;errors:0;de;{string}
|
msg_errors;errors:0;de;{string}
|
||||||
|
@ -279,6 +279,7 @@ error276;errors:0;de;{unit} in {region}: '{command}' - Hier kann man keine Schif
|
||||||
error277;errors:0;de;{unit} in {region}: '{command}' - Das kann die Einheit nicht.
|
error277;errors:0;de;{unit} in {region}: '{command}' - Das kann die Einheit nicht.
|
||||||
error278;errors:0;de;{unit} in {region}: '{command}' - Der Name des Gebäudes kann nicht geändert werden.
|
error278;errors:0;de;{unit} in {region}: '{command}' - Der Name des Gebäudes kann nicht geändert werden.
|
||||||
error279;errors:0;de;{unit} in {region}: '{command}' - Die Beschreibung des Gebäudes kann nicht geändert werden.
|
error279;errors:0;de;{unit} in {region}: '{command}' - Die Beschreibung des Gebäudes kann nicht geändert werden.
|
||||||
|
error280;errors:0;de;{unit} in {region}: '{command}' - Nur Untote können das Ziel dieses Zaubers sein.
|
||||||
|
|
||||||
# Meldungen und Ereignisse
|
# Meldungen und Ereignisse
|
||||||
msg_event;events:0;de;{string}
|
msg_event;events:0;de;{string}
|
||||||
|
@ -481,6 +482,8 @@ firewall_effect;magic:0;de;{mage} erschafft in {region} eine Wand aus Feuer.
|
||||||
wisps_effect;magic:0;de;{mage} ruft Irrlichter in {region}.
|
wisps_effect;magic:0;de;{mage} ruft Irrlichter in {region}.
|
||||||
becomewyrm;magic;2;de;{mage} verwandelt sich in einen Wyrm.
|
becomewyrm;magic;2;de;{mage} verwandelt sich in einen Wyrm.
|
||||||
puttorest;magic;0;de;{mage} befreit die gequälten Seelen der Toten.
|
puttorest;magic;0;de;{mage} befreit die gequälten Seelen der Toten.
|
||||||
|
unholypower_effect;0;de;{mage} verwandelt {target}.
|
||||||
|
unholypower_effect;0;de;{mage} verwandelt {amount} {race} aus {target}.
|
||||||
|
|
||||||
# Kämpfe
|
# Kämpfe
|
||||||
msg_battle;battle:0;de;{string}
|
msg_battle;battle:0;de;{string}
|
||||||
|
|
Loading…
Reference in New Issue