游戏地址
8DS5< www.fgcq996.com p_40V%y^ 那年传奇百区1.76 A_q3p\b _]r)6RT 找到 lua_State 然后调用下面的函数就能实现功能
%"KWjwp 一个跑单狗注意qq1946913194
Bzy=@]` 游戏账号密码。fanren9527 qq2293307009 HG3>RcB
bQN4ozSi 搞完演示完,删除好友跑单 f+*2K^B 'm!11Phe --自动寻路Ex
R?9Plzt5 function API_AutoMoveEx(mapX, mapY)
2|NyAt
Pb5 ssr.AutoMoveBegin(mapX, mapY, ssr.GetCurMapData().mapID)
?L#SnnE local inputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
1yRd10 local pathPoints = inputProxy:GetPathFindPoints()
W4rw ;(\ if pathPoints == nil then
9B
;Sk]y return 0
Jp*AIj end
sK9h=J;F/ return #pathPoints
JK8@J9(# end
(PrPH/$ $Q$d\Yvi --自动寻路
V_d%g<n4 function API_AutoMove(mapX, mapY)
fm:{&( ssr.AutoMoveBegin(mapX, mapY, ssr.GetCurMapData().mapID)
fUWm7>6VA> local inputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
0?L$)T-B local pathPoints = inputProxy:GetPathFindPoints()
Y)5uK:)^ if pathPoints == nil then
qF6%XKbh= return 0
xo 'w+Av end
{)[g return #pathPoints
!zJ67-G end
.-26 N6S v*]Xur6e} --停止寻路
Joo)GIB function API_AutoMoveEnd()
A`/7>'k/q[ global.Facade:sendNotification(global.NoticeTable.AutoMoveEnd)
5sCky)N end
"u]Fl+c r~Ubgd ]U --自动打怪
z4fK{S function API_AutoFight(isAFK)
Z!i'Tbfn if isAFK then
WI4_4 if not IsAFKState() then
|Gs-9+'y global.networkCtl:SendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 1)
Pk]9.e1_ global.Facade:sendNotification(global.NoticeTable.AFKBegin)
I
lL end
lRK?%~ else
Z6AU%3] if IsAFKState() then
COL8YY global.networkCtl:SendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 2)
&+{xR79+& global.Facade:sendNotification(global.NoticeTable.AFKEnd)
n2hsG.4 end
S_ -mmzC( end
]{U*+K%,J end
l45F*v]^
E|uXi)!.x function IsAFKState()
b2f2WY |z> local AutoProxy = global.Facade:retrieveProxy(global.ProxyTable.Auto)
d@4=
XSj return AutoProxy:IsAFKState()
KIY_EE$? end
4_:e+ ql 1'pQ, --打开自动穿戴
z}N^`_ * function API_AutoDress()
&J@ZF<Ib --不抢别人归属
ZU@jtqq global.MMO.SETTING_IDX_NO_ATTACK_HAVE_BELONG =1
&ziB#(&:H global.MMO.SETTING_IDX_AUTO_PUT_IN_EQUIP = 1
knZd}?I* local ServerOptionsProxy = global.Facade:retrieveProxy(global.ProxyTable.ServerOptionsProxy)
<4HuV.K ServerOptionsProxy._data["autoDress"] = 1
3:Egqw global.ConstantConfig.autousetimes = 0
61wG: end
9U1!"/F so&3A&4cL --强制打开自动挂机拾取
!3M!p& function API_AutoPick()
^a 5~FI: local ItemConfigProxy = global.Facade:retrieveProxy(global.ProxyTable.ItemConfigProxy)
jtpN o~O local config = ItemConfigProxy.config
\mit&EUh} for k, v in pairs(config) do
rtOW-cz --local res = string.gsub(v.pickset, "0", "1")
C4TD@ v.pickset = v.pickset .. 1
5P2FNUKL end
Ip\g^ia end
|-Klh !m5\w> --获取人物坐标
Cu<ojN- $ function API_GetMapXY()
c+XR return ssr.GetMainPlayerMapPos()
3lgyX/?o end
vjWgR9 4/{ g8@HAV^H --获取人物状态
(X'K)*G# function API_GetAction()
}33Au-%* local player = global.gamePlayerController:GetMainPlayer()
;.m[&h 0 local list = global.playerManager.mPlayersInCurrViewField
cJ{
P,K return player:GetAction()
-;.fU44O[# end
dM.Ow!j }slEkpk?] --设置宠物状态
>'g60 R[ function API_PetSleep(isSleep)
Z{)|w= local SummonsProxy = global.Facade:retrieveProxy(global.ProxyTable.SummonsProxy)
#!j&L6 if not SummonsProxy:IsAlived() then
1fp&
"K:yR return false
b|'LtL$Y end
jXva?_ if isSleep then
zMg^2{0L
SummonsProxy:RequestModeChange(2)
OU=IV;V{ else
\aRB SummonsProxy:RequestModeChange(4)
[o6<aE- end
IN*Z__l8j` end
Y{{,62D iU|C<A%Hh --获取人物数据
Ek\Zi#f< function API_GetGamePlayer()
-0){C|,6 local player = global.gamePlayerController:GetMainPlayer()
u-cC}DP local list = global.playerManager.mPlayersInCurrViewField
dQo$^? local person = {}
ht!:e>z&4 person["等级"] = player:GetLevel()
!}m8]& person["职业"] = player:GetJobID()
fP*C*4#X person["名字"] = player:GetName()
cl8Mv person["金币"] = ssr.GetMoneyCountById(1)
w8zQDPVB% person["元宝"] = ssr.GetMoneyCountById(2)
qo![#s person["绑金"] = ssr.GetMoneyCountById(3)
Fd0FG A&L return person
IiU|@f~k end
Qd=/e pkm nW[aPQ[R function API_GetGamePlayerLevel()
Pl
,M>IQ local player = global.gamePlayerController:GetMainPlayer()
v3]M;
Y\ return player:GetLevel()
du TSU9 end
wQ95
tN y!Eh /KD --获取周围怪物
R|yTUGY function API_GetMonster()
I*t}gvUt9 local list = global.monsterManager.mMonstersInCurrViewField
A#\X-8/ local actors = {}
sbb{VV`I for k, v in pairs(list) do
FpYoCyD} local actor = {}
v8=MO:>{R actor["mID"] = v:GetID()
Cu5
- w actor["mName"] = v:GetName()
EH%j$=@X actor["mRace"] = v:GetRace()
KJ
|1zCM actor["mType"] = v:GetType()
R'_[RHFC actor["mSubType"] = v:GetSubType()
<CdO& xUY actor["mX"] = v:GetMapX()
z}|'&O*.F actor["mY"] = v:GetMapY()
}:Akpm actor["mAction"] = v:GetAction()
hTqJDP"&F actor["mTypeIndex"] = v:GetTypeIndex()
+%^xz
1m actor["mAnimationID"] = v:GetAnimationID()
svII =JB actor["mLv"] = (v.GetLevel and { v:GetLevel() } or { 0 })[1]
[:
Y^0[2 actor["mSex"] = (v.GetSexID and { v:GetSexID() } or { 0 })[1]
ijT^gsLL actor["mJobID"] = (v.GetJobID and { v:GetJobID() } or { 0 })[1]
IEj`:]d actor["mHP"] = (v.GetHP and { v:GetHP() } or { 0 })[1]
8A=(,)`}9 actor["mHPMax"] = (v.GetMaxHP and { v:GetMaxHP() } or { 0 })[1]
gNBI?xs`p actor["mMP"] = (v.GetMP and { v:GetMP() } or { 0 })[1]
r4'Pf|`u actor["mMPMax"] = (v.GetMaxMP and { v:GetMaxMP() } or { 0 })[1]
IrK )N actor["mOwnerID"] = (v.GetOwnerID and { v:GetOwnerID() } or { "" })[1]
S|i
//I%_ actor["mOwnerName"] = (v.GetOwnerName and { v:GetOwnerName() } or { "" })[1]
0_)\ e actor["mGuildName"] = (v.mGuildName and { v.mGuildName } or { "" })[1]
w-m2N-"=' actor["mColor"] = "0xFFFFFF"
B.b)YE ' if v:GetType() == global.MMO.ACTOR_PLAYER then
$NSYQF%aO local batch_label = global.MMO.HUD_TYPE_BATCH_LABEL
ZH*?~ # local label_name = global.MMO.HUD_LABEL_NAME
uDUSR+E> local hudName = global.HUDManager:GetHUD(v:GetID(), batch_label, label_name)
@B <_h+ if hudName then
[ ff.R actor["mColor"] = GetColorHexFromRBG(hudName:getColor())
A
#{*A end
o!N@W end
pgarGaeq table.insert(actors, actor);
v\Gu end
vOU-bF%u
ekXHfA!i% return actors
l K%Hb= end
"5FeP; ~M=`f{-$K --遍历周围玩家
l,3tU|V function API_GetPlayer()
2I5@zm
ea local list = global.playerManager.mPlayersInCurrViewField
MDZb|1.AT local actors = {}
-8:@xG2 for k, v in pairs(list) do
0
$r{h}[^c local actor = {}
5VS<I\o} actor["mID"] = v:GetID()
U bXz`i actor["mName"] = v:GetName()
f&J*(F*u actor["mRace"] = v:GetRace()
Nsy.!,!c actor["mType"] = v:GetType()
6I<`N actor["mSubType"] = v:GetSubType()
^ +G> N actor["mX"] = v:GetMapX()
xae7#d0 actor["mY"] = v:GetMapY()
o@-cT`HP actor["mAction"] = v:GetAction()
#k6T_ki actor["mTypeIndex"] = v:GetTypeIndex()
`,z{7 0 actor["mAnimationID"] = v:GetAnimationID()
w;O '6" actor["mLv"] = (v.GetLevel and { v:GetLevel() } or { 0 })[1]
B:SRHd{*Wu actor["mSex"] = (v.GetSexID and { v:GetSexID() } or { 0 })[1]
USY^
[@o[f actor["mJobID"] = (v.GetJobID and { v:GetJobID() } or { 0 })[1]
`3Y+:!q actor["mHP"] = (v.GetHP and { v:GetHP() } or { 0 })[1]
N_U
D7P1 actor["mHPMax"] = (v.GetMaxHP and { v:GetMaxHP() } or { 0 })[1]
Ex{]<6UAu actor["mMP"] = (v.GetMP and { v:GetMP() } or { 0 })[1]
+xa2e?A%L actor["mMPMax"] = (v.GetMaxMP and { v:GetMaxMP() } or { 0 })[1]
v}U;@3W8U actor["mOwnerID"] = (v.GetOwnerID and { v:GetOwnerID() } or { "" })[1]
]](hwj actor["mOwnerName"] = (v.GetOwnerName and { v:GetOwnerName() } or { "" })[1]
od>.5{o actor["mGuildName"] = (v.mGuildName and { v.mGuildName } or { "" })[1]
_{8boDX# actor["mColor"] = "0xFFFFFF"
.T2I]d if v:GetType() == global.MMO.ACTOR_PLAYER then
{WChD&v local batch_label = global.MMO.HUD_TYPE_BATCH_LABEL
lwlR"Z local label_name = global.MMO.HUD_LABEL_NAME
qIl@,8T local hudName = global.HUDManager:GetHUD(v:GetID(), batch_label, label_name)
!`o=2b=N if hudName then
n%}0hVu actor["mColor"] = GetColorHexFromRBG(hudName:getColor())
g|Cnj end
e~1??k.;= end
}OZfsYPz}T table.insert(actors, actor);
#N:o)I end
G4~J+5m k return actors
>2r/d end
W0Vjs|/ idQr^{ --遍历周围玩家EX
+=QboU
N function API_GetPlayerExe()
yWy9IWI[" local s1 = API_GetPlayer()
f
sMF46 local result = ""
;3
_'{ for k, v in pairs(s1) do
!!AutkEg> local s2 = string.format(
uu:BN0 "mID=%s,mName=%s,mRace=%s,Dura=%s,mType=%s,mSubType=%s,mX=%s,mY=%s,mAction=%s,mTypeIndex=%s,mAnimationID=%s,"
fQ@["b , v["mID"]
8w4.|h5FP , v["mName"]
xo}hu%XL , v["mRace"]
@r<w|x} , v["Dura"]
H'0S;A+Y6 , v["mType"]
d*(1t\ , v["mSubType"]
O-RiDYej , v["mX"]
lEJTd3dMi , v["mY"]
xK f+.6 wz , v["mAction"]
;C3]( , v["mTypeIndex"]
zcc]5> , v["mAnimationID"])
qohUxtnTK> local s3 = ""
&F)lvtt| 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"
L=>N#QR7 , v["mLv"]
:v+39 , v["mJobID"]
zB4gnVhus| , v["mHP"]
W/+0gh7`,( , v["mHPMax"]
#gP\q?5Ov , v["mMP"]
y_w4ei , v["mMPMax"]
'k hJZ: , v["mOwnerID"]
1
OX(eXF> , v["mOwnerName"]
A-kI_&g\Og , v["mGuildName"]
y~
w$>7U. , v["mColor"])
I#0$5a},u^ result = result .. s2 .. s3 .. "\r\n"
JyV"jL
end
>:.Bn 8- return result
`R\0g\ end
eG<32$I F C"dQ --遍历周围指定NPC
Y0DBkg function API_GetNpcIdByName(npcName)
DY%E&Vd:h local npcVec = global.npcManager:FindNpcInCurrViewField()
'<O&
: local npc = {}
Q[ IaA" for k, v in pairs(npcVec) do
4GJsVA (d| local npcs = {}
N?aU<-Tn npc[v["mID"]] = v["mName"]
q~lmOT~E end
9ItsK for key, value in pairs(npc) do
)%0#XC^/X5 local sPos, ePos = string.find(value, npcName)
{Q0"uE)-. if sPos then
JA&w"2X*E return key
AO/R2a(: end
$8b/"Qm end
qzXch["So return nil
Gg/K end
$?7}4u, u(P
D+Gz --NPC名称打开NPC
$WDa}~j~^ function API_NpcTalk(npcName)
XWk^$ " local npcid = API_GetNpcIdByName(npcName)
@f5X
AK? local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
oY &r76 NPCProxy:RequestTalk(npcid)
Wn|w~{d{ end
jl@xcs]# D(y=0), --NPCID打开NPC
tH$Z_(5
function API_NpcTalkEx(npcid)
9G&l{7 = local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
h_J'dJS NPCProxy:RequestTalk(npcid)
,+f'%)s_x end
ibh!8" [ E[
,Ur`>: function API_GetNpcTalkData()
t6j|q nfw local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
mwBOhEefNJ local talkData = NPCProxy:GetCurrentNPCTalkData()
M!,WU[mP return talkData
\'shnzs end
#P1k5!u 8[eH8m#~$ function API_GetAllLink()
P66>w})@ local talkData = API_GetNpcTalkData()
B?k75G dx|j,1e local acts = {}
{'
JoVJKv local kv = {}
d+l@hgz~ }I!D65-#' for line in talkData.content:gmatch("(text=.->)") do
Q\}5q3 if string.find(line, "@") then
b}Jcj local key = line:match("text=(.-)|")
l%U{Unwu ~R3@GaL1 local value = line:match("(@.-)>")
YOqBIbp~&) kv[key] = value
rZ<@MV|d end
lbM
b end
">|fB&~A tONxV` for result in talkData.content:gmatch("(@.-)>") do
-(dc1?COi table.insert(acts, result)
[W`
_` end
8|gwH2st~ local sendData = {
-(P"+g3T UserID = talkData.npcID,
P)4SrqW_ index = talkData.index,
>%t"VpvR --Act = "@blbumj",
\G2& --commonInput = jsonData.commonInput,
)jvYJ9s --inputID= jsonData.inputID,
PXWBc\ }
\7jK6;R< return acts, kv, sendData
)D Y?Y-n end
%kUIIHV} //xxSk --按索引号点击按
E`$d!7O function API_ClickLinkByIndex(index)
RCKb5p9 acts, kv, sendData = API_GetAllLink()
TX$j-TM' sendData["Act"] = acts[index + 2]
@#;2P'KL local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
BTqY_9 NPCProxy:ExecuteWithJsonData(sendData)
40+~;20 end
yi
PMJ rF'q\tJDz --按索购买引号点击按
S U04q+ function API_ClickBuyLinkByIndex(index)
!gu#
#MrJ9 acts, kv, sendData = API_GetAllLink()
Pi`}-GUe, sendData["Act"] = acts[index]
}}@xx& local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
i.Yz)Bw NPCProxy:ExecuteWithJsonData(sendData)
+TL5yuA end
R!5j1hMN` M"W-|t)~ --按名称点击按
a%cCR=s= function API_ClickLinkByName(linkName)
JHBX'1GQa acts, kv, sendData = API_GetAllLink()
mGb,oj7l sendData["Act"] = kv[linkName]
g,*L P local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
KFx4"f% NPCProxy:ExecuteWithJsonData(sendData)
G[GSt`LVS` end
"6o}g. qf#Ou --出售物品
/3{jeU.k function API_Sell(npcName,itemsName)
r Z%l?( local npcId=API_GetNpcIdByName(npcName)
1$H*E
~ local bagData=ssr.getBagData()
rZEL7{ for k,v in pairs(bagData) do
qXcHf6 if string.find(itemsName,v.Name) then
X|++K;rtfE --if #v["Values"]<2 then
{FNmYneh?6 local Name = v.Name
0e-M 24,C local MakeIndex = v.MakeIndex
'GcN9D local networkCtl = global.networkCtl
8Th{(J_ networkCtl:SendMsg(global.MsgType.MSG_CS_NPC_STORE_SELL_ITEM, npcId, MakeIndex , 0, 0, Name , string.len(Name) )
5o- WA1 --end
`saDeur#X end
>|IUjv2L end
0ZcvpR?G end
R<}UT --全部卖
{B+|",O5) function API_SellAll(npcName)
2[zFKK local npcId=API_GetNpcIdByName(npcName)
=wEU+R_#o local bagData=ssr.getBagData()
KPTp91 for k,v in pairs(bagData) do
p,0J $L --if #v["Values"]<2 then
\iVb;7r)9: local Name = v.Name
xA/Ein0 local MakeIndex = v.MakeIndex
AUBZ7*VO local networkCtl = global.networkCtl
N;gI %6 networkCtl:SendMsg(global.MsgType.MSG_CS_NPC_STORE_SELL_ITEM, npcId, MakeIndex , 0, 0, Name , string.len(Name) )
d.>Zn?u4L --end
G*` Y~SJp end
-y]e`\+[ end
f-$%Ck$%, eb10=Lmj kzozjh%`9h --NPC购买
iW
oe function API_Buy(npcName,itemName,count)
O(pa;&" --进入子菜单
!
X5n'1& local sendData =
hUR>NUK@8 {
_!_%Afz UserID = API_GetNpcIdByName(npcName),
*7cc4 wGQ Name = itemName,
l<X8Ooan#{ }
4TX~]tEyky SendTableToServer(1015, sendData)
"0Ca;hSLM2 local function ToBuy()
?9W2wqN>o local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
L{&5Ets local list = NPCProxy.facade.view.mediatorMap.NPCStoreMediator._layer.itemList
O7,)#{ for i=1,count do
B bP&-c if i>#list then
pQ2'0u5w5 break
nz+k , end
U}hQVpP# sendData.MakeIndex= list[#list-i].MakeIndex
*
{TB<^ * SendTableToServer(1014, sendData)
-aSj- end
n06T6oc API_CloseNpcTalk()
}*Z *wC end
df9jT?l local scheduleID = ssr.PerformWithDelayGlobal(ToBuy, 1)
K%i9S;~
end
:$qa a\_?zi]s&, -0P(lkylf function 打开子项(item)
zw,( kv local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
KcPI,.4{ if item.SubMenu == 1 then
:9?y-X NPCProxy:RequestNpcStoreItemList(item)
5|:t
$ end
}:SWgPfc end
`!- w^
~c i?^lEqy[ function 子项购买(count)
V
d`}F0WD local list = NPCProxy.facade.view.mediatorMap.NPCStoreMediator._layer.itemList
K-X@3&X} for i = 1, count do
Ah#bj8} if i > #list then break end
#" &<^
NPCProxy:RequestNpcStoreBuy(list
) %0
&c0vT end KdN+$fe*g end MVDEVq0
LeEv'] --登录角色 7^bde<0 a I^Z0[P+ function API_LoginRole(index) mssCnr;
local LoginProxy = global.Facade:retrieveProxy(global.ProxyTable.Login) 4C]>{osv LoginProxy:SetSelectedRoleByIndex(index) jq_E{Dq1 LoginProxy:RequestEnterGame() crvq]J5 global.Facade:sendNotification(global.NoticeTable.Audio_Stop_BGM) "1I\~]] end lD+f{GR &GKtD) --登录 tMbracm function API_Login(name, password) /
U@T#S local AuthProxy = global.Facade:retrieveProxy(global.ProxyTable.AuthProxy) yUY* l@v] local data = {} qL;u59 data.type = 1 S:F8`Gh data.username = name vXI2u;=y data.password = password 'cgB$:T}., AuthProxy:RequestLogin(data) T#OrsJdu end 4s_|6{ANS QtSJ9;eP --开门 glL.CkJ function API_EnterRoom(x, y) 3OZu v};k local qq = ssr.GetCurMapData() Z4VNm1qs global.networkCtl:SendMsg(global.MsgType.MSG_CS_OPEN_DOOR_REQUEST, 0, x, y) <&