发新话题
打印

[讨论] 初级魔力lua解析

多谢大神

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

TOP

请大佬继续更新

TOP

求助大神指点一下,GA能用的宠物技能学习卷放到CGMSV上就老提示宠物技能栏已满呢??
5 E7 l9 B) b- |' [1 a
+ n( A0 V6 Y9 _# g
- @$ T+ e1 P; t9 Q) ?( Z# X: [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
, c" s' E9 q) Q- I5 j( Vbbs.mocwww.comif _Select==2 or _Seqno==99999 thenbbs.mocwww.com) I, `& M0 C9 m& _% b7 J: W4 l* \
                return
& z( {; C; n) I8 `3 `! ^0 {( c        end
9 L. R, A% ]1 ]) h; B妖城在线论坛
! h2 C+ e- F1 B8 r0 D9 o4 R* o3 vbbs.mocwww.com        if _Seqno==10 then
% J% H2 A8 J0 j' M( `                --Get Session
0 e/ @; {1 N- ^+ D9 R                SelectPetSlot[_PlayerIndex] = _Data-1
  x) I2 T9 B1 @                local tItemSlot = SelectItemSlot[_PlayerIndex]bbs.mocwww.com1 N; v8 X0 W( P' V
                local tPetSlot = SelectPetSlot[_PlayerIndex]
& ~' x2 J6 l; J$ K/ f" S' u) S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                --Get Pet Data
) v8 v. H" @4 F  B5 n9 }6 ^—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                local tPetIndex = Char.GetPet(_PlayerIndex, tPetSlot)
0 w" e0 o" c- y9 N) x                if tPetIndex<0 then妖城在线论坛" ]. e% W  g/ ?! z# P
                        return 03 Q0 k9 t8 S; X: P5 b
                end魔力私服,最新魔力宝贝私服技术交流& Y  ?3 G: b1 {$ Y. g0 @
                local tPetName = Char.GetData(tPetIndex, %对象_名字%)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 \1 B( _% l! y
                local tPetID = Char.GetData(tPetIndex, 68)bbs.mocwww.com: r1 G5 u; i- v1 i
                local tPetLv = Char.GetData(tPetIndex, %对象_等级%)% h( k4 |, ?1 i- X$ ]
                local tPetGetLv = Char.GetData(tPetIndex, %宠物_获取时等级%)bbs.mocwww.com. q7 q$ a: R3 x
                local tPetTechSlotMax = Char.GetData(tPetIndex, %宠物_技能栏%)妖城在线论坛" B" [; h. ~! @( N! P* K% G
                --Get Item Databbs.mocwww.com# h( E7 D5 p- ?3 T6 N
                local tItemIndex = Char.GetItemIndex(_PlayerIndex, tItemSlot)魔力私服,最新魔力宝贝私服技术交流1 M% J, L: f& L3 @
                if tItemIndex<0 then
2 I, X) m5 ]$ o妖城在线论坛                        return 0
& l7 f& a! @  Bbbs.mocwww.com                end—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 X) o# P, A$ F# i. a8 Z9 ~
                local tItemName = Item.GetData(tItemIndex, %道具_名字%)妖城在线论坛- r; n' j4 H* K2 C0 g
                local tItemID = Item.GetData(tItemIndex, %道具_ID%)
8 X! o% @( [& S0 f) X; u2 K. ~                local tTechType = Item.GetData(tItemIndex, %道具_特殊类型%) or 0—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' G, y0 L( J9 Z9 c/ P& S
                local tTechID = Item.GetData(tItemIndex, %道具_子参一%) or 0
3 S+ W0 ^; j" f: S  N                local tPreTechID = Item.GetData(tItemIndex, %道具_子参二%) or 0妖城在线论坛$ K* v) ~3 F" J5 x0 W& S8 V
                        print("\n=================调试信息===================="): x: L8 D1 D' l5 x: K6 Y$ e$ Q/ ^
                        print("tItemID=" .. tItemID)
1 W$ G8 j. o. F9 }4 M                        print("tItemName=" .. tItemName)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' a& L9 s+ l/ w8 j* ~% z
                        print("tTechType=" .. tTechType)
$ |9 J# c' b8 D+ b                        print("tTechID=" .. tTechID)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 K5 _7 ~. N) p
                        print("tPreTechID=" .. tPreTechID)
1 z4 ~3 {: m! m# R( E; e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                        print("NorPreTechID=" .. NorPreTechID)
. V. d+ S8 A! Y% q+ }# j8 X' F—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                        print("TechSlot=" .. #PetTechNpc_GetTechList(tPetIndex) .. "/" .. tPetTechSlotMax)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 |4 t* v6 f/ ~1 N% n1 X+ K% ?) h, B
                        print("InTable=" .. PetTechNpc_GetTechPos(tPetIndex, tPreTechID))妖城在线论坛& U( b" O' O8 U3 K6 C% P# A% t
                --Check Type魔力私服,最新魔力宝贝私服技术交流9 e3 h2 o% ^8 }3 c6 C3 {5 u* S
                if tTechType==1 thenbbs.mocwww.com$ q$ G# f$ ]+ p' x* b
                        if PetTechNpc_CheckInTable(SPetListA, tPetID)~=true then魔力私服,最新魔力宝贝私服技术交流! `6 m1 S+ w1 L% }
                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:特定宠物")
+ L4 Q- A4 }1 X5 `2 }: P—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                                return 0
# M. i# C/ ~' Y. n; a. G妖城在线论坛                        endbbs.mocwww.com* c3 v- w, g3 O- w, \, E3 ^( B( H2 X
                elseif tTechType==2 then妖城在线论坛3 I3 g; F3 q4 M) M6 \0 m$ w$ e
                        if PetTechNpc_CheckInTable(SPetListB, tPetID)~=true then—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 Y- g* `$ H$ k- v0 b6 t! z/ w# W
                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:特定宠物")
# Z6 R) l2 ~( Y9 \魔力私服,最新魔力宝贝私服技术交流                                return 0—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 d7 J$ Y+ e! F: ]( L
                        end魔力私服,最新魔力宝贝私服技术交流4 V  Z3 a( q" v; i3 g/ P
                elseif tTechType==3 then魔力私服,最新魔力宝贝私服技术交流) E! B; A! \. s" P, m
                        if tPetGetLv>1 then
- B* C- A+ A' Z6 V" U- j* J0 \bbs.mocwww.com                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:非野生")) _3 d; i) m7 C3 H; j  ~8 v
                                return 0
+ W. V5 E% S" ~妖城在线论坛                        end
& d& @8 I/ v/ Qbbs.mocwww.com                elseif tTechType==4 then
1 R: a# V- v" m魔力私服,最新魔力宝贝私服技术交流                        if tPetLv<PetMaxLevel then魔力私服,最新魔力宝贝私服技术交流! N+ @! l  ~  v4 R/ C
                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:满级")3 N1 O& g1 L3 p' C0 {( H
                                return 0
7 n& K# `1 I4 n  I7 }& ?妖城在线论坛                        end
2 o% \/ Q5 |, k妖城在线论坛                endbbs.mocwww.com  `3 i. G3 }+ X& b7 T3 D$ w5 e
                --Check NorPreTechID
& t  I: L- `8 I* d+ Y2 W* M& M3 T                if tPreTechID==NorPreTechID and        #PetTechNpc_GetTechList(tPetIndex)>=tPetTechSlotMax and PetTechNpc_GetTechPos(tPetIndex, tPreTechID)<0 then
. j1 I# }+ B6 b% J, n                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:请先学习【高阶技能栏】技能")魔力私服,最新魔力宝贝私服技术交流' G$ G' x& a% N4 _* g7 o
                                return 0' @- g- }9 u' w# J( L# a
                end妖城在线论坛  \9 H- {3 ~' p* I0 P, I8 g9 }
                --Check PreTech魔力私服,最新魔力宝贝私服技术交流  S7 r8 ?9 c9 G. S
                if tPreTechID>0 and tPreTechID~=NorPreTechID then魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) U1 h! {% V. d2 ]/ p
                        if PetTechNpc_GetTechPos(tPetIndex, tPreTechID)<0 then
, B' C# n( W- Q8 W魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                                NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:前置技能")妖城在线论坛1 g- A1 H2 T3 }$ l
                                return 0bbs.mocwww.com) l  v: V- `# C, }( i
                        end—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! L8 O  {, q, T) C  o9 B4 H
                end魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 v: G. T& n1 Q  U- W) C4 H
                --Check Slot魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ }  w( ?  ]; j$ C. d* k8 o
                if tPreTechID<=0 and #PetTechNpc_GetTechList(tPetIndex)>=tPetTechSlotMax then
1 i# h# o8 j/ u9 W                        NLG.SystemMessage(_PlayerIndex, "[错误] 你选择的宠物不满足以下学习条件:技能栏已满")—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, ?4 r2 S$ {4 L# [6 e
                        return 0
( b2 A. f/ r- l. V; t5 N魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                end魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" l2 H1 s) p! H$ v4 K* v8 ]& X
                --Del PreTech—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% e: H& n7 P" ~; y+ C; P
                if tPreTechID>0 then妖城在线论坛- x3 D! v8 f# s2 E$ E
                        local tPreTechPos = PetTechNpc_GetTechPos(tPetIndex, tPreTechID)bbs.mocwww.com% v- b6 |9 U0 X. j8 R
                        Pet.DelSkill(tPetIndex, tPreTechPos)
0 W* a1 t7 w% v  }                end
( D8 N; _- F! P: S$ ^  [' n3 B魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表                --Add Tech- y) y. J# }& X3 e# |' r6 _
                local rt = Pet.AddSkill(tPetIndex, tTechID)魔力私服,最新魔力宝贝私服技术交流+ |# t! n* }/ w, g* o
                if rt~=1 then
5 \: l' @& N5 [$ w" v& N- b" r6 l                        NLG.SystemMessage(_PlayerIndex, "[错误] 未知原因错误")
* t% O& h' Z3 b: e2 t  X4 J妖城在线论坛                        return 0
3 D4 U0 E  r' R! ?                end
, O- l6 D6 E1 o                --Del Item
2 L9 \# q0 |- D" s妖城在线论坛                Char.DelItem(_PlayerIndex, tItemID, 1)
" ?; J; o  I& `—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                --Up Pet
6 \% g; c* k- t6 d6 [: a                Pet.UpPet(_PlayerIndex, tPetIndex)
+ [6 h  N% m1 q- h7 d9 H- K% s4 U魔力私服,最新魔力宝贝私服技术交流                NLG.SystemMessage(_PlayerIndex, "你的宠物" .. tPetName .. "学会了新技能。")魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 @3 @) |& g9 v2 z9 T
        return 1
4 d# d1 g! c' z- V% N6 }& h妖城在线论坛        end
% f3 n' c5 |6 k魔力私服,最新魔力宝贝私服技术交流end
( Y4 n/ ~( d& `8 s/ a: @' ]8 dbbs.mocwww.com
) j6 M' ?6 E7 b0 tbbs.mocwww.com--使用道具
+ S! u' Z$ v: I3 K魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表NL.RegItemString(nil, "PetTechNpc_ItemUse", "LUA_usePetTech");—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& V7 v) t- f% H: _
function PetTechNpc_ItemUse(_PlayerIndex, _ToPlayerIndex, _Slot)
& z0 G7 T. |% {# S1 M- o- @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート        SelectItemSlot[_PlayerIndex] = _Slot
* u- I8 ~3 |4 ~: Z3 y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート        PetTechNpc_Talked( tbl_LuaNpcIndex["PetTechNpc"], _PlayerIndex, 1)
& S4 o, U$ [2 v  W$ s  D        return 1
; R9 i0 F" }! l* Y! ?4 L  ~end

TOP

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

TOP

引用:
原帖由 wangjun1127 于 2019-5-30 19:56 发表
& f/ ]' P" h; B3 U% t7 z魔力私服,最新魔力宝贝私服技术交流求助大神指点一下,GA能用的宠物技能学习卷放到CGMSV上就老提示宠物技能栏已满呢??妖城在线论坛: P" @9 G1 T0 q9 g( e

0 f! @( N% G% L$ `% P: a魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
' U4 [, G% V5 N. }! d
% P, f& O, s# U: l妖城在线论坛if _Select==2 or _Seqno==99999 then妖城在线论坛2 S( Z5 o9 k" d
                returnbbs.mocwww.com$ _! C& l( ~. K' ?8 S4 C" u( H( |: Y. g
        end魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, b  `' A+ {+ j

7 Z6 r6 d) Z4 h: h8 p, \7 G+ gbbs.mocwww.com        if _Seqno==10 then魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% l* U+ ]/ G. t5 z" P* J
                --Get Session
1 U& @! b" ]0 E8 Y& h7 I魔力私服,最新魔力宝贝私服技术交流                SelectPetSlot[_Pla ...
bbs.mocwww.com$ `6 h' V2 B; l$ L( a7 }5 r
这是一个luac+lua结合的功能,你只迁移了lua部分,没有迁移luac部分(道具部分)

TOP

6.如何创立MSG指令(例:/1 /2)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ A+ @) p! S. _3 B. ?
今天先来讲点简单的知识,顺便复习一下旧知识点中比较重要的获取(get)函数和设置(set)函数的区别,本帖停更也是由于深感自身讲的知识点先后顺序有些问题魔力私服,最新魔力宝贝私服技术交流# u8 Y- X/ h' l8 z7 h  J3 \( f, F' E
魔力lua包含了三大块知识点bbs.mocwww.com. D; E. G9 O0 B: ?2 ~
1:lua编程基础知识(不需要太深入的lua技术即可)
7 m) Y, Q0 m! j) j" P6 ]bbs.mocwww.com2:mysql基础知识(不需要太深入的mysql技术,但要会节省资源和防止疯狂读写)魔力私服,最新魔力宝贝私服技术交流0 I# X# s' g0 P% T$ a
3:魔力封包知识(高端lua开发必备)
6 p( @- @) @! U# T9 y魔力私服,最新魔力宝贝私服技术交流
8 L. G  x& z! o) j* _魔力私服,最新魔力宝贝私服技术交流本帖只讲述lua在魔力中是如何运行的,这三块知识点都需要你们自己去学习
# C, H5 p3 d' @* j, ]" e9 S+ rbbs.mocwww.com妖城在线论坛5 G: ?: h  d6 u' l, Y0 m- ?6 F' ?5 G
下面我们进入今天的教学妖城在线论坛2 W, q  l% i/ g' h; U' |# d% ~
lua的远程指令主要依靠NL.RegTalkEvent(Dofile, FuncName)达成—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ `7 ^% q; T2 ^& N; h& d" K- s6 f2 I
该函数的作用是[创建对话事件],它可以全局框架注册
' n) @- U' S- P+ h$ a魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表一般使用Delegate.RegDelTalkEvent("XXX")创建全局对话事件bbs.mocwww.com4 @/ D, l* D6 N9 u/ g! p/ d; D" G( y
NL.RegTalkEvent的返回函数明细:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! [# L6 b  H1 B; v; K. J+ i
TalkEventCallBack(CharIndex, Msg, Color, Range, Size)
" ?' |$ |; X4 p* p, h2 W魔力私服,最新魔力宝贝私服技术交流参数说明
' k8 k! p7 j) ]  X% B7 i& B, p0 G) f妖城在线论坛CharIndex: 数值型 响应事件的对象index,该值由Lua引擎传递给本函数。妖城在线论坛! u/ b! Q' d7 {' l; t8 C8 G6 S
Msg: 文本型 话的内容,该值由Lua引擎传递给本函数。
) F2 o8 {5 S7 X: J魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Color: 数值型 说话颜色,该值由Lua引擎传递给本函数。
* `6 g  N2 L  v6 j  T( X! z5 ?妖城在线论坛Range: 数值型 说话音量(范围),该值由Lua引擎传递给本函数。
$ w. B7 g! E, t! P5 a) M6 m妖城在线论坛Size: 数值型 说话字体大小,该值由Lua引擎传递给本函数。
6 J- d% G: \- ]返回值
/ {7 I- s  x2 O! ?* d, Q- i5 S8 X妖城在线论坛返回0拦截说话内容,返回1正常发送bbs.mocwww.com5 z) ~5 ~5 c8 i

1 P' _& @) K, H8 F9 ebbs.mocwww.com小知识复习:当形参由lua引擎传递一个可用实参时,你不需要填写形参具体值,并且可以传递给其他函数的空白形参,让其拥有实际数值,传递时候要注意传参的类型,空白形参的函数中,空白形参若只能填写数值型: R; ~2 T/ C+ w1 ?" p$ W
传递过来的数值就必须是数值型(这种情况可以先设置一个变量   a=tonumber(lua引擎传递的字符串型传参) 然后把变量a填入空白形参的函数形参中)魔力私服,最新魔力宝贝私服技术交流% d% S* B; e7 G

, ~( m7 n% W( sbbs.mocwww.com文字太过干涩,下面用实例解释今天的知识点
" @% G" Y4 v, `魔力私服,最新魔力宝贝私服技术交流该例实现了用指令整理身上的道具的功能
& W, L8 k+ Z- P" B妖城在线论坛魔力私服,最新魔力宝贝私服技术交流' M, H/ B$ F7 q! j8 {: L
local zhengli = "/zl"--整理指令,此处需要""把内容定义为字符串
9 L3 I8 P) h" h, v3 p/ L2 r8 B--  ***************************************************************************************************** --魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, N! s' Z0 k6 z. Q1 w
Delegate.RegDelTalkEvent("zlTalkEvent");--全局注册对话事件函数妖城在线论坛  J/ l3 D% U8 C& d; N( r
bbs.mocwww.com- C1 l+ J/ X, a1 O( _9 R
function zlTalkEvent(player,msg,color,range,size)--调用对话事件函数的返回函数
+ E: E  A0 a; M6 D4 G! f—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート        if(msg==zhengli) then--检测MSG=整理指令时则执行下述函数块内容
: @# A5 I  v; j' P妖城在线论坛                NLG.SortItem(player)--调用GA封装的整理道具函数,其中NLG.SortItem(player)的(player)值由function zlTalkEvent(player,msg,color,range,size)这个返回函数赋予
, T- T7 _% K8 n2 O, ?7 L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表        endbbs.mocwww.com9 r, _4 A9 y1 Z# h& v3 I
end
9 ^* x5 ^' L# V4 s0 G% x! Y- B妖城在线论坛魔力私服,最新魔力宝贝私服技术交流% i' h1 y8 f" a+ m+ Q8 A
上述实例中,如果单独拿NLG.SortItem(player)出来,(player)的值会是nil,是没有任何数值的,它是一个标准的设置函数,需要从获取函数中获得形参的实值(魔力lua的函数的形参分为2种,获取函数(get)和设置函数(set))4 Z% r3 ]% I% `1 d8 x' m5 e
教学用指令整理道具.7z (453 Bytes) 9 g& l: X, X5 a7 V* [

9 ]! i" m: {1 v, M. [妖城在线论坛[ 本帖最后由 王宫召唤士盖兹 于 2019-5-31 02:07 编辑 ]

TOP

6666666666666666

TOP

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

TOP

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

TOP

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

TOP

引用:
原帖由 staki 于 2019-8-3 03:12 发表
/ m" X; M' e" I& w妖城在线论坛建议出个GP的 GA好像在这身败名裂了
* K, Q: y$ d5 r6 p妖城在线论坛bbs.mocwww.com4 _2 G/ i& G! Z# X6 S0 \& I
GP没2键端无法操作,只是学lua基础都一样的
$ F4 @$ t+ x/ K% o魔力私服,最新魔力宝贝私服技术交流 我不更新就是涉及的具体操作太多,通用性不高,没有更新的必要
+ k: H+ F; `: a8 P魔力私服,最新魔力宝贝私服技术交流我本身秉持授人与鱼不如授人于渔的想法,才写了这个帖子
7 e4 V( c& r6 m) I- H妖城在线论坛能看懂本帖之前写的内容,足够了—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) C7 e5 O8 }/ l( s2 H
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 d# l0 u: Q- z( \+ p/ Q
备注:妖城在线论坛/ z: z1 ^( u8 {9 @9 `
既然回帖了,就再讲一下魔力lua的基础运行流程:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% I8 [1 P7 d) T; v+ h" l
1:GMSV启动时加载GMSV内置的魔力lua模块
  L: c/ G; A  x3 X# r魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2:GMSV自动加载初始lua-init.lua   该lua是由GMSV自动加载的(无需写dofile加载)妖城在线论坛" F: L" c% l8 k
3:init.lua 加载运行内部代码    此时会有大量dofile,一般是加载基础框架相关的东西 有兴趣可以参考init.lua内部代码,包括框架全局注册这类关键脚本,都是此时加载的
3 i$ x& Y) O/ w2 }$ h4:init.lua中有一行dofile(Lua_Path.."Config.lua"),加载Cofig.lua
2 w5 Z1 |7 E  N0 d& h5:Cofig.lua加载各种Module文件夹内的lua  (至于Cofig.lua内用于加载lua的Loadlua函数究竟是GA哪个脚本内写的,可以给大家当成一个最后的课后考题,找出他,能找到他,我相信你就会发现魔力LUA的运行逻辑是如此简单)妖城在线论坛$ K$ m0 z* q, g* e5 G6 l: P  ~
提示:GP的Loadlua函数在  lua\include\Global.lua 这个文件内
/ L9 p. _/ D3 r# ?# \+ B5 S: Z妖城在线论坛提示2:GA的Loadlua函数在 lua\System某个文件夹内魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 T: X  y5 s% N3 P* Q
) M* S3 _, @5 t: f
[ 本帖最后由 王宫召唤士盖兹 于 2019-8-3 12:59 编辑 ]

TOP

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

TOP

我看了在线修改人物名字的lua ,其实SQL是改数据库的,但是真正起作用的是最后两行,直接改对象的名字。" M4 E6 L, s$ S) z1 K3 `( r
魔力私服,最新魔力宝贝私服技术交流  U0 I. C1 G( q1 P4 {7 c( Y
                local query = "Update tbl_character set `Name` = '".._data.."' Where Cdkey = '"..Char.GetData(_PlayerIndex,%对象_账号%).."' and Name='"..Char.GetData(_PlayerIndex,%对象_原名%).."'";
) I7 m* _5 p# s魔力私服,最新魔力宝贝私服技术交流                local ret = SQL.Run(query);
% y! R% v! S5 \) Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート        妖城在线论坛9 r5 Y8 S6 Q% O( X$ k/ c1 C0 Z
                Char.SetData(_PlayerIndex,%对象_原名%,_data);妖城在线论坛8 _) J& E  D$ b+ C& S4 a
                NLG.UpChar(_PlayerIndex);
7 ]; w; y$ ^; x0 h/ Q; q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 @# \& ?3 L7 u( C
如果没有最后这两行,SQL改的数据库,人物退出还是原来的名字。bbs.mocwww.com4 ~0 c% B) I: A- ]3 Z7 Z" f
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; J6 B, ?7 I& q6 _( A/ K
[ 本帖最后由 rolser 于 2019-8-20 20:52 编辑 ]

TOP

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

TOP

引用:
原帖由 rolser 于 2019-8-20 20:44 发表 bbs.mocwww.com$ |8 e# W5 I2 ^: H" `9 w3 a/ {) `" t
我看了在线修改人物名字的lua ,其实SQL是改数据库的,但是真正起作用的是最后两行,直接改对象的名字。魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! w; l& m9 g' P. {5 K6 A+ X0 i

' a4 g7 \# u  s9 ^0 L) i—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート                local query = "Update tbl_character set `Name` = '".._data.."' Where Cdkey = '"..Char.GetData(_Pl ...
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. t; v" @$ f( }8 U2 @4 r
% [  Z5 C2 s: w" j. h  I! k
lua修改玩家内存只是修改了GMSV内的内存,在玩家客户端内并没有显示,因此需要用UpChar函数更新玩家客户端显示; \5 N; [7 ]7 H, _! ?
同理还有NPC创建时候使用的UpChar函数,这个函数如果是由全局注册init来触发的,会导致你即使重载脚本,NPC也加载不出来,必须重启服务器(重新加载init)才行—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 F! r6 a% c, p1 S8 B. a
备注:创建NPC也可以用其他函数或者if,GE不要使用if,会有奇怪的错误
+ B5 v+ J( D5 h* p% i5 X2 z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛! J2 V0 `+ D' C1 O* I
GE的教程和GA是互通的,他们只不过是文件夹不一样,文件名不一样,函数名不一样,但运行逻辑都是一样的,只是WIN7和WIN10的区别而已,只要能看懂本帖说的GA的内容,GE和GP自然就懂了
4 M9 h+ Q: V: o1 obbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, g% B' \/ A9 \5 {  r1 a
[ 本帖最后由 王宫召唤士盖兹 于 2019-8-30 11:22 编辑 ]

TOP

发新话题