forked from github/server
"Wirkungsdauer von Wasserelementar anzeigen" curseinfos fuer schiffe u.a. repariert.
This commit is contained in:
parent
c61249cea4
commit
a80d69ceb5
|
@ -256,8 +256,7 @@ print_curses(FILE * F, const faction * viewer, const void * obj, typ_t typ)
|
||||||
} else {
|
} else {
|
||||||
sprintf(buf, "an unknown curse lies on the region. (%s)", itoa36(c->no));
|
sprintf(buf, "an unknown curse lies on the region. (%s)", itoa36(c->no));
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
if (dh==1) {
|
|
||||||
if (!header) {
|
if (!header) {
|
||||||
header = 1;
|
header = 1;
|
||||||
fputs("EFFECTS\n", F);
|
fputs("EFFECTS\n", F);
|
||||||
|
|
|
@ -36,19 +36,23 @@
|
||||||
static int
|
static int
|
||||||
cinfo_building(const struct locale * lang, const void * obj, typ_t typ, curse *c, int self)
|
cinfo_building(const struct locale * lang, const void * obj, typ_t typ, curse *c, int self)
|
||||||
{
|
{
|
||||||
message * msg;
|
message * msg;
|
||||||
|
|
||||||
unused(typ);
|
unused(typ);
|
||||||
assert(typ == TYP_BUILDING);
|
assert(typ == TYP_BUILDING);
|
||||||
|
|
||||||
if (self != 0){ /* owner or inside */
|
if (self != 0){ /* owner or inside */
|
||||||
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
||||||
} else { /* outside */
|
} else { /* outside */
|
||||||
msg = msg_message(mkname("curseinfo", "buildingunknown"), "id", c->no);
|
msg = msg_message(mkname("curseinfo", "buildingunknown"), "id", c->no);
|
||||||
}
|
}
|
||||||
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
if (msg) {
|
||||||
msg_release(msg);
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
return 1;
|
msg_release(msg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
log_warning(("There is no curseinfo for %s.\n", c->type->cname));
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CurseInfo mit Spezialabfragen */
|
/* CurseInfo mit Spezialabfragen */
|
||||||
|
@ -58,69 +62,69 @@ static int
|
||||||
cinfo_magicrunes(const struct locale* lang, const void * obj, typ_t typ, curse *c, int self)
|
cinfo_magicrunes(const struct locale* lang, const void * obj, typ_t typ, curse *c, int self)
|
||||||
{
|
{
|
||||||
message * msg = NULL;
|
message * msg = NULL;
|
||||||
if (typ == TYP_BUILDING){
|
if (typ == TYP_BUILDING){
|
||||||
building * b;
|
building * b;
|
||||||
b = (building*)obj;
|
b = (building*)obj;
|
||||||
if (self != 0) {
|
if (self != 0) {
|
||||||
msg = msg_message(mkname("curseinfo", "magicrunes_building"), "building id", b, c->no);
|
msg = msg_message(mkname("curseinfo", "magicrunes_building"), "building id", b, c->no);
|
||||||
}
|
}
|
||||||
} else if (typ == TYP_SHIP) {
|
} else if (typ == TYP_SHIP) {
|
||||||
ship *sh;
|
ship *sh;
|
||||||
sh = (ship*)obj;
|
sh = (ship*)obj;
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
msg = msg_message(mkname("curseinfo", "magicrunes_ship"), "ship id", sh, c->no);
|
msg = msg_message(mkname("curseinfo", "magicrunes_ship"), "ship id", sh, c->no);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg!=NULL) {
|
if (msg!=NULL) {
|
||||||
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
msg_release(msg);
|
msg_release(msg);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_magicrunes = { "magicrunes",
|
static struct curse_type ct_magicrunes = { "magicrunes",
|
||||||
CURSETYP_NORM, 0, M_SUMEFFECT,
|
CURSETYP_NORM, 0, M_SUMEFFECT,
|
||||||
"Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine "
|
"Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine "
|
||||||
"Verzauberung.",
|
"Verzauberung.",
|
||||||
cinfo_magicrunes
|
cinfo_magicrunes
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Heimstein-Zauber */
|
/* Heimstein-Zauber */
|
||||||
static struct curse_type ct_magicwalls = { "magicwalls",
|
static struct curse_type ct_magicwalls = { "magicwalls",
|
||||||
CURSETYP_NORM, 0, NO_MERGE,
|
CURSETYP_NORM, 0, NO_MERGE,
|
||||||
"Die Macht dieses Zaubers ist fast greifbar und tief in die Mauern "
|
"Die Macht dieses Zaubers ist fast greifbar und tief in die Mauern "
|
||||||
"gebunden. Starke elementarmagische Kräfte sind zu spüren. "
|
"gebunden. Starke elementarmagische Kräfte sind zu spüren. "
|
||||||
"Vieleicht wurde gar ein Erdelementar in diese Mauern gebannt. "
|
"Vieleicht wurde gar ein Erdelementar in diese Mauern gebannt. "
|
||||||
"Ausser ebenso starkter Antimagie wird nichts je diese Mauern "
|
"Ausser ebenso starkter Antimagie wird nichts je diese Mauern "
|
||||||
"gefährden können.",
|
"gefährden können.",
|
||||||
cinfo_building
|
cinfo_building
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Feste Mauer - Präkampfzauber, wirkt nur 1 Runde */
|
/* Feste Mauer - Präkampfzauber, wirkt nur 1 Runde */
|
||||||
static struct curse_type ct_strongwall = { "strongwall",
|
static struct curse_type ct_strongwall = { "strongwall",
|
||||||
CURSETYP_NORM, 0, NO_MERGE,
|
CURSETYP_NORM, 0, NO_MERGE,
|
||||||
"",
|
"",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Ewige Mauern-Zauber */
|
/* Ewige Mauern-Zauber */
|
||||||
static struct curse_type ct_nocostbuilding = { "nocostbuilding",
|
static struct curse_type ct_nocostbuilding = { "nocostbuilding",
|
||||||
CURSETYP_NORM, 0, NO_MERGE,
|
CURSETYP_NORM, 0, NO_MERGE,
|
||||||
"Die Macht dieses Zaubers ist fast greifbar und tief in die Mauern "
|
"Die Macht dieses Zaubers ist fast greifbar und tief in die Mauern "
|
||||||
"gebunden. Unbeeindruck vom Zahn der Zeit wird dieses Gebäude wohl "
|
"gebunden. Unbeeindruck vom Zahn der Zeit wird dieses Gebäude wohl "
|
||||||
"auf Ewig stehen.",
|
"auf Ewig stehen.",
|
||||||
cinfo_building
|
cinfo_building
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
register_buildingcurse(void)
|
register_buildingcurse(void)
|
||||||
{
|
{
|
||||||
register_function((pf_generic)cinfo_magicrunes, "curseinfo::magicrunes");
|
register_function((pf_generic)cinfo_magicrunes, "curseinfo::magicrunes");
|
||||||
|
|
||||||
ct_register(&ct_magicwalls);
|
ct_register(&ct_magicwalls);
|
||||||
ct_register(&ct_strongwall);
|
ct_register(&ct_strongwall);
|
||||||
ct_register(&ct_magicrunes);
|
ct_register(&ct_magicrunes);
|
||||||
ct_register(&ct_nocostbuilding);
|
ct_register(&ct_nocostbuilding);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,83 +35,85 @@
|
||||||
int
|
int
|
||||||
cinfo_ship(const struct locale * lang, const void * obj, typ_t typ, curse *c, int self)
|
cinfo_ship(const struct locale * lang, const void * obj, typ_t typ, curse *c, int self)
|
||||||
{
|
{
|
||||||
message * msg;
|
message * msg;
|
||||||
|
|
||||||
unused(typ);
|
unused(typ);
|
||||||
unused(obj);
|
unused(obj);
|
||||||
assert(typ == TYP_SHIP);
|
assert(typ == TYP_SHIP);
|
||||||
|
|
||||||
if (self != 0){ /* owner or inside */
|
if (self != 0){ /* owner or inside */
|
||||||
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
||||||
} else {
|
} else {
|
||||||
msg = msg_message(mkname("curseinfo", "shipunknown"), "id", c->no);
|
msg = msg_message(mkname("curseinfo", "shipunknown"), "id", c->no);
|
||||||
}
|
}
|
||||||
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
if (msg) {
|
||||||
msg_release(msg);
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
return 1;
|
msg_release(msg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
log_warning(("There is no curseinfo for %s.\n", c->type->cname));
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CurseInfo mit Spezialabfragen */
|
/* CurseInfo mit Spezialabfragen */
|
||||||
|
|
||||||
/* C_SHIP_NODRIFT */
|
/* C_SHIP_NODRIFT */
|
||||||
static int
|
static int
|
||||||
cinfo_shipnodrift(const struct locale * lang, void * obj, typ_t typ, curse *c, int self)
|
cinfo_shipnodrift(const struct locale * lang, const void * obj, typ_t typ, curse *c, int self)
|
||||||
{
|
{
|
||||||
ship * sh;
|
ship * sh;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_SHIP);
|
assert(typ == TYP_SHIP);
|
||||||
sh = (ship*)obj;
|
sh = (ship*)obj;
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
sprintf(buf, "%s ist mit guten Wind gesegnet", sh->name);
|
sprintf(buf, "%s ist mit guten Wind gesegnet", sh->name);
|
||||||
if (c->duration <= 2){
|
if (c->duration <= 2){
|
||||||
scat(", doch der Zauber beginnt sich bereits aufzulösen");
|
scat(", doch der Zauber beginnt sich bereits aufzulösen");
|
||||||
}
|
}
|
||||||
scat(".");
|
scat(".");
|
||||||
} else {
|
} else {
|
||||||
sprintf(buf, "Ein silberner Schimmer umgibt das Schiff.");
|
sprintf(buf, "Ein silberner Schimmer umgibt das Schiff.");
|
||||||
}
|
}
|
||||||
scat(" (");
|
scat(" (");
|
||||||
scat(itoa36(c->no));
|
scat(itoa36(c->no));
|
||||||
scat(")");
|
scat(")");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct curse_type ct_stormwind = { "stormwind",
|
static struct curse_type ct_stormwind = { "stormwind",
|
||||||
CURSETYP_NORM, 0, NO_MERGE,
|
CURSETYP_NORM, 0, NO_MERGE,
|
||||||
"",
|
"", cinfo_ship
|
||||||
NULL
|
|
||||||
};
|
};
|
||||||
static struct curse_type ct_flyingship = { "flyingship",
|
static struct curse_type ct_flyingship = { "flyingship",
|
||||||
CURSETYP_NORM, 0, NO_MERGE,
|
CURSETYP_NORM, 0, NO_MERGE,
|
||||||
"",
|
"", cinfo_ship
|
||||||
NULL
|
|
||||||
};
|
};
|
||||||
static struct curse_type ct_nodrift = { "nodrift",
|
static struct curse_type ct_nodrift = { "nodrift",
|
||||||
CURSETYP_NORM, 0, ( M_DURATION | M_VIGOUR ),
|
CURSETYP_NORM, 0, ( M_DURATION | M_VIGOUR ),
|
||||||
"Der Zauber auf diesem Schiff ist aus den elementaren Magien der Luft "
|
"Der Zauber auf diesem Schiff ist aus den elementaren Magien der Luft "
|
||||||
"und des Wassers gebunden. Der dem Wasser verbundene Teil des Zaubers "
|
"und des Wassers gebunden. Der dem Wasser verbundene Teil des Zaubers "
|
||||||
"läßt es leichter durch die Wellen gleiten und der der Luft verbundene "
|
"läßt es leichter durch die Wellen gleiten und der der Luft verbundene "
|
||||||
"Teil scheint es vor widrigen Winden zu schützen.",
|
"Teil scheint es vor widrigen Winden zu schützen.",
|
||||||
cinfo_shipnodrift
|
cinfo_shipnodrift
|
||||||
};
|
};
|
||||||
static struct curse_type ct_shipdisorientation = { "shipdisorientation",
|
static struct curse_type ct_shipdisorientation = { "shipdisorientation",
|
||||||
CURSETYP_NORM, 0, NO_MERGE,
|
CURSETYP_NORM, 0, NO_MERGE,
|
||||||
"Dieses Schiff hat sich verfahren."
|
"Dieses Schiff hat sich verfahren.", cinfo_ship
|
||||||
};
|
};
|
||||||
static struct curse_type ct_shipspeedup = { "shipspeedup",
|
static struct curse_type ct_shipspeedup = { "shipspeedup",
|
||||||
CURSETYP_NORM, 0, 0,
|
CURSETYP_NORM, 0, 0,
|
||||||
NULL
|
NULL, cinfo_ship
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
register_shipcurse(void)
|
register_shipcurse(void)
|
||||||
{
|
{
|
||||||
ct_register(&ct_stormwind);
|
ct_register(&ct_stormwind);
|
||||||
ct_register(&ct_flyingship);
|
ct_register(&ct_flyingship);
|
||||||
ct_register(&ct_nodrift);
|
ct_register(&ct_nodrift);
|
||||||
ct_register(&ct_shipdisorientation);
|
ct_register(&ct_shipdisorientation);
|
||||||
ct_register(&ct_shipspeedup);
|
ct_register(&ct_shipspeedup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,41 +40,42 @@
|
||||||
int
|
int
|
||||||
cinfo_unit(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_unit(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
struct message * msg;
|
struct message * msg;
|
||||||
|
|
||||||
unused(typ);
|
unused(typ);
|
||||||
unused(self);
|
unused(self);
|
||||||
unused(obj);
|
unused(obj);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
|
|
||||||
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
||||||
if (msg==NULL) {
|
if (msg) {
|
||||||
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
msg_release(msg);
|
msg_release(msg);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
log_warning(("There is no curseinfo for %s.\n", c->type->cname));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
cinfo_unit_onlyowner(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_unit_onlyowner(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
message * msg;
|
message * msg;
|
||||||
struct unit *u;
|
struct unit *u;
|
||||||
|
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
u = (struct unit *)obj;
|
u = (struct unit *)obj;
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
|
||||||
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
msg_release(msg);
|
msg_release(msg);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -85,38 +86,38 @@ cinfo_unit_onlyowner(const struct locale * lang, const void * obj, typ_t typ, st
|
||||||
static int
|
static int
|
||||||
cinfo_auraboost(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_auraboost(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
struct unit *u;
|
struct unit *u;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
u = (struct unit *)obj;
|
u = (struct unit *)obj;
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
if (curse_geteffect(c) > 100){
|
if (curse_geteffect(c) > 100){
|
||||||
sprintf(buf, "%s fühlt sich von starken magischen Energien "
|
sprintf(buf, "%s fühlt sich von starken magischen Energien "
|
||||||
"durchströmt. (%s)", u->name, curseid(c));
|
"durchströmt. (%s)", u->name, curseid(c));
|
||||||
}else{
|
}else{
|
||||||
sprintf(buf, "%s hat Schwierigkeiten seine magischen Energien "
|
sprintf(buf, "%s hat Schwierigkeiten seine magischen Energien "
|
||||||
"zu sammeln. (%s)", u->name, curseid(c));
|
"zu sammeln. (%s)", u->name, curseid(c));
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_auraboost = {
|
static struct curse_type ct_auraboost = {
|
||||||
"auraboost",
|
"auraboost",
|
||||||
CURSETYP_NORM, CURSE_SPREADMODULO, (NO_MERGE),
|
CURSETYP_NORM, CURSE_SPREADMODULO, (NO_MERGE),
|
||||||
"Dieser Zauber greift irgendwie in die Verbindung zwischen Magier "
|
"Dieser Zauber greift irgendwie in die Verbindung zwischen Magier "
|
||||||
"und Magischer Essenz ein. Mit positiver Ausrichtung kann er wohl "
|
"und Magischer Essenz ein. Mit positiver Ausrichtung kann er wohl "
|
||||||
"wie ein Fokus für Aura wirken, jedoch genauso für das Gegenteil "
|
"wie ein Fokus für Aura wirken, jedoch genauso für das Gegenteil "
|
||||||
"benutzt werden.",
|
"benutzt werden.",
|
||||||
cinfo_auraboost
|
cinfo_auraboost
|
||||||
};
|
};
|
||||||
/* Magic Boost - Gabe des Chaos */
|
/* Magic Boost - Gabe des Chaos */
|
||||||
static struct curse_type ct_magicboost = {
|
static struct curse_type ct_magicboost = {
|
||||||
"magicboost",
|
"magicboost",
|
||||||
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
||||||
"",
|
"",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -126,25 +127,25 @@ static struct curse_type ct_magicboost = {
|
||||||
static int
|
static int
|
||||||
cinfo_slave(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_slave(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
unit *u;
|
unit *u;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
u = (unit *)obj;
|
u = (unit *)obj;
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
sprintf(buf, "%s wird noch %d Woche%s unter unserem Bann stehen. (%s)",
|
sprintf(buf, "%s wird noch %d Woche%s unter unserem Bann stehen. (%s)",
|
||||||
u->name, c->duration, (c->duration == 1)? "":"n", curseid(c));
|
u->name, c->duration, (c->duration == 1)? "":"n", curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_slavery = { "slavery",
|
static struct curse_type ct_slavery = { "slavery",
|
||||||
CURSETYP_NORM, 0, NO_MERGE,
|
CURSETYP_NORM, 0, NO_MERGE,
|
||||||
"Dieser mächtige Bann scheint die Einheit ihres freien Willens "
|
"Dieser mächtige Bann scheint die Einheit ihres freien Willens "
|
||||||
"zu berauben. Solange der Zauber wirkt, wird sie nur den Befehlen "
|
"zu berauben. Solange der Zauber wirkt, wird sie nur den Befehlen "
|
||||||
"ihres neuen Herrn gehorchen.",
|
"ihres neuen Herrn gehorchen.",
|
||||||
cinfo_slave
|
cinfo_slave
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -178,10 +179,10 @@ cinfo_calm(const struct locale * lang, const void * obj, typ_t typ, struct curse
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_calmmonster = { "calmmonster",
|
static struct curse_type ct_calmmonster = { "calmmonster",
|
||||||
CURSETYP_NORM, CURSE_SPREADNEVER, NO_MERGE,
|
CURSETYP_NORM, CURSE_SPREADNEVER, NO_MERGE,
|
||||||
"Dieser Beeinflussungszauber scheint die Einheit einem ganz "
|
"Dieser Beeinflussungszauber scheint die Einheit einem ganz "
|
||||||
"bestimmten Volk wohlgesonnen zu machen.",
|
"bestimmten Volk wohlgesonnen zu machen.",
|
||||||
cinfo_calm
|
cinfo_calm
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -191,29 +192,29 @@ static struct curse_type ct_calmmonster = { "calmmonster",
|
||||||
static int
|
static int
|
||||||
cinfo_speed(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_speed(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
unit *u;
|
unit *u;
|
||||||
curse_unit * cu;
|
curse_unit * cu;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
u = (unit *)obj;
|
u = (unit *)obj;
|
||||||
cu = (curse_unit *)c->data.v;
|
cu = (curse_unit *)c->data.v;
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
sprintf(buf, "%d Person%s von %s %s noch %d Woche%s beschleunigt. (%s)",
|
sprintf(buf, "%d Person%s von %s %s noch %d Woche%s beschleunigt. (%s)",
|
||||||
cu->cursedmen, (cu->cursedmen == 1)? "":"en", u->name,
|
cu->cursedmen, (cu->cursedmen == 1)? "":"en", u->name,
|
||||||
(cu->cursedmen == 1)? "ist":"sind", c->duration,
|
(cu->cursedmen == 1)? "ist":"sind", c->duration,
|
||||||
(c->duration == 1)? "":"n",
|
(c->duration == 1)? "":"n",
|
||||||
curseid(c));
|
curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_speed = {
|
static struct curse_type ct_speed = {
|
||||||
"speed",
|
"speed",
|
||||||
CURSETYP_UNIT, CURSE_SPREADNEVER, M_MEN,
|
CURSETYP_UNIT, CURSE_SPREADNEVER, M_MEN,
|
||||||
"Diese Einheit bewegt sich doppelt so schnell.",
|
"Diese Einheit bewegt sich doppelt so schnell.",
|
||||||
cinfo_speed
|
cinfo_speed
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -223,27 +224,27 @@ static struct curse_type ct_speed = {
|
||||||
static int
|
static int
|
||||||
cinfo_orc(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_orc(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
unit *u;
|
unit *u;
|
||||||
message * msg;
|
message * msg;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
u = (unit *)obj;
|
u = (unit *)obj;
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
msg = msg_message(mkname("curseinfo", c->type->cname), "unit id", u, c->no);
|
msg = msg_message(mkname("curseinfo", c->type->cname), "unit id", u, c->no);
|
||||||
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
nr_render(msg, lang, buf, sizeof(buf), NULL);
|
||||||
msg_release(msg);
|
msg_release(msg);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_orcish = {
|
static struct curse_type ct_orcish = {
|
||||||
"orcish",
|
"orcish",
|
||||||
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
||||||
"Dieser Zauber scheint die Einheit zu 'orkisieren'. Wie bei Orks "
|
"Dieser Zauber scheint die Einheit zu 'orkisieren'. Wie bei Orks "
|
||||||
"ist eine deutliche Neigung zur Fortpflanzung zu beobachten.",
|
"ist eine deutliche Neigung zur Fortpflanzung zu beobachten.",
|
||||||
cinfo_orc
|
cinfo_orc
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -253,28 +254,28 @@ static struct curse_type ct_orcish = {
|
||||||
static int
|
static int
|
||||||
cinfo_kaelteschutz(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_kaelteschutz(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
unit *u;
|
unit *u;
|
||||||
curse_unit * cu;
|
curse_unit * cu;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
u = (unit *)obj;
|
u = (unit *)obj;
|
||||||
cu = (curse_unit *)c->data.v;
|
cu = (curse_unit *)c->data.v;
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
sprintf(buf, "%d Person%s von %s %s sich vor Kälte geschützt. (%s)",
|
sprintf(buf, "%d Person%s von %s %s sich vor Kälte geschützt. (%s)",
|
||||||
cu->cursedmen, (cu->cursedmen == 1)? "":"en", u->name,
|
cu->cursedmen, (cu->cursedmen == 1)? "":"en", u->name,
|
||||||
(cu->cursedmen == 1)? "fühlt":"fühlen",
|
(cu->cursedmen == 1)? "fühlt":"fühlen",
|
||||||
curseid(c));
|
curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_insectfur = {
|
static struct curse_type ct_insectfur = {
|
||||||
"insectfur",
|
"insectfur",
|
||||||
CURSETYP_UNIT, CURSE_SPREADMODULO, ( M_MEN | M_DURATION ),
|
CURSETYP_UNIT, CURSE_SPREADMODULO, ( M_MEN | M_DURATION ),
|
||||||
"Dieser Zauber schützt vor den Auswirkungen der Kälte.",
|
"Dieser Zauber schützt vor den Auswirkungen der Kälte.",
|
||||||
cinfo_kaelteschutz
|
cinfo_kaelteschutz
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -284,60 +285,60 @@ static struct curse_type ct_insectfur = {
|
||||||
static int
|
static int
|
||||||
cinfo_sparkle(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_sparkle(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
const char * effects[] = {
|
const char * effects[] = {
|
||||||
NULL, /* end grau*/
|
NULL, /* end grau*/
|
||||||
"%s ist im Traum eine Fee erschienen.",
|
"%s ist im Traum eine Fee erschienen.",
|
||||||
"%s wird von bösen Alpträumen geplagt.",
|
"%s wird von bösen Alpträumen geplagt.",
|
||||||
NULL, /* end traum */
|
NULL, /* end traum */
|
||||||
"%s wird von einem glitzernden Funkenregen umgeben.",
|
"%s wird von einem glitzernden Funkenregen umgeben.",
|
||||||
"Ein schimmernder Lichterkranz umgibt %s.",
|
"Ein schimmernder Lichterkranz umgibt %s.",
|
||||||
NULL, /* end tybied */
|
NULL, /* end tybied */
|
||||||
"Eine Melodie erklingt, und %s tanzt bis spät in die Nacht hinein.",
|
"Eine Melodie erklingt, und %s tanzt bis spät in die Nacht hinein.",
|
||||||
"%s findet eine kleine Flöte, die eine wundersame Melodie spielt.",
|
"%s findet eine kleine Flöte, die eine wundersame Melodie spielt.",
|
||||||
"Die Frauen des nahegelegenen Dorfes bewundern %s verstohlen.",
|
"Die Frauen des nahegelegenen Dorfes bewundern %s verstohlen.",
|
||||||
"Eine Gruppe vorbeiziehender Bergarbeiter rufen %s eindeutig Zweideutiges nach.",
|
"Eine Gruppe vorbeiziehender Bergarbeiter rufen %s eindeutig Zweideutiges nach.",
|
||||||
NULL, /* end cerrdor */
|
NULL, /* end cerrdor */
|
||||||
"%s bekommt von einer Schlange einen Apfel angeboten.",
|
"%s bekommt von einer Schlange einen Apfel angeboten.",
|
||||||
"Ein Einhorn berührt %s mit seinem Horn und verschwindet kurz darauf im Unterholz.",
|
"Ein Einhorn berührt %s mit seinem Horn und verschwindet kurz darauf im Unterholz.",
|
||||||
"Vogelzwitschern begleitet %s auf all seinen Wegen.",
|
"Vogelzwitschern begleitet %s auf all seinen Wegen.",
|
||||||
"Leuchtende Blumen erblühen rund um das Lager von %s.",
|
"Leuchtende Blumen erblühen rund um das Lager von %s.",
|
||||||
NULL, /* end gwyrrd */
|
NULL, /* end gwyrrd */
|
||||||
"Über %s zieht eine Gruppe Geier ihre Kreise.",
|
"Über %s zieht eine Gruppe Geier ihre Kreise.",
|
||||||
"Der Kopf von %s hat sich in einen grinsenden Totenschädel verwandelt.",
|
"Der Kopf von %s hat sich in einen grinsenden Totenschädel verwandelt.",
|
||||||
"Ratten folgen %s auf Schritt und Tritt.",
|
"Ratten folgen %s auf Schritt und Tritt.",
|
||||||
"Pestbeulen befallen den Körper von %s.",
|
"Pestbeulen befallen den Körper von %s.",
|
||||||
"Eine dunkle Fee erscheint %s im Schlaf. Sie ist von schauriger Schönheit.",
|
"Eine dunkle Fee erscheint %s im Schlaf. Sie ist von schauriger Schönheit.",
|
||||||
"Fäulnisgeruch dringt %s aus allen Körperöffnungen.",
|
"Fäulnisgeruch dringt %s aus allen Körperöffnungen.",
|
||||||
NULL, /* end draig */
|
NULL, /* end draig */
|
||||||
};
|
};
|
||||||
int m, begin=0, end=0;
|
int m, begin=0, end=0;
|
||||||
unit *u;
|
unit *u;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
u = (unit *)obj;
|
u = (unit *)obj;
|
||||||
|
|
||||||
if(!c->magician || !c->magician->faction) return 0;
|
if(!c->magician || !c->magician->faction) return 0;
|
||||||
|
|
||||||
for(m=0;m!=c->magician->faction->magiegebiet;++m) {
|
for(m=0;m!=c->magician->faction->magiegebiet;++m) {
|
||||||
while (effects[end]!=NULL) ++end;
|
while (effects[end]!=NULL) ++end;
|
||||||
begin = end+1;
|
begin = end+1;
|
||||||
end = begin;
|
end = begin;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (effects[end]!=NULL) ++end;
|
while (effects[end]!=NULL) ++end;
|
||||||
if (end==begin) return 0;
|
if (end==begin) return 0;
|
||||||
else sprintf(buf, effects[begin + curse_geteffect(c) % (end-begin)], u->name);
|
else sprintf(buf, effects[begin + curse_geteffect(c) % (end-begin)], u->name);
|
||||||
scat(" (");
|
scat(" (");
|
||||||
scat(itoa36(c->no));
|
scat(itoa36(c->no));
|
||||||
scat(")");
|
scat(")");
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_sparkle = { "sparkle",
|
static struct curse_type ct_sparkle = { "sparkle",
|
||||||
CURSETYP_UNIT, CURSE_SPREADMODULO, ( M_MEN | M_DURATION ),
|
CURSETYP_UNIT, CURSE_SPREADMODULO, ( M_MEN | M_DURATION ),
|
||||||
"Dieser Zauber ist einer der ersten, den junge Magier in der Schule lernen.",
|
"Dieser Zauber ist einer der ersten, den junge Magier in der Schule lernen.",
|
||||||
cinfo_sparkle
|
cinfo_sparkle
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -347,24 +348,24 @@ static struct curse_type ct_sparkle = { "sparkle",
|
||||||
static int
|
static int
|
||||||
cinfo_strength(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_strength(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
unused(c);
|
unused(c);
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
unused(obj);
|
unused(obj);
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
sprintf(buf, "Die Leute strotzen nur so vor Kraft. (%s)",
|
sprintf(buf, "Die Leute strotzen nur so vor Kraft. (%s)",
|
||||||
curseid(c));
|
curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_strength = { "strength",
|
static struct curse_type ct_strength = { "strength",
|
||||||
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
||||||
"Dieser Zauber vermehrt die Stärke der verzauberten Personen um ein "
|
"Dieser Zauber vermehrt die Stärke der verzauberten Personen um ein "
|
||||||
"vielfaches.",
|
"vielfaches.",
|
||||||
cinfo_strength
|
cinfo_strength
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -374,23 +375,23 @@ static struct curse_type ct_strength = { "strength",
|
||||||
static int
|
static int
|
||||||
cinfo_allskills(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_allskills(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
unused(obj);
|
unused(obj);
|
||||||
unused(typ);
|
unused(typ);
|
||||||
unused(c);
|
unused(c);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
sprintf(buf, "Wird von einem Alp geritten. (%s)", curseid(c));
|
sprintf(buf, "Wird von einem Alp geritten. (%s)", curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_worse = {
|
static struct curse_type ct_worse = {
|
||||||
"worse",
|
"worse",
|
||||||
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
||||||
"",
|
"",
|
||||||
cinfo_allskills
|
cinfo_allskills
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
@ -401,61 +402,61 @@ static struct curse_type ct_worse = {
|
||||||
static int
|
static int
|
||||||
cinfo_itemcloak(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_itemcloak(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
unit *u;
|
unit *u;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
u = (unit *)obj;
|
u = (unit *)obj;
|
||||||
|
|
||||||
if (self != 0) {
|
if (self != 0) {
|
||||||
sprintf(buf, "Die Ausrüstung von %s scheint unsichtbar. (%s)",
|
sprintf(buf, "Die Ausrüstung von %s scheint unsichtbar. (%s)",
|
||||||
u->name, curseid(c));
|
u->name, curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_itemcloak = {
|
static struct curse_type ct_itemcloak = {
|
||||||
"itemcloak",
|
"itemcloak",
|
||||||
CURSETYP_UNIT, CURSE_SPREADNEVER, M_DURATION,
|
CURSETYP_UNIT, CURSE_SPREADNEVER, M_DURATION,
|
||||||
"Dieser Zauber macht die Ausrüstung unsichtbar.",
|
"Dieser Zauber macht die Ausrüstung unsichtbar.",
|
||||||
cinfo_itemcloak
|
cinfo_itemcloak
|
||||||
};
|
};
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
cinfo_fumble(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_fumble(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
unit * u = (unit*)obj;
|
unit * u = (unit*)obj;
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
assert(typ == TYP_UNIT);
|
assert(typ == TYP_UNIT);
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
sprintf(buf, "%s kann sich kaum konzentrieren. (%s)",
|
sprintf(buf, "%s kann sich kaum konzentrieren. (%s)",
|
||||||
u->name, curseid(c));
|
u->name, curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_fumble = {
|
static struct curse_type ct_fumble = {
|
||||||
"fumble",
|
"fumble",
|
||||||
CURSETYP_NORM, CURSE_SPREADNEVER, NO_MERGE,
|
CURSETYP_NORM, CURSE_SPREADNEVER, NO_MERGE,
|
||||||
"Eine Wolke negativer Energie umgibt die Einheit.",
|
"Eine Wolke negativer Energie umgibt die Einheit.",
|
||||||
cinfo_fumble
|
cinfo_fumble
|
||||||
};
|
};
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
static struct curse_type ct_oldrace = { "oldrace",
|
static struct curse_type ct_oldrace = { "oldrace",
|
||||||
CURSETYP_NORM, CURSE_SPREADALWAYS, NO_MERGE,
|
CURSETYP_NORM, CURSE_SPREADALWAYS, NO_MERGE,
|
||||||
"",
|
"",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
static struct curse_type ct_magicresistance = { "magicresistance",
|
static struct curse_type ct_magicresistance = { "magicresistance",
|
||||||
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
CURSETYP_UNIT, CURSE_SPREADMODULO, M_MEN,
|
||||||
"Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine "
|
"Dieser Zauber verstärkt die natürliche Widerstandskraft gegen eine "
|
||||||
"Verzauberung.",
|
"Verzauberung.",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -467,80 +468,80 @@ static struct curse_type ct_magicresistance = { "magicresistance",
|
||||||
static int
|
static int
|
||||||
read_skill(FILE * F, curse * c)
|
read_skill(FILE * F, curse * c)
|
||||||
{
|
{
|
||||||
int skill;
|
int skill;
|
||||||
if (global.data_version<CURSETYPE_VERSION) {
|
if (global.data_version<CURSETYPE_VERSION) {
|
||||||
int men;
|
int men;
|
||||||
fscanf(F, "%d %d", &skill, &men);
|
fscanf(F, "%d %d", &skill, &men);
|
||||||
} else {
|
} else {
|
||||||
fscanf(F, "%d", &skill);
|
fscanf(F, "%d", &skill);
|
||||||
}
|
}
|
||||||
c->data.i = skill;
|
c->data.i = skill;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static int
|
static int
|
||||||
write_skill(FILE * F, const curse * c)
|
write_skill(FILE * F, const curse * c)
|
||||||
{
|
{
|
||||||
fprintf(F, "%d ", c->data.i);
|
fprintf(F, "%d ", c->data.i);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
cinfo_skill(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
cinfo_skill(const struct locale * lang, const void * obj, typ_t typ, struct curse *c, int self)
|
||||||
{
|
{
|
||||||
unit *u = (unit *)obj;
|
unit *u = (unit *)obj;
|
||||||
int sk = c->data.i;
|
int sk = c->data.i;
|
||||||
|
|
||||||
unused(typ);
|
unused(typ);
|
||||||
|
|
||||||
if (self != 0){
|
if (self != 0){
|
||||||
sprintf(buf, "%s ist in %s ungewöhnlich ungeschickt. (%s)", u->name,
|
sprintf(buf, "%s ist in %s ungewöhnlich ungeschickt. (%s)", u->name,
|
||||||
skillname((skill_t)sk, u->faction->locale), curseid(c));
|
skillname((skill_t)sk, u->faction->locale), curseid(c));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static struct curse_type ct_skillmod = {
|
static struct curse_type ct_skillmod = {
|
||||||
"skillmod",
|
"skillmod",
|
||||||
CURSETYP_NORM, CURSE_SPREADMODULO, M_MEN,
|
CURSETYP_NORM, CURSE_SPREADMODULO, M_MEN,
|
||||||
"",
|
"",
|
||||||
cinfo_skill,
|
cinfo_skill,
|
||||||
NULL,
|
NULL,
|
||||||
read_skill, write_skill
|
read_skill, write_skill
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
void
|
void
|
||||||
register_unitcurse(void)
|
register_unitcurse(void)
|
||||||
{
|
{
|
||||||
register_function((pf_generic)cinfo_unit_onlyowner, "curseinfo::unit_onlyowner");
|
register_function((pf_generic)cinfo_unit_onlyowner, "curseinfo::unit_onlyowner");
|
||||||
register_function((pf_generic)cinfo_auraboost, "curseinfo::auraboost");
|
register_function((pf_generic)cinfo_auraboost, "curseinfo::auraboost");
|
||||||
register_function((pf_generic)cinfo_slave, "curseinfo::slave");
|
register_function((pf_generic)cinfo_slave, "curseinfo::slave");
|
||||||
register_function((pf_generic)cinfo_calm, "curseinfo::calm");
|
register_function((pf_generic)cinfo_calm, "curseinfo::calm");
|
||||||
register_function((pf_generic)cinfo_speed, "curseinfo::speed");
|
register_function((pf_generic)cinfo_speed, "curseinfo::speed");
|
||||||
register_function((pf_generic)cinfo_orc, "curseinfo::orc");
|
register_function((pf_generic)cinfo_orc, "curseinfo::orc");
|
||||||
register_function((pf_generic)cinfo_kaelteschutz, "curseinfo::kaelteschutz");
|
register_function((pf_generic)cinfo_kaelteschutz, "curseinfo::kaelteschutz");
|
||||||
register_function((pf_generic)cinfo_sparkle, "curseinfo::sparkle");
|
register_function((pf_generic)cinfo_sparkle, "curseinfo::sparkle");
|
||||||
register_function((pf_generic)cinfo_strength, "curseinfo::strength");
|
register_function((pf_generic)cinfo_strength, "curseinfo::strength");
|
||||||
register_function((pf_generic)cinfo_allskills, "curseinfo::allskills");
|
register_function((pf_generic)cinfo_allskills, "curseinfo::allskills");
|
||||||
register_function((pf_generic)cinfo_skill, "curseinfo::skill");
|
register_function((pf_generic)cinfo_skill, "curseinfo::skill");
|
||||||
register_function((pf_generic)cinfo_itemcloak, "curseinfo::itemcloak");
|
register_function((pf_generic)cinfo_itemcloak, "curseinfo::itemcloak");
|
||||||
register_function((pf_generic)cinfo_fumble, "curseinfo::fumble");
|
register_function((pf_generic)cinfo_fumble, "curseinfo::fumble");
|
||||||
|
|
||||||
ct_register(&ct_auraboost);
|
ct_register(&ct_auraboost);
|
||||||
ct_register(&ct_magicboost);
|
ct_register(&ct_magicboost);
|
||||||
ct_register(&ct_slavery);
|
ct_register(&ct_slavery);
|
||||||
ct_register(&ct_calmmonster);
|
ct_register(&ct_calmmonster);
|
||||||
ct_register(&ct_speed);
|
ct_register(&ct_speed);
|
||||||
ct_register(&ct_orcish);
|
ct_register(&ct_orcish);
|
||||||
ct_register(&ct_insectfur);
|
ct_register(&ct_insectfur);
|
||||||
ct_register(&ct_sparkle);
|
ct_register(&ct_sparkle);
|
||||||
ct_register(&ct_strength);
|
ct_register(&ct_strength);
|
||||||
ct_register(&ct_worse);
|
ct_register(&ct_worse);
|
||||||
ct_register(&ct_skillmod);
|
ct_register(&ct_skillmod);
|
||||||
ct_register(&ct_itemcloak);
|
ct_register(&ct_itemcloak);
|
||||||
ct_register(&ct_fumble);
|
ct_register(&ct_fumble);
|
||||||
ct_register(&ct_oldrace);
|
ct_register(&ct_oldrace);
|
||||||
ct_register(&ct_magicresistance);
|
ct_register(&ct_magicresistance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue