[心得] zMUD #alias 的用法之一

看板mud_sanc (Sanctuary - 聖殿)作者 (hmml)時間14年前 (2011/09/17 14:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
  #alias 在zMUD中一個比較不被發覺的功能之一,就是在下達 指令時,zMUD會檢查指令有沒有夾帶變數,一般多會在無意中使 用到它,但不會發現,藉由這個功能,可以簡化 #alias 的數量, 特別是遊戲中一些系列型指令,如:spiriten trading blarket。   #alias 的指令格式為: name %1 %2.... 即後方每一個單詞都會當成一個變數來用,如果有空格的詞, 就會被當成數個變數,因而讓這個好用的功能變得不太實用,但是 依然有方法來處理這個問題: %1 %2:代表一個單詞一個變數。 %-1 %-2:代表第n個單詞後方的所有單詞為一個變數。 基於上方的設定,只要將可能將數個單詞設為單一變數的部份,放 到最後即能解決這個問題。以下是系列型指令spiriten trading blarket的設定範例: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- spiriten(靈力武器): Name:spn Commands: #case %ismember(%1,t|c|n) {spiriten -clone %2} {spiriten -copy %2} {spiriten -name %-2} {spiriten -remove} 輸出格式: spn t sword >> spiriten -clone sword spn c 玩家 >> spiriten -clone 玩家 spn n 名字 >> spiriten -name 名字 spn >> spiriten -remove 說明: 以 spn t sword 為例:%1為t,%2為sword,t代入commands裡的函數ismember去比對, 決定要執行哪個指令,所得結果為第一道指令spiriten -clone %2,%2為sword,所以 輸出指令為spiriten -clone sword。 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- blarket(黑市拍賣)Name:blk Commands: #case %ismember(%1,b|n|l|f|m|r) {blarket -bet %2} {blarket -abort} {blarket -view %-2} {blarket -floor %2} {blarket -mod%2} {blarket -remark %-3 blarket -mod1 blarket -floor %2} {#say commands error} #abort B:下標 N:棄標 L:看拍賣品 F:設定起標價 M:設定拍賣模式 R:標記商品 輸出格式: blarket b 金額  >> blarket -bet 金額 blarket n >> blarket -abort blarket l 商品 >> blarket -view 商品 blarket f 金額 >> blarket -floor 金額 blarket m 1 or 2 >> blarket -mod1 or blarket -mod2 blarket r 金額 商品 >> blarket -remark 商品 blarket -mod1 blarket -floor 金額 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- trading(交易): Name:tra Commands: #case %ismember(%1,b|s|a|n) {trading %3 int to %2 with %-4 trading -agree %2} {trading %-4 to %2 with %3 trading -agree %2} {trading -agree %2} {trading -repulse %2} {#say error} 輸出格式: tra b 玩家 價金 物品 >> trading 價金 int to 玩家 with 物品 trading -agree 玩家 tra s 玩家 價金 物品 >> trading 物品 to 玩家 with 價金 int trading -agree 玩家 tra a 玩家 >> trading -agree 玩家 tra n 玩家 >> trading -repulse 玩家 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.196.45
文章代碼(AID): #1ET3_eVo (mud_sanc)
文章代碼(AID): #1ET3_eVo (mud_sanc)