- Quickfix fuer Crashbug im Mapper beim Erzeugen neuer Einheiten

- WdW-Sphinx-Kram
This commit is contained in:
Christian Schlittchen 2006-01-15 18:47:52 +00:00
parent 08fec11034
commit d8de765bb7
3 changed files with 50 additions and 74 deletions

View File

@ -114,6 +114,7 @@ make_new_unit(region * r)
y = 4;
wmove(win, y, 4);
for (i = 0; i < MAXRACES; i++) {
if(new_race[i] == NULL) continue;
sprintf(buf, "%d=%s; ", i, new_race[i]->_name[0]);
q += strlen(buf);
if (q > SX - 20) {
@ -125,29 +126,32 @@ make_new_unit(region * r)
}
q = map_input(win, 2, 3, "Rasse", 0, MAXRACES-1, old_race(f->race));
u = createunit(r, f, anz, new_race[q]);
if (p==0)
u->age = (short)map_input(win, 2, 4, "Alter", 1, 99, 1);
else
u->age = 0;
for (; y > 3; y--) {
wmove(win, y, 4);
wclrtoeol(win);
wrefresh(win);
wmove(win, y, win->_maxx);
waddch(win, '|');
wrefresh(win);
}
buf[0] = 0;
strcpy(buf, my_input(win, 2, 4, "Name: ", NULL));
if (buf[0])
set_string(&u->name, buf);
if (!strlen(u->name))
set_string(&u->name, buf);
set_money(u, map_input(win, 2, 5, "Silber", 0, 999999, anz * 10));
} else
u = NULL;
if(new_race[q] != NULL) {
u = createunit(r, f, anz, new_race[q]);
if (p==0)
u->age = (short)map_input(win, 2, 4, "Alter", 1, 99, 1);
else
u->age = 0;
for (; y > 3; y--) {
wmove(win, y, 4);
wclrtoeol(win);
wrefresh(win);
wmove(win, y, win->_maxx);
waddch(win, '|');
wrefresh(win);
}
buf[0] = 0;
strcpy(buf, my_input(win, 2, 4, "Name: ", NULL));
if (buf[0])
set_string(&u->name, buf);
if (!strlen(u->name))
set_string(&u->name, buf);
set_money(u, map_input(win, 2, 5, "Silber", 0, 999999, anz * 10));
} else
u = NULL;
} else
u = NULL;
delwin(win);
return u;

View File

@ -174,7 +174,7 @@
<attack type="4" damage="1d10"/>
<attack type="6" spell="immolation"/>
</race>
<race name="sphinx" magres="0.900000" maxaura="1.000000" regaura="3.000000" recruitcost="250000" weight="180000" capacity="100000" speed="1.000000" hp="2700" ac="8" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="10" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" giveitem="yes" resistbash="yes" resistcut="yes" resistpierce="yes">
<race name="sphinx" magres="0.900000" maxaura="1.000000" regaura="3.000000" recruitcost="250000" weight="180000" capacity="100000" speed="1.000000" hp="2700" ac="8" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="10" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" giveitem="yes" resistbash="yes" resistcut="yes" resistpierce="yes" nogive="no">
<ai splitsize="1" killpeasants="yes" learn="yes"/>
<skill name="magic" modifier="12"/>
<skill name="tactics" modifier="12"/>

View File

@ -20,6 +20,10 @@ end
function sphinx_handler()
local function send_nohint(u, usphinx)
usphinx:add_order("botschaft einheit " .. itoa36(u.id) .. " \"Lass mich noch etwas ueber ein neues Raetsel nachdenken!\"")
end
local function send_gotHint(u, usphinx)
usphinx:add_order("botschaft einheit " .. itoa36(u.id) .. " \"Du hast diese Woche bereits einen Hinweis erhalten!\"")
end
@ -54,40 +58,8 @@ function sphinx_handler()
end
local function msg_handler(u, evt)
str = evt:get_string(0)
u2 = evt:get_unit(1)
if string.lower(str) == "hinweis" then
if u2.faction:get_variable("sphinxGotHint"..itoa36(u.id)) ~= nil then
send_gotHint(u2)
else
send_hint(u2, u)
end
end
tokens = {}
for token in string.gfind(str, "%a+") do
table.insert(tokens, token)
end
-- index starts with 1 in lua
if table.getn(tokens) == 2 and string.lower(tokens[1]) == "antwort" then
if string.lower(tokens[2]) == "insekt" then
-- Botschaft in alle Regionen
local m = message("msg_event")
m:set_string("string", "Das Rätsel der Sphinx ist gelöst! Die Sphinx wird sich eine neue Heimat und ein neues Rätsel suchen.")
for r in regions() do
m:send_region(r)
end
-- Region terraformen
terraform(u2.region.x, u.region.y, "plain")
u2.region.set_resource(u2.region, "tree", 721)
u2.region.set_resource(u2.region, "peasant", 2312)
u2.add_item(u2, "trappedairelemental", 5)
-- Neues Raetsel fuer beide Sphinxe!
-- Sphinx neu platzieren
-- Hint-Attribute von allen Allianzen loeschen
else
end
end
send_nohint(u2, u)
end
local f = get_faction(atoi36("ycx9"))
@ -104,24 +76,24 @@ function sphinx_handler()
end
function sphinx_weekly()
local f = get_faction(atoi36("ycx9"))
local u = get_unit(atoi36("si7z"))
if u ~= nil and u.faction == f then
u.region:add_notice("Eine Botschaft von Sphinx (si7z): Mit einer Botschaft \"Hinweis\" gebe ich euch einen Hinweis, mit einer Botschaft \"Antwort <Eure Antwort>\" könnt ihr mir eure Antwort mitteilen. Doch Vorsicht, falsche Antworten werde ich bestrafen!")
u.region:add_notice("Eine Botschaft von Sphinx (si7z): Fünf Krieger kamen auf ihren Schiffen in die Ebene der Helden, wollten um die Ehre ringen. Jedes Schiff trug ein anderes Segel, auf dem das Wappen des Kriegers prankte. Ein jeder trug seine liebste Waffe und das Signum seines Volkes und doch war keiner gleich.")
u.region:add_notice("Eine Botschaft von Sphinx (si7z): Wer hat den Schneeball?")
end
-- local f = get_faction(atoi36("ycx9"))
-- local u = get_unit(atoi36("si7z"))
-- if u ~= nil and u.faction == f then
-- u.region:add_notice("Eine Botschaft von Sphinx (si7z): Mit einer Botschaft \"Hinweis\" gebe ich euch einen Hinweis, mit einer Botschaft \"Antwort <Eure Antwort>\" könnt ihr mir eure Antwort mitteilen. Doch Vorsicht, falsche Antworten werde ich bestrafen!")
-- u.region:add_notice("Eine Botschaft von Sphinx (si7z): Fünf Krieger kamen auf ihren Schiffen in die Ebene der Helden, wollten um die Ehre ringen. Jedes Schiff trug ein anderes Segel, auf dem das Wappen des Kriegers prankte. Ein jeder trug seine liebste Waffe und das Signum seines Volkes und doch war keiner gleich.")
-- u.region:add_notice("Eine Botschaft von Sphinx (si7z): Wer hat den Schneeball?")
-- end
local u = get_unit(atoi36("qcph"))
if u ~= nil and u.faction == f then
u.region:add_notice("Eine Botschaft von Sphinx (qcph): Mit einer Botschaft \"Hinweis\" gebe ich euch einen Hinweis, mit einer Botschaft \"Antwort <Eure Antwort>\" könnt ihr mir eure Antwort mitteilen. Doch Vorsicht, falsche Antworten werde ich bestrafen!")
u.region:add_notice("Eine Botschaft von Sphinx (qcph): Fünf Krieger kamen auf ihren Schiffen in die Ebene der Helden, wollten um die Ehre ringen. Jedes Schiff trug ein anderes Segel, auf dem das Wappen des Kriegers prankte. Ein jeder trug seine liebste Waffe und das Signum seines Volkes und doch war keiner gleich.")
u.region:add_notice("Eine Botschaft von Sphinx (qcph): Wer hat den Schneeball?")
end
-- local u = get_unit(atoi36("qcph"))
-- if u ~= nil and u.faction == f then
-- u.region:add_notice("Eine Botschaft von Sphinx (qcph): Mit einer Botschaft \"Hinweis\" gebe ich euch einen Hinweis, mit einer Botschaft \"Antwort <Eure Antwort>\" könnt ihr mir eure Antwort mitteilen. Doch Vorsicht, falsche Antworten werde ich bestrafen!")
-- u.region:add_notice("Eine Botschaft von Sphinx (qcph): Fünf Krieger kamen auf ihren Schiffen in die Ebene der Helden, wollten um die Ehre ringen. Jedes Schiff trug ein anderes Segel, auf dem das Wappen des Kriegers prankte. Ein jeder trug seine liebste Waffe und das Signum seines Volkes und doch war keiner gleich.")
-- u.region:add_notice("Eine Botschaft von Sphinx (qcph): Wer hat den Schneeball?")
-- end
for faction in factions() do
faction:delete_variable("sphinxGotHintsi7z");
faction:delete_variable("sphinx2GotHintqcph");
end
-- for faction in factions() do
-- faction:delete_variable("sphinxGotHintsi7z");
-- faction:delete_variable("sphinx2GotHintqcph");
-- end
end