Ascent-Lua函数详细说明

--[[命令列表:]]--

--[[.:对话菜单 功能函数:.]]--

:GossipCreateMenu     --创建对话菜单menu
:GossipMenuAddItem    --添加一个菜单选项
:GossipSendMenu       --将生成的对话菜单发送给玩家
:GossipComplete       --关闭对话菜单
:GossipSendPOI        --在地图上生成标注(问路时候使用)

--[[.:获取 功能函数:.]]--

:GetMainTank()     --获取主坦克.
:GetAddTank()     --获取副坦克.
:GetX()      --获取当前单位的 X 坐标.
:GetY()      --获取当前单位的 Y 坐标.
:GetZ()      --获取当前单位的 Z 坐标.
:GetO()      --获取当前单位的 O 坐标. (面朝的方向)
:GetTauntedBy()    --获取当前单位的嘲讽对象.
:GetSoulLinkedWith()  --获取当前单位的灵魂联结对象.
:GetItemCount(xxxx)   --获取玩家背包中物品 "xxxx" 的数量.  XXXX 是指物品ID.
:GetName()      --获取当前单位的名字.
:GetHealthPct()    --获取当前单位的生命百分比.
:GetManaPct()     --获取当前单位的魔法值百分比.
:GetInstanceID()    --获取当前单位所在的副本ID(如果在副本中的话)
:GetClosestPlayer()   --获取最近的玩家.
:GetRandomPlayer(flag)      --随机获取一个玩家.

       --以下是随机获取玩家的时候flag的枚举类型
       RANDOM_ANY = 0,                   --任意随机
       RANDOM_IN_SHORTRANGE = 1,         --近距离内随机
       RANDOM_IN_MIDRANGE = 2,           --中距离内随机
       RANDOM_IN_LONGRANGE = 3,          --远距离内随机
       RANDOM_WITH_MANA = 4,             --根据魔法值随机
       RANDOM_WITH_RAGE = 5,             --根据怒气值随机
       RANDOM_WITH_ENERGY = 6,           --根据能量值随机
       RANDOM_NOT_MAINTANK= 7            --在非主坦克间随机
       --完毕--
 
:GetRandomFriend()    --随机获取一个友好单位(和当前单位关系为友好的)
:GetUnitBySqlId()    --?? 无效.
:GetPlayerClass()    --获得玩家的职业, 返回是职业代号 (数字).
:GetHealth()     --获得当前单位的生命值.
:GetMaxHealth()    --获得当前单位的生命最大值.
:GetCreatureNearestCoords() --获得某个坐标附近的某个生物.
:GetCreatureGuid()          --获得生物的GUID值.
:GetGameObjectGuid()        --获得游戏物体的GUID值.
:GetPlayerCountInRadius()   --获得一定范围内的玩家数量.
:GetGameObjectNearestCoords()--获得某个坐标附近的某个游戏物体.
:GetDistance()              --获得距离.
:GetGUID()                  --获得GUID.
:GetZoneId()                --获得所在区域ID.
:GetMaxMana()               --获得魔法最大值.
:GetMana()                  --获得魔法值.

--[[.:逻辑判断(是否为某样东西? 的命令):.]]--

:IsPlayer                   --是否为一个玩家
:IsCreature                 --是否为一个怪物
:IsInCombat                 --是否在战斗状态
:IsCasting                  --是否正在施法状态
:IsAlive                    --是否存活
:IsDead                     --是否死亡
:IsInWorld                  --是否在游戏中
:IsMoving                   --是否正在移动

--[[.:其他:.]]--

:SendChatMessage            --说话
:MoveTo                     --移动到
:CastSpell                  --释放一个法术
:CastSpellOnTarget          --对指定的目标释放法术
:FullCastSpell
:FullCastSpellOnTarget
:SpawnGameObject            --刷出一个游戏物体
:SpawnCreature              --刷出一个怪物
:RegisterEvent              --注册事件
:RemoveEvents               --移除事件
:SendBroadcastMessage       --发送公告
:SendAreaTriggerMessage     --发送区域出发信息(屏幕上方正中间那种)
:KnockBack                  --击退
:MarkQuestObjectiveAsComplete    --将某个任务标记为已完成
:LearnSpell                 --学习法术
:UnlearnSpell               --遗忘法术
:HasFinishedQuest           --是否已经完成某个任务
:ClearThreatList            --清空威胁值列表
:ChangeTarget               --更改目标
:Emote                      --表情动作
:Despawn                    --反刷新(消失)
:PlaySoundToSet             --设置玩家所听到的声音
:RemoveAura                 --移除状态
:StopMovement               --停止移动
:AddItem                    --添加物品
:RemoveItem                 --移除物品
:CreateCustomWaypointMap    --创建自定义的路径点map (map不是指地图,是一种存放数据的容器)
:CreateWaypoint             --创建路径点
:DestroyCustomWaypointMap   --销毁自定义的路径点map
:MoveToWaypoint             --移动到某个路径点
:TeleportUnit               --传送到某个单位
:ClearHateList              --清空仇恨列表
:WipeHateList               --从仇恨列表中排除
:WipeTargetList             --从目标列表中排除
:WipeCurrentTarget          --从当前目标中排除
:CastSpellAoF               --释放AOF法术
:RemoveAllAuras             --移除所有状态
:StopChannel                --停止引导法术
:ChannelSpell               --引导法术
:ReturnToSpawnPoint         --返回到刷新点
:HasAura                    --是否拥有某个状态
:Land                       --降落到地面
:CancelSpell                --取消某个法术(的释放)


--[[.:设置 功能函数:.]]--
       
:SetMana                    --设置魔法值
:SetMaxMana                 --设置魔法最大值
:SetHealth                  --设置生命值
:SetMaxHealth               --设置生命最大值
:SetFieldFlags              --设置字段标记
:SetFlying                  --设置飞行状态
:SetCombatCapable           --设置为可战斗
:SetCombatMeleeCapable      --设置为混战模式
:SetCombatRangedCapable     --设置为范围攻击模式
:SetCombatSpellCapable      --设置为可施法
:SetCombatTargetingCapabl --设置为可战斗目标
:SetNPCFlags                --设置NPC标记
:SetModel                   --设置模型
:SetScale                   --设置大小
:SetFaction                 --设置阵营
:SetStandState              --设置站立状态
:SetTauntedBy               --设置为被xx嘲讽了
:SetSoulLinkedWith          --设置为和xx灵魂联结了
:SetInFront                 --设置为在目标前方
:SetHealthPct               --设置生命的百分比为
:SetOutOfCombatRange        --设置为超出攻击范围
:SetMovementType            --设置移动类型

--[[.:定住:.]]--
       
:Root                       --定住
:Unroot                    --解除定住

--[[.:游戏物体 命令:.]]--

:GetName                    --获取名字
:Teleport                   --传送到
:DeactivateGameObject       --让游戏物体处于未激活状态
:ActivateGameObject         --激活游戏物体

### 回答1: 双向升华算法(Dual Ascent)是一种用于解决优化问题的算法,其时间步(time step)是指算法在每一轮迭代中的操作。在每一个时间步中,双向升华算法通过分别更新原始变量和对偶变量来逐步靠近最优解。 双向升华算法的时间步包括以下几个关键步骤: 1. 初始化:在第一个时间步中,将原始变量和对偶变量初始化为某个初始值。 2. 更新原始变量:根据当前的对偶变量值,通过最小化原始问题来更新原始变量。这个更新步骤使用了对偶函数的负梯度方向,并根据问题的特性进行调整。 3. 更新对偶变量:根据更新后的原始变量值,通过最大化对偶问题来更新对偶变量。这个更新步骤使用了原始问题的梯度方向,并根据问题的特性进行调整。 4. 终止判断:在每个时间步的最后,检查算法是否已经达到了停止条件。停止条件可以是一定的迭代次数、目标函数变化量或对偶变量的变化量等。 5. 更新时间步:如果算法未终止,则将时间步加一,并回到步骤2。 双向升华算法通过不断迭代原始变量和对偶变量的更新来逐渐优化问题,每个时间步都在向最优解靠近。时间步的设置取决于问题的复杂性和收敛速度的要求。较小的时间步可能导致算法收敛速度慢,而较大的时间步可能导致算法在求解过程中发散。 总之,双向升华算法的时间步是指算法在每一轮迭代中的操作,包括原始变量和对偶变量的更新,以及终止条件的判断。通过合适的时间步设置,双向升华算法可以高效地求解优化问题。 ### 回答2: 对于双重上升算法(dual ascent),time-step是指每次更新对偶变量(dual variables)的时间间隔。虽然时间步骤的大小可以根据特定问题进行调整,但通常是以离散步幅(discrete increments)的形式进行。比如,在线性规划问题中,时间步骤通常是一个既定的常数。 使用较小的时间步长进行双重上升更新可能会导致算法的收敛速度较慢,因为解可能在更新之间改变较小。相反,更大的时间步长可能会导致算法在解空间中产生更大的波动,可能会导致不稳定的收敛性或困难的更新。 因此,选择适当的时间步长很重要,以平衡收敛速度和数值稳定性。通常,需要根据问题的特性进行实验,尝试不同的时间步骤大小以找到最佳的收敛速度和数值稳定性的平衡点。 ### 回答3: 对于双重上升法,time-step (时间步长)指的是在每次迭代中更新变量值的幅度。在双重上升法中,我们通过最大化某个目标函数来优化问题,可以将其分解为两个子问题:主问题和对偶问题。 在每次迭代中,主问题通过选择一个变量来最大化目标函数,并将其改变一个小的幅度。这个幅度就是时间步长。时间步长的选择可以根据问题的特性来确定,一般来说,我们希望时间步长足够小,以便在每次迭代中能够找到更接近最优解的变量值。 然而,时间步长不能太小,否则优化过程可能会变得非常缓慢。因此,在选择时间步长时需要权衡速度和精确度,寻找一个合理的折衷。 在对偶问题中,时间步长的选择也很重要。对偶问题通过选择一个变量来最小化目标函数,并将其改变一个小的幅度。与主问题类似,时间步长的选择取决于问题的特性和求解速度要求。 总而言之,时间步长在双重上升法中起到控制变量更新幅度的作用。合适的时间步长选择可以在迭代过程中平衡速度和精确度,从而更好地优化目标函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值