提交問題刪除
提交問題
遊戲下載 創建公會 劍3獵手 經脈模擬器 遊戲論壇
專區首頁 新手專題 職業專欄 聲望專題 套裝獲取 副本專題 任務大全 插件下載
當前位置:劍俠情緣3遊戲專區 >> 心得分享 >> 正文
劍網3宏命令製作教程之一些實例
劍網3宏命令製作教程之一些實例
發佈時間:2011年10月10日 11:06:49    作者:開心遊戲網    人氣:29328    進入討論區

  劍網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

2
0
0
0
0
0

有料

淚奔

無聊

XD

掀桌

KUSO
2