游戏地址
bp?TO]LH www.fgcq996.com 5QXU"kWH 那年传奇百区1.76 zb[kRo&a0W g%]<sR
l:- 找到 lua_State 然后调用下面的函数就能实现功能
PCgr`($U 一个跑单狗注意qq1946913194
]Z\ W%'q+ 游戏账号密码。fanren9527 qq2293307009 _nzq(m1@
,MJddbcg 搞完演示完,删除好友跑单 _(gkYJ+MK OOIp)=4 --自动寻路Ex
c8 function API_AutoMoveEx(mapX, mapY)
&@|? % ssr.AutoMoveBegin(mapX, mapY, ssr.GetCurMapData().mapID)
.j,xh )v" local inputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
$1d{R;b[ local pathPoints = inputProxy:GetPathFindPoints()
O\o@] if pathPoints == nil then
x4g6Qze return 0
yyu -y0_ end
iKu3'jZ/O return #pathPoints
cy
mC?8< end
hTZ6@i/pS =bJ$>Djp --自动寻路
@,Dnl v|? function API_AutoMove(mapX, mapY)
Z|UVH ssr.AutoMoveBegin(mapX, mapY, ssr.GetCurMapData().mapID)
>m%TUQ#% local inputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
3;}YW^oXq local pathPoints = inputProxy:GetPathFindPoints()
q3/4l%"X if pathPoints == nil then
^fd*KM return 0
u&o4?]6 end
.i_ gE5 return #pathPoints
`g(#~0R end
;}S_ PnwC@ 4mp)v*z --停止寻路
+RpCh!KP function API_AutoMoveEnd()
#WG;p(?: global.Facade:sendNotification(global.NoticeTable.AutoMoveEnd)
-b+)Dp~$p end
<=%[.. (S |p+FIr+ --自动打怪
rttKj{7E function API_AutoFight(isAFK)
>a2[P" if isAFK then
.^F&6'h1H if not IsAFKState() then
e'G3\h}# global.networkCtl:SendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 1)
5lzbg global.Facade:sendNotification(global.NoticeTable.AFKBegin)
b9i_\ end
jM6$R1HX else
]
X]!xvN@ if IsAFKState() then
pcscNUp global.networkCtl:SendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 2)
hB\BFVUSn/ global.Facade:sendNotification(global.NoticeTable.AFKEnd)
j+AZ!$E end
k)F!gV# end
<
T.R%Jys end
Dn#5H{D-d ^hEN function IsAFKState()
m^ar:mK
@ local AutoProxy = global.Facade:retrieveProxy(global.ProxyTable.Auto)
q2*)e/}H return AutoProxy:IsAFKState()
JF}i=} end
KdHkX+-R Bw`? zd\* --打开自动穿戴
^_G#JJ\@$ function API_AutoDress()
UBQtD|m\ --不抢别人归属
suhnA(T{ global.MMO.SETTING_IDX_NO_ATTACK_HAVE_BELONG =1
U$a)lcJd global.MMO.SETTING_IDX_AUTO_PUT_IN_EQUIP = 1
';v2ld 9 local ServerOptionsProxy = global.Facade:retrieveProxy(global.ProxyTable.ServerOptionsProxy)
d@JavcR ServerOptionsProxy._data["autoDress"] = 1
j;j~R3B global.ConstantConfig.autousetimes = 0
oliVaavj end
d^IX(y*$ G&wYV[Ln --强制打开自动挂机拾取
x?0(K=h, function API_AutoPick()
xk8
NX-: local ItemConfigProxy = global.Facade:retrieveProxy(global.ProxyTable.ItemConfigProxy)
e>!]_B1ad local config = ItemConfigProxy.config
t*BCpC} for k, v in pairs(config) do
:|I"Em3R --local res = string.gsub(v.pickset, "0", "1")
h;}
fdk v.pickset = v.pickset .. 1
$E:z*~? end
loq2+( end
at*DYZBjDB v/]xdP^Z --获取人物坐标
#|:q"l9 function API_GetMapXY()
yl' IL#n]r return ssr.GetMainPlayerMapPos()
066\zAPdH end
!.@:t`w ,e`n2)
--获取人物状态
!VG
]~lc function API_GetAction()
"Gqas bX local player = global.gamePlayerController:GetMainPlayer()
#z_.!E local list = global.playerManager.mPlayersInCurrViewField
7X$pgNRx/a return player:GetAction()
ZS_
z end
(]fbCH: 98zJ?NaD& --设置宠物状态
LG(" <CU function API_PetSleep(isSleep)
@frV:% local SummonsProxy = global.Facade:retrieveProxy(global.ProxyTable.SummonsProxy)
4uE/!dT if not SummonsProxy:IsAlived() then
>K%+h)%kI return false
%_5?/H@%3z end
y?}<SnjP: if isSleep then
DYZk1 SummonsProxy:RequestModeChange(2)
7Fa1utVI else
-=1>t3~\ SummonsProxy:RequestModeChange(4)
Jl6biJx end
r:U<cLT[9 end
l0',B*og m5?t<H~ --获取人物数据
1Sns$t%b function API_GetGamePlayer()
3ox|Mz<aZX local player = global.gamePlayerController:GetMainPlayer()
pnv)D}
" local list = global.playerManager.mPlayersInCurrViewField
sFgsEKs local person = {}
-"Nvu person["等级"] = player:GetLevel()
{t'SA]|g person["职业"] = player:GetJobID()
=
t}m person["名字"] = player:GetName()
9I1`* 0A person["金币"] = ssr.GetMoneyCountById(1)
{ueDwnZ person["元宝"] = ssr.GetMoneyCountById(2)
rXGaav9 person["绑金"] = ssr.GetMoneyCountById(3)
2'ws@U}lR return person
YZ->ep} end
vBY?3p,
0p gd]k3XN$f function API_GetGamePlayerLevel()
<\
".6=E#W local player = global.gamePlayerController:GetMainPlayer()
d.U"lP/)D return player:GetLevel()
iNL>TVUM end
9I1i(0q ;Q5o38( --获取周围怪物
UD2l!)rW function API_GetMonster()
_*t75e$- local list = global.monsterManager.mMonstersInCurrViewField
Fl==k local actors = {}
>dDcm for k, v in pairs(list) do
mLHl]xs4 local actor = {}
Ci3
b(KR actor["mID"] = v:GetID()
!i{5m
c\ actor["mName"] = v:GetName()
[RDY(}P% actor["mRace"] = v:GetRace()
PP6gU=9[) actor["mType"] = v:GetType()
sa"!ckh actor["mSubType"] = v:GetSubType()
cS#| _ actor["mX"] = v:GetMapX()
VW] ,R1q actor["mY"] = v:GetMapY()
7<5=fYbr actor["mAction"] = v:GetAction()
B|AIl+y actor["mTypeIndex"] = v:GetTypeIndex()
-BrJ5]T>* actor["mAnimationID"] = v:GetAnimationID()
N;cSR\Ng actor["mLv"] = (v.GetLevel and { v:GetLevel() } or { 0 })[1]
A;;OGJ,!\ actor["mSex"] = (v.GetSexID and { v:GetSexID() } or { 0 })[1]
CT=5V@_u\ actor["mJobID"] = (v.GetJobID and { v:GetJobID() } or { 0 })[1]
2.a{,d actor["mHP"] = (v.GetHP and { v:GetHP() } or { 0 })[1]
/EZ - actor["mHPMax"] = (v.GetMaxHP and { v:GetMaxHP() } or { 0 })[1]
a{}8030S actor["mMP"] = (v.GetMP and { v:GetMP() } or { 0 })[1]
91FVe actor["mMPMax"] = (v.GetMaxMP and { v:GetMaxMP() } or { 0 })[1]
Nqj5, 9
*c actor["mOwnerID"] = (v.GetOwnerID and { v:GetOwnerID() } or { "" })[1]
JWxSN9.X actor["mOwnerName"] = (v.GetOwnerName and { v:GetOwnerName() } or { "" })[1]
jyRz53 actor["mGuildName"] = (v.mGuildName and { v.mGuildName } or { "" })[1]
'z};tIOKJk actor["mColor"] = "0xFFFFFF"
O3p<7`K<4 if v:GetType() == global.MMO.ACTOR_PLAYER then
c#fSt}J>C local batch_label = global.MMO.HUD_TYPE_BATCH_LABEL
Ee$F]NA local label_name = global.MMO.HUD_LABEL_NAME
<Um 5w1 local hudName = global.HUDManager:GetHUD(v:GetID(), batch_label, label_name)
wr6(C: if hudName then
#<w2xR]: actor["mColor"] = GetColorHexFromRBG(hudName:getColor())
8/|1FI end
R8j\CiV17 end
5lE9UoG[Q table.insert(actors, actor);
OK:YnSk " end
t1o_x}z4. ]rO/IuB return actors
'"V]>) end
o~'UWU'# xI5zP?
_v --遍历周围玩家
3pkx3tp{ function API_GetPlayer()
C^
~[b
o local list = global.playerManager.mPlayersInCurrViewField
n
1y*`5! local actors = {}
2cv=7!K4Uv for k, v in pairs(list) do
Q3LScpp local actor = {}
`S]DHxS actor["mID"] = v:GetID()
7I:<i$)V actor["mName"] = v:GetName()
","to actor["mRace"] = v:GetRace()
B}d)e_uLj actor["mType"] = v:GetType()
4+N9
Ylh actor["mSubType"] = v:GetSubType()
HwBJUr91] actor["mX"] = v:GetMapX()
[ldx_+xa:E actor["mY"] = v:GetMapY()
69``j{Z+ actor["mAction"] = v:GetAction()
JZ"XrS0? actor["mTypeIndex"] = v:GetTypeIndex()
4m_CPe actor["mAnimationID"] = v:GetAnimationID()
kE{-h'xADD actor["mLv"] = (v.GetLevel and { v:GetLevel() } or { 0 })[1]
) !l1 actor["mSex"] = (v.GetSexID and { v:GetSexID() } or { 0 })[1]
]~'pYOB actor["mJobID"] = (v.GetJobID and { v:GetJobID() } or { 0 })[1]
+tv"j;z actor["mHP"] = (v.GetHP and { v:GetHP() } or { 0 })[1]
J['?ud}@ actor["mHPMax"] = (v.GetMaxHP and { v:GetMaxHP() } or { 0 })[1]
].x`Fq3 actor["mMP"] = (v.GetMP and { v:GetMP() } or { 0 })[1]
8ao>]5Rs3 actor["mMPMax"] = (v.GetMaxMP and { v:GetMaxMP() } or { 0 })[1]
4~0@(3 actor["mOwnerID"] = (v.GetOwnerID and { v:GetOwnerID() } or { "" })[1]
r
4+%9) actor["mOwnerName"] = (v.GetOwnerName and { v:GetOwnerName() } or { "" })[1]
TmgSV#G actor["mGuildName"] = (v.mGuildName and { v.mGuildName } or { "" })[1]
EvDg{M} actor["mColor"] = "0xFFFFFF"
k=
.pcDX if v:GetType() == global.MMO.ACTOR_PLAYER then
D^H4]7wG@ local batch_label = global.MMO.HUD_TYPE_BATCH_LABEL
5S%#3YHY2 local label_name = global.MMO.HUD_LABEL_NAME
$"{I|UFC local hudName = global.HUDManager:GetHUD(v:GetID(), batch_label, label_name)
U 0dhr; l if hudName then
X}]g;|~SN actor["mColor"] = GetColorHexFromRBG(hudName:getColor())
k{+Gv}Y end
~" U^N:I" end
lT F#efcW table.insert(actors, actor);
' n "n; end
@?[}\9dW return actors
(!diPwcv end
,mD{4 >7 m)xz_Plc --遍历周围玩家EX
h_xzqElZu function API_GetPlayerExe()
zWq&HBs local s1 = API_GetPlayer()
ID$%
4jl local result = ""
\7tJ)[0aF for k, v in pairs(s1) do
Jgzg[6 local s2 = string.format(
GuRJ "mID=%s,mName=%s,mRace=%s,Dura=%s,mType=%s,mSubType=%s,mX=%s,mY=%s,mAction=%s,mTypeIndex=%s,mAnimationID=%s,"
A@
4Oq
, v["mID"]
x`zE#sD , v["mName"]
axiP~t2 , v["mRace"]
h8? E+0 , v["Dura"]
2~W8tv0^b2 , v["mType"]
SQI =D8 , v["mSubType"]
)E=~
_`XO , v["mX"]
#9@UzfZAwT , v["mY"]
wO*x0$ , v["mAction"]
[7=?I.\Cr7 , v["mTypeIndex"]
aumM\rY , v["mAnimationID"])
,V #r local s3 = ""
&v&e-|r8; 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"
P&9&/0r=_ , v["mLv"]
"5$2b>_UE , v["mJobID"]
6kHb*L Je , v["mHP"]
e4Jx%v?_P , v["mHPMax"]
G:!'hadw , v["mMP"]
|Ht~o(]&&/ , v["mMPMax"]
A&qZ:&(OM , v["mOwnerID"]
l=ZX9<3 , v["mOwnerName"]
,
Y cF~ , v["mGuildName"]
C_V5.6T! , v["mColor"])
PRyzUG& result = result .. s2 .. s3 .. "\r\n"
{{e+t8J?? end
\={A%pA;@{ return result
+>o}
R?xj end
tLe
"i> 2)+ddel<Z --遍历周围指定NPC
mu&%ph= function API_GetNpcIdByName(npcName)
[[vb w)u
local npcVec = global.npcManager:FindNpcInCurrViewField()
?wbf)fbq local npc = {}
D=!5l4 for k, v in pairs(npcVec) do
,~qjL|9 local npcs = {}
tJZ3P@ L npc[v["mID"]] = v["mName"]
_D~FwF&A end
>R2o7~ for key, value in pairs(npc) do
=F90SyzTy local sPos, ePos = string.find(value, npcName)
g,""j` if sPos then
f!+G1z}iA return key
Nd61ns(N end
5TVA1 end
Lsz)\yIPj return nil
s<fzk1LZ end
Tq!.M1{& qgZN&7Nn: --NPC名称打开NPC
P)&qy .+E0 function API_NpcTalk(npcName)
,L9ioYbp local npcid = API_GetNpcIdByName(npcName)
9|1J pb local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
w]Z:Y` NPCProxy:RequestTalk(npcid)
XXZ <r end
E3,Nc`'m9 Xmaj7*f>p --NPCID打开NPC
;\)N7SJ function API_NpcTalkEx(npcid)
!d3:`l< local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
eUm,=s NPCProxy:RequestTalk(npcid)
/&g~*AL end
137:T: _16IP function API_GetNpcTalkData()
"o>gX'm* local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
Y@R9+7! local talkData = NPCProxy:GetCurrentNPCTalkData()
CxJkT
2 return talkData
=/L
;}m)7 end
cuo'V*nWQ u(Y?2R function API_GetAllLink()
8+OcM
;0 local talkData = API_GetNpcTalkData()
c:sk1I,d~^ cr<ty"3\ local acts = {}
/;a b"b local kv = {}
AWn$od`#s
I\:(`)"r for line in talkData.content:gmatch("(text=.->)") do
L
Ke~ if string.find(line, "@") then
qB44;!( local key = line:match("text=(.-)|")
Z2hIoCT D0a3%LBS/2 local value = line:match("(@.-)>")
(b>B6W\& kv[key] = value
6F4OISy%3 end
VLs%;|`5D end
[nG@
3n 8S*W+l19f for result in talkData.content:gmatch("(@.-)>") do
R`!
'c(V table.insert(acts, result)
]J>{ZL end
KJ;NcUq local sendData = {
bO\E)%zp UserID = talkData.npcID,
mnS
F=l;; index = talkData.index,
:~{x'`czJ --Act = "@blbumj",
bf1EMai" --commonInput = jsonData.commonInput,
,CA3Q.y>| --inputID= jsonData.inputID,
UCF'%R }
Y; OqdO return acts, kv, sendData
~AbTbQ 3 end
O[/l';i |>L|7>J{<d --按索引号点击按
QvjOOc@k~n function API_ClickLinkByIndex(index)
E{B=%ZNnm acts, kv, sendData = API_GetAllLink()
F9 q9BH sendData["Act"] = acts[index + 2]
sJq^>"|J local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
U|}Bk/0. NPCProxy:ExecuteWithJsonData(sendData)
[
[;vZ end
!$5.\D Jt}0%C3d --按索购买引号点击按
&S|%>C{P.w function API_ClickBuyLinkByIndex(index)
XDcA&cM}p acts, kv, sendData = API_GetAllLink()
yCLDJ%8 sendData["Act"] = acts[index]
$MB/j6#j local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
?ta(`+" NPCProxy:ExecuteWithJsonData(sendData)
'2BE"e end
mhZ60 RW v<c@bDZ> --按名称点击按
22gk1'~dO function API_ClickLinkByName(linkName)
An0Zg'o!G acts, kv, sendData = API_GetAllLink()
OD\F*Ry~ sendData["Act"] = kv[linkName]
1hnw+T<<W local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
xU_Dg56z'& NPCProxy:ExecuteWithJsonData(sendData)
tV5Uz&:b end
{3{cU#\QA F1aI4H<(T --出售物品
sGdlS&08( function API_Sell(npcName,itemsName)
KaGG4?=V local npcId=API_GetNpcIdByName(npcName)
Zn]njf1x local bagData=ssr.getBagData()
^~Dmb2h for k,v in pairs(bagData) do
vsL)E:0 if string.find(itemsName,v.Name) then
:`w'}h7m --if #v["Values"]<2 then
mFdj+ &2\ local Name = v.Name
a= *qsgPGL local MakeIndex = v.MakeIndex
pk,]yi,ZF local networkCtl = global.networkCtl
Yf=Puy}q
networkCtl:SendMsg(global.MsgType.MSG_CS_NPC_STORE_SELL_ITEM, npcId, MakeIndex , 0, 0, Name , string.len(Name) )
X[Q:c4' --end
nNJMQb'K end
<>tQa5; end
NiCB.a end
drc]"6 k --全部卖
A:-r2;xB function API_SellAll(npcName)
Ug1n4X3FKn local npcId=API_GetNpcIdByName(npcName)
hwR_<'! local bagData=ssr.getBagData()
)lsR8Hi8 for k,v in pairs(bagData) do
:xz,PeXo7 --if #v["Values"]<2 then
JL1z8Nu local Name = v.Name
~p0M| local MakeIndex = v.MakeIndex
i^zncDMA local networkCtl = global.networkCtl
]&mN~$+C networkCtl:SendMsg(global.MsgType.MSG_CS_NPC_STORE_SELL_ITEM, npcId, MakeIndex , 0, 0, Name , string.len(Name) )
Fw!TTH6l0 --end
8vL2<VT; end
2y0J~P! I end
$x'p+&n\ +>uiI4g C%l+<wpXO --NPC购买
E0o?rgfdq function API_Buy(npcName,itemName,count)
1
!4-M$- --进入子菜单
Sb;=YW
1< local sendData =
8r46Wr7Q {
|)pRkn8x UserID = API_GetNpcIdByName(npcName),
zj9)vr`7 Name = itemName,
Xbp~cn }
X/l{E4Ex SendTableToServer(1015, sendData)
Bl"BmUn local function ToBuy()
tin5.N)"z local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
ra4$/@3n local list = NPCProxy.facade.view.mediatorMap.NPCStoreMediator._layer.itemList
2sryhS'(H for i=1,count do
~dFdO7 if i>#list then
9h$08l break
m\hzQ9 end
wG\ +C'&~ sendData.MakeIndex= list[#list-i].MakeIndex
Jiv%Opo/| SendTableToServer(1014, sendData)
#rkz:ir4 end
1'G&PX API_CloseNpcTalk()
X?8 EPCk end
w#!^wN local scheduleID = ssr.PerformWithDelayGlobal(ToBuy, 1)
D;bHX end
(v'#~ )R_` 5U
gxuuP4 UHh7x%$n function 打开子项(item)
c\\'x\J7 local NPCProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
sOY+X if item.SubMenu == 1 then
[$<\*d/ NPCProxy:RequestNpcStoreItemList(item)
hN3*]s;/6z end
6(5YvT end
N#Y|MfLc \=yWJ function 子项购买(count)
=5v=<, ] local list = NPCProxy.facade.view.mediatorMap.NPCStoreMediator._layer.itemList
t(RJc for i = 1, count do
Mt93YD-2+ if i > #list then break end
5@kNvi NPCProxy:RequestNpcStoreBuy(list
) ZVin+ z end +6$ |No end 'fGB#uBt 3i
I 4yg --登录角色 Q2L>P<87T %]m/fo4b function API_LoginRole(index) \pVmSac, local LoginProxy = global.Facade:retrieveProxy(global.ProxyTable.Login) ,3As
Ng LoginProxy:SetSelectedRoleByIndex(index) DN GXp5I LoginProxy:RequestEnterGame() +p
Y*BP+~i global.Facade:sendNotification(global.NoticeTable.Audio_Stop_BGM) +=:*[JEK,U end 'kC,pN{-> m'b9 f6 --登录 S1Nwm?z function API_Login(name, password) l
7XeZ} S local AuthProxy = global.Facade:retrieveProxy(global.ProxyTable.AuthProxy) $:i%\7= local data = {} !d)Vr5x data.type = 1 rEF0A&5 data.username = name Lxg,BZV data.password = password ]"2;x AuthProxy:RequestLogin(data) !pqfx93R* end s6k@W T?"^ a
At<36{? --开门 U_8 Z& function API_EnterRoom(x, y) ? +q(,P@* local qq = ssr.GetCurMapData() BIk0n;Kz<L global.networkCtl:SendMsg(global.MsgType.MSG_CS_OPEN_DOOR_REQUEST, 0, x, y) h|T_
k local function callback() +'ZJ] ssr.AutoMoveBegin(x, y, qq.mapID) djk?;^8 end =,])xzG% SL:ScheduleOnce(callback, 0.5) D["~G v end ye-EJDZN ?DwI
>< W --多开 p";5J+?( function API_PcOpen() S /kM# LuaBridgeCtl:Inst():CheckClientCount(2) sgGXj7 end Nf!g1D"U {PTB]D' --盒子显示 FoNkISzW
function API_hezi() <?&Y_ global.L_GameEnvManager._envData["isBoxLogin"] = 1 nhu;e}[> end +}.~" R_7[7/a --遍历背包物品 .S{FEV function API_GetCurBagData() l
10p'9n local s1 = ssr.getCurBagData() RnaxRnXVR local result = "" Tx19\\r for k, v in pairs(s1) do n?[JPG2X local s1 = string.format( 9Ev<t\B "OverLap=%s,DuraMax=%s,Where=%s,Dura=%s,Name=%s,Shape=%s,MakeIndex=%s,Weight=%s,StdMode=%s,Index=%s" _&wrA3@/L , v["OverLap"] 2d# 3LnO , v["DuraMax"] Q:5^K , v["Where"] c;13V(Djy , v["Dura"] /FthT , v["Name"] ){I0 , v["Shape"] 7'~Oai~r , v["MakeIndex"] W0 n?S
" , v["Weight"] T)Zef , v["StdMode"] Pss$[ % , v["Index"]) b4R;#rm local ss = "" 3 i;sB if #v["Values"] > 1 then .DX-biX, for x, y in pairs(v["Values"]) do `B A'a" $ if y["Value"] > 0 then F{*h~7D-| local Values = string.format("m_Value=%s,m_ValueID=%s" 'nMj<:0wlD , y["Value"] rsaN<6#_^Q , y["Id"]) F4*ssx ss = ss .. Values \}n\cUy- end h]>QGX[kC end CQANex4&\ end }mYxI^n result = result .. s1 .. "," .. ss .. "\r\n" 3T= ?!|e end #aua6V!" return result m}$7d5 end KL<,avC/ kdP*{ --获取背包是否满 D^Gs_z$[' function API_GetBagFull() l"rX'g? return ssr.IsBagToFull(isTips) ?]AF?
0/ end CK"OHjR M/mm2?4 --获取背包百分比 ;H4 s[#K function API_GetBagEx() x##0s5Qn HW = ssr.GetMetaValueByKey("BW") GiK4LJ~cH) MAXHW = ssr.GetMetaValueByKey("MAXBW") \V_Tc` ELL = HW / MAXHW * 100 VrIR!9%
: return math.ceil(ELL) ZamOYkRX end `9*
|Y 8: @dyh:2! --获取背包是否满 E Xxv function API_GetBagFull() _qO'(DKylC return ssr.IsBagToFull(isTips) `6:B0-r end {zTnE?(o` YZk.{#^ c --读取地图ID ! }>CEE function API_GetMapID()
I !J' local tt = ssr.GetCurMapData() 8-PHW,1@a3 return tt.mapID W;T5[ end UasU/Q < "}x%5/( --读取地图名称 2;w`W58
function API_GetMapName() S?[@/35)
local tt = ssr.GetCurMapData() KjNA PfL return tt.mapName _M)
G end jc
bq
# x:6c @2 --获取背包最大数 ,(A
$WT@e function API_GetMaxBag() %xv*#.<Vj return ssr.GetMaxBag() kK|D&Xy` end 6dncUfB oMNSQMlI --使用物品 NXCvS0/h function API_UseItem(itemName) %6W%-` local items = ssr.getQuickUseData() bs&>QsI?j local item = ssr.getCurBagData() M5kw3Jy 5 for k, v in pairs(items) do bn%4s[CVb4 if v.Name == itemName then ;O7Vl5R ssr.UseItemByIndex(v.Index) `k6ZAOQtX end f.Y [2b end yu>o7ie+;Y .%EYof for k, v in pairs(item) do :2.<JUDM if v.Name == itemName then jx{wOb~oO) ssr.UseItemByIndex(v.Index) |[)n.N65= end #:NY9.\o end lc$wjK[w[ end 5HaI$>h6 jVPX]
8 --获取金币数量 WDi2m" function API_GetMoney(Index) '.wb= C return ssr.GetMoneyCountById(Index) |->CI end RcC5_@W Yi j^hs@eV function API_MergeTables(t1, t2) @h9QfJ_f local merged = {}
i }_" for key, value in pairs(t1) do E&N~h|CL merged[key] = value 9:P\)'y? end dmWCNeja. for key, value in pairs(t2) do aJQzM merged[key] = value suS[P?4 end 2){O&8 A return merged ob;O,&e0> end n?778Wo} $XI.`L *g )Dp0swJ --获取物品数量 CTS1."kx1 function API_GetItemCount(itemName,isBind) IZLBv2m local items=ssr.getQuickUseData() jV[;e15+ local bagData=ssr.getBagData() Z(t7QFd items=API_MergeTables(items,bagData) |\W53,n9 local bind=isBind or false r
)HZaq local count=0 DL<;qhte for k,v in pairs(items) do U&ytZ7iB if bind then npd:a Gx --绑定 *M)M!jTv if v.Name==itemName and v.Bind~=nil then ?rjB9AC_;t count=count+ v.OverLap |BUgsE end {- &`@V else /xSFW7d1 --不绑定 a^8PB|G
if v.Name==itemName and v.Bind==nil then ^
L]e]<h( count=count+ v.OverLap 84!Hd.H end d%UzQ*s end /,_m\JkwL end %Zp|1J'" return count !S%0#d2 end W4,'?o --读取人物坐标 -p?&vQDo` !6l*Jc3 SpImd IpD jfiUf1Mj function API_GetMapXY() ;80^ GDk~S local aa = ssr.GetMainPlayerMapPos() v;`>pCal local aa = string.format("x=%s,y=%s" ps;d bY*s6 , aa.x XF+4*), , aa.y) zn>+\ return aa wTD}c1J( end )Gm9x]SVl $H)QUFyC -- 获取角色是否活着 Rx.v/H function API_IsRoleAlive() v2I? 5?j return ssr.IsRoleAlive() xKl1DIN[ end +TyN;e x5CMP%}d --读取聊天信息 &=x4M]t9L function API_ChatMsg() peF)U
!`D local function listcb(msg) LRg]'? --table uIbAlE ChatTable = msg 3@qv[yOE end $4^SWT. ssr.RegisterLUAEvent("OnAddChatItem", "增加聊天消息", listcb) :EAh%q
if ChatTable.mt == 1 and ChatTable.ChannelId == 3 or ChatTable.ChannelId == 6 then cS'{h local ChatT = string.format( Fuzb4Df "SendName=%s,SendId=%s,ChannelId=%s,mt=%s,SendTime=%s,Msg=%s"
ALy7D*Z]w , ChatTable.SendName .9J}Z^FD , ChatTable.SendId + c+i u6+" , ChatTable.ChannelId b*.aaOb , ChatTable.mt k qL.ZR , ChatTable.SendTime 7f}uRXBV$A , ChatTable.Msg) 14"57Jt8 return ChatT <zL_6Y2 end l=b!O end .1q}mw lcm3wJ'w function API_ChatMaa() EG`6T return ssr.GetMaxBag() {x
?qz~W end :dh; @kp lOp.c
U --修理装备 [{Jo(X function API_CopyTable(original) u5Vgi0}A local copy = {} 4qz+cB_ for key, value in pairs(original) do ZMb+sUK if type(value) == "table" then *!ng)3# copy[key] = API_CopyTable(value) t^KQ*8clG else Ku%tM7 ad copy[key] = value yKoZj end a_V\[V{R= end F_(~b return copy tc0;Ake-& end QM#Vl19>j( 修衣服 = "0,4" --衣服,头盔 ~f(5l. 修武器 = "1" IJ&Lk=2E] 修项链 = "3" DtFHh/X 修手镯 = "5,6" 9xO@_pkX 修戒指 = "7,8" --左戒指 右戒指
M2 |!,2 function API_Repair(npcName, itemPos)
(^35cj{s local npcId = API_GetNpcIdByName(npcName) 8W{M}>;[9 local tempData = ssr.getEquipData() O7Jux-E1C local tobeRepair = {} RARA _tii for k, v in pairs(tempData) do VaY#_80$s if string.find(itemPos, tostring(v["Where"])) and v["Dura"] ~= v["DuraMax"] then gK QJ^a\! local tmp = { ;_vhKU)%J# Name = v.Name, 9e=}PL MakeIndex = v.MakeIndex, -R]0cefC<f Where = v.Where CYLab5A } .@E5dw5 table.insert(tobeRepair, tmp) P,ueLG= ssr.TakeOffEquipRequest(v) H oABo: end Ig t*8px end X'jyR:ut# --脱完 开始修理 fwv^dEe for k, v in pairs(tobeRepair) do Uu
WIT3W>% local Name = v.Name \0x>#ygX local MakeIndex = v.MakeIndex } Xo#/9 local networkCtl = global.networkCtl hN M8H networkCtl:SendMsg(1023, npcId, MakeIndex, 0, 0, Name, string.len(Name)) U?sHh2* end Tj#S')s8 --开始穿 :31_WJ^ local function ToDress() wKLYyetM! for k, v in pairs(tobeRepair) do v*?8 :>:} ssr.TakeOnEquipRequest(v, v["Where"]) JFVx& end v?OVhV end m2\\!C]f
local scheduleID = ssr.PerformWithDelayGlobal(ToDress, 1) 6X*vCylI API_CloseNpcTalk() s|e.mZk/ end Vo@7G@7K( ]JjS$VMauX x[)-h/&Fh lc[6Mpi7s[ 药店={0} ywAvqT, 首饰店={19,20,21,22,23,24,26} (s,&