LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 8122|回复: 1

泰坦知识库--泰坦API函数(军团再临)

 关闭 [复制链接]
发表于 2016-10-27 19:17:53 | 显示全部楼层 |阅读模式
注意!以下所有API仅限库脚本中使用。
目录 [隐藏]
1        常见的数据类型
1.1        position (table)
1.2        object (string)
1.3        unitId (string)
1.4        unitGuid (string)
2        objects | objectCount[, objectWithMostNeighbors, mostNeighborCount] = GetObjects(filterDescriptor)
2.1        filterDescriptor (table)
2.1.1        IncludedTypes (string table)
2.1.2        ExcludedTypes (string table)
2.1.3        IncludedNameKeywords (string[])
2.1.4        ExcludedNameKeywords (string[])
2.1.5        IncludedUnitReactions (string table)
2.1.6        ExcludedUnitReactions (string table)
2.1.7        Scales (scale table)
2.1.8        FilterFunction (function)
2.1.9        OutputType (string)
2.1.10        MaxOutputCount (number)
2.1.11        NeighborSearchRange (number)
2.2        objects (object table) | objectCount (number)
2.3        objectWithMostNeighbors (object)
2.4        mostNeighborCount (number)
3        object = GetObject(unit)
3.1        unit (unitId | unitGuid)
3.2        object (object)
4        name = GetObjectName(object)
4.1        object (object | unitId | unitGuid)
4.2        name
5        position = GetObjectPosition(object[, unpack])
5.1        object (object | unitId | unitGuid)
5.2        unpack (boolean)
5.3        position (position)
6        distance = GetDistance(object1 | position1, object2 | position2)
6.1        object1 (object | unitId | unitGuid) | position1 (position)
6.2        object2 (object | unitId | unitGuid) | position2 (position)
6.3        distance (number)
7        creator = GetObjectCreator(object)
7.1        object (object | unitId | unitGuid)
7.2        creator (unitGuid)
8        height = GetObjectHeight(object)
8.1        object (object | unitId | unitGuid)
8.2        height (number)
9        target = GetUnitTarget(unit)
9.1        unit (object | unitId | unitGuid)
9.2        target (unitGuid)
10        radius = GetUnitBoundingRadius(object)
10.1        object (object | unitId | unitGuid)
10.2        radius (number)
11        reach = GetUnitCombatReach(object)
11.1        object (object | unitId | unitGuid)
11.2        reach (number)
12        screenCoordinate = GetScreenCoordinate(object | position)
12.1        object (object | unitId | unitGuid) | position (position)
12.2        screenCoordinate (table)
13        cameraPosition = GetCameraPosition()
13.1        cameraPosition (position)
14        missiles = GetMissiles()
14.1        missiles (missile table)
14.1.1        missile (table)
15        hasMovementState = CheckMovementState(object, movementType)
15.1        object (object | unitId | unitGuid)
15.2        movementType (string)
15.3        hasMovementState (boolean)
16        isIntersected = CheckIntersection(position1, position2, terrains)
16.1        position1 (position)
16.2        position2 (position)
16.3        terrains (string table)
16.4        isIntersected (boolean)
17        isBobbing = IsBobbing(bobber)
17.1        bobber (object | unitId | unitGuid)
17.2        isBobbing (boolean)
18        isPending = IsAoeSpellPending()
18.1        isPending (boolean)
19        ClickTerrain(position | object)
19.1        position (position) | object (object | unitId | unitGuid)
20        ResetAfkTimer()
21        SetFacing(r)
21.1        r (number)
22        CancelAoeSpell()
23        ClickToMove(object | position)
23.1        object (object | unitId | unitGuid) | position (position)
常见的数据类型
position (table)
{X = x, Y = y, Z = z, R = r},用于表示游戏中的3D世界坐标,其中R是物体的朝向(弧度)。

object (string)
"0xFFFF...", 用于标识游戏中的一个物体。由于物体随时可能存在,也随时可能消失,所以该数据应该随用随取,不应保存。(注意:该数据可以完全兼容所有接受unitId的参数。)

unitId (string)
暴雪官方的动态单位标识符,参见UnitId

unitGuid (string)
暴雪官方的静态物体标识符,参见UnitGUID


objects | objectCount[, objectWithMostNeighbors, mostNeighborCount] = GetObjects(filterDescriptor)
获取符合筛选条件的所有物体。

filterDescriptor (table)
筛选条件定义表,可以选取以下0-11个属性。
{
    IncludedTypes: string[],
    ExcludedTypes: string[],
    IncludedNameKeywords: string[],
    ExcludedNameKeywords: string[],
    IncludedUnitReactions: string[],
    ExcludedUnitReactions: string[],
    Scales: {
        Center: position,
        MinDistance: number,
        MaxDistance: number
    }[],
    FilterFunction: function,
    OutputType: string,
    MaxOutputCount: number,
    NeighborSearchRange: number,
}
IncludedTypes (string table)
物体类型白名单,包括"Object", "Item", "Container", "Unit", "Player", "GameObject", "DynamicObject", "Corpse", "AreaTrigger", "SceneObject", "Conversation"。
例如:{"Item", "Unit"}表示选取物品或单位。

"Object" 包括所有对象
"Item" 包括背包(好像还有材料银行的东西)
"Container" 各种包,包含银行的
"Unit" 所有能选择的对象,包括npc,玩家,怪
"Player" 玩家
"GameObject" 所有能点的东西,比如佩佩,桌子椅子
"DynamicObject"
"Corpse" 所有尸体
"AreaTrigger"
"SceneObject"
"Conversation"
ExcludedTypes (string table)
物体类型黑名单,包括"Object", "Item", "Container", "Unit", "Player", "GameObject", "DynamicObject", "Corpse", "AreaTrigger", "SceneObject", "Conversation"。
例如:{"Player"}表示排除玩家。
IncludedNameKeywords (string[])
物体名称包含关键字白名单。
例如:"鱼漂"表示选取所有包含“鱼漂”关键词的物体。
ExcludedNameKeywords (string[])
物体名称包含关键黑名单。
例如:"卫兵"表示排除所有包含“卫兵”关键词的物体。
IncludedUnitReactions (string table)
单位友好度白名单,包括"ExceptionallyHostile", "VeryHostile", "Hostile", "Neutral", "Friendly", "VeryFriendly", "ExceptionallyFriendly", "Exalted"。
例如:{"ExceptionallyHostile", "VeryHostile", "Hostile", "Neutral"}表示选取所有敌对和中立的单位。
ExcludedUnitReactions (string table)
单位友好度黑名单,包括"ExceptionallyHostile", "VeryHostile", "Hostile", "Neutral", "Friendly", "VeryFriendly", "ExceptionallyFriendly", "Exalted"。
例如:{"ExceptionallyHostile", "VeryHostile", "Hostile", "Neutral"}表示排除所有敌对和中立的单位。
Scales (scale table)
物体范围并集。 例如:

{
    {
        Center: position1,
        MinDistance: 5,
        MaxDistance: 10
    },
    {
        Center: position2,
        MaxDistance: 30
    }
}
表示选取以坐标position1为中心最小5码最大10码,以及以坐标position2为中心最大30码的所有目标。

FilterFunction (function)
自定义过滤条件函数:function(unit)
返回true则表示需要保留unit,其他值或出错均过滤unit。 例如:

function(unit)
    return not UnitIsDeadOrGhost(unit);
end
表示过滤掉所有已死亡的单位。

OutputType (string)
决定函数返回值的类型,包括"Table"(默认), "Unpacked", "Count"。
Table表示返回值为object table,Unpacked表示返回值为N个离散object,Count表示返回值为number(object个数)。
三者在执行速度上略有不同,Table与Unpacked差不多,Count最快。
MaxOutputCount (number)
限制最多返回的物体个数,0表示不限制。返回较少的物体可成比例减少函数的开销。
NeighborSearchRange (number)
启用寻找周围邻近目标数量最多的目标,并设置定义“邻近”的最大码数。

objects (object table) | objectCount (number)
找到的物体列表,或者找到的物体的个数。

objectWithMostNeighbors (object)
当NeighborSearchRange>0时,该返回值是具有最多邻近目标的目标。

mostNeighborCount (number)
当NeighborSearchRange>0时,该返回值是具有最多邻近目标的个数。


object = GetObject(unit)
获取指定物体。

unit (unitId | unitGuid)
指定物体的unit标识符。

object (object)
该物体的标识符。


name = GetObjectName(object)
获取指定物体的名称。

object (object | unitId | unitGuid)
指定物体。

name
指定物体的名称,如果物体不存在则返回nil。


position = GetObjectPosition(object[, unpack])
获取指定物体的坐标。

object (object | unitId | unitGuid)
指定物体。

unpack (boolean)
是否以离散值(x, y, z, r)形式返回,默认是false。

position (position)
指定物体的坐标,如果物体不存在则返回nil。


distance = GetDistance(object1 | position1, object2 | position2)
获取两个物体(取模型中心)或坐标之间的距离。

object1 (object | unitId | unitGuid) | position1 (position)
物体1或坐标1。

object2 (object | unitId | unitGuid) | position2 (position)
物体2或坐标2。

distance (number)
距离码数,如果有两个物体有任何不存在则返回nil。


creator = GetObjectCreator(object)
获取指定物体创建者的GUID。

object (object | unitId | unitGuid)
指定物体。

creator (unitGuid)
该物体创建者的GUID,如果创建者不存在则返回nil。


height = GetObjectHeight(object)
获取指定物体的高度,可用于视野判断Z轴调整。注意,实测发现该函数主要针对玩家和部分NPC的返回值有具体值,其他物体均返回常量值2.07。

object (object | unitId | unitGuid)
指定物体。

height (number)
物体高度码数。


target = GetUnitTarget(unit)
获取指定单位当前目标的GUID。

unit (object | unitId | unitGuid)
指定单位。

target (unitGuid)
该单位当前目标的GUID,如果单位不存在或者没有当前目标则返回nil。


radius = GetUnitBoundingRadius(object)
获取指定物体的模型半径。

object (object | unitId | unitGuid)
指定物体。

radius (number)
该物体的模型半径,如果物体不存在则返回nil。


reach = GetUnitCombatReach(object)
获取指定物体的作战半径。

object (object | unitId | unitGuid)
指定物体。

reach (number)
该物体的作战半径,如果物体不存在则返回nil。


screenCoordinate = GetScreenCoordinate(object | position)
获取指定物体或游戏3D坐标在屏幕上的2D坐标,方便在屏幕上绘制UI。

object (object | unitId | unitGuid) | position (position)
指定物体或游戏3D坐标。

screenCoordinate (table)
在屏幕上的2D坐标比例:{X = dx, Y = dy},其中dx,dy取值区间为0-1,表示从屏幕左下角分别向右和向上的位置比例。详见UI坐标系统。


cameraPosition = GetCameraPosition()
获取当前摄像机的游戏3D坐标。

cameraPosition (position)
当前摄像机的游戏3D坐标。


missiles = GetMissiles()
获取游戏场景中所有的飞弹。

missiles (missile table)
飞弹属性表数组。

missile (table)
飞弹属性表,其中包括以下key:

{
    CasterGuid (unitGuid): 施法者GUID(如果不存在为nil)
    TargetGuid (unitGuid): 打击目标GUID(如果不存在为nil)
    SpellId (number): 飞弹技能ID(如果不存在为0)
    SpellVisualId (number): 飞弹效果ID
    Position (position): 飞弹当前坐标
    FirePosition (position): 飞弹起点坐标
    ImpactPosition (position): 飞弹终点坐标
}

hasMovementState = CheckMovementState(object, movementType)
检查指定物体是否具备某个移动状态。

object (object | unitId | unitGuid)
指定物体。

movementType (string)
移动类型,可取值为:"Forward" | "Backward" | "StrafeLeft" | "StrafeRight" | "TurnLeft" | "TurnRight" | "PitchUp" | "PitchDown" | "Walking" | "Immobilized" | "Falling" | "FallingFar" | "Swimming" | "Ascending" | "Descending" | "CanFly" | "Flying"

hasMovementState (boolean)
该物体是否具备该移动状态。


isIntersected = CheckIntersection(position1, position2, terrains)
检查坐标1和坐标2之间是否有障碍物。

position1 (position)
坐标1。

position2 (position)
坐标2。

terrains (string table)
用于指定障碍物类别,可取值为:BoundingModel | Structure | Ground | Liquid | MovableObject。

isIntersected (boolean)
是否有障碍物。


isBobbing = IsBobbing(bobber)
判断指定鱼漂是否有鱼上钩。

bobber (object | unitId | unitGuid)
指定鱼漂。

isBobbing (boolean)
是否有鱼上钩,如果鱼漂不存在则返回nil。


isPending = IsAoeSpellPending()
判断当前是否有AOE型技能待施放(有绿圈)。

isPending (boolean)
是否有绿圈。


ClickTerrain(position | object)
点击地面(AOE施法第二步)。

position (position) | object (object | unitId | unitGuid)
点击坐标或目标物体所处坐标


ResetAfkTimer()
重置AFK计时器(5分钟重新开始计算)。


SetFacing(r)
转身。

r (number)
朝向弧度,等同于position.R。


CancelAoeSpell()
取消AOE技能(关闭绿圈)。


ClickToMove(object | position)
使用点击地面移动到指定位置。注意,函数需要打开界面设置里的“点击移动”才可以生效,也可以通过执行SetCVar("AutoInteract",1)开启,SetCVar("AutoInteract",0)关闭。

object (object | unitId | unitGuid) | position (position)
指定坐标或指定物体所在坐标。

回复

使用道具 举报

发表于 2017-3-31 14:03:59 | 显示全部楼层
攒够钱买一个试试看看好不好用
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 06:16 AM , Processed in 0.044264 second(s), 17 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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