cgmsv引擎论坛

 找回密码
 注册/Sign up
搜索
查看: 1385|回复: 1

[LUA] 单人、组队选择窗体封装,可选择队伍中所有玩家和宠物

[复制链接]

Rank: 2

发表于 2021-12-8 03:11:34 | 显示全部楼层 |阅读模式
本帖最后由 2bman 于 2021-12-8 03:13 编辑

因为没在 cgmsv 的文档中发现组队选择框功能,想添加某些特殊功能的药水或者道具,就必须要自己写选择框。
然而 cgmsv 的选择框也有许多限制,比如自定义的数据只能通过 NLG.ShowWindowTalked 中的 SeqNo 参数传递,不是很直观也很不好用。
所以我费了一点脑细胞,直接写了一个封装库,将个人选择、团队选择功能集合起来,通过全局变量和自定义回调函数来实现了对于选择框的扩展。

具体用法很简单:
使用 playerSelect(player,npc,luaFile,funcName,pars) 这个函数即可打开个人选择框,可以选择自己与宠物。
使用 teamSelect(player,npc,luaFile,funcName,pars) 这个函数即可打开组队选择框,可以选择队伍中的所有玩家,也可以选择具体的角色或者宠物。
最后,你还可以设定回调函数与自定义参数,当激活你的回调函数时,自定义参数 pars 也会被传递给你的回调函数。

一个调用代码,
  1. local player = 当前角色索引
  2. teamSelect(player,0,nil,"testcallback", {player=player,solt=5} )
复制代码


回调函数示例
  1. function testcallback(player,target,ispet,pars)
  2.     NLG.SystemMessage(player, "player = "..player.." target = "..target.." ispet = ".. ispet)
  3.     if pars then
  4.         NLG.SystemMessage(player, "pars.player = ".. pars.player .." pars.solt = ".. pars.solt)
  5.     end
  6. end
复制代码


使用效果








补充内容 (2021-12-8 05:54):
发现BUG,请将 local function selectTarget(player,target,isPet) 前面的 local 删除。

ClsoSelect.7z

1.5 KB, 下载次数: 0, 下载积分: 金币 -1

评分

参与人数 1金币 +1 收起 理由
Zack + 1 原创资源贴

查看全部评分

Rank: 2

 楼主| 发表于 2021-12-8 05:38:35 | 显示全部楼层
本帖最后由 2bman 于 2021-12-8 05:42 编辑

压缩包内忘记加受伤描述的函数了,请自行添加
  1. function getSsInfo(target)
  2.         local ss = Char.GetData( target, %对象_受伤% )
  3.         if ss == nil or ss < 0 then
  4.                 --return nil
  5.                 return "健康"
  6.         elseif ss == 0 then
  7.                 return "健康"
  8.         elseif ss < 26 then
  9.                 return "白伤"
  10.         elseif ss < 51 then
  11.                 return "黄伤"
  12.         elseif ss < 76 then
  13.                 return "粉伤"
  14.         else
  15.                 return "红伤"
  16.         end
  17. end
复制代码



您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2024-11-21 21:40 , Processed in 0.201501 second(s), 14 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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