发新话题
打印

[讨论] 初级魔力lua解析

多谢大神

虽然不是很明白,但还是灰常感谢

TOP

请大佬继续更新

TOP

求助大神指点一下,GA能用的宠物技能学习卷放到CGMSV上就老提示宠物技能栏已满呢??
7 ^. j' C+ ], B, ~1 Y# C魔力私服,最新魔力宝贝私服技术交流—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" c8 Y) u4 u8 t3 u6 O  E
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 N& d4 k3 O+ u  T0 l

. ?1 k/ F% m! P5 Mif _Select==2 or _Seqno==99999 then
  u! w+ b8 T* D+ N6 D7 b/ n' t                returnbbs.mocwww.com: }$ l: V" t$ \3 o. ~, Y
        end
+ U6 M+ b/ D; a$ M/ }魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
; C: X- E* j2 W' Q  Z) ]* N魔力私服,最新魔力宝贝私服技术交流        if _Seqno==10 then
6 _6 H& D7 T6 s- M5 F; H/ [: I7 K. [bbs.mocwww.com                --Get Session—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; I1 K1 @9 Z/ R! L' n5 \8 k
                SelectPetSlot[_PlayerIndex] = _Data-1
. y2 A, a  i& u: B& O8 q  E( @1 |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                local tItemSlot = SelectItemSlot[_PlayerIndex]
3 A1 M4 Z/ F( I( @' x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                local tPetSlot = SelectPetSlot[_PlayerIndex]妖城在线论坛2 b1 E% Y5 Z) t
                --Get Pet Data
  O) A+ c" a0 K  r6 Jbbs.mocwww.com                local tPetIndex = Char.GetPet(_PlayerIndex, tPetSlot)5 I8 m$ X9 I" l. z7 e
                if tPetIndex<0 then魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" w8 n( m' F: M, y
                        return 0—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 L) Z9 K$ `; N0 L4 }: _6 m
                end/ S: z- r' `. b
                local tPetName = Char.GetData(tPetIndex, %对象_名字%)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% h2 E4 j) N/ ~7 X* x
                local tPetID = Char.GetData(tPetIndex, 68)
2 U3 ]+ y1 k5 E1 I4 H# W7 o6 T& C                local tPetLv = Char.GetData(tPetIndex, %对象_等级%)妖城在线论坛" C8 w) k' F5 s1 k4 |0 s
                local tPetGetLv = Char.GetData(tPetIndex, %宠物_获取时等级%)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 X, G0 G3 j7 P- K& C' p2 @: v
                local tPetTechSlotMax = Char.GetData(tPetIndex, %宠物_技能栏%)8 S' l1 {7 B+ Q$ y9 L0 i' A
                --Get Item Data魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' F: f* z- _% V/ ?; q' ]( f/ Z0 }
                local tItemIndex = Char.GetItemIndex(_PlayerIndex, tItemSlot)妖城在线论坛6 @/ F: {+ ?# G5 I" Y
                if tItemIndex<0 then  x6 W+ Q& e& D1 d6 W3 ]2 i
                        return 0—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 C" J8 D, q" I/ x5 r9 C: ]
                end
9 ^7 R- t6 ~. |# x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                local tItemName = Item.GetData(tItemIndex, %道具_名字%)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 m# Z$ A% H& c4 B
                local tItemID = Item.GetData(tItemIndex, %道具_ID%)bbs.mocwww.com: ?4 @9 @& i+ V) f1 P: @, G. m$ l
                local tTechType = Item.GetData(tItemIndex, %道具_特殊类型%) or 0魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( q! f/ g* @" l
                local tTechID = Item.GetData(tItemIndex, %道具_子参一%) or 0魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) q3 N' N; J* G0 a1 }% C
                local tPreTechID = Item.GetData(tItemIndex, %道具_子参二%) or 0
; k9 y2 ?1 |: r; [魔力私服,最新魔力宝贝私服技术交流                        print("\n=================调试信息====================")魔力私服,最新魔力宝贝私服技术交流+ V/ B: \. N# C' o5 C) _( @
                        print("tItemID=" .. tItemID)
: X7 M; y/ A7 ^2 ~/ pbbs.mocwww.com                        print("tItemName=" .. tItemName)( |$ A8 W6 Q2 ~  O: b* ]! d
                        print("tTechType=" .. tTechType)妖城在线论坛$ M0 F" o3 m2 J( M1 E; A
                        print("tTechID=" .. tTechID)9 b7 }# n$ P4 x' K" J" E
                        print("tPreTechID=" .. tPreTechID)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 Z4 Q, Z) V! t6 X6 |! d- P: i9 a8 K
                        print("NorPreTechID=" .. NorPreTechID)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 r. L* |$ ~+ r0 N# _
                        print("TechSlot=" .. #PetTechNpc_GetTechList(tPetIndex) .. "/" .. tPetTechSlotMax)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% ?0 P& V" t. R/ i/ D4 n
                        print("InTable=" .. PetTechNpc_GetTechPos(tPetIndex, tPreTechID))
/ a, H: a0 E- {7 ?% j5 m: {& j  H                --Check Type7 K# y, M. Z4 i, a2 }
                if tTechType==1 then魔力私服,最新魔力宝贝私服技术交流# V: U+ g2 t7 W9 e
                        if PetTechNpc_CheckInTable(SPetListA, tPetID)~=true then
" W5 A  X& _$ ~, W" b0 N$ \妖城在线论坛                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:特定宠物")
" ~" y$ g. |) u0 _4 F                                return 0
7 n! J  {, W+ @# I6 g- C& _妖城在线论坛                        end% Q' e, h! c# r
                elseif tTechType==2 then
) r# R$ h* c1 B# ~( x6 C, y# n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                        if PetTechNpc_CheckInTable(SPetListB, tPetID)~=true then魔力私服,最新魔力宝贝私服技术交流  R  U9 w9 \1 n! s; I, k9 s0 [
                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:特定宠物")魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* ^6 F. H3 O! B/ J; K8 m* r
                                return 0
1 s& q. ?- Y0 t+ }—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                        end# }1 P" v( }; P+ ]: }
                elseif tTechType==3 then
' J3 m& L* h9 n7 c4 r" W妖城在线论坛                        if tPetGetLv>1 then
* r% o0 G7 ], h; H4 A妖城在线论坛                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:非野生")bbs.mocwww.com/ ]! }8 z% z2 i% ]
                                return 0
% ~' z: G/ T7 }. R魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                        end
0 C2 \3 @) K0 x妖城在线论坛                elseif tTechType==4 then
8 R% t. T1 r( r' c# L/ E* e魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                        if tPetLv<PetMaxLevel then妖城在线论坛- h5 P, H. P2 m4 Z6 `3 d
                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:满级")
3 ^1 R( r7 J, j9 v% l* P" @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                                return 0
" W2 W( ~( ]1 f0 n8 D* P* R3 k魔力私服,最新魔力宝贝私服技术交流                        end
) s# Z9 j5 i! N* v( }2 }2 B魔力私服,最新魔力宝贝私服技术交流                end
- s4 ~: N# k5 j$ ~5 H魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                --Check NorPreTechID魔力私服,最新魔力宝贝私服技术交流- g, h1 {& _( r( \1 _
                if tPreTechID==NorPreTechID and        #PetTechNpc_GetTechList(tPetIndex)>=tPetTechSlotMax and PetTechNpc_GetTechPos(tPetIndex, tPreTechID)<0 then魔力私服,最新魔力宝贝私服技术交流( A. X2 x! v0 d0 K7 P
                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:请先学习【高阶技能栏】技能")魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ C* M0 ]: u2 p  W5 S
                                return 0
' y, L- \4 ~' W* K                end魔力私服,最新魔力宝贝私服技术交流# C1 p5 ~9 `, C' e2 p
                --Check PreTech
% c  q' Y( q7 K7 K9 b7 D魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                if tPreTechID>0 and tPreTechID~=NorPreTechID then魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 [; P! s" N# N& J1 M6 o
                        if PetTechNpc_GetTechPos(tPetIndex, tPreTechID)<0 then
! ~! a, E5 S6 g; j3 [2 R: A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:前置技能")妖城在线论坛& \1 ~! N1 z9 q# s: C3 @' f
                                return 0
/ R# x1 `5 Y7 s9 F: g                        end
9 c% z# l4 Y2 e& U+ z魔力私服,最新魔力宝贝私服技术交流                end
  y! v2 Y; d0 k" G魔力私服,最新魔力宝贝私服技术交流                --Check Slot
4 G/ _0 w/ C  A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                if tPreTechID<=0 and #PetTechNpc_GetTechList(tPetIndex)>=tPetTechSlotMax then
7 E! I1 T/ s+ L& O" ~妖城在线论坛                        NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:技能栏已满")
# A2 L0 K/ X' {0 F6 ?0 A0 m$ x3 @                        return 0
5 k% @: {' S1 w3 t3 ~: g) b0 e                end妖城在线论坛$ h. m4 N- e! U* [. h
                --Del PreTech—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 J8 N. ?+ g% T- T
                if tPreTechID>0 then
) v: d  A# Z+ G* U- z7 A  G" I                        local tPreTechPos = PetTechNpc_GetTechPos(tPetIndex, tPreTechID)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' X, z8 L  |3 P% o& ^* a
                        Pet.DelSkill(tPetIndex, tPreTechPos)
0 f+ d! I% B, V6 n& y魔力私服,最新魔力宝贝私服技术交流                end—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& X' n7 S! H6 Q( n* g0 O
                --Add Tech魔力私服,最新魔力宝贝私服技术交流9 U/ \$ L! w7 o' w' D
                local rt = Pet.AddSkill(tPetIndex, tTechID)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' h( c: B! |/ n
                if rt~=1 then9 e; h% }! J2 [& n5 f+ o1 ?( m
                        NLG.SystemMessage(_PlayerIndex, "[错误] 未知原因错误")
" Y3 W% T4 u3 B( R( T6 R3 a3 n                        return 0魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' o  I. u" ~4 H2 H: _% m. z) v
                end魔力私服,最新魔力宝贝私服技术交流& a- e  j. h6 I  O# ?
                --Del Itembbs.mocwww.com  b+ K, }  r- q
                Char.DelItem(_PlayerIndex, tItemID, 1)妖城在线论坛# b- \$ C+ u7 _: D% \/ u+ v
                --Up Pet4 U! m9 y2 W) L! d
                Pet.UpPet(_PlayerIndex, tPetIndex)3 C! y0 C: @9 \: X
                NLG.SystemMessage(_PlayerIndex, "你的宠物" .. tPetName .. "学会了新技能。")
  `4 j- K/ W' T% C; h妖城在线论坛        return 1
/ C5 e$ f4 U. Z# n! M* I: h8 b% q  X; E魔力私服,最新魔力宝贝私服技术交流        end魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# j1 i% Q; z' M& u9 Y/ A* p
end
. a7 ]- L9 O$ J3 ?妖城在线论坛
* \. f7 P' q5 L+ S, q2 I魔力私服,最新魔力宝贝私服技术交流--使用道具bbs.mocwww.com; a1 i4 z. ]- \
NL.RegItemString(nil, "PetTechNpc_ItemUse", "LUA_usePetTech");
$ ]" ^4 ^4 M- a* N- s妖城在线论坛function PetTechNpc_ItemUse(_PlayerIndex, _ToPlayerIndex, _Slot)
1 A/ R/ w; x( j; E( M—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート        SelectItemSlot[_PlayerIndex] = _Slot! P! j' x% \2 O( @- I& N( u
        PetTechNpc_Talked( tbl_LuaNpcIndex["PetTechNpc"], _PlayerIndex, 1)
- `2 p' y6 X2 ]; y# q- h; Ibbs.mocwww.com        return 1妖城在线论坛; a$ g9 a$ m  l5 p( n6 c0 c/ ~; `
end

TOP

收藏了,得空学一学,感谢

TOP

引用:
原帖由 wangjun1127 于 2019-5-30 19:56 发表
! y) T7 S# r& S: i) ?% C" P魔力私服,最新魔力宝贝私服技术交流求助大神指点一下,GA能用的宠物技能学习卷放到CGMSV上就老提示宠物技能栏已满呢??
2 r) K  p! [' {$ W' h. \9 z
2 c: B3 Q6 E2 p% u1 O  T0 M. c4 F  `bbs.mocwww.com
5 Z$ B! `( `$ e# v3 K$ [& T( q, \妖城在线论坛
; A( ^4 i' Q6 B1 J* p妖城在线论坛if _Select==2 or _Seqno==99999 then魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 P% m! a4 @3 ^4 B5 H# w7 m4 v
                return
' l+ ?. d6 `6 {. Q5 b5 ]6 v        end—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ c1 |2 O0 ^( A; A

! C( `  g5 D8 @' O* P( x' r- I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート        if _Seqno==10 then
" e  L0 l) Q% V  t% P4 n妖城在线论坛                --Get Session魔力私服,最新魔力宝贝私服技术交流+ s2 A# q& ~. ~2 l# ?6 v/ X
                SelectPetSlot[_Pla ...
妖城在线论坛, p3 D& Q$ g+ M$ g9 q
这是一个luac+lua结合的功能,你只迁移了lua部分,没有迁移luac部分(道具部分)

TOP

6.如何创立MSG指令(例:/1 /2)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ ^: d" m% c, \$ F% l
今天先来讲点简单的知识,顺便复习一下旧知识点中比较重要的获取(get)函数和设置(set)函数的区别,本帖停更也是由于深感自身讲的知识点先后顺序有些问题魔力私服,最新魔力宝贝私服技术交流8 K9 W1 |- l9 l* k& r/ q2 @
魔力lua包含了三大块知识点
' p, G5 o: `) H$ X8 Y妖城在线论坛1:lua编程基础知识(不需要太深入的lua技术即可)# \7 N) M& s, C$ \* |/ }
2:mysql基础知识(不需要太深入的mysql技术,但要会节省资源和防止疯狂读写)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. Y: p# t/ |! h9 x6 y
3:魔力封包知识(高端lua开发必备)
/ j- S4 }6 @% R1 R- q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
; ?' d% h) n  }5 c魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表本帖只讲述lua在魔力中是如何运行的,这三块知识点都需要你们自己去学习
( A6 B% t  }& _# a妖城在线论坛魔力私服,最新魔力宝贝私服技术交流* E# `! h# P$ c# u3 A2 {
下面我们进入今天的教学
8 {2 e; O5 `1 A0 A' f& n—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートlua的远程指令主要依靠NL.RegTalkEvent(Dofile, FuncName)达成妖城在线论坛& m  W+ y- s) p4 X* T
该函数的作用是[创建对话事件],它可以全局框架注册0 x; a8 L' r  J" U1 Y
一般使用Delegate.RegDelTalkEvent("XXX")创建全局对话事件魔力私服,最新魔力宝贝私服技术交流$ a% h0 q0 K/ ?8 F- b( F
NL.RegTalkEvent的返回函数明细:
# v  x$ W6 p- t+ w" t妖城在线论坛TalkEventCallBack(CharIndex, Msg, Color, Range, Size)
3 W9 j/ T: K, d6 u: X参数说明
* s. n; `6 u! p) T魔力私服,最新魔力宝贝私服技术交流CharIndex: 数值型 响应事件的对象index,该值由Lua引擎传递给本函数。魔力私服,最新魔力宝贝私服技术交流4 j. I; K# \2 M, z" v$ T* I, d
Msg: 文本型 话的内容,该值由Lua引擎传递给本函数。
5 E) c* `! E" ]6 T: i1 |妖城在线论坛Color: 数值型 说话颜色,该值由Lua引擎传递给本函数。魔力私服,最新魔力宝贝私服技术交流5 c0 b8 X- h/ o7 `
Range: 数值型 说话音量(范围),该值由Lua引擎传递给本函数。
! o# E9 V' n! e5 A  r—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートSize: 数值型 说话字体大小,该值由Lua引擎传递给本函数。
7 p. M: C2 H! M, K魔力私服,最新魔力宝贝私服技术交流返回值魔力私服,最新魔力宝贝私服技术交流: J: {% M0 w7 I! K: S4 U
返回0拦截说话内容,返回1正常发送
6 W' b+ I# n' C3 T9 Q+ P魔力私服,最新魔力宝贝私服技术交流% h- a& g* @( f
小知识复习:当形参由lua引擎传递一个可用实参时,你不需要填写形参具体值,并且可以传递给其他函数的空白形参,让其拥有实际数值,传递时候要注意传参的类型,空白形参的函数中,空白形参若只能填写数值型妖城在线论坛( A) ~! h1 t+ L% E" Q$ t
传递过来的数值就必须是数值型(这种情况可以先设置一个变量   a=tonumber(lua引擎传递的字符串型传参) 然后把变量a填入空白形参的函数形参中)魔力私服,最新魔力宝贝私服技术交流2 R/ \8 P0 e4 a! q* [! m
bbs.mocwww.com9 S; E4 X8 P% X7 s; @- t2 D
文字太过干涩,下面用实例解释今天的知识点
! Q' p& n8 b1 Y( ~8 D( u该例实现了用指令整理身上的道具的功能
" A, ~# m8 e- ?/ P6 {+ }6 e5 Q8 l* Q妖城在线论坛
: l5 Q6 W0 d: T7 T—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートlocal zhengli = "/zl"--整理指令,此处需要""把内容定义为字符串
) i4 ~4 H% B: V- L6 t' b$ R5 A$ ^bbs.mocwww.com--  ***************************************************************************************************** --
- p9 F# v! X' J$ J+ |魔力私服,最新魔力宝贝私服技术交流Delegate.RegDelTalkEvent("zlTalkEvent");--全局注册对话事件函数
8 j' s/ i, r" k魔力私服,最新魔力宝贝私服技术交流
' q1 X- R9 ~7 w( tfunction zlTalkEvent(player,msg,color,range,size)--调用对话事件函数的返回函数
: [7 B' k. v  u3 c$ H  |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート        if(msg==zhengli) then--检测MSG=整理指令时则执行下述函数块内容: r" s& O, f8 F. ]4 b- Q3 w
                NLG.SortItem(player)--调用GA封装的整理道具函数,其中NLG.SortItem(player)的(player)值由function zlTalkEvent(player,msg,color,range,size)这个返回函数赋予魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表  \9 G( s9 w# g
        end" g! c% m' y" c
end魔力私服,最新魔力宝贝私服技术交流  o0 w! Q! t9 C( @& s  h  A1 z

: e7 A, {5 v6 I$ |6 ?2 u—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート上述实例中,如果单独拿NLG.SortItem(player)出来,(player)的值会是nil,是没有任何数值的,它是一个标准的设置函数,需要从获取函数中获得形参的实值(魔力lua的函数的形参分为2种,获取函数(get)和设置函数(set))
: C5 V' W* E/ G# y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート 教学用指令整理道具.7z (453 Bytes) 3 U" ]; s, x9 E* z9 |
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 e: k- {+ w8 J; h
[ 本帖最后由 王宫召唤士盖兹 于 2019-5-31 02:07 编辑 ]

TOP

6666666666666666

TOP

提示lua道具被重复注册怎么处理啊????

TOP

这种好帖子真的不多了!!!!

TOP

建议出个GP的 GA好像在这身败名裂了

TOP

引用:
原帖由 staki 于 2019-8-3 03:12 发表 $ E; E4 s6 U7 s8 \. T
建议出个GP的 GA好像在这身败名裂了
! r+ d1 D  q) O6 u魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
# Z7 h5 A9 s9 Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表GP没2键端无法操作,只是学lua基础都一样的
& N5 a+ s% n3 T' q 我不更新就是涉及的具体操作太多,通用性不高,没有更新的必要魔力私服,最新魔力宝贝私服技术交流; n, U' C6 y9 g! U9 }& I3 W" Y
我本身秉持授人与鱼不如授人于渔的想法,才写了这个帖子
/ A. }4 b' A4 H2 _0 `0 Y% Z4 {妖城在线论坛能看懂本帖之前写的内容,足够了
& s" ?7 D. d, p4 i; x6 U/ J—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
2 U8 j. [, @1 {& X" b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート备注:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) m' \2 L& |6 q' q$ r/ W
既然回帖了,就再讲一下魔力lua的基础运行流程:
  s( d- u4 A& j) N0 s& g魔力私服,最新魔力宝贝私服技术交流1:GMSV启动时加载GMSV内置的魔力lua模块bbs.mocwww.com3 ?  J& ^: u: r4 l
2:GMSV自动加载初始lua-init.lua   该lua是由GMSV自动加载的(无需写dofile加载)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- e9 M0 j! n9 U. G- v; X9 ^5 ~* Y7 H
3:init.lua 加载运行内部代码    此时会有大量dofile,一般是加载基础框架相关的东西 有兴趣可以参考init.lua内部代码,包括框架全局注册这类关键脚本,都是此时加载的
2 B: s/ q. |; N" `6 l8 D妖城在线论坛4:init.lua中有一行dofile(Lua_Path.."Config.lua"),加载Cofig.lua妖城在线论坛0 W/ |/ ^& U( u$ G  q5 R
5:Cofig.lua加载各种Module文件夹内的lua  (至于Cofig.lua内用于加载lua的Loadlua函数究竟是GA哪个脚本内写的,可以给大家当成一个最后的课后考题,找出他,能找到他,我相信你就会发现魔力LUA的运行逻辑是如此简单)
' G6 ]8 `) D! q1 f0 _—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート提示:GP的Loadlua函数在  lua\include\Global.lua 这个文件内
) q( c8 H) L- Q* b. F魔力私服,最新魔力宝贝私服技术交流提示2:GA的Loadlua函数在 lua\System某个文件夹内—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! G0 S+ A7 g, m# w% Z: W6 Y
bbs.mocwww.com8 i' F/ i; O. |. _9 @& F/ \0 N* P
[ 本帖最后由 王宫召唤士盖兹 于 2019-8-3 12:59 编辑 ]

TOP

GE  用Run(SQL脚本),Update tbl_character 数据库是修改成功了,但是人物退出,又变成修改前的数据了。数据库保存是人物最后退出的状态。

TOP

我看了在线修改人物名字的lua ,其实SQL是改数据库的,但是真正起作用的是最后两行,直接改对象的名字。妖城在线论坛+ o1 R! ]$ }7 c# k+ B
魔力私服,最新魔力宝贝私服技术交流' e/ G9 R+ D- g: [) b% H4 h' a
                local query = "Update tbl_character set `Name` = '".._data.."' Where Cdkey = '"..Char.GetData(_PlayerIndex,%对象_账号%).."' and Name='"..Char.GetData(_PlayerIndex,%对象_原名%).."'";
, J0 h$ d$ g! n4 a! p妖城在线论坛                local ret = SQL.Run(query);bbs.mocwww.com( g* e' d8 l7 x, p& g5 M- n& [
       
) V/ J! C( z  A7 `bbs.mocwww.com                Char.SetData(_PlayerIndex,%对象_原名%,_data);—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& e- W( S' T* q# n1 `* V
                NLG.UpChar(_PlayerIndex);
9 j4 m& W& y  Abbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" ~( v- |2 ]1 |- E
如果没有最后这两行,SQL改的数据库,人物退出还是原来的名字。bbs.mocwww.com( e8 g2 M4 i- \9 J  B
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 v1 ]$ S3 a' G! M( }# x! V
[ 本帖最后由 rolser 于 2019-8-20 20:52 编辑 ]

TOP

受教了!希望更新关于GE方面的

TOP

引用:
原帖由 rolser 于 2019-8-20 20:44 发表
6 G: Z+ p& V. x, _+ _5 i* J$ N魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表我看了在线修改人物名字的lua ,其实SQL是改数据库的,但是真正起作用的是最后两行,直接改对象的名字。
0 R$ e7 A; p& b# k# {+ qbbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& i! m, Z% a' p, R/ \5 i! T
                local query = "Update tbl_character set `Name` = '".._data.."' Where Cdkey = '"..Char.GetData(_Pl ...
  S" y5 A# x2 L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ ~* F. q4 J% e& v0 O3 A
lua修改玩家内存只是修改了GMSV内的内存,在玩家客户端内并没有显示,因此需要用UpChar函数更新玩家客户端显示魔力私服,最新魔力宝贝私服技术交流3 Y5 t( Q; a; `- _. U
同理还有NPC创建时候使用的UpChar函数,这个函数如果是由全局注册init来触发的,会导致你即使重载脚本,NPC也加载不出来,必须重启服务器(重新加载init)才行魔力私服,最新魔力宝贝私服技术交流; x9 y! C" _2 n4 m! @5 C, i2 w$ @  o
备注:创建NPC也可以用其他函数或者if,GE不要使用if,会有奇怪的错误魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) K! R) U4 ]/ I
魔力私服,最新魔力宝贝私服技术交流" {- L5 R0 D, I; N! A% Y
GE的教程和GA是互通的,他们只不过是文件夹不一样,文件名不一样,函数名不一样,但运行逻辑都是一样的,只是WIN7和WIN10的区别而已,只要能看懂本帖说的GA的内容,GE和GP自然就懂了魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! {2 d; x: G, @3 V6 |- X

9 I7 u8 C0 B3 B! B1 h( x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート[ 本帖最后由 王宫召唤士盖兹 于 2019-8-30 11:22 编辑 ]

TOP

发新话题