本帖最後由 jerrylong 於 2009-1-15 00:07 編輯


 


之前想到是利用sit or stand的方法來等待
但可能會在坐下的時候被怪打
因此我想到P大的巨集有利用do conf route_randomWalk 0
來讓打手不亂跑 而且沒更改到攻擊的主動性
因此應該可以站著不亂跑等牧師放聖母且怪物來照樣打
還請各位幫我看這方法可行?

automacro waitm {
        location ra_fild09, yuno
        status not 聖母之頌歌狀態, 加速術狀態
        exclusive 1
                run-once 1
        call wait
}

automacro waits {
        location ra_fild09, yuno
        sp < 11%
                exclusive 1
                run-once 1
        call wait
}

macro wait {
        do conf route_randomWalk 0
        release waitm
        release waits
                release nowaitm
        release nowaits
}



automacro nowaitm {
        location ra_fild09, yuno
        status 聖母之頌歌狀態, 加速術狀態
                     exclusive 1
                run-once 1
        call nowait
}

automacro nowaits {
        location ra_fild09, yuno
        sp > 11%
                exclusive 1
                run-once 1
        call nowait
}

macro nowait {
                do conf route_randomWalk 2
                release waitm
                        release waits
                                release nowaitm
                release nowaits
}

修正好了 有看到未完成抱歉我中途改編輯




 


本帖最後由 jerrylong 於 2009-1-15 00:24 編輯


我也想過 但是利用座標變數 對我來說我程度還沒到
而我自己也有想過模擬過狀況

走路打怪>沒聖母>牧師唱聖母>打手往前衝>牧師密他叫回來>
打手往前衝又往回跑>牧師聖母成功>走路打怪...迴圈

而我停止走動的方法

走路打怪>沒聖母>打手停止走動原地發呆但會打怪(如同莫斯科定點掛打)>
牧師唱聖母>打手定點掛打>牧師聖母成功>走路打怪...迴圈

密打手回報自己座標方法 就怕打手往前衝又回頭會把怪給引過來
如果怪太多就比較危險
或是打手打了怪又引回來(弓手類型)

另外看了你剛新發的巨集教學文我才完全搞懂release以及run-once (0|1)之間的關係
我編輯前不是run-one 1而是timeout 90 (聖母讀秒) timeout 3 (SP讀秒)
timeout不用利用到release所以內文會變成

automacro waitm {
        location ra_fild09, yuno
        status not 聖母之頌歌狀態, 加速術狀態
        timeout 90
        exclusive 1
        call wait
}

automacro waits {
        location ra_fild09, yuno
        sp < 11%
        timeout 3
        exclusive 1
        call wait
}

macro wait {
        do conf route_randomWalk 0
}



automacro nowaitm {
        location ra_fild09, yuno
        status 聖母之頌歌狀態, 加速術狀態
        timeout 90
        exclusive 1
        call nowait
}

automacro nowaits {
        location ra_fild09, yuno
        sp > 11%
        timeout 3
        exclusive 1
        call nowait
}

macro nowait {
                do conf route_randomWalk 2
               
}





感覺好像都OK
或是兩者結合成為
automacro waitm {
        location ra_fild09, yuno
        status not 聖母之頌歌狀態, 加速術狀態
        timeout 90
        exclusive 1
                run-once 1
        call wait
}

automacro waits {
        location ra_fild09, yuno
        sp < 11%
        timeout 3
        exclusive 1
                run-once 1
        call wait
}

macro wait {
        do conf route_randomWalk 0
        release wait
        release nowait
                release nowaitm
                release nowaits

}



automacro nowaitm {
        location ra_fild09, yuno
        status 聖母之頌歌狀態, 加速術狀態
        timeout 90
        exclusive 1
                run-once 1
        call nowait
}

automacro nowaits {
        location ra_fild09, yuno
        sp > 11%
        timeout 3
        exclusive 1
                run-once 1
        call nowait
}

macro nowait {
                do conf route_randomWalk 2
        release wait
        release nowait
                release nowaitm
                release nowaits
}





當然程式語言是越短越好
還是兩者結合好?
好像是timeout比較好 不會一直不斷的RUN


 


本帖最後由 flystar9988 於 2009-1-15 00:42 編輯

聖母可以設定當打手在攻擊時施放如下...
partySkill 聖母之頌歌 {
# 對應tables/skills.txt,請打上技能中文名稱啟動此組功能,如:雙手劍攻擊速度增加
        lvl 5
# 技能等級
        maxCastTime 0
# 使用此技能所需最長時間(秒),施展成功即會繼續AI動作,不需等到延遲時間結束
        minCastTime 0
# 使用此技能所需最短時間(秒),施展成功仍需等到延遲時間結束,才會繼續AI動作
        hp
        sp >0%
# HP,SP介於此設定值之間時使用此技能(例:大於>80%或小於<80%)
        homunculus_hp
# 人工生命體 HP 範圍限制
        homunculus_sp
# 人工生命體 SP 範圍限制
        homunculus_dead
# 人工生命體死亡時
        onAction
# 當 AI 為 ... 時
        whenStatusActive
# 當處於某種狀態時
        whenStatusInactive
# 當某種狀態失效時
        whenFollowing
# 當跟隨時
        spirit
# 氣彈數範圍
        aggressives
# 被幾隻怪物同時攻擊使用此技能(0=不限制)
        monsters
# 使用此技能對應之怪物名稱(空白=不限制),對應tables/monsters.txt,請打上怪物中文名稱並以逗號隔開
        notMonsters
# 使用此技能不對應之怪物名稱(空白=不限制),對應tables/monsters.txt,請打上怪物中文名稱並以逗號隔
# 開
        stopWhenHit 1                           <=======視需求設定!
# 被攻擊時是否停止使用本技能(0=關、1=開)
        inLockOnly
# 在指定地圖使用技能,地圖間請以逗號隔開(例如:nif_in,niflheim)
        notWhileSitting 0
# 蹲坐時停止使用此技能
        notInTown 1                                 <=======視需求設定!
# 是否不在城鎮使用
        timeout 0
# 使用此技能之間隔時間(秒),如:等級10"雙手劍攻擊速度增加"時效是300秒
        disabled 0
# 是否關閉本區塊技能
        manualAI 0
# 是否在手動時才使用
        target XXXXX
#隊友名
        target_hp
        target_isJob
        target_isNotJob
        target_whenStatusActive
# 當隊友處於某種狀態時
        target_whenStatusInactive 聖母之頌歌狀態
# 當隊友不處於某種狀態時
        target_aggressives 1
        target_monsters
        target_timeout
        target_deltaHp
        target_dead 0
        inInventory
        isSelfSkill 1
}

然後再搭配你寫的巨集...

automacro waitm {
        location ra_fild09, yuno
        status not 聖母之頌歌狀態, 加速術狀態
          exclusive 1
        run-once 1
        call wait
}

macro wait {
        do conf route_randomWalk 0
        release all
}

automacro nowaitm {
        location ra_fild09, yuno
        status 聖母之頌歌狀態, 加速術狀態
        run-once 1
        call nowait
}

macro nowait {
                do conf route_randomWalk 2
}

為了避免他反覆處於狀態時持續執行巨集!
於是將nowait下面的release刪掉,如此他便只執行一次!
而保留wait的release all !是為了等到狀態沒了!
觸發停止行走後重新生效所有的自動聚集!
便可在執行nowaitm巨集!
避開突發狀況不談...
這樣等待問題可以說是幾乎解決了!

然而結婚系統SP技能設定也大同小異!


 


本帖最後由 jerrylong 於 2009-1-15 02:53 編輯


關於config那邊的設定我不會有太大的問題
因為3 4年前搞正服外掛自己有用心學起來 而且有中文版不會有太大難題
我腳本內容也會盡量簡化 例如只打上

useSelf_skill 聖母之頌歌 {
        lvl 10
        whenStatusInactive 聖母之頌歌狀態
        notWhileSitting 1
        timeout 30
        stopWhenHit 1
}

partySkill 聖母之頌歌 {
        lvl 10
        target_whenStatusInactive 聖母之頌歌狀態
        target_timeout 0.5
}

英文不懂才又往上看翻譯


回到原題
沒聖母>跑macro wait>release all
有聖母>跑macro nowait
我有問題 在於有聖母就會跳過automacro waitm而跑macro nowait
(執行到status not 聖母之頌歌狀態, 加速術狀態 但不成立 所以
exclusive 1以及run-once 1以下等程式都不跑)<=觀念對嗎?

而跑完macro nowait之後
會因為automacro waitm是自動巨集而不斷的偵測你是不是"沒有"聖母 是這樣嗎?觀念對嗎?

如果是這樣我另外又想到
其實可以改成
automacro waitm {
        location ra_fild09, yuno
        status not 聖母之頌歌狀態, 加速術狀態
           timeout 30
           exclusive 1
        call wait
}

macro wait {
        do conf route_randomWalk 0
        release nowait
}

automacro nowaitm {
        location ra_fild09, yuno
        status 聖母之頌歌狀態, 加速術狀態
        run-once 1
        call nowait
}

macro nowait {
                do conf route_randomWalk 2
}

這樣他就不會不斷偵測 有沒有"沒有"聖母了 或許可以讓CPU不用太多資源?
並且取消了run-one 1用時間配合聖母時間剛好90秒 也只需要release nowait就足夠
而timeout其實也可以設小一點
以免有打手離開牧師畫面造成秒數錯判 例如設定成30秒
就算時間到重RUN一次也不影響走路停下來

我的模擬觀念如下:
人物一開始沒聖母>隨機走動0>重置偵測"有"聖母>牧師唱好聖母>但偵測"沒"聖母還要30秒>
跑偵測"有"聖母>只跑一次>隨機走動2>打怪直到沒聖母...迴圈

而每30秒會偵測一次你是不是"沒"聖母必須停止隨機走動

arrow
arrow
    全站熱搜

    aaa1314 發表在 痞客邦 留言(0) 人氣()