- Pyramidenregionfindezauber. Setzen des Attributs in passenden Regionen

fehlt noch.
This commit is contained in:
Christian Schlittchen 2004-02-20 09:17:32 +00:00
parent 53ee1dcc1f
commit 06c2177715
6 changed files with 155 additions and 1 deletions

View File

@ -498,7 +498,7 @@ new_message(struct faction * receiver, const char* sig, ...)
args[i] = (void*)va_arg(marker, const resource_type *);
break;
case 'x':
args[i] = (void*)oldresourcetype[(resource_t)va_arg(marker, resource_t)];
args[i] = (void*)oldresourcetype[(resource_t)va_arg(marker, int)];
break;
case 't':
args[i] = (void*)va_arg(marker, int);

View File

@ -88,6 +88,12 @@ attrib_type at_unitdissolve = {
"unitdissolve", NULL, NULL, NULL, a_writedefault, a_readdefault
};
#ifdef WDW_PYRAMIDSPELL
attrib_type at_wdwpyramid = {
"wdwpyramid", NULL, NULL, NULL, a_writedefault, a_readdefault
};
#endif
/* ----------------------------------------------------------------------- */
#ifdef TODO
@ -7217,6 +7223,43 @@ sp_becomewyrm(castorder *co)
return co->level;
}
/* ------------------------------------------------------------- */
/* Name: WDW-Pyramidenfindezauber
* Stufe: unterschiedlich
* Gebiet: alle
* Wirkung:
* gibt an, ob sich der Magier in einer Pyramidenbauregion
* befindet.
*
* Flags:
*/
static int
sp_wdwpyramid(castorder *co)
{
region *r = co->rt;
unit *mage = (unit *)co->magician;
int cast_level = co->level;
if(!(landregion(rterrain(r)))){
cmistake(mage, strdup(co->order), 186, MSG_MAGIC);
return 0;
}
if(a_find(r->attribs, &at_wdwpyramid) != NULL) {
add_message(&mage->faction->msgs, new_message(mage->faction,
"wdw_pyramidspell_found%u:mage%r:region%s:command",
mage, r, strdup(co->order)));
} else {
add_message(&mage->faction->msgs, new_message(mage->faction,
"wdw_pyramidspell_notfound%u:mage%r:region%s:command",
mage, r, strdup(co->order)));
}
return cast_level;
}
/* ------------------------------------------------------------- */
/* Name: Alltagszauber, hat je nach Gebiet anderen Namen
* Stufe: 1
@ -10389,6 +10432,83 @@ spell spelldaten[] =
(spell_f)sp_immolation, patzer
},
#ifdef WDW_PYRAMIDSPELL
{SPL_WDWPYRAMID_TRAUM, "Traum von den Göttern",
"Mit Hilfe dieses Zaubers kann der Magier erkennen, ob eine "
"Region für den Pyramidenbau geeignet ist.",
NULL,
NULL,
M_TRAUM, (0), 5, 4,
{
{R_AURA, 2, SPC_FIX},
{R_PLAIN_3, 1, SPC_FIX},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}},
(spell_f)sp_wdwpyramid, patzer
},
{SPL_WDWPYRAMID_ASTRAL, "Göttliches Netz",
"Mit Hilfe dieses Zaubers kann der Magier erkennen, ob eine "
"Region für den Pyramidenbau geeignet ist.",
NULL,
NULL,
M_ASTRAL, (0), 5, 3,
{
{R_AURA, 4, SPC_FIX},
{R_WISE, 1, SPC_FIX},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}},
(spell_f)sp_wdwpyramid, patzer
},
{SPL_WDWPYRAMID_DRUIDE, "Kraft der Natur",
"Mit Hilfe dieses Zaubers kann der Magier erkennen, ob eine "
"Region für den Pyramidenbau geeignet ist.",
NULL,
NULL,
M_DRUIDE, (0), 5, 5,
{
{R_AURA, 3, SPC_FIX},
{R_MALLORN, 5, SPC_FIX},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}},
(spell_f)sp_wdwpyramid, patzer
},
{SPL_WDWPYRAMID_BARDE, "Gesang der Götter",
"Mit Hilfe dieses Zaubers kann der Magier erkennen, ob eine "
"Region für den Pyramidenbau geeignet ist.",
NULL,
NULL,
M_BARDE, (0), 5, 4,
{
{R_AURA, 2, SPC_FIX},
{R_HIGHLAND_3, 1, SPC_FIX},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}},
(spell_f)sp_wdwpyramid, patzer
},
{SPL_WDWPYRAMID_CHAOS, "Göttliche Macht",
"Mit Hilfe dieses Zaubers kann der Magier erkennen, ob eine "
"Region für den Pyramidenbau geeignet ist.",
NULL,
NULL,
M_CHAOS, (0), 5, 5,
{
{R_AURA, 1, SPC_FIX},
{R_PERMAURA, 1, SPC_FIX},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}},
(spell_f)sp_wdwpyramid, patzer
},
#endif
/* SPL_NOSPELL MUSS der letzte Spruch der Liste sein*/
{SPL_NOSPELL, "Keiner", NULL, NULL, NULL, 0, 0, 0, 0,
@ -10396,3 +10516,4 @@ spell spelldaten[] =
NULL, NULL
}
};

View File

@ -212,6 +212,13 @@ enum {
SPL_FIREODEM, /* 181 */
SPL_ICEODEM,
SPL_ACIDODEM,
#ifdef WDW_PYRAMIDSPELL
SPL_WDWPYRAMID_TRAUM,
SPL_WDWPYRAMID_ASTRAL,
SPL_WDWPYRAMID_DRUIDE,
SPL_WDWPYRAMID_BARDE,
SPL_WDWPYRAMID_CHAOS,
#endif
MAXALLSPELLS,
NO_SPELL = (spellid_t) -1
};

View File

@ -53,6 +53,7 @@
#define AUTOALLIANCE (HELP_FIGHT)
#define WDW_PHOENIX
#define WDW_PYRAMIDSPELL
#define NEW_STARTEQUIPMENT
#define MAILITPATH "/usr/sbin:$HOME/bin:/bin:/usr/bin:/usr/local/bin"

View File

@ -274,6 +274,11 @@ show_newspells(void)
* terminieren */
spellid_t newspellids[] = {
SPL_WDWPYRAMID_TRAUM,
SPL_WDWPYRAMID_ASTRAL,
SPL_WDWPYRAMID_DRUIDE,
SPL_WDWPYRAMID_BARDE,
SPL_WDWPYRAMID_CHAOS,
SPL_NOSPELL
};

View File

@ -5618,4 +5618,24 @@
<text locale="fr">"$int($votes) members of $alliance($alliance) tried to kick you out of the alliance."</text>
<text locale="en">"$int($votes) members of $alliance($alliance) tried to kick you out of the alliance."</text>
</message>
<message name="wdw_pyramidspell_found" section="events">
<type>
<arg name="unit" type="unit"></arg>
<arg name="region" type="region"></arg>
<arg name="command" type="string"></arg>
</type>
<text locale="de">"$unit($unit) in $region($region): '$command' - In dieser Regione können Pyramiden gebaut werden."</text>
<text locale="en">"$unit($unit) in $region($region): '$command' - Pyramids may be build in this region."</text>
<text locale="fr">"$unit($unit) in $region($region): '$command' - Pyramids may be build in this region."</text>
</message>
<message name="wdw_pyramidspell_notfound" section="events">
<type>
<arg name="unit" type="unit"></arg>
<arg name="region" type="region"></arg>
<arg name="command" type="string"></arg>
</type>
<text locale="de">"$unit($unit) in $region($region): '$command' - In dieser Regione können keine Pyramiden gebaut werden."</text>
<text locale="en">"$unit($unit) in $region($region): '$command' - No pyramids may be build in this region."</text>
<text locale="fr">"$unit($unit) in $region($region): '$command' - No pyramids may be build in this region."</text>
</message>
</messages>