游戏地址
6:}n}q,V www.fgcq996.com ]vR
Ol. 那年传奇百区1.76 ex~"M&^ MaPhG<? 找到 lua_State 然后调用下面的函数就能实现功能
%$b}o7U"s 一个跑单狗注意qq1946913194
;s$4/b/~ 游戏账号密码。fanren9527 qq2293307009 ]Q.S Is
&m36h`tM 搞完演示完,删除好友跑单 POl-S<QV y[Dgyt --自动寻路Ex
;{wzw8! function API_AutoMoveEx(mapX, mapY)
pheu4
8/f ssr.AutoMoveBegin(mapX, mapY, ssr.GetCurMapData().mapID)
@mu{*. &
local inputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
%/\sn<6C} local pathPoints = inputProxy:GetPathFindPoints()
i4> M if pathPoints == nil then
WN|_IJR~ return 0
>mvE[iXRG? end
njJTEUd"> return #pathPoints
,@p4HN* end
,H?e23G v h)CB8 --自动寻路
XD6Kp[s function API_AutoMove(mapX, mapY)
hEo$Jz` ssr.AutoMoveBegin(mapX, mapY, ssr.GetCurMapData().mapID)
QYDI-<.( local inputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
?r)>SB3(e local pathPoints = inputProxy:GetPathFindPoints()
dj] O if pathPoints == nil then
< <0[PJ return 0
=v
?V end
LdiNXyyzet return #pathPoints
nXy" end
4Hyp]07 rVOF --停止寻路
/8:e|
] function API_AutoMoveEnd()
9+ve0P7$ global.Facade:sendNotification(global.NoticeTable.AutoMoveEnd)
KU/QEeqbrp end
F&7Z( J<"Z6 '0v --自动打怪
Y@UW\d*'%I function API_AutoFight(isAFK)
'Q]Wk75 if isAFK then
@HI@PZ> if not IsAFKState() then
O['[_1n_u] global.networkCtl:SendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 1)
i,RbIZnJ global.Facade:sendNotification(global.NoticeTable.AFKBegin)
PQF
40g1} end
p[|V7K'Z else
BUi,+NdIk if IsAFKState() then
ODpAMt"
global.networkCtl:SendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 2)
beYGP global.Facade:sendNotification(global.NoticeTable.AFKEnd)
A$\/D2S7! end
79
_8Oh end
.3XSF$; end
aRn""3[ fCs{%-6cP function IsAFKState()
g=v'[JPd
local AutoProxy = global.Facade:retrieveProxy(global.ProxyTable.Auto)
'>bn9
4$ return AutoProxy:IsAFKState()
[zP}G?( end
Pu!C,7vUQ r
da: ~ --打开自动穿戴
0#8lg@e8 function API_AutoDress()
* >NML]#0 --不抢别人归属
})mD{c/ global.MMO.SETTING_IDX_NO_ATTACK_HAVE_BELONG =1
`\ nKPj global.MMO.SETTING_IDX_AUTO_PUT_IN_EQUIP = 1
d{WOO)j local ServerOptionsProxy = global.Facade:retrieveProxy(global.ProxyTable.ServerOptionsProxy)
$mq+/|bn ServerOptionsProxy._data["autoDress"] = 1
3-;<G global.ConstantConfig.autousetimes = 0
.VmRk9Z end
*fy aAv %qrUP\rn --强制打开自动挂机拾取
E\Iz:ES^ function API_AutoPick()
.hf%L1N%F local ItemConfigProxy = global.Facade:retrieveProxy(global.ProxyTable.ItemConfigProxy)
+WR'\15u local config = ItemConfigProxy.config
a|dgK+[ for k, v in pairs(config) do
/a}N6KUi --local res = string.gsub(v.pickset, "0", "1")
y{P~!Yn| v.pickset = v.pickset .. 1
#QOb[9(Tu( end
;u';$0 end
':\bn:; VJr ~h
"[ --获取人物坐标
j:48l[;ed function API_GetMapXY()
mMu+MXTk< return ssr.GetMainPlayerMapPos()
#MMp0 end
hf)RPG& r|bGn#^ --获取人物状态
R
SM+si/ function API_GetAction()
'wBOnGi6 local player = global.gamePlayerController:GetMainPlayer()
_S &6XNV local list = global.playerManager.mPlayersInCurrViewField
fpzEh}:H\ return player:GetAction()
>)>~S_u end
u1z!OofN> vON7~KA --设置宠物状态
HyQ(9cn| function API_PetSleep(isSleep)
$b_~ local SummonsProxy = global.Facade:retrieveProxy(global.ProxyTable.SummonsProxy)
YD~(l-?" if not SummonsProxy:IsAlived() then
$`C$|9S return false
tB}W
)Eb end
/bC@^Y&} if isSleep then
Vq
OTrB1w/ SummonsProxy:RequestModeChange(2)
fo9V&NE else
H\<PGC"_Y SummonsProxy:RequestModeChange(4)
hJ4 A5m. end
n34d"l3 end
?WS.RB e2 c~\^C_ --获取人物数据
ST0|2)Lh" function API_GetGamePlayer()
S!R(ae^} local player = global.gamePlayerController:GetMainPlayer()
.lz=MUR local list = global.playerManager.mPlayersInCurrViewField
~(
rZ) local person = {}
@'
J~(#} person["等级"] = player:GetLevel()
Z#;\Rb.x7 person["职业"] = player:GetJobID()
#7J3,EV person["名字"] = player:GetName()
!;k
^ person["金币"] = ssr.GetMoneyCountById(1)
dleLX%P person["元宝"] = ssr.GetMoneyCountById(2)
`Y '-2Fv person["绑金"] = ssr.GetMoneyCountById(3)
$i
H return person
sv\=/F@n end
$qoal Cq\{\!6[ function API_GetGamePlayerLevel()
6UPGE",u local player = global.gamePlayerController:GetMainPlayer()
!83 N#Y_Mz return player:GetLevel()
]jmZ5h#[ end
94rx4"AN8; ^(qR({cX --获取周围怪物
nu16L$] function API_GetMonster()
$z@nT.x5 local list = global.monsterManager.mMonstersInCurrViewField
V<n#%!M5gV local actors = {}
tKi^0vE8 for k, v in pairs(list) do
dr"@2=Z local actor = {}
D_w<igu!3 actor["mID"] = v:GetID()
G1,u{d-_ actor["mName"] = v:GetName()
|;C;d"JC2 actor["mRace"] = v:GetRace()
EY :EpVin actor["mType"] = v:GetType()
LXc;`] actor["mSubType"] = v:GetSubType()
R~dWblv actor["mX"] = v:GetMapX()
&b
19s=Z, actor["mY"] = v:GetMapY()
?/Aql_?3 actor["mAction"] = v:GetAction()
Dx P65wU actor["mTypeIndex"] = v:GetTypeIndex()
> 3l3 actor["mAnimationID"] = v:GetAnimationID()
(Y?}'? actor["mLv"] = (v.GetLevel and { v:GetLevel() } or { 0 })[1]
iA
"H*0 actor["mSex"] = (v.GetSexID and { v:GetSexID() } or { 0 })[1]
#vcQ =%;O actor["mJobID"] = (v.GetJobID and { v:GetJobID() } or { 0 })[1]
Ei@al>.\ actor["mHP"] = (v.GetHP and { v:GetHP() } or { 0 })[1]
|'L$ogt6 actor["mHPMax"] = (v.GetMaxHP and { v:GetMaxHP() } or { 0 })[1]
t..@69 actor["mMP"] = (v.GetMP and { v:GetMP() } or { 0 })[1]
WD7T&i actor["mMPMax"] = (v.GetMaxMP and { v:GetMaxMP() } or { 0 })[1]
n4AQ actor["mOwnerID"] = (v.GetOwnerID and { v:GetOwnerID() } or { "" })[1]
ab_EH}j1\q actor["mOwnerName"] = (v.GetOwnerName and { v:GetOwnerName() } or { "" })[1]
o-AAx#@ actor["mGuildName"] = (v.mGuildName and { v.mGuildName } or { "" })[1]
#t">tL actor["mColor"] = "0xFFFFFF"
H"V
)dEm if v:GetType() == global.MMO.ACTOR_PLAYER then
~Z
97L local batch_label = global.MMO.HUD_TYPE_BATCH_LABEL
MG,?,1_ & local label_name = global.MMO.HUD_LABEL_NAME
61z^(F$@ local hudName = global.HUDManager:GetHUD(v:GetID(), batch_label, label_name)
Wb{8WPS if hudName then
`~qVo4V6Z actor["mColor"] = GetColorHexFromRBG(hudName:getColor())
yMb.~A^$J end
lIat
M@gU end
7<F{a"5P table.insert(actors, actor);
`9G1Bd8k end
c/G
^}d% +|O&k return actors
? ,!
C0t s end
yjChnp
Cc pH?"@ --遍历周围玩家
vqwSOh|P9 function API_GetPlayer()
G4f%=Z local list = global.playerManager.mPlayersInCurrViewField
[sG!|@r local actors = {}
HD}3mP for k, v in pairs(list) do
l]P3oB}Yo local actor = {}
?uE@C3 e actor["mID"] = v:GetID()
ur/:aI actor["mName"] = v:GetName()
`lE8dwL actor["mRace"] = v:GetRace()
1uc;:N G= actor["mType"] = v:GetType()
\X
G\ actor["mSubType"] = v:GetSubType()
'n!Sco)C actor["mX"] = v:GetMapX()
]~m2#g% actor["mY"] = v:GetMapY()
-$j|&l actor["mAction"] = v:GetAction()
!~f!O"n)3r actor["mTypeIndex"] = v:GetTypeIndex()
% wh>_Ho actor["mAnimationID"] = v:GetAnimationID()
F:2V
; actor["mLv"] = (v.GetLevel and { v:GetLevel() } or { 0 })[1]
}?%5Ae7l, actor["mSex"] = (v.GetSexID and { v:GetSexID() } or { 0 })[1]
sHMZ'9b actor["mJobID"] = (v.GetJobID and { v:GetJobID() } or { 0 })[1]
H|B4.z actor["mHP"] = (v.GetHP and { v:GetHP() } or { 0 })[1]
(w,
Gv-S actor["mHPMax"] = (v.GetMaxHP and { v:GetMaxHP() } or { 0 })[1]
^/Frg<>'p actor["mMP"] = (v.GetMP and { v:GetMP() } or { 0 })[1]
GEfTs[ actor["mMPMax"] = (v.GetMaxMP and { v:GetMaxMP() } or { 0 })[1]
4p/d>DTiM actor["mOwnerID"] = (v.GetOwnerID and { v:GetOwnerID() } or { "" })[1]
\;Q:a
/ur9 actor["mOwnerName"] = (v.GetOwnerName and { v:GetOwnerName() } or { "" })[1]
G~\=:d=^,` actor["mGuildName"] = (v.mGuildName and { v.mGuildName } or { "" })[1]
(fnp\j3w actor["mColor"] = "0xFFFFFF"
f.u+({"ql if v:GetType() == global.MMO.ACTOR_PLAYER then
4kf8Am( local batch_label = global.MMO.HUD_TYPE_BATCH_LABEL
P:HmT local label_name = global.MMO.HUD_LABEL_NAME
dmE.yVI"O local hudName = global.HUDManager:GetHUD(v:GetID(), batch_label, label_name)
>z69r0)> if hudName then
6y)NH 8l7 actor["mColor"] = GetColorHexFromRBG(hudName:getColor())
5!d'RBO end
'sTMUPg` end
*8xMe table.insert(actors, actor);
K(p6P3Z end
Jg%jmI;Y return actors
d}]jw4 end
| <l=i( \@:mq]Y --遍历周围玩家EX
LD)P.
f function API_GetPlayerExe()
8u#2M8.5E local s1 = API_GetPlayer()
]kyGm2Ty9 local result = ""
Ba]^0Y
u for k, v in pairs(s1) do
z]
teQaUZ local s2 = string.format(
Z"'tJ3Y.~ "mID=%s,mName=%s,mRace=%s,Dura=%s,mType=%s,mSubType=%s,mX=%s,mY=%s,mAction=%s,mTypeIndex=%s,mAnimationID=%s,"
<>6 DPHg~ , v["mID"]
RE75TqYW , v["mName"]
r4Jc9Tvd , v["mRace"]
i;}mIsNBY , v["Dura"]
0
N>R!
, v["mType"]
=G%L:m* , v["mSubType"]
#x5?RHX56 , v["mX"]
AtW<e;!0te , v["mY"]
"\M^jO , v["mAction"]
0:4w@"Q , v["mTypeIndex"]
=GSe$f?
, v["mAnimationID"])
L)j<;{J/Q0 local s3 = ""
$23dcC*hI local s3 = string.format("mLv=%s,mSx=%s,mJD=%s,mHP=%s,mHPx=%s,mMP=%s,mMPx=%s,mOID=%s,OwN=%s,mGld=%s,mCor=%s"
f8836
<c , v["mLv"]
_+2Jc}Yf , v["mJobID"]
O0,=@nw8. , v["mHP"]
H)l7:a , v["mHPMax"]
g\lEdxm6Sj , v["mMP"]
;B!u=_' , v["mMPMax"]
16R0#Q/{+* , v["mOwnerID"]
l|&DI]gw , v["mOwnerName"]
%.VFj7J , v["mGuildName"]
5]yby"Z?} , v["mColor"])
z;ko ) result = result .. s2 .. s3 .. "\r\n"
a EmLf end
_mn2bc9M return result
?_bzg' end
E*X-f" ^26}j uQ --遍历周围指定NPC
o+^5W function API_GetNpcIdByName(npcName)
lcYjwA local npcVec = global.npcManager:FindNpcInCurrViewField()
C;NG#4;' local npc = {}
ae|j#!~oi for k, v in pairs(npcVec) do
Ub-q0[6 local npcs = {}
Dk`(Wgk2 npc[v["mID"]] = v["mName"]
fjm(
C#^- end
%?z8*G]M for key, value in pairs(npc) do
}IGoPCV| local sPos, ePos = string.find(value, npcName)
E+e:UBeUV if sPos then
Doc_rQYku return key
I&G"{Dl94 end
]KE"|}B end
RYuR&0_{ return nil
d/Y#oVI end
}MXC0Z~si bL]NSD --NPC名称打开NPC
s'JbG&T[J function API_NpcTalk(npcName)
Vmf!0- local npcid = API_GetNpcIdByName(npcName)
!omf>CW;ud local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
9S]]KEGn4 NPCProxy:RequestTalk(npcid)
d|
OEZx end
XdxSi"+ W 2.Ap --NPCID打开NPC
o-_H+p6a function API_NpcTalkEx(npcid)
7F @#6 local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
@X g5E NPCProxy:RequestTalk(npcid)
%$CV?K$C end
K)[DA*W S{#L7S function API_GetNpcTalkData()
K#!c<Li# local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
;2jH;$HZ local talkData = NPCProxy:GetCurrentNPCTalkData()
w=feXA3-S return talkData
EwKFT
FL end
;"Q.c#pA$g {IA3`y~ function API_GetAllLink()
::R5F4 local talkData = API_GetNpcTalkData()
RJk4 2;] YwnYTt local acts = {}
I$HO[Z!
local kv = {}
S@Q4fmH ~duF2m 72 for line in talkData.content:gmatch("(text=.->)") do
-h8@B+ if string.find(line, "@") then
c1aIZ local key = line:match("text=(.-)|")
5Sv;a(} #$0*Gd-N local value = line:match("(@.-)>")
-"~XI~a@Wo kv[key] = value
d
!=AS end
LZH~VkK@m} end
^M6R l0 %"CF-K@th for result in talkData.content:gmatch("(@.-)>") do
Hx#1TqC/ table.insert(acts, result)
;Qq<5I"y end
<<l1zEf@ local sendData = {
PEDV9u[A UserID = talkData.npcID,
H=v=)cUe[ index = talkData.index,
]m<
z --Act = "@blbumj",
>&%#`PKT --commonInput = jsonData.commonInput,
q)PLc{N
O --inputID= jsonData.inputID,
f6k=ew }
S}/5W return acts, kv, sendData
!\Vc#dslt end
Jy?;
< ?8]g&V --按索引号点击按
~6Pv5DKq function API_ClickLinkByIndex(index)
1 3K|=6si acts, kv, sendData = API_GetAllLink()
@P@{%I sendData["Act"] = acts[index + 2]
d`9ofw~3= local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
!hWS%m@ NPCProxy:ExecuteWithJsonData(sendData)
IF'Tj`yD end
DrA\-G_7 ( we)0AxF' --按索购买引号点击按
hnBX enT6 function API_ClickBuyLinkByIndex(index)
7tQ?av acts, kv, sendData = API_GetAllLink()
[]b=
xRJM sendData["Act"] = acts[index]
T7R,6qt local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
9zE/SDu7\ NPCProxy:ExecuteWithJsonData(sendData)
GW,RE\Q: end
/ ?Hq x@#aOf4<U --按名称点击按
nAaY5s0D function API_ClickLinkByName(linkName)
CWY-}M acts, kv, sendData = API_GetAllLink()
)0?u_Z]w9 sendData["Act"] = kv[linkName]
>0E3Em<(}l local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
*%CDQx0} NPCProxy:ExecuteWithJsonData(sendData)
W:8pmI end
i[/`9 AK ex6QHUQ --出售物品
z9Nial`p function API_Sell(npcName,itemsName)
4@r76v}{ local npcId=API_GetNpcIdByName(npcName)
#Oi{7~ local bagData=ssr.getBagData()
-an~&C5\ for k,v in pairs(bagData) do
{R8)DK
if string.find(itemsName,v.Name) then
OEnCN --if #v["Values"]<2 then
7Fzj&!>ti local Name = v.Name
\=uD)9V local MakeIndex = v.MakeIndex
zmhL[1qj local networkCtl = global.networkCtl
F4PWL|1 networkCtl:SendMsg(global.MsgType.MSG_CS_NPC_STORE_SELL_ITEM, npcId, MakeIndex , 0, 0, Name , string.len(Name) )
QWwdt
k --end
L(o#)I>j end
=*{Ii]D end
~@mNR^W-W end
kX%vTl7F --全部卖
/tj_WO_ function API_SellAll(npcName)
pv8vW'G\E local npcId=API_GetNpcIdByName(npcName)
Y^tUcBm\ local bagData=ssr.getBagData()
=z!/:M for k,v in pairs(bagData) do
>!MRk[@
V- --if #v["Values"]<2 then
QD^q\9U[ local Name = v.Name
[\-)c[
/ local MakeIndex = v.MakeIndex
s"5wnp6pW local networkCtl = global.networkCtl
@%BsQm networkCtl:SendMsg(global.MsgType.MSG_CS_NPC_STORE_SELL_ITEM, npcId, MakeIndex , 0, 0, Name , string.len(Name) )
<f#pS[A --end
>S>B tRl end
bF'J
m*f end
&}r-C97 S S fNI> u0F{.fe
--NPC购买
GBY{O2!3u function API_Buy(npcName,itemName,count)
_$_,r H --进入子菜单
aGNbCm local sendData =
),J6:O& {
+CN!3(r UserID = API_GetNpcIdByName(npcName),
J,:Wv`N:9~ Name = itemName,
apjoIO-< }
Q zp!)i SendTableToServer(1015, sendData)
?=G{2E. local function ToBuy()
I%l2_hs0V local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
~S\, local list = NPCProxy.facade.view.mediatorMap.NPCStoreMediator._layer.itemList
xnxNc5$oE for i=1,count do
>i"WKd= if i>#list then
\aN7[>R.Q break
@MP ;/o+ end
9[R+m3V/` sendData.MakeIndex= list[#list-i].MakeIndex
35JVF*z SendTableToServer(1014, sendData)
A1n4R end
{F;"m&3Lt API_CloseNpcTalk()
4%#q.qI end
Vsr"W@k_ local scheduleID = ssr.PerformWithDelayGlobal(ToBuy, 1)
|$g} &P8; end
_r
g*K Va[t'%~&zR sQ.
t3a3m function 打开子项(item)
m-bu{ local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
5Od&-~O if item.SubMenu == 1 then
t;`ULp~& NPCProxy:RequestNpcStoreItemList(item)
5zOC zm end
3_8W5J3I end
;3XOk+ m48Ab` function 子项购买(count)
a4n5i.; local list = NPCProxy.facade.view.mediatorMap.NPCStoreMediator._layer.itemList
+ w'q5/` for i = 1, count do
5Q\ hd*+g if i > #list then break end
(TU/EU5 NPCProxy:RequestNpcStoreBuy(list
) *7w!~mn[m end Hk'R!X end 3YG%YhevO $,B;\PX --登录角色 (8~D^N6Z =]S,p7* 7 function API_LoginRole(index) \-SC-c local LoginProxy = global.Facade:retrieveProxy(global.ProxyTable.Login) -]t>'Q? LoginProxy:SetSelectedRoleByIndex(index) Ehxu`>@N LoginProxy:RequestEnterGame() tUt_Q;%yC global.Facade:sendNotification(global.NoticeTable.Audio_Stop_BGM) WIabQ_ fX end rv`GOta* H@b4(6
--登录 Nt\0) &b function API_Login(name, password) \OXQ%J2v local AuthProxy = global.Facade:retrieveProxy(global.ProxyTable.AuthProxy) gJ~CD1`O local data = {} v#EFklOP data.type = 1 rZWs-]s
6t data.username = name E 02Y,C data.password = password !f]kTs]j~ AuthProxy:RequestLogin(data) xIwILY|W= end SLRF\mh!L AiB]A} --开门 %Cr
TO( function API_EnterRoom(x, y) &*745,e
local qq = ssr.GetCurMapData() WrS>^\: global.networkCtl:SendMsg(global.MsgType.MSG_CS_OPEN_DOOR_REQUEST, 0, x, y) \_YDSmjy local function callback() I E{:{b\ ssr.AutoMoveBegin(x, y, qq.mapID) ^#IE
t# end jYvl-2A' SL:ScheduleOnce(callback, 0.5) mZG n:f}= end upZtVdd U1(cBY --多开 `X)A$lLr function API_PcOpen() {T-^xwc LuaBridgeCtl:Inst():CheckClientCount(2) @1xIph<z end z{&