龙族引擎

 立即注册
搜索
查看: 4347|回复: 12

[交流] 龙族Lua使用问题交流贴(龙族官方lua技术镇楼)

[复制链接]

5

主题

24

帖子

36

积分

新手

Rank: 1

积分
36
发表于 2020-11-18 11:14:54 | 显示全部楼层 |阅读模式
不一定及时回复,看见就会回复
目的是为了把所有常见的问题,归纳在一起,方便遇到相同问题的其他GM解决问题

此贴仅限Lua相关主题讨论
Lua模块使用中,遇到的问题
Lua大众急需的好的功能
引擎事件触发优化,增加
等等............
回复

使用道具 举报

4

主题

15

帖子

9

积分

新手

Rank: 1

积分
9
发表于 2020-11-18 20:39:53 | 显示全部楼层
local actorList = Client.getActorList(0); -- 获取当前视野范围内的怪物列表

只能获取到尸体.
回复

使用道具 举报

5

主题

24

帖子

36

积分

新手

Rank: 1

积分
36
 楼主| 发表于 2020-11-24 13:40:38 | 显示全部楼层
94579790 发表于 2020-11-18 20:39
local actorList = Client.getActorList(0); -- 获取当前视野范围内的怪物列表

只能获取到尸体. ...

经过测试,没有这个问题
这个是客户端的接口
返回的列表里面会存在nil值非连续,要做判断
  1. local actorList = Client.getActorList(0); -- 获取当前视野范围内的怪物列表
  2.         print(actorList)
  3.         for i = 1 ,#actorList do
  4.           local monster = actorList[i];
  5.           if monster then
  6.                  print(string.format("%s 坐标为 (%d,%d).", monster.name, monster.x, monster.y))
  7.                 end  
  8.         end;
复制代码
回复

使用道具 举报

4

主题

15

帖子

9

积分

新手

Rank: 1

积分
9
发表于 2020-11-25 09:26:42 | 显示全部楼层
lua啊lua 发表于 2020-11-24 13:40
经过测试,没有这个问题
这个是客户端的接口
返回的列表里面会存在nil值非连续,要做判断

大佬,应该怎么获取到啊,哪里写错了啊,不砍死不输出名字坐标呢?

例
回复

使用道具 举报

5

主题

24

帖子

36

积分

新手

Rank: 1

积分
36
 楼主| 发表于 2020-11-25 10:01:20 | 显示全部楼层
94579790 发表于 2020-11-25 09:26
大佬,应该怎么获取到啊,哪里写错了啊,不砍死不输出名字坐标呢?

等修复,这个部分版本客户端可以,一般都是先有杀死怪物后,才会获取的到
回复

使用道具 举报

5

主题

24

帖子

36

积分

新手

Rank: 1

积分
36
 楼主| 发表于 2020-12-21 17:03:47 | 显示全部楼层
lua 获取物品db,技能

  1. function printstditems()
  2.         local StdItems = LuaExecSQL("select * from StdItems")
  3.         local StdItemsDB = {}
  4.         for record in string.gmatch(StdItems,"(.-)\r\n")
  5.         do
  6.                 StdItemsDB[#StdItemsDB+1] = string.split(record,"|")
  7.         end
  8.         printDebug(StdItemsDB)
  9. end

  10. function printmagic()
  11.         local Magic = LuaExecSQL("select * from Magic")
  12.         local MagicDB = {}
  13.         for record in string.gmatch(Magic,"(.-)\r\n")
  14.         do
  15.                 MagicDB[#MagicDB+1] = string.split(record,"|")
  16.         end
  17.         printDebug(MagicDB)
  18. end

  19. function printmonster()
  20.         local Monster = LuaExecSQL("select * from Monster")
  21.         local MonsterDB = {}
  22.         for record in string.gmatch(Monster,"(.-)\r\n")
  23.         do
  24.                 MonsterDB[#MonsterDB+1] = string.split(record,"|")
  25.         end
  26.         printDebug(MonsterDB)
  27. end
复制代码

db,怪物db
TNQ[FB$EG4Y@4E$@ZI%}S`S.png
回复

使用道具 举报

5

主题

24

帖子

36

积分

新手

Rank: 1

积分
36
 楼主| 发表于 2020-12-21 17:35:06 | 显示全部楼层
最终显示
456.png
回复

使用道具 举报

5

主题

24

帖子

36

积分

新手

Rank: 1

积分
36
 楼主| 发表于 2020-12-24 15:05:20 | 显示全部楼层
lua操作传奇变量
  1. -- 获取传奇数值变量N1的值
  2. local n1 = GETMIRVAL("<$STR(n1)>")
  3. n1 = n1 + 1
  4. -- 修改N1的值比原来的大1
  5. MOV("n1 "..n1)
复制代码


回复

使用道具 举报

5

主题

24

帖子

36

积分

新手

Rank: 1

积分
36
 楼主| 发表于 2021-1-29 11:57:19 | 显示全部楼层
-------------------------
        Itemshow.showText((" 0"):rep(20),0)
        local hintItem = Itemshow.showText((" "):rep(8).."<$Item.Name>",151,18,1)
        hintItem.setBackImage("ItemClient.Pak",25,0,-6,3,500,0,0,0,0,0,0)
        Itemshow.showText("-")
        Itemshow.showText("[首充获得=佩戴激活]",222)
        Itemshow.showText((" 0"):rep(5),0)
        Itemshow.showItemIcon(" ",255,9,0,0,1)
        Itemshow.showText("重量 <$Item.Weight>",230,10,0,50,80,-35)
--        Itemshow.showText("持久 <$Item.Dura> - <$Item.DuraMax>",230,10,0,50,80,-20)
        Itemshow.showText( ("持久 %d   - %d"):format(item.dura/1000,item.duramax/1000),230,10,0,50,80,-30)
        Itemshow.showText("[基础属性]",230)
        Itemshow.showText("攻击:    <$Item.DC> - <$Item.MaxDC>",223,10)
        Itemshow.showText("魔法:    <$Item.MC> - <$Item.MaxMC>",223,10)
        Itemshow.showText("道术:    <$Item.SC> - <$Item.MaxSC>",223,10)
        Itemshow.showText("准确:       +<$Item.MaxAC> ",223,10)
        Itemshow.showText("需要等级:    <$Item.NeedLevel> ",223,10)
        Itemshow.showText("-")
       
        -------------------------
回复

使用道具 举报

5

主题

24

帖子

36

积分

新手

Rank: 1

积分
36
 楼主| 发表于 2021-1-29 11:58:50 | 显示全部楼层
  1. -------------------------
  2.         Itemshow.showText((" 0"):rep(20),0)
  3.         local hintItem = Itemshow.showText((" "):rep(8).."<$Item.Name>",151,18,1)
  4.         hintItem.setBackImage("ItemClient.Pak",25,0,-6,3,500,0,0,0,0,0,0)
  5.         Itemshow.showText("-")
  6.         Itemshow.showText("[首充获得=佩戴激活]",222)
  7.         Itemshow.showText((" 0"):rep(5),0)
  8.         Itemshow.showItemIcon(" ",255,9,0,0,1)
  9.         Itemshow.showText("重量 <$Item.Weight>",230,10,0,50,80,-35)
  10. --        Itemshow.showText("持久 <$Item.Dura> - <$Item.DuraMax>",230,10,0,50,80,-20)
  11.         Itemshow.showText( ("持久 %d   - %d"):format(item.dura/1000,item.duramax/1000),230,10,0,50,80,-30)
  12.         Itemshow.showText("[基础属性]",230)
  13.         Itemshow.showText("攻击:    <$Item.DC> - <$Item.MaxDC>",223,10)
  14.         Itemshow.showText("魔法:    <$Item.MC> - <$Item.MaxMC>",223,10)
  15.         Itemshow.showText("道术:    <$Item.SC> - <$Item.MaxSC>",223,10)
  16.         Itemshow.showText("准确:       +<$Item.MaxAC> ",223,10)
  17.         Itemshow.showText("需要等级:    <$Item.NeedLevel> ",223,10)
  18.         Itemshow.showText("-")
  19.        
  20.         -------------------------
复制代码

要在模块初始化使用
SETITEMSHOW(0)                                                                   
过滤客户端默认显示
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|龙族引擎 ( 备案信息 )

GMT+8, 2024-4-20 19:45 , Processed in 0.048821 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表