|
小妖

- UID
- 43204
- 精华
- 0
- 积分
- 33
- 威望
- 0 度
|
9楼
大 中
小 发表于 2019-2-24 12:31 只看该作者
四:关于lua引擎的形参返回值,以及类型转换函数 妖城在线论坛0 k/ H1 Q' E4 ~, {0 i- }# m# w
妖城在线论坛5 K/ ?8 K. p$ q* J+ D# a/ [" W
根据上几节的内容,你肯定对形参后面各种对象index,道具index,战斗index一片迷惘,肯定想问,你们脚本里面写的是if(战斗index >= 0 ) then ... 我怎么知道这个index是多少,>=0又是什么意思,为什么是>=0
+ }0 ?4 J1 l4 e5 ?9 wbbs.mocwww.com这节就来讲讲关于形参返回值的东西
X H! W5 x! s) C; t" O1 f% x; p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート想学会写魔力的lua,首先要搞明白的就是形参返回值究竟是多少,是什么类型,只是一串英文,index什么的,根本是无法用于脚本编程的,我们需要知道每个形参的返回值,才能明白是写>=0还是>=1 魔力私服,最新魔力宝贝私服技术交流- J. N" y2 F8 t. x6 n. f/ \
每个想写脚本的人,第一件事就是把要用到的形参返回值都测试出来,然后记录到你的笔记本,txt,excel,word上 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート i% p- K8 j0 I; N
目前论坛里面没有分享具体返回值的,当然,为了更好的理解lua返回值,我推荐每个人都自己实测
! u) |. p/ \2 ], j0 L5 G9 @bbs.mocwww.com具体方法有很多,这里举个例子 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ f( @! w2 }% O
获得战斗index的代码:
& ]$ A" G) M& @, K魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表NL.RegBattleStartEvent(nil,"MyBattleStartEvent");--注册函数NL.RegBattleStartEvent,创建一个进入战斗就触发的事件
0 j5 F# L. m) P6 a! Abbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 k3 `+ m0 `$ ~4 c; |: A
function MyBattleStartEvent(BattleIndex) 妖城在线论坛) _2 N/ }% Y) j
NLG.SystemMessage(CharIndex,"BattleIndex的值是" .. BattleIndex .. "它的数据类型是" .. type(BattleIndex));
4 }7 m$ ]- F! K1 D7 {$ O( t' t/ f: M return 0;
" q2 ^2 p$ O. {4 e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートend
& p/ t% @* Z" i! P3 J) t( e8 \/ V魔力私服,最新魔力宝贝私服技术交流
2 |0 P" }) X7 U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表返回函数:BattleStartEventCallBack(BattleIndex) 魔力私服,最新魔力宝贝私服技术交流5 g* W4 x6 @& k3 S
参数说明:BattleIndex: 数值型 响应事件的战斗index,该值由Lua引擎传递给本函数。
D3 F6 T+ d9 B: B" {- p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 U9 A( X( k# r' l. t0 ~6 j: j8 B C
在创建一个进入战斗就触发的事件内调用MSG函数NLG.SystemMessage显示战斗index到游戏内(也可以用print函数输出到GMSV控制台,个人不喜欢输出到控制台,我那个data报错太多刷的太快  ) ; k* I# Z+ |; ^3 J/ p: B
这样我们就能获得战斗index和他的类型了 魔力私服,最新魔力宝贝私服技术交流/ h) m0 n- ?" |# ]& A9 u" n& h
具体写功能的时候,需要调用到哪些函数,就测试哪些函数,测试完毕后记录下来也是一个良好的习惯,好记性不如烂笔头
+ B+ W0 P6 Y4 vbbs.mocwww.com妖城在线论坛+ ] B, n F+ K5 W L# E
返回值的类型也是比较重要的信息
8 a3 J: _- H) o8 E; n& ^) W2 ^! }有些时候,函数返回值会是一个字符串,例如一个形参B返回的值是字符串"1",新手常常被坑在此处,明明后续代码中判断 b = 1 是对的,却根本没效果,因为返回的是字符串的时候,你应该写成 b = "1",代码才会正常运行 妖城在线论坛% O+ ^: j$ q2 ~1 w8 C
这样非常不方便,在此介绍一个非常常用的函数
+ r) m; ~) K5 h9 k魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表tonumber(e)
* F: |9 m! a5 ^9 v: c4 S' d妖城在线论坛这个函数会尝试将它的参数转换为10进制数字,如果参数已经是一个数字或者是一个可以转换成数字的字符串,那么这个函数就会返回转换后的数字,否则返回nil表示无法转换。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ u$ v0 v' e8 E
*:该函数其实还能转换为10进制以外的数字,但考虑到魔力脚本的实用性,以及篇幅问题,这边不作介绍,有兴趣的可以百度 bbs.mocwww.com5 ^6 I7 i9 {6 x! O1 \+ d
本例中,只要写成tonumber(b) 返回的"1"字符串,就会转换为数值(number)的1
* O% A1 }* O' V0 L. C—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート*:同样也有一个函数tostring(e)可以把数值(number)类转换为字符串类 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( L1 m1 |6 ~* o4 @0 j
" H- }2 h, K* y$ ?魔力私服,最新魔力宝贝私服技术交流本节内容就到这里 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ X; }# _& f/ t4 [1 [
上一贴说要介绍LV1遇敌的lua,感觉也没什么可以介绍的,干脆就放2个文件,大家自己看吧 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- `" T5 [. ~( X
新手推荐看未注释版本,自行翻译代码的意思,只有自行去解析了,才能加深理解lua 妖城在线论坛* Y9 F1 G; S8 c0 d7 U3 Z: f" S
教学用一级宠物提示 - 无注释版.7z (543 Bytes)
! W$ |; Q7 E! mbbs.mocwww.com看不懂的话,这里有我写的注释版本 . ?1 k, t3 o+ E4 }' H$ \2 Z
教学用一级宠物提示.7z (2.25 KB)
4 k% J* l, |9 G5 v8 ~: b' Q妖城在线论坛—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# V1 P* R3 \1 |' x, ?, \! ?9 c
下一节就讲讲tonumber(e)的使用实例,以及如何建立一个luaNPC & h% ?' E4 R+ D6 O! e) R" a
PS.  我这更新速度,新手自学速度都比我更新的快
5 r& ]8 s' w, y6 s$ ^8 Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
- ?' B4 J6 N& s9 A; k魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表[ 本帖最后由 王宫召唤士盖兹 于 2019-2-24 12:50 编辑 ]
|