游戏地址
vS;1/->WD www.fgcq996.com L}m8AAkP[ 那年传奇百区1.76 pZyQY+O Jl "mL 找到 lua_State 然后调用下面的函数就能实现功能
+
S4fGT 一个跑单狗注意qq1946913194
X{kpSA~ 游戏账号密码。fanren9527 qq2293307009 KFZm`,+69
j|tC@0A 搞完演示完,删除好友跑单 `nO71mo sK=0Np=` --自动寻路Ex
H\1qI7N C function API_AutoMoveEx(mapX, mapY)
>]%8Zx[ ssr.AutoMoveBegin(mapX, mapY, ssr.GetCurMapData().mapID)
<58l;<0 local inputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
uGs;}<<8 local pathPoints = inputProxy:GetPathFindPoints()
~r{5`;c if pathPoints == nil then
pN\Vr8tJ return 0
dSCzx
.c end
\Ofw8=N-2 return #pathPoints
>*$; end
Ys8SDlMo L^^4=ao0 --自动寻路
B4XZko( function API_AutoMove(mapX, mapY)
d^(1TNS ssr.AutoMoveBegin(mapX, mapY, ssr.GetCurMapData().mapID)
O@iu aeEW local inputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
VzJ5.mRQ local pathPoints = inputProxy:GetPathFindPoints()
;#
MB7A
if pathPoints == nil then
k0Ek:MjJr return 0
B??J@+N
f end
N S#TW return #pathPoints
TPE:e)GO end
)fdE6 *;|`E( --停止寻路
BGr.yEy function API_AutoMoveEnd()
$W;b{H=F global.Facade:sendNotification(global.NoticeTable.AutoMoveEnd)
_owjTo} end
^2]LV6I W9oAjO NE --自动打怪
\ (p{t function API_AutoFight(isAFK)
u>pBB@ if isAFK then
1qi@uYDug if not IsAFKState() then
.qob_dRA global.networkCtl:SendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 1)
7FO'{Qq global.Facade:sendNotification(global.NoticeTable.AFKBegin)
?r_l8 end
K)Zlc0e else
1b9hE9a{j if IsAFKState() then
t4K~cK global.networkCtl:SendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 2)
Z2"?&pKV global.Facade:sendNotification(global.NoticeTable.AFKEnd)
U1_&gy @y end
)IT6vU"-yd end
&:=$wc end
YK{a H.G!A6bd function IsAFKState()
(5^ZlOk3 local AutoProxy = global.Facade:retrieveProxy(global.ProxyTable.Auto)
gK|R =J return AutoProxy:IsAFKState()
AnZclqtb end
Y\v-,xPm [Vd
z^_@Y --打开自动穿戴
1nPZ<^A&@ function API_AutoDress()
iq*A("pU --不抢别人归属
*V(Fn-6( global.MMO.SETTING_IDX_NO_ATTACK_HAVE_BELONG =1
H6aM&r9} global.MMO.SETTING_IDX_AUTO_PUT_IN_EQUIP = 1
F>gmj'-^ local ServerOptionsProxy = global.Facade:retrieveProxy(global.ProxyTable.ServerOptionsProxy)
(c v!Y=] ServerOptionsProxy._data["autoDress"] = 1
D=RU`?L global.ConstantConfig.autousetimes = 0
OlD`uA end
s=Q(C[%I XN,,cU --强制打开自动挂机拾取
&Np9kIMCB function API_AutoPick()
irTv4ZE'+l local ItemConfigProxy = global.Facade:retrieveProxy(global.ProxyTable.ItemConfigProxy)
_y .]3JNm local config = ItemConfigProxy.config
~:_0CKa! for k, v in pairs(config) do
uIMe --local res = string.gsub(v.pickset, "0", "1")
~2u\ v.pickset = v.pickset .. 1
c<+;4z end
hY<{t.ws end
9j*0D(" )
uP\>vRy --获取人物坐标
X5g[ :QKP7 function API_GetMapXY()
Kt#,
]] return ssr.GetMainPlayerMapPos()
~YCuO0t end
fRTo.u
Ml>( tec --获取人物状态
[&Hkn5yq function API_GetAction()
/NF# +bx local player = global.gamePlayerController:GetMainPlayer()
NN
0Q`r,8} local list = global.playerManager.mPlayersInCurrViewField
mCKk*5ws5" return player:GetAction()
b]gY~cbI8 end
#~qAHJ< }jF+`!*! --设置宠物状态
j;K#] function API_PetSleep(isSleep)
7 gB{In0 local SummonsProxy = global.Facade:retrieveProxy(global.ProxyTable.SummonsProxy)
xn}BB}s{t if not SummonsProxy:IsAlived() then
ix Z)tNz return false
q;AT>" = ) end
/,|CrNwY* if isSleep then
6gOe!mm SummonsProxy:RequestModeChange(2)
"Mmf6hu else
D&hqV)d4R SummonsProxy:RequestModeChange(4)
ED} 31L end
5|$a =UIR end
wb"RB
A9 ELa ja87 --获取人物数据
|Y_
- function API_GetGamePlayer()
UBO^EVJ local player = global.gamePlayerController:GetMainPlayer()
AW5iV3 local list = global.playerManager.mPlayersInCurrViewField
}1+%_|Y-E local person = {}
3}&ZOO person["等级"] = player:GetLevel()
5nCu~<uJ person["职业"] = player:GetJobID()
bdh(WJh% person["名字"] = player:GetName()
8(X0
: person["金币"] = ssr.GetMoneyCountById(1)
6ew "fCrH! person["元宝"] = ssr.GetMoneyCountById(2)
k5+]SG`]] person["绑金"] = ssr.GetMoneyCountById(3)
?
)3jqQ. return person
N~,_`=yRx end
'4;6u]d)2 R_Dc) function API_GetGamePlayerLevel()
iz}sM>^ local player = global.gamePlayerController:GetMainPlayer()
Tvf~P w return player:GetLevel()
POU}/e!Ua end
.gZZCf&?
FuP/tTMU1a --获取周围怪物
#I`ms$j% function API_GetMonster()
: cp local list = global.monsterManager.mMonstersInCurrViewField
w\|Ei( local actors = {}
\Rk$t7ZH for k, v in pairs(list) do
<rK=9"$y(t local actor = {}
L*]E`Xxd9 actor["mID"] = v:GetID()
d
GgP_S actor["mName"] = v:GetName()
Gg0#H^s( ( actor["mRace"] = v:GetRace()
7el<5chZ actor["mType"] = v:GetType()
X`20f1c6q> actor["mSubType"] = v:GetSubType()
L~FTr actor["mX"] = v:GetMapX()
9( VRq^Z1 actor["mY"] = v:GetMapY()
DpL8'Dib actor["mAction"] = v:GetAction()
F!KV\?eM$ actor["mTypeIndex"] = v:GetTypeIndex()
_
py2kjA6 actor["mAnimationID"] = v:GetAnimationID()
&A50'8B2A actor["mLv"] = (v.GetLevel and { v:GetLevel() } or { 0 })[1]
,&a`d}g&G actor["mSex"] = (v.GetSexID and { v:GetSexID() } or { 0 })[1]
=g@9>3~{! actor["mJobID"] = (v.GetJobID and { v:GetJobID() } or { 0 })[1]
oJaAM|7uv actor["mHP"] = (v.GetHP and { v:GetHP() } or { 0 })[1]
|LYK
c.xo actor["mHPMax"] = (v.GetMaxHP and { v:GetMaxHP() } or { 0 })[1]
I>w^2(y actor["mMP"] = (v.GetMP and { v:GetMP() } or { 0 })[1]
zJ& b|L actor["mMPMax"] = (v.GetMaxMP and { v:GetMaxMP() } or { 0 })[1]
WBppKj_M actor["mOwnerID"] = (v.GetOwnerID and { v:GetOwnerID() } or { "" })[1]
-4L!k'uR actor["mOwnerName"] = (v.GetOwnerName and { v:GetOwnerName() } or { "" })[1]
w4MwD?i]R actor["mGuildName"] = (v.mGuildName and { v.mGuildName } or { "" })[1]
@eQld\h' actor["mColor"] = "0xFFFFFF"
xDrV5bg if v:GetType() == global.MMO.ACTOR_PLAYER then
M$CVQ>op: local batch_label = global.MMO.HUD_TYPE_BATCH_LABEL
`"y{;PCt_ local label_name = global.MMO.HUD_LABEL_NAME
_GbE^ local hudName = global.HUDManager:GetHUD(v:GetID(), batch_label, label_name)
@sf90&f if hudName then
]O!s'lC actor["mColor"] = GetColorHexFromRBG(hudName:getColor())
m7 XjP2 end
IKf`[_,t] end
|PM m?2^ R table.insert(actors, actor);
"xwM+ AC end
lg/sMF>z\f `B#Z;R return actors
aMCO"66b end
8l xY]UT , Fytk34 --遍历周围玩家
t;Wotfc[#0 function API_GetPlayer()
-gKpL\
local list = global.playerManager.mPlayersInCurrViewField
0P 5BArJ? local actors = {}
N
<pbO#e for k, v in pairs(list) do
kG3!(?:
local actor = {}
DNth4z actor["mID"] = v:GetID()
P79R~m` actor["mName"] = v:GetName()
M4<+%EV} actor["mRace"] = v:GetRace()
kr_oUXiX actor["mType"] = v:GetType()
m<fA|9 F# actor["mSubType"] = v:GetSubType()
Kd{#r/HZ actor["mX"] = v:GetMapX()
g{DFS[h actor["mY"] = v:GetMapY()
ujx-jIhT_ actor["mAction"] = v:GetAction()
_ 5\AS+[x
actor["mTypeIndex"] = v:GetTypeIndex()
52<~K actor["mAnimationID"] = v:GetAnimationID()
{^&k!H2 actor["mLv"] = (v.GetLevel and { v:GetLevel() } or { 0 })[1]
R#6H'TVE actor["mSex"] = (v.GetSexID and { v:GetSexID() } or { 0 })[1]
29O]S8 actor["mJobID"] = (v.GetJobID and { v:GetJobID() } or { 0 })[1]
FP;":i RL actor["mHP"] = (v.GetHP and { v:GetHP() } or { 0 })[1]
o`U|`4, actor["mHPMax"] = (v.GetMaxHP and { v:GetMaxHP() } or { 0 })[1]
d/B* actor["mMP"] = (v.GetMP and { v:GetMP() } or { 0 })[1]
wA0eG@xi) actor["mMPMax"] = (v.GetMaxMP and { v:GetMaxMP() } or { 0 })[1]
QAaF@Do actor["mOwnerID"] = (v.GetOwnerID and { v:GetOwnerID() } or { "" })[1]
T]2U fi. actor["mOwnerName"] = (v.GetOwnerName and { v:GetOwnerName() } or { "" })[1]
Dt {') actor["mGuildName"] = (v.mGuildName and { v.mGuildName } or { "" })[1]
B82,.? actor["mColor"] = "0xFFFFFF"
u_'nOle
K if v:GetType() == global.MMO.ACTOR_PLAYER then
;nf&c;D local batch_label = global.MMO.HUD_TYPE_BATCH_LABEL
utd:&q|} local label_name = global.MMO.HUD_LABEL_NAME
+L6" vkz local hudName = global.HUDManager:GetHUD(v:GetID(), batch_label, label_name)
'?}R4w|) if hudName then
G `Izf1B`I actor["mColor"] = GetColorHexFromRBG(hudName:getColor())
W'G{K\(/ end
Nu.
(viQ} end
U?6yk
e table.insert(actors, actor);
<$C<Ba?;? end
!1-&Y'+ return actors
9A*rE.B+W end
k|ip?O F^sw0 .b --遍历周围玩家EX
97x%2.\: function API_GetPlayerExe()
)H+h;U local s1 = API_GetPlayer()
4I.1D2 1jA local result = ""
oWrE2U; for k, v in pairs(s1) do
"z/V%ZK~f local s2 = string.format(
/Su)|[/' "mID=%s,mName=%s,mRace=%s,Dura=%s,mType=%s,mSubType=%s,mX=%s,mY=%s,mAction=%s,mTypeIndex=%s,mAnimationID=%s,"
e-!?[Ujv*% , v["mID"]
}*-u$=2 , v["mName"]
D%
@KRcp^b , v["mRace"]
tJ1-DoU , v["Dura"]
,Qo}J@e
( , v["mType"]
foyB{6q8 , v["mSubType"]
r9;` , v["mX"]
UG=I~{L , v["mY"]
<rMv0y+r , v["mAction"]
#`58F . , v["mTypeIndex"]
y1Z1=
U*! , v["mAnimationID"])
8}K"IW local s3 = ""
afy/K'~ 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"
#[,= 1Od(q , v["mLv"]
V(I7*_ZFl , v["mJobID"]
0:PSt_33F , v["mHP"]
(.
H]| , v["mHPMax"]
{|p"; uJ , v["mMP"]
fn?VNZ`J
, v["mMPMax"]
??+:vai2 , v["mOwnerID"]
x.G"D( , v["mOwnerName"]
,7I},sZj , v["mGuildName"]
ioWJj
.% , v["mColor"])
r+TK5|ke result = result .. s2 .. s3 .. "\r\n"
M4H"].Zm end
c'~
[!,[b< return result
]F_r6 *< end
#ZF>WoC@e? wEK%T P4 --遍历周围指定NPC
E4i@|jE~) function API_GetNpcIdByName(npcName)
rV U:VL`2 local npcVec = global.npcManager:FindNpcInCurrViewField()
:B+Rg cqi local npc = {}
2mLUdx~c for k, v in pairs(npcVec) do
Z{#"-UG
local npcs = {}
sr4jQo npc[v["mID"]] = v["mName"]
`;}H% end
QD}1?)} for key, value in pairs(npc) do
$*i7?S@~- local sPos, ePos = string.find(value, npcName)
-+ko}He
if sPos then
yYB NH1 return key
5R"2Wd end
l-MxLcz end
86#-q7aX return nil
c G*(C end
O*ImLR)i+s bm^X!i5 --NPC名称打开NPC
CX.SYr&!R function API_NpcTalk(npcName)
y,^";7U local npcid = API_GetNpcIdByName(npcName)
Vbo5`+NAis local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
kI<WvgoL NPCProxy:RequestTalk(npcid)
fIH# end
5<^'Cy TIETj~+ --NPCID打开NPC
h$|3
dz N function API_NpcTalkEx(npcid)
?'Oj=k"c7 local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
U
~CdU NPCProxy:RequestTalk(npcid)
Y.(v{l end
db^aL8
Y[h#hZ function API_GetNpcTalkData()
Wge ho local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
Ia'x]#~ local talkData = NPCProxy:GetCurrentNPCTalkData()
;raz6DRO return talkData
w)^\_uAlS end
2aFT<T0 ;Na^]32 function API_GetAllLink()
sK `<kbj local talkData = API_GetNpcTalkData()
%`eJ66T F G3Sk!O6 local acts = {}
P6:;Y5e0 local kv = {}
PqVW'FYe OWZS3Y+ for line in talkData.content:gmatch("(text=.->)") do
jp%
+n if string.find(line, "@") then
wLpkUa local key = line:match("text=(.-)|")
8H7O/n IO*l vy local value = line:match("(@.-)>")
hR!}u}ECd kv[key] = value
487YaioB$ end
;m
''9z)2 end
UKOFT6| +8^5C,V for result in talkData.content:gmatch("(@.-)>") do
Q:pzL
"bT table.insert(acts, result)
M5F(<,n; end
)
:^ '/e local sendData = {
Ny.*G@& UserID = talkData.npcID,
@W#fui<<}Y index = talkData.index,
EN
O? ; --Act = "@blbumj",
B~WK)UR --commonInput = jsonData.commonInput,
wKGogf[(% --inputID= jsonData.inputID,
WN$R[N }
{s,^b|I2#U return acts, kv, sendData
(1rJFl! end
TNJ<!6 A*a7\id!y --按索引号点击按
F OeVRq:# function API_ClickLinkByIndex(index)
]GQv4-y acts, kv, sendData = API_GetAllLink()
:4%<Rp sendData["Act"] = acts[index + 2]
VccM=w%* local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
OI*ZVD)J NPCProxy:ExecuteWithJsonData(sendData)
H_Iim[v# end
5dqQws-,?1 7Pwg+
| --按索购买引号点击按
V@$GC$; function API_ClickBuyLinkByIndex(index)
d3Y(SPO acts, kv, sendData = API_GetAllLink()
h4tC. i~k sendData["Act"] = acts[index]
w2 /* `YO local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
RzpC1nd NPCProxy:ExecuteWithJsonData(sendData)
sfyBw end
pF|8OB% >_-!zjO8u --按名称点击按
|3S'8OeCI function API_ClickLinkByName(linkName)
IhUW=1&J acts, kv, sendData = API_GetAllLink()
Cy<T Vk8 sendData["Act"] = kv[linkName]
%)8d{1at local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
`'kc|!%MUq NPCProxy:ExecuteWithJsonData(sendData)
G4O,^ v;Q end
`'*F1F r@olC7& --出售物品
T~s&)wD function API_Sell(npcName,itemsName)
}i
D$4\ L local npcId=API_GetNpcIdByName(npcName)
^eT@!N local bagData=ssr.getBagData()
o>0O@NE for k,v in pairs(bagData) do
yQ8M >H#J if string.find(itemsName,v.Name) then
/X@7ju; --if #v["Values"]<2 then
VPWxHVf local Name = v.Name
f( ]R/'o local MakeIndex = v.MakeIndex
]}p2Tp;1 local networkCtl = global.networkCtl
,wEM
Jh networkCtl:SendMsg(global.MsgType.MSG_CS_NPC_STORE_SELL_ITEM, npcId, MakeIndex , 0, 0, Name , string.len(Name) )
ZyHIMo| --end
$[j-C9W end
y*}AX%8`e~ end
]vRVo6@ k end
+d@v
AxP --全部卖
mr@_%U function API_SellAll(npcName)
ftO+.-sm< local npcId=API_GetNpcIdByName(npcName)
hN& yc local bagData=ssr.getBagData()
-Uzc"Lx B for k,v in pairs(bagData) do
6
M*b 6 --if #v["Values"]<2 then
r4 9UJE local Name = v.Name
'uPxEu4 >4 local MakeIndex = v.MakeIndex
Rl y jOf{0 local networkCtl = global.networkCtl
hK:#+hg, networkCtl:SendMsg(global.MsgType.MSG_CS_NPC_STORE_SELL_ITEM, npcId, MakeIndex , 0, 0, Name , string.len(Name) )
]#vWKNv:; --end
ooomi"u end
A(q
~{ end
=*{K@p_ N
=x]AC, 8rGl& --NPC购买
{`+bW"9
function API_Buy(npcName,itemName,count)
;>inT7?3| --进入子菜单
\k|_&hG local sendData =
yQ<6p3 {
-zPm{a UserID = API_GetNpcIdByName(npcName),
C]yvK} Name = itemName,
n
"XdHW0 }
]&&I|K_ SendTableToServer(1015, sendData)
?nB helW^ local function ToBuy()
lO551Y^ local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
UVc>i9,0 local list = NPCProxy.facade.view.mediatorMap.NPCStoreMediator._layer.itemList
sXSj OUI for i=1,count do
NnJ>0|74g if i>#list then
JCM)N8~i break
WA<H end
U#8\#jo sendData.MakeIndex= list[#list-i].MakeIndex
1f+*Tmc5]Q SendTableToServer(1014, sendData)
3js)niT9u end
uOyLC<I/ API_CloseNpcTalk()
%T3j8fC{s end
)3k)2X F local scheduleID = ssr.PerformWithDelayGlobal(ToBuy, 1)
/Lq;w'|I end
Sja
"(sJ ;[?J5X, TjKzBAX function 打开子项(item)
F;cI0kP=> local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
w~bG<kxP if item.SubMenu == 1 then
&z ./4X NPCProxy:RequestNpcStoreItemList(item)
O4lxeiRgC end
{KW&wsI end
R g%R/p)C ~Y1"k]J function 子项购买(count)
V->.|[J local list = NPCProxy.facade.view.mediatorMap.NPCStoreMediator._layer.itemList
zb@L)% for i = 1, count do
|M[v493\ if i > #list then break end
sqm%iyC=q NPCProxy:RequestNpcStoreBuy(list
) A>qd2 end RA*_&Ll&!C end M\:"~XW ]+}:VaeA --登录角色 I'KR'1z 9 h-z%C6 function API_LoginRole(index) #gxRTx local LoginProxy = global.Facade:retrieveProxy(global.ProxyTable.Login) )v*v
LoginProxy:SetSelectedRoleByIndex(index) ;yRwoTc)Y LoginProxy:RequestEnterGame() ~J8cS global.Facade:sendNotification(global.NoticeTable.Audio_Stop_BGM) $=\oJ-(!@S end W)6U6 ;y:#S^|?-z --登录 <ol$-1l#9 function API_Login(name, password) H=JP3ID>{ local AuthProxy = global.Facade:retrieveProxy(global.ProxyTable.AuthProxy) ^U0apI local data = {}
C! aX45eg data.type = 1 T+&x{+gZ data.username = name Jm{As*W> data.password = password R
*JOiVAC AuthProxy:RequestLogin(data) RM?_15m end OhA^UP01- p[ks} mca@ --开门 tEi@p;Z> function API_EnterRoom(x, y) 8.Pcr<