[wizs] 指令 running
這個目前限制只有 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
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
21
33