LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 2237|回复: 4

[MS] 关于MS目标选中的问题

[复制链接]
发表于 2015-3-8 00:56:28 | 显示全部楼层 |阅读模式
有没有这样一个函数,选择处于战斗状态的可攻击的敌对目标

翻了函数手册,“判断是否是敌对”、“是否处于战斗状态”。这两个函数都有,但是没找有关“选中这个目标”的函数。

举例,在FS使用完幻灵水晶之后,玩家的目标会自动切换到水晶,在打完一波爆发水晶消失以后,玩家便会失去目标然后发呆。
这个问题如何解决,请各位大神指点。多谢

回复

使用道具 举报

发表于 2015-3-9 09:00:41 | 显示全部楼层
本帖最后由 暗影流沙 于 2015-3-9 09:17 编辑

追悼大大已经回复得很清楚了。
因为我也有个法师,关于幻灵水晶消失后目标获取的写法
最简单的是,如果当前没目标,则选取最近敌人为目标
if  not UnitExists("playertarget")  then
TargetNearestEnemy()
end
但这样会容易ADD,卡视角
下面是比较复杂一点的写法,当你再团队中时可以使用
  1. local GetGroupHeaderType= function ()--获得所在队伍的属性
  2.    local kind, start, stop;
  3.    
  4.    local nRaid = GetNumGroupMembers();
  5.    local nParty = GetNumSubgroupMembers();
  6.    if ( IsInRaid() ) then
  7.       kind = "RAID";
  8.    elseif ( IsInGroup()) then
  9.       kind = "PARTY";
  10.    else
  11.       kind = "SOLO";
  12.    end
  13.    if ( kind ) then
  14.       if ( kind == "RAID" ) then
  15.          start = 1;
  16.          stop = nRaid;
  17.       else
  18.          if ( kind == "SOLO"  ) then
  19.             start = 0;
  20.          else
  21.             start = 1;
  22.          end
  23.          stop = nParty;
  24.       end
  25.    end
  26.    return kind, start, stop;
  27. end
  28. local GetGroupRosterInfo=function(kind, index)--队伍角色
  29.    local _, unit, name, subgroup, className, role, server, assignedRole;
  30.    if ( kind == "RAID" ) then
  31.       unit = "raid"..index;
  32.       name, _, subgroup, _, _, className, _, _, _, role, _, assignedRole = GetRaidRosterInfo(index);
  33.    else
  34.       if ( index > 0 ) then
  35.          unit = "party"..index;
  36.       else
  37.          unit = "player";
  38.       end
  39.       if ( UnitExists(unit) ) then
  40.          name, server = UnitName(unit);
  41.          if (server and server ~= "") then
  42.             name = name.."-"..server
  43.          end
  44.          _, className = UnitClass(unit);
  45.          if ( GetPartyAssignment("MAINTANK", unit) ) then
  46.             role = "MAINTANK";
  47.          elseif ( GetPartyAssignment("MAINASSIST", unit) ) then
  48.             role = "MAINASSIST";
  49.          end
  50.          assignedRole = UnitGroupRolesAssigned(unit)
  51.       end
  52.       subgroup = 1;
  53.    end
  54.    return unit, name, subgroup, className, role, assignedRole;
  55. end
  56. local tankInfo=function()--找到队伍中T的信息
  57.    local kind, start, stop=GetGroupHeaderType()
  58.    if stop then
  59.       for i=1,stop do
  60.          if select(6,GetGroupRosterInfo(kind, i))=="TANK" then
  61.             return GetGroupRosterInfo(kind, i)
  62.          end
  63.       end
  64.    end
  65.    return false
  66. end

  67. local Tunit=tankInfo()--T的信息
  68. local Tunittarget=Tunit.."target"--以T当前的目标做为目标
  69. if  not UnitExists("playertarget") and  UnitExists(Tunittarget) and UnitCanAttack("player",Tunittarget) and msII(Tunittarget)
  70. then
  71. TargetUnit(Tunittarget)
  72. end
复制代码
如实装需完善其他判断信息
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-9 09:42:51 | 显示全部楼层
暗影流沙 发表于 2015-3-9 09:00
追悼大大已经回复得很清楚了。
因为我也有个法师,关于幻灵水晶消失后目标获取的写法
最简单的是,如果当 ...

非常清楚,感激不尽
回复 支持 反对

使用道具 举报

发表于 2016-12-31 13:20:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2017-1-23 16:53:16 来自手机 | 显示全部楼层
学习了,谢谢。继续努力。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-5-5 02:08 AM , Processed in 0.078225 second(s), 21 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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