宏分享及官方宏函数写法基础教程
摘 要
宏插件系列:
本人用 多玩宏插件,因为写起来方便简单。
无脑局针宏:
/skill [tnobuff:清心静气] 清心静气 目标无清心则释放清心
/skill [tnobuff:握针] 握针 目标无握针则释放握针
/skill [buff:逐流,tlife<0.8] 长针 逐流buff下,且目标血低于80%释放长针
/skill [buff:水月无间] 长针 自身有水月buff则释放长针
/skill 局针
/skill [buff:逐流,tlife<0.8] 长针
/skill [tlife<0.4,nobuff:逐流] 水月无间 目标血低于40%且自身无逐流buff 释放水月
/skill [buff:逐流,tlife<0.8] 长针
/skill [buff:水月无间] 长针 水月buff下释放长针
/skill [tnobuff:春泥护花,tnobuff:天地低昂] 春泥护花 目标无春泥,无天地则释放春泥
/skill [tnobuff;毫针] 毫针
本人目前没关门的那个经脉,没写进去,如果有人需要的话,我可以帮写进去……………………
系统内置宏命令集合:
if系列语句教程:
基本结构:if 条件 then 执行语句 end
扩展结构:if 条件 then 语句 else (if 语句)end
多个条件可以用 and or 组合起来
喊话宏:
帮会喊话:
/script for i=1,1 do GetClientPlayer().Talk(PLAYER_TALK_CHANNEL.TONG, "", {{type = "text", text = "60月卡收购一个70级的空号,除TC以外的其他职业,无其他要求,便宜甩号的MM我++++++++"}}) end;
for i=1,1 是喊话一次, for i=1,2 是喊话2次
其他频道喊话:(把上面语句中的粉红色部分替换)
Say 近聊
Yell 地图
World 世界
Party 队伍
Team 团队
Battle 战场
Tong 帮会
School 门派
Camp 阵营
Friends 好友
打断当前读条:
/script GetClientPlayer().StopCurrentAction()
一键后跳:
/script OnUseSkill(9007,1)
判断自身BUFF:
/script for _, pB in pairs(GetClientPlayer().GetBuffList()) do
if pB.dwID==BUFF的ID then 执行语句 end
end;
buff的剩余时间:
local N
for _, pB in pairs(GetClientPlayer().GetBuffList()) do
if pB.dwID==BUFF的ID then
N=math.floor(math.floor(nEndFrame - GetLogicFrameCount()) / 16 + 1)
end
end;
剑网3的技能时间计算方法:10s,在游戏系统里面是160
释放技能:
OnUseSkill(技能ID,N.GetSkillLevel(技能等级))
获取目标的读条状态
local bPrePare, dwID, dwLevel, fP = tplayer.GetSkillPrepareState()
系统信息
OutputMessage("MSG_SYS", “你所要显示的内容\n”)
OutputMessage("MSG_ANNOUNCE_RED", “你所要显示的内容\n”)
OutputMessage("MSG_ANNOUNCE_Yellow", “你所要显示的内容\n”)
此3个喊话,只能你自己看到
第一个是在聊天的界面里面 第二个和第三个是在屏幕中央
获取目标的读条状态
local bPrePare, dwID, dwLevel, fP = tplayer.GetSkillPrepareState()
若目标在读条则 bPrePare为true否则为false
获取角色:
GetClientPlayer() --获得玩家自己
GetClientPlayer().GetTarget() --return 目标dwType 目标dwID
GetPlayer(dwID) --获取指定dwID的人物对象,只针对玩家(包括自己)
GetNpc(dwID) --获取指定dwID的NPC对象,只针对NPC
GetTargetHandle(dwType, dwID) --获取指定dwID的对象,包括玩家和NPC
SelectTarget(dwType, dwID) --选择(dwType, dwID)对象为目标
GetClientPlayer().dwID --人物的ID号
GetClientPlayer().GetTarget() --获得当前人物的目标
GetClientPlayer().GetBoxSize(dwBagIndex); --人物的包包大小
GetClientPlayer().GetItem(dwBagIndex, dwX); --获得包包的指定物品
item.nQuality --物品品质
item.bCanStack --是否可以叠加
item.nStackNum --叠加数量
SellItemToShop(dwBagIndex, dwX, nCount); --卖物品到商店
ShopPanel.bCanRepair -- 商店是否能修理
GetClientPlayer().CastSkill(nSkillID, nSkillLevel) --角色发技能
GetRepairAllItemsPrice(ShopPanel.nNpcID, ShopPanel.nShopID) --修理费用
RepairAllItems(ShopPanel.nNpcID, ShopPanel.nShopID) --修理所有物品
角色属性:
dwID --人物ID
szName --人物名字
dwSchoolID --门派编号
nLevel --人物等级
dwMapID 所在地图ID
nCurrentLife --当前生命
nMaxLife --最大生命
nCurrentMana --当前内力
nMaxMana --最大内力
nCurrentStamina --当前精力
nMaxStamina --最大精力
bStall --是否在摆摊状态
bFightState --是否在战斗中,true为战斗状态,false为非战斗状态
bOnHorse --是否在马上
nAccumulateValue 纯阳气的个数,半个气为1,也就是0-10之间的数,比如7就是3个半气~
/script PX1,PX2,PX3=N.GetSkillCDProgress(技能ID,N.GetSkillLevel(技能ID));
N.GetSkillLevel(技能ID) 获取技能的等级
申请3个变量PX1,PX2,PX3,然后获得N(你)当前技能编号为355(凭虚)技能的冷却时间,第一个参数PX1我不清楚含义,第二个公共冷却所剩时间,第三个是凭虚技能冷却所剩时间
最后附加典型用法:(来自本版万花谷同僚的帖子)
离经篇:
1、水月长针宏
/script N = GetClientPlayer();
/script A,B,C=N.GetSkillCDProgress(136,1);
/script a,b,c=N.GetSkillCDProgress(167,1);
/script for _, D in pairs(N.GetBuffList()) do
if (D.dwID==722 or D.dwID==412) then OnUseSkill(142,6) end
end;
/script if (C==0) then OnUseSkill(136,1) end;
/script if (C>0 and c==0) then OnUseSkill(167,1) end;
本宏作用:首先判断是否有逐流BUFF,有就放长针没有就放水月+长针,如果水月在CD中放“冲脉.幽门”+水月+长针,没有点出冲脉幽门的请去掉宏命令中红色部分。
______________________________________________________________________________________________
O(∩_∩)O谢谢
______________________________________________________________________________________________国际惯例:
太极广场 逸雨(已删)
英雄擂 筱梦
感谢MTV CCAV 芒果台 星空卫视 and so on
最后感谢花花谷的花花们捧场