唔好巨集

從零學習巨集,創造無人仙境。

利用debug觸發巨集

| Comments

應該很多人知道在config.txt中有一個叫debug的設定,如果把它設成1 openkore就會多出很多訊息。

  • 其他人物的移動
  • 其他人物望向的方向
  • 其他人物登出跟登入

當中比較有用的資料是其他人物的移動,因為就算人物偽裝或潛遁中,你也會收到他的位置。

    Player Moved: 好事多研究員 (17) Level 2 男孩 Novice - (116, 74) -> (116, 84)

因為我個人用英文版所以會跟中文版有點出入,以上資料你可以看到LV2的男初心者由116 74準備移動到116 84

這些資料可以幫我在PVP或GVG發揮無窮可能,只需配合automacroconsole就可以觸發。

以下是我用過的例子

  • 當有修羅進入我身邊14x14就人孔他或做其他動作
  • 當有指定偽裝人物移到我身邊5x5就隨機後退迴避
  • 用修羅一直弓身彈影對方作追殺人

至於如何寫我就不公開了,看你個人創意。

使用條件及注意事項:

  • config.txtdebug設1是為了方便你寫巨集,寫好後建議設回0,因為就算設0 automacro一樣也可以觸發,避免收到太多資訊做成Lag。
  • config.txtmacro_allowDebug必須設 1,沒有請自行加入。

利用Perl Sub產生excel報告

| Comments

爬塔結束時大家最想知道什麼,大概是以下三點吧?

  1. 誰撿了什麼?
  2. 什麼時侯撿?
  3. 撿了多少次?

今天教大家利用perl sub產生excel報告

巨集使用條件及注意事項:

  • 隊伍成員撿取了物品有效,好像只對有貴重物或裝備才有效。
  • 必須與隊員同一地圖

partyitemlog
1
2
3
4
5
6
automacro partyitemlog {
  console /隊伍成員 (.*) 撿取了物品 (.*)/
  call {
    write2file("$.map","$.lastMatch1","$.lastMatch2")   # 呼叫perl sub並連帶地圖人物物品資料
  }
}

write2file
1
2
3
4
5
6
7
8
9
10
11
12
13
sub write2file {
  my ($map, $name, $desc) = @_;          # 把partyitemlog送來的資料代入$map,$name,$desc
  open(FILE, ">>:utf8", "$Settings::logs_folder/partyitem.csv"); # 打開logs資料夾下的csv檔,如沒有會自動產生。
  my @date  = localtime time;                # 讀取這一刻日期跟時間
  $date[5] += 1900;
  $date[4] += 1;
  my $time = sprintf(
  "%04d-%02d-%02d %02d:%02d:%02d",        # 自訂格式,個人比較喜歡用YYYY-MM-DD HH:MM:SS
  $date[5],$date[4],$date[3],$date[2],$date[1],$date[0]);     # 對應格式
  my $log = "$time,$map,$name,$desc\n"; # 自訂資料格式跟次序
  print FILE $log;                       # 把資料寫入檔案
  close(FILE);                           # 關閉檔案
}

以下是利用notepad打開partyitem.csv檔案的範本,符號,是csv檔用作分隔。

    2013-04-05 18:42:47,1@tower23,隊員A,變形長靴
    2013-04-05 18:42:56,1@tower23,隊員B,血斧
    2013-04-05 18:42:58,1@tower55,隊員A,獸人英雄卡片

excel直接開會如圖下,如出現亂碼請用notepad打開partyitem.csv再儲存一次就解決。做一次以後就再不會出現亂碼。

只要在第一行加入標題然後選擇,再按filter。

成功後就如下圖標題尾多了一個向下三角型按鈕,然後可以根據人物地圖物品過濾資料。

假如我沒有excel怎麼辦? 改回用普通文字檔就可以,只需修write2file的第3,10行就可以。

    open(FILE, ">>:utf8", "$Settings::logs_folder/partyitem.txt");
    my $log = "$time\t$name\t$cate\t$desc\n";                           

修改後partyitem.txt內容如下,\tperl語言是tab分隔,\n是換行。

    2013-04-05 18:44:45 1@tower23   隊員A 變形長靴
    2013-04-05 18:44:53 1@tower23   隊員B 血斧
    2013-04-05 18:44:55 1@tower55   隊員A 獸人英雄卡片

創造者-寬廣配藥

| Comments

這教學只製作鹽酸瓶火煙瓶,並不包括其他合成物品。分別由6個automacro組成。功能請看以下清單。

  • tp3get 從倉儲取出1份寬廣配藥的材料
  • tp3make 用寬廣配藥1次製作鹽酸瓶,火煙瓶,酒精各50份
  • demoget 從倉儲取出100份火煙瓶的材料
  • demomake 用配藥製作火煙瓶100次
  • acidget 從倉儲取出500份鹽酸瓶的材料
  • acidmake 用寬廣配藥1次製作50份鹽酸瓶,分10次製作

巨集共同使用條件及注意事項:

  • 如果6個automacro都放在macros.txt建議次序是:
    1. tp3get
    2. tp3make 寬廣配藥做火煙瓶+酒精+鹽酸瓶
    3. demoget
    4. demomake 配藥單做火煙瓶,善用多出的酒精
    5. acidget
    6. acidmake 寬廣配藥做鹽酸瓶
  • 必須為開倉狀態才會觸發拿取出材料巨集
  • 開倉後就會自動開始,如果沒有自動開始先清空身上材料。
  • 如果想中途停止可以用坐下sit關閉倉庫storage close即可
  • 必須修改tp3make,demomake,acidmake中的人物後int,後dex,後luk數值,如果你有各種對int,dex,luk有加成的技能和裝備,請用上後抄下並修改。確保製作時以最高成功率製作。
  • 建議酒精製作說明書,火煙瓶製作說明書,鹽酸瓶製作說明書都放身上
  • 巨集只對創造者有效,如想改用鍊金術師基因學者請修改或刪除每個巨集的第2行。

tp3get
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
automacro tp3get {
  class Creator
  status not EFST_SIT
  inventory "藥缽" == 0
  inventory "空瓶" == 0
  inventory "空試管" == 0
  inventory "植物梗" == 0
  inventory "毒魔菇芽孢" == 0
  inventory "透明之布" == 0
  inventory "不死心臟" == 0
  storage "藥缽" >= 200
  storage "空瓶" >= 200
  storage "空試管" >= 100
  storage "植物梗" >= 500
  storage "毒魔菇芽孢" >= 500
  storage "透明之布" >= 50
  storage "不死心臟" >= 50
  exclusive 1
  call {
  do storage add 鹽酸瓶
  do storage add 火煙瓶
  do storage add 酒精
  do storage get 藥缽 200
  do storage get 空瓶 200
  do storage get 空試管 100
  do storage get 植物梗 500
  do storage get 毒魔菇芽孢 500
  do storage get 透明之布 50
  do storage get 不死心臟 50
  }
}

tp3get使用條件及注意事項:

  • 身上所有材料的數量為0
  • 為開倉狀態
  • 倉庫有最少1寬廣配藥的材料
    1. 藥缽 200
    2. 空瓶 200
    3. 空試管 100
    4. 植物梗 500
    5. 毒魔菇芽孢 500
    6. 透明之布 50
    7. 不死心臟 50

tp3make
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
automacro tp3make {
  class Creator
  status not EFST_SIT
  status EFST_SOULLINK
  sp > 200
  eval $::char->{'int_bonus'} == 86
  eval $::char->{'dex_bonus'} == 103
  eval $::char->{'luk_bonus'} == 132
  inventory "酒精製作說明書" >= 1
  inventory "火煙瓶製作說明書" >= 1
  inventory "鹽酸瓶製作說明書" >= 1
  inventory "藥缽" >= 200
  inventory "空瓶" >= 200
  inventory "空試管" >= 100
  inventory "植物梗" >= 500
  inventory "毒魔菇芽孢" >= 500
  inventory "透明之布" >= 50
  inventory "不死心臟" >= 50
  exclusive 1
  call {
  $s1 = @storamount(藥缽)
  $s2 = @storamount(空瓶)
  $s3 = @storamount(空試管)
  $s4 = @storamount(植物梗)
  $s5 = @storamount(毒魔菇芽孢)
  $s6 = @storamount(透明之布)
  $s7 = @storamount(不死心臟)
  log 倉庫材料
  log 藥缽 $s1
  log 空瓶 $s2
  log 試管 $s3
  log 植物 $s4
  log 芽孢 $s5
  log 透布 $s6
  log 心臟 $s7
  do ss 498
  }
}

tp3make使用條件及注意事項:

  • 必須有靈魂狀態才能用寬廣配藥(靈悟士跟跆拳組隊再對創造者用靈魂就可以,之後跆拳下線也可以。但注意組拳聖是無效果的
  • 身上有最少1份寬廣配藥的材料
  • 酒精製作說明書,火煙瓶製作說明書,鹽酸瓶製作說明書都放身上

demoget
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
automacro demoget {
  class Creator
  status not EFST_SIT
  inventory "藥缽" == 0
  inventory "空瓶" == 0
  inventory "透明之布" == 0
  inventory "酒精" == 0
  storage "藥缽" >= 100
  storage "空瓶" >= 100
  storage "透明之布" >= 100
  storage "酒精" >= 100
  storage "植物梗" < 500
  storage "毒魔菇芽孢" < 500
  storage "火煙瓶" <= 29900
  inventory "空試管" == 0
  inventory "植物梗" == 0
  inventory "毒魔菇芽孢" == 0
  inventory "不死心臟" == 0
  exclusive 1
  call {
  do storage add 火煙瓶
  do storage get 藥缽 100
  do storage get 空瓶 100
  do storage get 透明之布 100
  do storage get 酒精 100
  }
}

demoget使用條件及注意事項:

  • 身上所有材料的數量為0
  • 為開倉狀態
  • 倉庫中植物梗毒魔菇芽孢不足500
  • 倉庫有最少100份火煙瓶的材料
    1. 藥缽 100
    2. 空瓶 100
    3. 透明之布 100
    4. 酒精 100

demomake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
automacro demomake {
  class Creator
  status not EFST_SIT
  sp > 20
  eval $::char->{'int_bonus'} == 86
  eval $::char->{'dex_bonus'} == 103
  eval $::char->{'luk_bonus'} == 132
  inventory "火煙瓶製作說明書" == 1
  inventory "藥缽" >= 1
  inventory "空瓶" >= 1
  inventory "空試管" == 0
  inventory "植物梗" == 0
  inventory "毒魔菇芽孢" == 0
  inventory "透明之布" >= 1
  inventory "不死心臟" == 0
  inventory "酒精" >= 1
  storage "火煙瓶" <= 29900
  exclusive 1
  call {
  $s1 = @storamount(藥缽)
  $s2 = @storamount(空瓶)
  $s6 = @storamount(透明之布)
  $s8 = @storamount(酒精)
  log 倉庫材料
  log 藥缽 $s1
  log 空瓶 $s2
  log 透布 $s6
  log 酒精 $s8
  do ss 228 10
  pause 1
    do send 8E 01 DF 1B 00 00 00 00 00 00
  }
}

demomake使用條件及注意事項:

  • 身上有最少100份火煙瓶的材料
  • 火煙瓶製作說明書放身上
  • 單獨做火煙瓶100次

acidget
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
automacro acidget {
  class Creator
  status not EFST_SIT
  inventory "藥缽" == 150
  inventory "空瓶" == 150
  inventory "空試管" == 0
  inventory "植物梗" == 0
  inventory "毒魔菇芽孢" == 0
  inventory "透明之布" == 0
  inventory "不死心臟" == 0
  storage "藥缽" >= 500
  storage "空瓶" >= 500
  storage "鹽酸瓶" <= 29500
  storage "植物梗" < 0
  storage "毒魔菇芽孢" < 0
  storage "不死心臟" >= 500
  exclusive 1
  call {
  do storage add 鹽酸瓶
  do storage get 藥缽 500
  do storage get 空瓶 500
  do storage get 不死心臟 500
  }
}

acidget使用條件及注意事項:

  • 身上藥缽,空瓶數量為150,其他材料的數量為0
  • 為開倉狀態
  • 倉庫中植物梗毒魔菇芽孢不足500,而鹽酸瓶材料有500份或以上。
  • 倉庫有最少500鹽酸瓶的材料
    1. 藥缽 500
    2. 空瓶 500
    3. 不死心臟 500

acidmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
automacro acidmake {
  class Creator
  status not EFST_SIT
  status EFST_SOULLINK
  sp > 200
  eval $::char->{'int_bonus'} == 86
  eval $::char->{'dex_bonus'} == 103
  eval $::char->{'luk_bonus'} == 132
  inventory "鹽酸瓶製作說明書" >= 1
  inventory "藥缽" >= 200
  inventory "空瓶" >= 200
  inventory "空試管" == 0
  inventory "植物梗" == 0
  inventory "毒魔菇芽孢" == 0
  inventory "透明之布" == 0
  inventory "不死心臟" >= 50
  exclusive 1
  call {
  $s1 = @storamount(藥缽)
  $s2 = @storamount(空瓶)
  $s7 = @storamount(不死心臟)
  log 倉庫材料
  log 藥缽 $s1
  log 空瓶 $s2
  log 心臟 $s7
  do ss 498
  }
}

acidmake使用條件及注意事項:

  • 必須有靈魂狀態才能用寬廣配藥(靈悟士跟跆拳組隊再對創造者用靈魂就可以,之後跆拳下線也可以。但注意組拳聖是無效果的
  • 身上有最少50份鹽酸瓶的材料
  • 鹽酸瓶製作說明書都放身上
  • 注意這是用寬廣配藥做鹽酸瓶