作者laechan (小太保)
看板mud_sanc
标题[wizs] 指令 running
时间Thu Apr 5 10:40:06 2012
这个目前限制只有 adm 可用, 不过理论上 wiz 应该也可以,
改天再下放.
running 的架构很简单,指令 running 下下去就进入编辑画
面, 范例一如下..
> running
编辑结束并存档(.). 中途放弃编辑(~q).讯息暂时中断。
__________________________________________________________________
write("目前的时间是: "+ctime(time())+".\n");
.
========== 程式执行区 ==========
目前的时间是: Thu Apr 5 10:09:06 2012.
========== 程式执行区 ==========
简单的说,就是 running 会帮你执行你在编辑区 key 入的
程式码.
范例二如下..
> running
编辑结束并存档(.). 中途放弃编辑(~q).讯息暂时中断。
__________________________________________________________________
obs=users();
tmp="玩家资料列表:\n";
foreach(ob in obs)
if(ob && environment(ob))
tmp+=sprintf("%-11s %-3d %-6s %-9s %-10s\n",
ob->query("name"),(int)ob->query("level"),
(string)ob->query("gender"),(string)ob->query("race"),
(string)ob->query("pri_guild"));
write(tmp);
.
========== 程式执行区 ==========
玩家资料列表:
ramsay 120 male dragonman knight
yth 102 male stoneman mage
ma713 120 male dragonman knight
ma7131 120 male devil blader
.
.
noibadi 109 male human thief
silvara 51 female elf clerical
========== 程式执行区 ==========
详细的程式资料 norr 你可 more /cmds/adm/_running.c
观看,即可知道一些细节。
running 还内建了一个简单的排序, 底下是范例三..
> running
编辑结束并存档(.). 中途放弃编辑(~q).讯息暂时中断。
__________________________________________________________________
obs=users();
// 依战功排序
sort_keys="warexp";
obs=sort_array(obs,"sort_xxx",this_object());
tmp="玩家资料列表:\n";
foreach(ob in obs)
if(ob && !wizardp(ob) && environment(ob))
tmp+=sprintf("%-11s %-3d %-7d\n",
ob->query("name"),(int)ob->query("level"),
(int)ob->query("warexp"));
write(tmp);
.
========== 程式执行区 ==========
玩家资料列表:
angelwind 120 2827385
kimokimo 120 2721838
windman 120 1366279
.
.
.
由这个功能就可知道,running 是很有改良空间的。
总之,running 目前暂时可做为要测试什麽时需得在
自己的 workroom 编辑测试用函数的替代方式,有这
个理论上就不用去编辑 workroom 了。
而且,它具有即时执行(anytime)、随处可执行(anywhere)
的效果,例如范例四,我想秒杀所在房间的所有怪物时..
> l
[/u/l/laechan/area/secret/room/190 ]
[秘境阶梯]
这里充满着一股浓浓的土石味, 但这味道并不难闻, 反而令人觉
得十分的舒服.
明显出口有: northdown 和 southup.
Lv110.大 骨 兵(Big Bone Troop) [10只大 骨 兵]
Lv130.大 骨 兵(Big Bone Troop) [19只大 骨 兵]
Lv130.石化虫(Stoneworm) [14只石化虫]
Lv125.石化虫(Stoneworm) [13只石化虫]
> running
编辑结束并存档(.). 中途放弃编辑(~q).讯息暂时中断。
__________________________________________________________________
obs=all_inventory(env);
foreach(ob in obs)
if(living(ob) && !userp(ob))
ob->die();
.
========== 程式执行区 ==========
大 骨 兵发出一声惨叫!!
大 骨 兵慢慢的倒在地上死了...你得到 5400点的经验值。
你拿不起任何影特币了!
大 骨 兵发出一声惨叫!!
大 骨 兵慢慢的倒在地上死了...你得到 8280点的经验值。
你拿不起任何影特币了!
石化虫发出一声惨叫!!
石化虫慢慢的倒在地上死了...你得到 8280点的经验值。
你拿不起任何影特币了!
石化虫发出一声惨叫!!
石化虫慢慢的倒在地上死了...你得到 7590点的经验值。
你拿不起任何影特币了!
========== 程式执行区 ==========
当然像这种程式段也可以写为内建函数, 这样就不需要打
那麽多行, 有时只要一行就可以解决了, 例如..
call_die_all(env);
像是要叫出房间原本的怪物时就这样做
env->reset();
> running
编辑结束并存档(.). 中途放弃编辑(~q).讯息暂时中断。
__________________________________________________________________
env->reset();
.
> l
[/u/l/laechan/area/secret/room/190 ]
[秘境阶梯]
这里充满着一股浓浓的土石味, 但这味道并不难闻, 反而令人觉
得十分的舒服.
明显出口有: northdown 和 southup.
Lv130.大 骨 兵(Big Bone Troop) [17只大 骨 兵]
Lv130.大 骨 兵(Big Bone Troop) [12只大 骨 兵]
Lv110.石化虫(Stoneworm) [16只石化虫]
Lv115.石化虫(Stoneworm) [20只石化虫]
这样怪物就可以生回来。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 223.140.164.51