- Monster-Skripting in Lua (fertig, fehler gefunden)

- Beispielskripte
This commit is contained in:
Enno Rehling 2004-06-24 16:48:47 +00:00
parent 896d8b0e96
commit b46efa76d4
2 changed files with 151 additions and 1 deletions

View File

@ -45,7 +45,7 @@ call_script(struct unit * u)
if (a==NULL) a = a_findc(u->race->attribs, &at_script); if (a==NULL) a = a_findc(u->race->attribs, &at_script);
if (a!=NULL && a->data.v!=NULL) { if (a!=NULL && a->data.v!=NULL) {
luabind::functor<void> * func = (luabind::functor<void> *)a->data.v; luabind::functor<void> * func = (luabind::functor<void> *)a->data.v;
func->operator()(*u); func->operator()(u);
} }
return -1; return -1;
} }

150
src/scripts/samples.lua Normal file
View File

@ -0,0 +1,150 @@
function test_combat()
plain = terraform(0, 0, "plain")
skill = 8
f = add_faction("enno@eressea.de", "orc", "de")
f.age = 20
u = add_unit(f, plain)
u.number = 100
u:add_item("money", u.number*100)
u:add_item("sword", u.number)
u:set_skill("sk_melee", skill)
u:clear_orders()
u:add_order("NUMMER PARTEI test")
u:add_order("KÄMPFE")
u:add_order("BEFÖRDERUNG")
attack = "ATTACKIERE " .. itoa36(u.id)
f = add_faction("enno@eressea.de", "elf", "de")
f.age = 20
u = add_unit(f, plain)
u.number = 100
u:add_item("money", u.number*100)
u:add_item("sword", u.number)
u:set_skill("sk_melee", skill+2)
u:clear_orders()
u:add_order("NUMMER PARTEI eviL")
u:add_order("KAEMPFE")
u:add_order(attack)
process_orders()
write_reports()
end
function test_rewards()
-- this script tests manufacturing and fighting.
plain = terraform(0, 0, "plain")
skill = 5
f = add_faction("enno@eressea.de", "human", "de")
f.age = 20
u = add_unit(f, plain)
u.number = 10
u:add_item("money", u.number*100)
u:add_item("greatbow", u.number)
u:set_skill("sk_bow", skill)
u:clear_orders()
u:add_order("KAEMPFE")
attack = "ATTACKIERE " .. itoa36(u.id)
u = add_unit(f, plain)
u.number = 7
u:add_item("money", u.number*100)
u:add_item("mallorn", u.number*10)
u:set_skill("sk_weaponsmithing", 7)
u:clear_orders()
u:add_order("KAEMPFE NICHT")
u:add_order("MACHEN Elfenbogen")
u:add_order("NUMMER PARTEI test")
f = add_faction("enno@eressea.de", "elf", "de")
f.age = 20
u = add_unit(f, plain)
u.number = 7
u:add_item("money", u.number*100)
u:add_item("greatbow", u.number)
u:set_skill("sk_bow", skill)
u:clear_orders()
u:add_order("KAEMPFE HINTEN")
u:add_order(attack)
u = add_unit(f, plain)
u.number = 7
u:add_item("money", u.number*100)
u:add_item("mallorn", u.number*10)
u:set_skill("sk_weaponsmithing", 7)
u:clear_orders()
u:add_order("KAEMPFE NICHT")
u:add_order("MACHEN Elfenbogen")
u:add_order("NUMMER PARTEI eviL")
u = add_unit(f, plain)
u.number = 7
u:add_item("money", u.number*100)
u:add_item("mallorn", u.number*10)
u:set_skill("sk_weaponsmithing", 7)
u:clear_orders()
u:add_order("KAEMPFE NICHT")
items = { "hornofdancing", "trappedairelemental",
"aurapotion50", "bagpipeoffear",
"instantartacademy", "instantartsculpture" }
for index in items do
u:add_item(items[index], 1)
u:add_order('@BENUTZEN "' .. get_string("de", items[index]) .. '"')
end
u:add_order("NUMMER PARTEI eviL")
process_orders()
write_reports()
end
function test_give()
plain = terraform(0, 0, "plain")
f = add_faction("enno@eressea.de", "human", "de")
f.age = 20
u = add_unit(f, plain)
u.number = 10
u:add_item("money", u.number*100)
u:clear_orders()
u:add_order("MACHE TEMP eins")
u:add_order("REKRUTIERE 1")
u:add_order("ENDE")
u:add_order("GIB TEMP eins ALLES silber")
u:add_order("NUMMER PARTEI test")
process_orders()
write_reports()
end
function test_write()
read_game("24")
read_orders("befehle")
process_orders()
write_reports()
write_game("25")
end
function move_north(u)
u:clear_orders()
u:add_order("NACH NORDEN")
end
function test_monsters()
read_game("23")
set_brain("braineater", move_north)
plan_monsters()
process_orders()
end
test_monsters()
-- test_combat()
-- test_rewards()
-- test_give()
-- test_write()
-- read_game("test")
-- write_game("test")