劍網3宏命令實例:一鍵系列基本的寫法
下面介紹的是一個純陽自動插劍:
一鍵插三劍:沖陰陽,化三清,破蒼穹
/scriptN=GetClientPlayer();
/scriptA,B,C=N.GetSkillCDProgress(360,1);
/scripta1,b1,c1=N.GetSkillCDProgress(357,1);
/scripta3,b3,c3=N.GetSkillCDProgress(359,N.GetSkillLevel(359));
/scriptif(C==0)thenOnUseSkill(360,1)end;
/scriptif(c1==0)thenOnUseSkill(357,1)end;
/scriptif(c3==0)thenOnUseSkill(359,N.GetSkillLevel(359))end;
解說:
沖陰陽ID:360
化三清ID:357
破蒼穹ID:359
上面宏所用到的語法:
OnUseSkill(技能ID,N.GetSkillLevel(技能ID))
OnUseSkill(技能ID,技能等級)
這2個都是釋放技能的函數。
上面2個語句是一樣的效果,第一個可以不用煩惱技能等級的提升。
/scriptPX1,PX2,PX3=N.GetSkillCDProgress(技能ID,N.GetSkillLevel(技能ID));
N.GetSkillLevel(技能ID)獲取技能的等級
申請3個變量PX1,PX2,PX3,然後獲得N(你)技能的冷卻時間,第一個參數PX1我不清楚含義,第二個公共冷卻所剩時間,第三個是技能冷卻所剩時間
那麼久可以很簡單看透上面宏的用法:
if(C==0)thenOnUseSkill(360,1)end;
如果沖陰陽冷卻了,則釋放沖陰陽
劍網3宏命令實例:爆發宏實例
氣純終級大爆發宏:似乎韜光和兩儀沒公共cd,下面這個宏是瞬間爆發
5格兩儀+韜光+兩儀
/scriptN=GetClientPlayer();
/scriptA,B,C=N.GetSkillCDProgress(301,1);
/scriptA1,B1,C1=N.GetSkillCDProgress(313,1);
/scriptif(C==0andN.nAccumulateValue==10)thenOnUseSkill(301,N.GetSkillLevel(301))end;
/scriptif(C1==0)thenOnUseSkill(313,N.GetSkillLevel(313))end;
/scriptif(C==0andN.nAccumulateValue==10)thenOnUseSkill(301,N.GetSkillLevel(301))end;
解說:
nAccumulateValue聚齊的個數純陽最大數是10對應5格氣,和尚的未知,O(∩_∩)O謝謝
沒有聚齊的職業,可以把N.nAccumulateValue==10刪掉
其他的沒什麼號解說,看看上面2個例子就明瞭………………
大家可以躲擴展下,劍純的爆發,7x瞬間爆發,萬花的雙水月…………都可以把這個宏稍微修改一下就OK
劍網3宏命令實例:萬花自動春泥毫針宏
/scriptN=GetClientPlayer()
/scriptt=GetTargetHandle(N.GetTarget())
/scriptift==nilthenSelectPlayer()end
/scriptfunctioncheckbuff(id)
for_,Dinpairs(t.GetBuffList()or{})doifD.dwID==idthen
returntrueendendreturnfalseend
/scriptfunctionsk(ss)OnUseSkill(ss,N.GetSkillLevel(ss))end
/scriptA,B,C=N.GetSkillCDProgress(141,N.GetSkillLevel(141));
/scriptifC==0thensk(141)end
/scriptifnotcheckbuff(1674)andnotcheckbuff(684)thensk(132)end
解說:
涓埃萬花春泥產生的debuffid:1674春泥技能ID132
附送:夢:1727夢是釋放給玩家天地低昂產生的負面效果
毫針141buff126
/scriptift==nilthenSelectPlayer()end
如果沒有目標,則選擇自己
/scriptT=GetTargetHandle(N.GetTarget());
是獲得你的目標和/scriptN=GetClientPlayer();意思差不多
如果玩家有涓埃的debuff則釋放毫針,如果玩家身上沒有涓埃沒有天地低昂則釋放春泥
如果是七秀怎麼改寫這個宏呢??????
很簡單看下面
把下面這個宏裡面的SS改為春泥buff的IDX改為你風袖的技能ID即可……
/scriptN=GetClientPlayer();
/scriptT=GetTargetHandle(N.GetTarget());
/scriptfunctioncheckbuff(id)
for_,Dinpairs(t.GetBuffList()or{})doifD.dwID==idthen
returntrueendendreturnfalseend
/scriptif(notcheckbuff(1727))and(notcheckbuff(SS))thenOnUseSkill(X,N.GetSkillLevel(X))end
劍網3宏命令實例:自動無敵附加團隊喊話。
/scriptN=GetClientPlayer();
/scriptfori=1,3doGetClientPlayer().Talk(PLAYER_TALK_CHANNEL.TEAM,"",{{type="text",text="馬上釋放無敵,迅速向我靠攏
……馬上釋放無敵,迅速向我靠攏……"}})end;
/Delay2
/scriptSelectPlayer();
/scripta1,a2,a3=N.GetSkillCDProgress(371,1);
/scriptifa3<1thenOnUseSkill(371,1)elseOnUseSkill(167,1)end;
/Delay2這句是在延遲2s後才可以釋放無敵,大家可以刪去,也可以更改2這個數字,2在這裡代表2秒請注意多按幾次……避免喊話後,你沒有再按,則無敵釋放不出來……
判斷距離例子
/scriptN=GetClientPlayer()
/scriptt=GetTargetHandle(N.GetTarget())
/scriptfunctionGetDistanceByTarget(target1,target2)
ifnottarget1ornottarget2thenreturnfalseend
iftarget1.nMapID~=target2.nMapIDthenreturnfalseend
nX1=target1.nX
nX2=target2.nX
nY1=target1.nY
nY2=target2.nY
strdis=(((nX1-nX2)^2+(nY1-nY2)^2)^0.5)/64
returnstrdis
end
/scriptm=GetDistanceByTarget(t,N)
/scriptOutputMessage("MSG_SYS",m)
最後的m就是距離距離以黃色字輸出在聊天欄裡面,是帶有很多位小數的
劍網3天策三個實用宏
天策宏3:(作者:葬劍戀雪)
突+崩+破風+定軍+穿
/scriptN=GetClientPlayer();
/scriptA,B,C=N.GetSkillCDProgress(418,N.GetSkillLevel(418));
/scripta1,b1,c1=N.GetSkillCDProgress(482,N.GetSkillLevel(482));
/scripta2,b2,c2=N.GetSkillCDProgress(401,N.GetSkillLevel(401));
/scripta3,b3,c3=N.GetSkillCDProgress(402,N.GetSkillLevel(402));
/scripta4,b4,c4=N.GetSkillCDProgress(441,N.GetSkillLevel(441));
/scriptif(C==0)thenOnUseSkill(418,N.GetSkillLevel(418))end;
/scriptif(c1==0)thenOnUseSkill(482,N.GetSkillLevel(482))end;
/scriptif(c2==0)thenOnUseSkill(401,N.GetSkillLevel(401))end;
/scriptif(c3==0)thenOnUseSkill(402,N.GetSkillLevel(402))end;
/scriptif(c4==0)thenOnUseSkill(441,N.GetSkillLevel(441))end;
天策宏2:
當前目標的目標是七秀或者萬花或者純陽
則釋放定軍
當定軍miss時則釋放火+定軍
當目標在8尺以外時則釋放突
當目標的目標不是七秀或者萬花或者純陽時在4尺以內則釋放破風,梅花槍
此宏做完FB有人OT時的搶怪……勿用為野外開怪第一個突來用,否則會悲劇的
/scriptN=GetClientPlayer()
/scriptt=GetTargetHandle(N.GetTarget())
/scriptu=GetTargetHandle(t.GetTarget())
/scriptfunctionJuli(target1,target2)
ifnottarget1ornottarget2thenreturnflaseend
iftarget1.nMapID~=target2.nMapIDthenreturnfalseend
strdis=(((target1.nX-target2.nX)^2+(target1.nY-target2.nY)^2)^0.5)/64returnstrdisend
/scriptfunctioncheckbuff(id)
for_,Dinpairs(t.GetBuffList()or{})doifD.dwID==idthen
returntrueendendreturnfalseend
/scriptm=Juli(t,N)
/scriptA,B,C=N.GetSkillCDProgress(402,6)
/scriptfunctionot(sw)ifsw.dwSchoolID==2orsw.dwSchoolID==3orsw.dwSchoolID==4thenreturntrueelsereturnflaseendend
/scriptifot(u)andm<4.5thenOnUseSkill(402,6)end
/scriptifot(u)andm<4.5and(notcheckbuff(199))andC>0thenOnUseSkill(411,6)end
/scriptifm>8.5andm<25.5thenOnUseSkill(418,6)end
/scriptifnotot(u)andm<4.5thenOnUseSkill(401,10)end
/scriptifnotot(u)andm<4.5thenOnUseSkill(12,1)end
天策宏1:
當本身有克敵狀態時,則釋放龍吟
當目標有致殘狀態時,則釋放龍牙
當目標無克敵或者致殘時,則釋放滅
當目標無克敵或者致殘,且滅在CD時,則釋放穿雲
/scriptN=GetClientPlayer()
/scriptt=GetTargetHandle(N.GetTarget())
/scriptfunctioncheckbuff(id)
for_,Dinpairs(t.GetBuffList()or{})doifD.dwID==idthen
returntrueendendreturnfalseend
/scriptfunctionchecktbuff(bp)
for_,Dinpairs(N.GetBuffList()or{})doifD.dwID==bpthen
returntrueendendreturnfalseend
/scriptA,B,C=N.GetSkillCDProgress(403,N.GetSkillLevel(403));
/scriptA1,B1,C1=N.GetSkillCDProgress(415,N.GetSkillLevel(415));
/scriptA2,B2,C2=N.GetSkillCDProgress(423,N.GetSkillLevel(423));
/scriptA3,B3,C3=N.GetSkillCDProgress(400,N.GetSkillLevel(400));
/scriptifchecktbuff(366)thenOnUseSkill(403,N.GetSkillLevel(403))end
/scriptifcheckbuff(540)thenOnUseSkill(415,N.GetSkillLevel(415))end
/scriptifnotcheckbuff(540)andnotcheckbuff(366)andC2==0thenOnUseSkill(423,N.GetSkillLevel(423))end
/scriptifnotcheckbuff(540)andnotcheckbuff(366)andC3==0andC2>0thenOnUseSkill(400,N.GetSkillLevel(400))end
天策宏1-1:
當本身有克敵狀態時,則釋放龍吟
當目標有致殘狀態時,則釋放龍牙
當目標無克敵或者致殘時,則釋放穿雲
如果希望是破風而不是穿雲的話,請把400改成401
/scriptN=GetClientPlayer()
/scriptt=GetTargetHandle(N.GetTarget())A=0
/scriptfunctioncheckbuff(id)
for_,Dinpairs(t.GetBuffList()or{})doifD.dwID==idthen
returntrueendendreturnfalseend
/scriptfunctionchecktbuff(bp)
for_,Dinpairs(N.GetBuffList()or{})doifD.dwID==bpthen
returntrueendendreturnfalseend
/scriptifchecktbuff(366)thenOnUseSkill(403,N.GetSkillLevel(403))end
/scriptifcheckbuff(540)thenOnUseSkill(415,N.GetSkillLevel(415))end
/scriptifnotcheckbuff(540)ornotchecktbuff(366)thenOnUseSkill(400,N.GetSkillLevel(400))end
_________________
/scriptN=GetClientPlayer()
/scriptt=GetTargetHandle(N.GetTarget())
/scriptbPrePare,dwID,dwLevel,fP=t.GetSkillPrepareState()
/scriptbP,dwID,dwLevel,fP=N.GetSkillPrepareState()
/scriptifbPrePareandbPthenN.StopCurrentAction()end
/scriptifbPreParethenOnUseSkill(183,N.GetSkillLevel(183))elseOnUseSkill(130,N.GetSkillLevel(130))end
如果目標和自己都在讀條則先打斷自己讀條,在打斷目標讀條
如果目標在讀條,自己沒在讀條則打斷目標讀條
如果目標沒有讀條,則釋放清心
5格兩儀+韜光+兩儀
/scriptN=GetClientPlayer();
/scriptA,B,C=N.GetSkillCDProgress(301,N.GetSkillLevel(301));
/scriptA1,B1,C1=N.GetSkillCDProgress(313,1);
/scriptif(C==0andN.nAccumulateValue==10)thenOnUseSkill(301,N.GetSkillLevel(301))end;
/scriptif(C1==0)thenOnUseSkill(313,N.GetSkillLevel(313))end;
/scriptif(C==0andN.nAccumulateValue==10)thenOnUseSkill(301,N.GetSkillLevel(301))end;
帶脈光明:2韜光+3兩儀
/scriptN=GetClientPlayer();
/scriptA,B,C=N.GetSkillCDProgress(301,N.GetSkillLevel(301));
/scriptA1,B1,C1=N.GetSkillCDProgress(313,1);
/scriptA2,B2,C2=N.GetSkillCDProgress(153,1);
/scriptif(C==0andN.nAccumulateValue==10)thenOnUseSkill(301,N.GetSkillLevel(301))end;
/scriptif(C1==0)thenOnUseSkill(313,N.GetSkillLevel(313))end;
/scriptif(C==0andN.nAccumulateValue==10)thenOnUseSkill(301,N.GetSkillLevel(301))end;
/scriptif(C1>0)thenOnUseSkill(153,1)end
/scriptif(C1==0)thenOnUseSkill(313,N.GetSkillLevel(313))end;
/scriptif(C==0andN.nAccumulateValue==10)thenOnUseSkill(301,N.GetSkillLevel(301))end;
劍網3其他一些宏
一鍵萬花治療
/scriptN=GetClientPlayer()
/scriptt=GetTargetHandle(N.GetTarget())
/scriptfunctioncheckbuff(id)
for_,Dinpairs(t.GetBuffList()or{})doifD.dwID==idthen
returntrueendendreturnfalseend
/scripttl=t.nCurrentLife/t.nMaxLife
/scriptA,B,C=N.GetSkillCDProgress(137,N.GetSkillLevel(137))
/scriptA1,B1,C1=N.GetSkillCDProgress(136,N.GetSkillLevel(136))
/scriptA2,B2,C2=N.GetSkillCDProgress(101,N.GetSkillLevel(101))
/scriptiftl>0.95andnotcheckbuff(631)thenOnUseSkill(101,N.GetSkillLevel(101))end
/scriptif(checkbuff(722)orcheckbuff(412)andtl<0.85)thenOnUseSkill(142,N.GetSkillLevel(142))end
/scriptifC==0andnotcheckbuff(412)thenOnUseSkill(137,N.GetSkillLevel(137))end
/scriptiftl<0.6andnotcheckbuff(722)thenOnUseSkill(136,N.GetSkillLevel(136))end;
黑色部分為握針,自原選擇去掉
--!解釋:
目標無握針自動握針
逐流且目標生命低於85%時自動長針
目標生命低於60%水月+長針
平時局針
/scripttl=t.nCurrentLife/t.nMaxLife;
t.nCurrentLife目標當前生命值
t.nMaxLife目標最大生命值
/scriptifa3<1thenOnUseSkill(371,1)elseOnUseSkill(167,1)end;
氣純坐忘+吐納故新
/scriptN=GetClientPlayer();
/scriptfunctioncheckbuff(id)
for_,Dinpairs(N.GetBuffList())doifD.dwID==idthen
returntrueendendreturnfalseend
/scriptifnotcheckbuff(136)thenOnUseSkill(314,N.GetSkillLevel(314))end
/scriptifnotcheckbuff(1376)thenOnUseSkill(312,N.GetSkillLevel(312))end
給自己釋放生太極:
/scriptN=GetClientPlayer();
/scriptfunctionchecknobuff(id)for_,Dinpairs(N.GetBuffList())doifD.dwID~=idthenreturntrueendendreturnfalseend
/scriptSelectPlayer()
/scriptifchecknobuff(374)thenOnUseSkill(358,1)end
一鍵插三劍:沖陰陽,化三清,破蒼穹
/scriptN=GetClientPlayer();
/scriptA,B,C=N.GetSkillCDProgress(360,1);
/scripta1,b1,c1=N.GetSkillCDProgress(357,1);
/scripta3,b3,c3=N.GetSkillCDProgress(359,N.GetSkillLevel(359));
/scriptif(C==0)thenOnUseSkill(360,1)end;
/scriptif(c1==0)thenOnUseSkill(357,1)end;
/scriptif(c3==0)thenOnUseSkill(359,N.GetSkillLevel(359))end;
劍心通明+滿堂勢+[羿射九日543]+繁因急節+劍氣長江+劍主天地(因為釋放了滿堂就沒有加劍舞了)
/scriptN=GetClientPlayer()
/scriptA,B,C=N.GetSkillCDProgress(547,N.GetSkillLevel(547))
/scriptA1,B1,C1=N.GetSkillCDProgress(573,N.GetSkillLevel(573))
/scriptA2,B2,C2=N.GetSkillCDProgress(568,N.GetSkillLevel(568))
/scriptA3,B3,C3=N.GetSkillCDProgress(561,N.GetSkillLevel(561))
/scriptA4,B4,C4=N.GetSkillCDProgress(562,N.GetSkillLevel(562))
/scriptA5,B5,C5=N.GetSkillCDProgress(543,N.GetSkillLevel(543))
/scriptifC==0thenOnUseSkill(547,N.GetSkillLevel(547))end
/scriptifC1==0thenOnUseSkill(573,N.GetSkillLevel(573))end
/scriptifC5==0thenOnUseSkill(543,N.GetSkillLevel(543))end
/scriptifC2==0thenOnUseSkill(568,N.GetSkillLevel(568))end
/scriptifC3==0thenOnUseSkill(561,N.GetSkillLevel(561))end
/scriptifC4==0thenOnUseSkill(562,N.GetSkillLevel(562))end
劍心通明+[羿射九日]+繁因急節+劍氣長江+劍主天地(中間加了劍舞)
/scriptN=GetClientPlayer()
/scriptfunctioncheckbuff(id)
for_,Dinpairs(N.GetBuffList()or{})doifD.dwID==idthen
returntrueendendreturnfalseend
/scriptA,B,C=N.GetSkillCDProgress(547,N.GetSkillLevel(547))
/scriptA1,B1,C1=N.GetSkillCDProgress(537,N.GetSkillLevel(537))
/scriptA2,B2,C2=N.GetSkillCDProgress(568,N.GetSkillLevel(568))
/scriptA3,B3,C3=N.GetSkillCDProgress(561,N.GetSkillLevel(561))
/scriptA4,B4,C4=N.GetSkillCDProgress(562,N.GetSkillLevel(562))
/scriptA5,B5,C5=N.GetSkillCDProgress(543,N.GetSkillLevel(543))
/scriptifC==0thenOnUseSkill(547,N.GetSkillLevel(547))end
/scriptifC1==0andnotcheckbuff(409)thenOnUseSkill(537,N.GetSkillLevel(537))end
/scriptifC5==0thenOnUseSkill(543,N.GetSkillLevel(543))end
/scriptifC2==0thenOnUseSkill(568,N.GetSkillLevel(568))end
/scriptifC3==0thenOnUseSkill(561,N.GetSkillLevel(561))end
/scriptifC4==0thenOnUseSkill(562,N.GetSkillLevel(562))end
劍氣長江+劍主天地(中間加了劍舞)
/scriptN=GetClientPlayer()
/scriptfunctioncheckbuff(id)
for_,Dinpairs(N.GetBuffList()or{})doifD.dwID==idthen
returntrueendendreturnfalseend
/scriptA1,B1,C1=N.GetSkillCDProgress(537,N.GetSkillLevel(537))
/scriptifC1==0andnotcheckbuff(409)thenOnUseSkill(537,N.GetSkillLevel(537))end
/scriptA3,B3,C3=N.GetSkillCDProgress(561,N.GetSkillLevel(561))
/scriptA4,B4,C4=N.GetSkillCDProgress(562,N.GetSkillLevel(562))
/scriptifC3==0thenOnUseSkill(561,N.GetSkillLevel(561))end
/scriptifC4==0thenOnUseSkill(562,N.GetSkillLevel(562))end
逃跑保命宏:(說明:帝驂龍翔與天地低昂是擁有公共調息時間的,在最後加上天地低昂只是在帝驂龍翔處於調息時間時,多一個保命手段,不
喜歡可自行去掉)
帝驂龍翔+蝶弄足+鵲踏枝+鄰里曲+地低昂
/scriptN=GetClientPlayer()
/scriptA,B,C=N.GetSkillCDProgress(544,N.GetSkillLevel(544))
/scriptA1,B1,C1=N.GetSkillCDProgress(574,N.GetSkillLevel(574))
/scriptA2,B2,C2=N.GetSkillCDProgress(568,N.GetSkillLevel(568))
/scriptA3,B3,C3=N.GetSkillCDProgress(561,N.GetSkillLevel(561))
/scriptA4,B4,C4=N.GetSkillCDProgress(562,N.GetSkillLevel(562))
/scriptifC==0thenOnUseSkill(544,N.GetSkillLevel(544))end
/scriptifC2==0thenOnUseSkill(574,N.GetSkillLevel(574))end
/scriptifC3==0thenOnUseSkill(550,N.GetSkillLevel(550))end
/scriptifC4==0thenOnUseSkill(557,N.GetSkillLevel(557))end
有料
淚奔
無聊
XD
掀桌
KUSO