2010年6月30日 星期三

第六講? 還是入門第一章?

第六講? 還是入門第一章?
先解答習題二
pattern很明顯的要抓gin,kee,sen,food,water,tire的值.沿用習題1,我推薦使用
^食物%s(%d)/(%d)%s飲水%s(%d)/(%d)%s疲勞%s(%d)/(%d)%s犯罪%s(%d)$
當trigger. 這不是唯一的答案,更不存在正確答案,只是我個人的切入點.
有人就喜歡用score來抓gin,kee,sen max,優點是max值更精確,缺點是有效值不精確,總之自己找自己覺得最好的切入點。
指令同樣不是唯一的,我喜歡用
#IF (%3<%4/2) {drink from skin;#alarm +4 {hp} class;#abort 1}
#IF (%1<%2-80) {eat manto;#alarm +4 {hp} class;#abort 1}
#IF %5>10 {fish;#abort 1}
#IF @gin<@eff_gin {acupuncture gin-up;#alarm +4 {hp} class;#abort 1}
#IF @kee<@eff_kee {acupuncture kee-up;#alarm +4 {hp} class;#abort 1}
#IF @sen<@eff_sen {acupuncture sen-up;#alarm +4 {hp} class;#abort 1}
exert zushang
不過這不是唯一方法
ex 2.
#IF (%3<%4/2) {drink from skin;#alarm +4 {hp} class} {#IF (%1<%2-80) {eat manto;#alarm +4 {hp} class} {#IF %5>10 {fish} {下略....}}}

同樣的指令不止一種
#IF (%3<100) {drink from skin;#abort 1}
#IF @gin<@eff_gin {acupuncture gin-up;#abort 1}
這些,在另一個動作後再用#ala(主要是防訊號堵住)等數秒然後hp
可以說robot只有想不出的,沒有寫不出的.

-----------
本章說的是基礎中的基礎 - 連續指令跟重複指令
連續指令就是一次性下數個指令,利用;來分隔開,例如
drink from skin;#alarm +4 {hp} class;#abort 1
就是連續下了
drink from skin
#alarm +4 {hp} class
#abort 1
三個指令
-----------
重複指令的本質是#LOOP,基本功能是把同一指令反覆下多次
格式
#LOOP 次數 {指令}
#LOOP 始值,終值 {指令}
#次數 {指令}

菜鳥跟老鳥就是在小地方分出來的,菜鳥用#LOOP只會#9 buy candy from grocer (打9次buy candy from grocer)
老鳥會知道#9 {kill guard %i}
打9次,由guard 1 kill到guard 9
我會 守衛{(}Guard{)} -> #ADD guard 1
#LOOP @guard {#IF %i>9 {#ALA +2 {#LOOP 10,@guard {kill guard %i}};#ABORT 1};kill guard %i}
當guard超過9隻時第一次kill guard 1~9,2秒後由guard 10繼續kill下去(超過18隻?我是掛robot不是掛自殺.....不過真的要的話在#ALA後繼續#IF下去就是了...)
-----------
習題三︰一個用來計算由lv x升級到lv y可以praise多少聲望的#alias

2010年6月27日 星期日

何水無魚?何山無石?何樹無枝?何人無父?何女無夫?何城無市?

看 何水無魚?何山無石?何樹無枝?何人無父?何女無夫?何城無市?
有人說出自佛經,佛說 南水無魚,無山無石,阿人無父,彌女無夫,陀樹無枝,佛城無市。
我笑了,先別說釋迦牟尼是天竺人,佛經是梵文,那來的中文字謎,我還想問南水?阿人?彌女?陀樹? 那都是啥?
我還說釋迦牟尼其實是說 所水無魚,有山無石,禿樹無枝,驢子無父,處女無夫,死城無市,世尊的暗語是所有禿驢處死。

別問我所水是啥,我告訴你那跟南水差不多。
既 然可以無山無石自然也可以有山無石了。
禿樹當然無枝,有枝的就不是禿樹了。
畜牲大都有母無父,驢子也不例外。
處女無夫,死城無市 不用解釋了吧?

zmud很易用 robot不求人 - 孫雯(syunman)的robot教室 第五講

zmud很易用 robot不求人 - 孫雯(syunman)的robot教室 第五講

2-4 #VAR的用法 本章的精華所在
#TRIGGER 解析
形體%s(%d)/(%d)%s精%s(%d)/(%d)%s氣%s(%d)/(%d)%s神%s(%d)/(%d)
%s = 1個或以上的空白
%d = 數字
() 把()中的資料記錄到%1 %2 至 %99 的參數中

指令列為
#IF %6>@max_kee {#VAR max_kee %6} <==當上面記錄下的參數%6大於變量max_kee時把變量max_kee設為%6, 下同
#IF %4>@max_gin {#VAR max_gin %4}
#IF %8>@max_sen {#VAR max_sen %8}
#VAR gin %3
#VAR eff_gin %4
#VAR kee %5
#VAR eff_kee %6
#VAR sen %7
#VAR eff_sen %8

這其實真的是很簡單的trigger,就是把你的精氣神的現在值,有效值跟上限值都抓下來吧了。

------

習題二︰我決定如果飲水比飲水上限少約1/3便飲水,食物比上限少80便吃饅頭,疲勞大於10便釣魚,精、氣、神不滿便用三自回,都回滿便蹲竹上經心法(先別管那來的zushang),那麼pattern跟指令應該是甚麼?

可能會有用的指令︰
#ABORT <--#ABORT後的指令不再執行,限在同一對{}之中
#ABORT 1<--#ABORT 1後的指令不再執行,只要在同一個指令列中都有效,zmud 5.55後存在(最少4.62的help中沒有)

------

事實上robot的基礎到此為止,大部份情況下都夠用了,下一講是一些zmud的常用指令,可以讓大家robot的更方便

zmud很易用 robot不求人 - 孫雯(syunman)的robot教室 第四講

zmud很易用 robot不求人 - 孫雯(syunman)的robot教室 第四講

2-4 #VAR的用法 本章的精華所在
本章第一節中你已經學會了寫出變量,可是到底這東西要怎樣用呢?
在ZMUD中可以用@變量來叫出變量使用......好像很複雜......所以用實驗代替講解

先到zmud打
#var test1 10
這時候你已經設定了一個叫做test1的變量,賦予的值是10......好吧,還是聽不懂是應該的......回去zmud打
#var test1
看看吧
接下來打
#SAY @test1
你會看到天青色(HIGH CYAN)的10字樣(zmud預設顏色,可以修改,部份破解版中顏色可能已被改的亂七八糟,別問我為什麼顏色不對。)
好吧.....好像沒甚麼用
接下來打
#IF (@test1=10) {#SAY hi} {#SAY hello}
嗯嗯....一直出hi? 沒關係,先打
#VAR test1 0
#IF (@test1=10) {#SAY hi} {#SAY hello}
#ADD test1 1
#IF (@test1=10) {#SAY hi} {#SAY hello}
重複
#ADD test1 1
#IF (@test1=10) {#SAY hi} {#SAY hello}
......
好吧,很無聊,只是讓你直觀的理解吧了。

---
2-4.i
格式 #SAY 內容
會用天青色字體顯示內容,很不顯眼,好像沒有用的功能,其實#TR除錯小不了它。
不過以後再說吧。
---
習作︰打開trigger介面加入pattern為
形體%s(%d)/(%d)%s精%s(%d)/(%d)%s氣%s(%d)/(%d)%s神%s(%d)/(%d)
指令列為
#IF %6>@max_kee {#VAR max_kee %6}
#IF %4>@max_gin {#VAR max_gin %4}
#IF %8>@max_sen {#VAR max_sen %8}
#VAR gin %3
#VAR eff_gin %4
#VAR kee %5
#VAR eff_kee %6
#VAR sen %7
#VAR eff_sen %8
到上一行為止都是指令列
class為standard
comment為習作
的trigger,並嚐試在看下一講前搞懂這Trigger的意思。
嗯,有很多東西的確沒說......所以下一講就是解說本trigger.

zmud很易用 robot不求人 - 孫雯(syunman)的robot教室 第三講

zmud很易用 robot不求人 - 孫雯(syunman)的robot教室 第三講

ch2 第二章 真正的robot入門
在本章你會學到一丁點真正有用的東西(上一章說的都是基礎中的基礎,絕對沒資格被稱為robot)
本章中你會學到
#VAR
#IF
兩個robot中的基礎,也差不多是robot的全部的東西

2-1 #VAR
格式 #VAR 變量名稱 {變量內容} {預設值} class
#VAR 就跟#ALARM一樣,是要讓zmud知道這是一個#var命令
變量名稱 設定一個變量的名稱,個人建議只用英文字母開頭,只用英文字母,數字及下劃線組成變量名稱
{變量內容} 就是你給變量指定的一個值
{預設值} 每次連線/重新連線時如果有設定預設值變量會回復到預設值,正常情況下請留空
class 你快要學到了,不過變量一般不指定class,最少我是不指定class,因為通常會用到一個變量的class不止一個,如無預設值請留空,否則zmud會誤判為預設值

2-2 #IF
格式 #IF (條件) {指令1} {指令2}
#IF 要讓zmud知道這是一個#IF命令,這是我最後一次說了,下次開始不再解釋
(條件) 用來判斷的依據,()為非必須,不過建議使用
{指令1} 當條件成立時下的指令,{}為非必須,不過99.99%的時間都是必須的,所以請當成必須
{指令2} 當條件不成立時下的指令,非必須,{}用上

2-3 #VAR的變形
2-3.1 #ADD
格式 #ADD 變量 數值
變量 同#VAR的變量名稱
數值 給變量增加的數值
2-3.2 #MATH
格式 #MATH 變量 運算式
變量 同#VAR的變量名稱
運算式 讓#MATH執行運算式並用結果取代變量內容

2-4 #VAR的用法 本章的精華所在
且聽下回分解

zmud很易用 robot不求人 - 孫雯(syunman)的robot教室 第二講

zmud很易用 robot不求人 - 孫雯(syunman)的robot教室 第二講

1-2 解說trigger介面
現在先按zmud中槍械/trigger的圖案打開zmud介面
上面有勾勾,交叉,垃圾桶,十字四個按鈕,勾勾代表保存現有trigger,交叉代表取消修改,垃圾桶代表刪除現在的TRIGGER,十字代表加入新trigger

下面有三頁 pattern options testing
pattern 頁分成4欄
pattern 就是是希望在mud中看到甚麼字便觸發trigger
commands 命令列,輸入你希望在觸發trigger時輸出的指令
Class 同#alarm一樣...不在本chapter範圍
comment 讓你寫註解的

option 頁分成3組
Trigger type -> trigger的分類
Pattern 就是正常的trigger
alarm 記得我說過可以在trigger介面中設alarm嗎? 就是這個了......
Expression 不在本課程範圍內,因為我更喜歡用#ALARM配合#IF解決 當然更不在本chapter範圍中了

Trigger on -
Newline 就是只有在換行後觸發
Prompt 不換行就觸發 老實說,除了login/做char外差不多都用不上
兩個都不打勾就不會觸發(吧?)
line color文字的顏色

Other options
Case Sensitive 區別大小寫
Verbatim 如實觸發(就是特殊字符也當成一般字符看待)
Ansi Trigger 顏色符合才觸發
trigger on trigger/temporary 我也不知道......*blush

testing頁
就是讓你測試trigger有沒有效的......

zmud很易用 robot不求人 - 孫雯(syunman)的robot教室

在此感謝kk的ppd,當年在kk時就是他教會我robot (之前我乾脆不知道有trigger這東西)

0-0 入門.....之前
打開actions->tick timer
在timer interval中輸入你希望多久下一次指令,timeout margin設為0,然後在timeout command處輸入你想下的指令,最後按一下上面的Start鍵,最最最簡陋的robot就出爐了。會在每隔timer interval秒後下一次timeout command

ch1 入門篇-簡陋到不行的robot
認識trigger介面跟#alarm指令
雖然trigger可以用#trigger指令輸入,alarm也可以在trigger介面設定,不過由於比較麻煩,所以還是使用trigger介面跟#alarm指令吧。

1-1 解說#alarm指令
#alarm指令是在命令列(就是你平時打fight child,kill traveler,cast polar freeze on archangel的地方)下的,事實上所有#開始的指令都"可以"在命令列使用.(跟中華民國/美國是民主國家一樣是理論上的東西)
#alarm就是跟上面的tick timer差不多的定時觸發命令.
#alarm指令由4個部份經成,結構如下︰
#alarm 00 {hp} class
#alarm就是告訴zmud這是一個#alarm指令
00 這是代表多久會下一次命令, 00代表在系統時間每分鐘的第0秒下指令,00:00是系統時間每小時的第0分鐘的第0秒下命令,00:00:00是系統時間每日的第0小時的第0分鐘的第0秒下命令,如此類推
-00 跟00差不在,不過不再是看windows的時間而是看zmud的連線時間,-1:12:20就是在連線後每日的第1小時第12分第20秒下指令,不過這其實沒太大意思,最少在zmud 5.55沒有,因為連線24小時5.55就會當掉. 而zmud 7中#alarm的結構已經改了
+00 在下指令後多久執行,當然了,+00是沒意義的....0秒後執行那直接下就是了
*00 每間隔0秒執行一次,當然了,我是沒設過0秒,所以也沒辦法告訴你每0秒一次zmud到底是會不執行還是會當掉.
{hp} {}中間就是你要下的指令了,記著,前後的{}是必須的
class 這是一個叫class的東西,超出ch1的範圍了,所以不說,不過這東西可以不寫,就是說
#alarm 00 {hp}
也是可以用的.

今日先說到這裡(如果有一把短sun我可以考慮多一章......)

ps:syunman=archangel=idle,用了1x年的老id為kyyung.