戰略要地

 找回密碼
 立即註冊
搜索
查看: 4444|回復: 14
打印 上一主題 下一主題

將軍私人文章蒐集

[複製鏈接]

33

主題

84

帖子

94

積分

區長

Rank: 7Rank: 7Rank: 7

積分
94
樓主
發表於 2020-5-19 18:50:29 | 顯示全部樓層
將軍 我想問問 您會這串語法嗎?

A simple statement with OR condition;

if (arg1 <Operators> arg2 || arg3 <Operators> arg4) (goto <label> | call <macro> <parameters> | stop | { )

能否教我ˋ;
翻譯中文為

if(arg1 < 運算符 > arg2 || arg3 < 運算符 > arg4)(轉到<label> |調用<宏> <參數> |停止| {)

我對ˊ於arg1不太懂意思

只知道他是在arg和arg2之間。其中arg可以是數字,%或變量。 應該是變數

然而我在自訂意變數$num = &questIncompleteCount (<30021>,<30022>,<30023>,<30024>,<30025>)
情狀下塞入這串語法?
&questIncompleteCount 任務 (<30021>,<30022>,<30023>,<30024>,<30025>)<===任務編號

如果成立則執行不成立則不執行或是為空...

33

主題

84

帖子

94

積分

區長

Rank: 7Rank: 7Rank: 7

積分
94
沙發
發表於 2020-5-24 00:14:44 | 顯示全部樓層
本帖最後由 策略作戰官ML 於 2020-5-24 00:22 編輯
waynechen251 發表於 2020-5-21 19:30
請問這是什麼語言?
https://openkore.com/index.php/EventMacro#Syntax
RO 外掛 巨集
寫巨集的關鍵語法跟字串

例如我已經成功的...

automacro quest { <===巨集名稱
exclusive 1  不會被中斷執行
timeout 120  120秒
QuestHuntOngoing 30039 1219, 30037 1132 進行中的任務跟任務編號
call {
           $temp = @eval($::questList->{30039}->{missions}->{1219}->{count})
           if ($.QuestHuntOngoingLastQuestID == 30039) {
                log quest monster is $.QuestHuntOngoingLastMobID
      do ai manual 手動關閉AI
      do talknpc 147 170 c r0 r0 跟NPC對話
      pause 3
      do ai on
        } elsif ($.QuestHuntOngoingLastQuestID == 30037) {
                log quest monster is $.QuestHuntOngoingLastMobID
      do ai manual
      do talknpc 147 170 c r0 r0
      pause 3 停頓3秒
      do ai on 開啟自動AI
      :end
        }
}
}




33

主題

84

帖子

94

積分

區長

Rank: 7Rank: 7Rank: 7

積分
94
板凳
發表於 2020-7-15 03:17:01 | 顯示全部樓層
將軍 發表於 2020-6-6 08:03
通常arg是指引數,
可以理解成函式內的區域變數宣告.

將軍大人 不知能否給個簡單範例...
關於if的語法我也是最近才學會一點...

33

主題

84

帖子

94

積分

區長

Rank: 7Rank: 7Rank: 7

積分
94
地板
發表於 2020-7-25 00:51:41 | 顯示全部樓層
將軍 發表於 2020-6-6 08:03
通常arg是指引數,
可以理解成函式內的區域變數宣告.

automacro testQuest1 {
        hook attack_end
        eval main::checkKill('波利,13,瘋兔,3')
        call {
                log 成功任務
                do exp reset
}
}

sub checkKill {
                my @args = split(/,/,shift);
                my %monList;
                return 0 unless (@args);
                for (my $a = 0 ;$a < @args ;$a += 2) {
                        @args[$a] =~ s/^\s+|\s+$//g;
                        $monList{@args[$a]}{count} = @args[$a+1];
                }

                for (my $i = 0; $i < @::monsters_Killed; $i++) {
                                        next if ($::monsters_Killed[$i] eq "");
                                        my $monName = $::monsters_Killed[$i]{name};
                                        $monName =~ s/^\s+|\s+$//g;
                                        if ($monList{$monName}) {
                                                my $monCount = $monList{$monName}{count} ;
                                                return 0 if (!defined $monCount || $::monsters_Killed[$i]{count} < $monCount);
                                                $monList{$monName}{flag} = 1;
                                        }
                }
                foreach (keys %monList) {
                        next if (!$monList{$_} || $monList{$_}{count} eq "");
                        return 0 if ($monList{$_}{flag} == 0);
                }
                return 1;

}

if eslif 條件式會使用但還不是很運作自如
但是像類似個有參雜函數我就GG了
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|行動裝置版|黑名單|Urbase.net  

GMT+8, 2024-5-4 18:57 , Processed in 0.106034 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表