forked from github/server
- XE-Belohnungen. Muss getestet werden.
This commit is contained in:
parent
ced9653fa6
commit
c2aba8357f
|
@ -516,7 +516,7 @@ give_peasants(int n, const item_type * itype, unit * src)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
give_item(int want, const item_type * itype, unit * src, unit * dest, const char * cmd)
|
give_item(int want, const item_type * itype, unit * src, unit * dest, const char * cmd)
|
||||||
{
|
{
|
||||||
short error = 0;
|
short error = 0;
|
||||||
|
@ -791,7 +791,7 @@ giveunit(region * r, unit * u, unit * u2, strlist * S)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dogive(region * r, unit * u, strlist * S, boolean liefere, int mode)
|
dogive(region * r, unit * u, strlist * S, boolean liefere, int mode)
|
||||||
/*
|
/*
|
||||||
* mode=0: give to any units
|
* mode=0: give to any units
|
||||||
|
|
|
@ -73,6 +73,8 @@
|
||||||
#include <sql.h>
|
#include <sql.h>
|
||||||
#include <util/message.h>
|
#include <util/message.h>
|
||||||
|
|
||||||
|
#include <modules/xecmd.h>
|
||||||
|
|
||||||
#ifdef AT_OPTION
|
#ifdef AT_OPTION
|
||||||
/* attributes includes */
|
/* attributes includes */
|
||||||
#include <attributes/option.h>
|
#include <attributes/option.h>
|
||||||
|
@ -3533,9 +3535,12 @@ processorders (void)
|
||||||
puts(" - Monster fressen und vertreiben Bauern");
|
puts(" - Monster fressen und vertreiben Bauern");
|
||||||
monsters_kill_peasants();
|
monsters_kill_peasants();
|
||||||
|
|
||||||
puts(" - Zufallsereignisse");
|
puts(" - random events");
|
||||||
randomevents();
|
randomevents();
|
||||||
|
|
||||||
|
puts(" - newspaper commands");
|
||||||
|
xecmd();
|
||||||
|
|
||||||
puts(" - regeneration (healing & aura)");
|
puts(" - regeneration (healing & aura)");
|
||||||
monthly_healing();
|
monthly_healing();
|
||||||
regeneration_magiepunkte();
|
regeneration_magiepunkte();
|
||||||
|
|
|
@ -155,7 +155,10 @@ const char *parameters[MAXPARAMS] =
|
||||||
"TRÄNKE",
|
"TRÄNKE",
|
||||||
"GRUPPE",
|
"GRUPPE",
|
||||||
"PARTEITARNUNG",
|
"PARTEITARNUNG",
|
||||||
"BÄUME"
|
"BÄUME",
|
||||||
|
"XEPOTION",
|
||||||
|
"XEBALLOON",
|
||||||
|
"XELAEN"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -232,7 +235,8 @@ const char *keywords[MAXKEYWORDS] =
|
||||||
"PRÄFIX",
|
"PRÄFIX",
|
||||||
"SYNONYM",
|
"SYNONYM",
|
||||||
"PFLANZEN",
|
"PFLANZEN",
|
||||||
"WERWESEN"
|
"WERWESEN",
|
||||||
|
"XONTORMIA"
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *report_options[MAX_MSG] =
|
const char *report_options[MAX_MSG] =
|
||||||
|
|
|
@ -438,6 +438,7 @@ enum {
|
||||||
K_SYNONYM,
|
K_SYNONYM,
|
||||||
K_PFLANZE,
|
K_PFLANZE,
|
||||||
K_WEREWOLF,
|
K_WEREWOLF,
|
||||||
|
K_XE,
|
||||||
MAXKEYWORDS,
|
MAXKEYWORDS,
|
||||||
NOKEYWORD = (keyword_t) - 1
|
NOKEYWORD = (keyword_t) - 1
|
||||||
};
|
};
|
||||||
|
@ -504,6 +505,9 @@ enum {
|
||||||
P_GROUP,
|
P_GROUP,
|
||||||
P_FACTIONSTEALTH,
|
P_FACTIONSTEALTH,
|
||||||
P_TREES,
|
P_TREES,
|
||||||
|
P_XEPOTION,
|
||||||
|
P_XEBALLOON,
|
||||||
|
P_XELAEN,
|
||||||
MAXPARAMS,
|
MAXPARAMS,
|
||||||
NOPARAM = (param_t) - 1
|
NOPARAM = (param_t) - 1
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
/* vi: set ts=2:
|
||||||
|
+-------------------+ Christian Schlittchen <corwin@amber.kn-bremen.de>
|
||||||
|
| | Enno Rehling <enno@eressea-pbem.de>
|
||||||
|
| Eressea PBEM host | Katja Zedel <katze@felidae.kn-bremen.de>
|
||||||
|
| (c) 1998 - 2001 | Henning Peters <faroul@beyond.kn-bremen.de>
|
||||||
|
| | Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de>
|
||||||
|
+-------------------+ Stefan Reich <reich@halbling.de>
|
||||||
|
|
||||||
|
This program may not be used, modified or distributed
|
||||||
|
without prior permission by the authors of Eressea.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include <eressea.h>
|
||||||
|
#include <faction.h>
|
||||||
|
#include <unit.h>
|
||||||
|
#include <item.h>
|
||||||
|
#include <items/xerewards.h>
|
||||||
|
|
||||||
|
#include "xecmd.h"
|
||||||
|
|
||||||
|
/* kernel includes */
|
||||||
|
#include <item.h>
|
||||||
|
#include <unit.h>
|
||||||
|
#include <region.h>
|
||||||
|
#include <ship.h>
|
||||||
|
|
||||||
|
#include <base36.h>
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
attrib_type at_xontormiaexpress = {
|
||||||
|
"xontormiaexpress",
|
||||||
|
DEFAULT_INIT,
|
||||||
|
DEFAULT_FINALIZE,
|
||||||
|
DEFAULT_AGE,
|
||||||
|
DEFAULT_WRITE,
|
||||||
|
DEFAULT_READ,
|
||||||
|
ATF_UNIQUE
|
||||||
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
xe_givelaen(unit *u, char *cmd)
|
||||||
|
{
|
||||||
|
unit *u2 =getunitg(u->region, u->faction);
|
||||||
|
|
||||||
|
if(!u2) {
|
||||||
|
cmistake(u, strdup(cmd), 63, MSG_EVENT);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
i_change(&u2->items, olditemtype[I_LAEN], 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
xe_givepotion(unit *u, char *cmd)
|
||||||
|
{
|
||||||
|
unit *u2 =getunitg(u->region, u->faction);
|
||||||
|
|
||||||
|
if(!u2) {
|
||||||
|
cmistake(u, strdup(cmd), 63, MSG_EVENT);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
i_change(&u2->items, &it_skillpotion, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
xe_giveballon(unit *u, char *cmd)
|
||||||
|
{
|
||||||
|
unit *u2 =getunitg(u->region, u->faction);
|
||||||
|
ship *sh;
|
||||||
|
|
||||||
|
if(!u2) {
|
||||||
|
cmistake(u, strdup(cmd), 63, MSG_EVENT);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sh = new_ship(st_find("balloon"),u2->region);
|
||||||
|
sh->size = 5;
|
||||||
|
set_string(&sh->name,"Xontormia-Ballon");
|
||||||
|
addlist(&u2->region->ships, sh);
|
||||||
|
leave(u2->region, u2);
|
||||||
|
u2->ship = sh;
|
||||||
|
fset(u2, FL_OWNER);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
xecmd(void)
|
||||||
|
{
|
||||||
|
faction *f;
|
||||||
|
|
||||||
|
for(f=factions; f; f=f->next) {
|
||||||
|
if(a_find(f->attribs, &at_xontormiaexpress)) {
|
||||||
|
unit *u;
|
||||||
|
for(u=f->units; u; u=u->nextF) {
|
||||||
|
strlist *S;
|
||||||
|
for(S=u->orders; S; S=S->next) {
|
||||||
|
if(findkeyword(igetstrtoken(S->s),f->locale) == K_XE) {
|
||||||
|
switch(findparam(getstrtoken(),f->locale)) {
|
||||||
|
case P_XEPOTION:
|
||||||
|
xe_givepotion(u, S->s);
|
||||||
|
break;
|
||||||
|
case P_XEBALLOON:
|
||||||
|
xe_giveballon(u, S->s);
|
||||||
|
break;
|
||||||
|
case P_XELAEN:
|
||||||
|
xe_givelaen(u, S->s);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* vi: set ts=2:
|
||||||
|
+-------------------+ Christian Schlittchen <corwin@amber.kn-bremen.de>
|
||||||
|
| | Enno Rehling <enno@eressea-pbem.de>
|
||||||
|
| Eressea PBEM host | Katja Zedel <katze@felidae.kn-bremen.de>
|
||||||
|
| (c) 1998 - 2001 | Henning Peters <faroul@beyond.kn-bremen.de>
|
||||||
|
| | Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de>
|
||||||
|
+-------------------+ Stefan Reich <reich@halbling.de>
|
||||||
|
|
||||||
|
This program may not be used, modified or distributed
|
||||||
|
without prior permission by the authors of Eressea.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef XECMD_H
|
||||||
|
#define XECMD_H
|
||||||
|
|
||||||
|
extern attrib_type at_xontormiaexpress;
|
||||||
|
void xecmd(void);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include <modules/xmas2000.h>
|
#include <modules/xmas2000.h>
|
||||||
#include <modules/xmas2001.h>
|
#include <modules/xmas2001.h>
|
||||||
#include <modules/museum.h>
|
#include <modules/museum.h>
|
||||||
|
#include <modules/xecmd.h>
|
||||||
#include <items/questkeys.h>
|
#include <items/questkeys.h>
|
||||||
|
|
||||||
/* gamecode includes */
|
/* gamecode includes */
|
||||||
|
@ -2746,6 +2747,18 @@ questportal_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
xe_init(void)
|
||||||
|
{
|
||||||
|
faction *f = findfaction(atoi36("a5q"));
|
||||||
|
|
||||||
|
if(f) {
|
||||||
|
a_add(&f->attribs, a_new(&at_xontormiaexpress));
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
korrektur(void)
|
korrektur(void)
|
||||||
{
|
{
|
||||||
|
@ -2797,6 +2810,7 @@ korrektur(void)
|
||||||
do_once("witm", warn_items());
|
do_once("witm", warn_items());
|
||||||
do_once("guac", guard_conversion());
|
do_once("guac", guard_conversion());
|
||||||
do_once("qpoi", questportal_init());
|
do_once("qpoi", questportal_init());
|
||||||
|
do_once("xini", xe_init());
|
||||||
warn_password();
|
warn_password();
|
||||||
|
|
||||||
/* seems something fishy is going on, do this just
|
/* seems something fishy is going on, do this just
|
||||||
|
|
|
@ -1383,8 +1383,19 @@ showunits(region * r)
|
||||||
} else {
|
} else {
|
||||||
s = strchr(pointer->s, '(');
|
s = strchr(pointer->s, '(');
|
||||||
if (s) {
|
if (s) {
|
||||||
|
char idbuf[12];
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
s++;
|
s++;
|
||||||
f = atoi36(s);
|
while(*s != ')') {
|
||||||
|
idbuf[i] = *s;
|
||||||
|
i++; s++;
|
||||||
|
assert(i<=11);
|
||||||
|
}
|
||||||
|
idbuf[i] = '\0';
|
||||||
|
|
||||||
|
f = atoi36(idbuf);
|
||||||
|
|
||||||
x = findunit(f, r);
|
x = findunit(f, r);
|
||||||
if (x && modify_unit(r, findunit(f, r))) {
|
if (x && modify_unit(r, findunit(f, r))) {
|
||||||
for (pline = 0, tmp = eh; tmp != pointer; tmp = tmp->next)
|
for (pline = 0, tmp = eh; tmp != pointer; tmp = tmp->next)
|
||||||
|
|
|
@ -1552,6 +1552,16 @@
|
||||||
<text locale="de">ZAUBER</text>
|
<text locale="de">ZAUBER</text>
|
||||||
</string>
|
</string>
|
||||||
|
|
||||||
|
<string name="XEPOTION">
|
||||||
|
<text locale="de">XETRANK</text>
|
||||||
|
</string>
|
||||||
|
<string name="XEBALLOON">
|
||||||
|
<text locale="de">XEBALLON</text>
|
||||||
|
</string>
|
||||||
|
<string name="XELAEN">
|
||||||
|
<text locale="de">XELAEN</text>
|
||||||
|
</string>
|
||||||
|
|
||||||
<comment>Talente:</comment>
|
<comment>Talente:</comment>
|
||||||
<string name="sk_alchemy">
|
<string name="sk_alchemy">
|
||||||
<text locale="de">Alchemie</text>
|
<text locale="de">Alchemie</text>
|
||||||
|
|
Loading…
Reference in New Issue