tianchi.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 123 行
C
123 行
// emei.c 事件:长白山天池夜陨
#include <ansi.h>
void create() { seteuid(getuid()); }
// 开始创建事件
void create_event()
{
// 每凌晨12点
EVENT_D->at_after(0, 0, 1, -1);
}
// 奖励
private void do_bonus(object room)
{
object *obs;
object ob;
string msg;
int lvl;
int r;
obs = all_inventory(room);
obs = filter_array(obs, (: playerp($1) && living($1) :));
if (sizeof(obs) < 1)
return;
r = random(365);
if (r == 0)
{
msg = HIR "只听天空骤然传来一阵刺耳的摩擦声,你仰望上苍,发现穹苍里已豁然出现\n"
"无数颗流星。夜陨如雨飞坠,锋芒划空,尔落入天池之中,又再激起万股七\n"
"色浪涛,漆黑夜穹竟犹如白昼一般。你不禁感叹,大自然之威,当真神鬼莫\n"
"测。\n" NOR;
msg += HIC "你仔细的观察了流星雨的全过程,发现其中竟有很多奥秘可以融于武学。\n" NOR;
obs->add("potential", 300);
obs->add("combat_exp", 500);
message("vision", msg, obs);
// 增加基本身法、暗器。胡家弟子可以同时增加内功及刀法。
foreach (ob in obs)
{
if ((lvl = ob->query_skill("dodge", 1)) >= 80 &&
ob->can_improve_skill("dodge"))
ob->improve_skill("dodge", 160000);
if ((lvl = ob->query_skill("throwing", 1)) >= 80 &&
ob->can_improve_skill("throwing"))
ob->improve_skill("throwing", 160000);
if (ob->query("born_family") != "关外胡家")
continue;
if (ob->query_skill("mantian-xing", 1) >= 80 &&
! ob->query("can_perform/mantian-xing/xing"))
{
tell_object(ob, HIM "你心中一动,登时有所感悟,领悟了满天星中穹外飞星这一绝技!\n" NOR);
ob->set("can_perform/mantian-xing/xing", 1);
}
}
// 记录事件
MAP_D->record_rumor(obs, "天池流星雨", this_object());
CHANNEL_D->do_channel(this_object(), "rumor",
"听说长白山天池上夜空竟现流星雨,五彩缤纷,煞为壮观。");
} else
if (r < 40)
{
msg = RED "只听远处一阵刺耳的摩擦声,举目望去,发现竟有流星从天边划过,怎奈距\n"
"隔委实太远,根本无法看清。\n" NOR;
msg += HIC "你观罢流星,隐隐的对暗器功夫有了一丝体会。\n" NOR;
obs->improve_skill("throwing", 300);
message("vision", msg, obs);
// 记录事件
MAP_D->record_rumor(obs, "夜空流星", this_object());
} else
{
switch (random(2))
{
case 0:
msg = WHT "眼见天边一片明亮,知是流星雨将至,可怎奈间隔遥且云层厚,却无缘得见。\n" NOR;
break;
default:
msg = WHT "眼见天边一片明亮,但是水气,雾气和云层交杂,让你什么都看不清楚。\n" NOR;
break;
}
msg += HIG "你心中连叹:“太可惜了!”\n" NOR;
message("vision", msg, obs);
}
}
// 事件触发
void trigger_event()
{
object room;
// 长白山天池夜陨
if (objectp(room = find_object("/d/guanwai/tianchi1")))
do_bonus(room);
create_event();
}
// 描述
string query_detail(string topic)
{
switch (topic)
{
case "天池流星雨":
return "长白山天池夜空能见流星雨,煞为壮观。\n";
case "夜空流星":
return "夜空常有流星陨落,颇为美丽。\n";
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?