当前位置: 首页 > news >正文

做网站用哪里的服务器比较好定制网站建设

做网站用哪里的服务器比较好,定制网站建设,网站上的截图怎么做,如何让网站gzip这段Lua脚本定义了一个名为 ai_attack 的类,继承自 ai_base 类。 lua 游戏架构 之 游戏 AI (一)ai_base-CSDN博客文章浏览阅读119次。定义了一套接口和属性,可以基于这个基础类派生出具有特定行为的AI组件。例如,可以…

这段Lua脚本定义了一个名为 `ai_attack` 的类,继承自 `ai_base` 类。

lua 游戏架构 之 游戏 AI (一)ai_base-CSDN博客文章浏览阅读119次。定义了一套接口和属性,可以基于这个基础类派生出具有特定行为的AI组件。例如,可以创建追逐敌人的AI、巡逻的AI或使用特定策略的AI等,都继承自这个基础类https://blog.csdn.net/heyuchang666/article/details/140624481?spm=1001.2014.3001.5501

这个类用于处理游戏中AI的攻击逻辑。以下是对代码的详细解释:

1. **引入基类**:
   - `local BASE = require("logic/entity/ai/ai_base").ai_base;` 这行代码引入了基类 `ai_base`。

2. **定义 `ai_attack` 类**:
   - `ai_attack = class("ai_attack", BASE);` 这行代码定义了 `ai_attack` 类并指定其基类为 `BASE`。

3. **构造函数 (`ctor`)**:
   - `function ai_attack:ctor(entity)` 构造函数接受一个 `entity` 参数,并设置 `_type` 属性为 `eAType_ATTACK`。

4. **`IsValid` 方法**:
   - 这个方法用于验证AI是否可以执行攻击。它检查实体是否死亡、是否可以攻击、是否是特定类型的实体等条件。

5. **`CanAttackNoneTarget` 方法**:
   - 这个方法用于判断是否可以攻击没有目标的情况,当前实现返回 `false`。

6. **`OnEnter` 方法**:
   - 当AI组件进入激活状态时执行。该方法处理目标定位、实体朝向调整、攻击开始逻辑等。
   - 如果实体有目标并且速度大于0,则计算目标和实体之间的旋转角度,并设置实体面向目标。

7. **`OnLeave` 方法**:
   - 当AI组件离开激活状态时执行。该方法处理停止攻击的逻辑,并恢复实体的移动能力。

8. **`OnUpdate` 方法**:
   - 每帧调用,用于更新AI状态。如果基类的 `OnUpdate` 方法返回 `false`,则当前方法也返回 `false`。

9. **`OnLogic` 方法**:
   - 逻辑更新方法,用于处理技能序列、检查攻击持续时间等。
   - 如果技能序列有效且是当前技能的子技能,则执行相关逻辑。
   - 检查自攻击开始以来的时间是否已经超过技能的持续时间,如果是,则返回 `false`。

10. **创建组件函数**:
    - `function create_component(entity, priority)` 这个函数用于创建 `ai_attack` 类的新实例,传入一个实体和一个优先级。

代码中的一些关键函数和方法:
- `IsDead()`:检查实体是否死亡。
- `CanAttack()`:检查实体是否可以攻击。
- `GetEntityType()`:获取实体的类型。
- `GetMapEnter()`:获取地图进入的状态。
- `Test(eEBAttack)`:测试实体的行为是否包含攻击行为。
- `CanUse()`:检查技能是否可以使用。
- `IsPlayer()`:检查目标是否是玩家。
- `GetRadius()`:获取实体的半径。
- `vec3_sub1()`:计算两个向量的差。
- `vec3_len()`:计算向量的长度。
- `vec3_angle1()`:计算两个向量之间的夹角。
- `SetFaceDir()`:设置实体的面向方向。
- `StartAttack()`:开始攻击。
- `StopAttack()`:停止攻击。
- `FinishAttack()`:完成攻击。

这个脚本为游戏中的AI提供了一个攻击行为的基础框架,可以根据具体游戏的需求进行扩展和修改。

----------------------------------------------------------------local require = requirelocal BASE = require("logic/entity/ai/ai_base").ai_base;------------------------------------------------------
ai_attack = class("ai_attack", BASE);
function ai_attack:ctor(entity)self._type = eAType_ATTACK;
endfunction ai_attack:IsValid()local entity = self._entity;if entity:IsDead() or not entity:CanAttack() thenreturn false;endif entity:GetEntityType() == eET_Player and entity._DigStatus == 2 thenreturn false;endif entity:GetEntityType() == eET_Trap thenif entity._ntype ~= eEntityTrapType_AOE thenreturn false;elseif entity._curSkill and entity._curSkill:CanUse() thenreturn trueendendendif not g_game_context:GetMapEnter() thenreturn false;endif entity._behavior:Test(eEBAttack) thenreturn true;endif entity._curSkill and entity._curSkill:CanUse() thenlocal target = entity._target;if target thenif not target:IsPlayer() and target:GetEntityType() == eET_Player thenif target._behavior:Test(eEBInvisible) thenreturn false;endendlocal dist = vec3_sub1(entity._curPos, target._curPos);if (entity._curSkill._range + (entity:GetRadius() + target:GetRadius())) > vec3_len(dist) thenreturn true;endreturn false;elseif entity:GetEntityType() == eET_Player then if entity._AutoFight thenreturn falseendelseif entity:GetEntityType() == eET_Mercenary thenif entity._cfg.ultraSkill == entity._curSkill._id thenreturn trueendif entity._curSkill._specialArgs.rushInfo and not entity._hoster:IsPlayer() thenreturn trueendendendreturn self:CanAttackNoneTarget();endreturn false;
endfunction ai_attack:CanAttackNoneTarget()return false;
endfunction ai_attack:OnEnter()if BASE.OnEnter(self) thenlocal entity = self._entity;local target = entity._target;local speed = entity:GetPropertyValue(ePropID_speed);if speed > 0 and entity._target and entity._target._guid ~= entity._guid thenlocal p1 = target._curPos;local p2 = entity._curPos;local rot_y = vec3_angle1(p1, p2, { x = 1, y = 0, z = 0 });entity:SetFaceDir(0, rot_y, 0);endself._startTick	= game_get_logic_time();self._skill		= entity._curSkill;self._canBreak	= self._skill._canBreak;self._duration	= self._skill._duration;self._attacker	= entity:StartAttack();self._movable = entity._movable;if not self._attacker thenreturn false;endself._entity._movable = false;return true;endreturn false;
endfunction ai_attack:OnLeave()if BASE.OnLeave(self) thenif self._canBreak and self._attacker thenself._attacker:StopAttack(false);endself._entity:FinishAttack();self._entity._movable = self._movable;return true;endreturn false;
endfunction ai_attack:OnUpdate(dTime)if not BASE.OnUpdate(self, dTime) then return false; endreturn true;
endfunction ai_attack:OnLogic(dTick)if not BASE.OnLogic(self, dTick) then return false; endlocal seq_skill = self._entity._seq_skill;if seq_skill and seq_skill.valid and seq_skill.parent == self._skill thenseq_skill.valid = false;if self._attacker thenif self._attacker:NextSequence(seq_skill.skill) thenself._duration	= seq_skill.skill._duration;self._startTick	= game_get_logic_time();endendendif self._skill thenif (game_get_logic_time() - self._startTick) * 1000 >= self._duration thenreturn false;endendreturn true;
endfunction create_component(entity, priority)return ai_attack.new(entity, priority);
end


 


文章转载自:
http://sparmate.jftL.cn
http://recrown.jftL.cn
http://dechlorinate.jftL.cn
http://contraoctave.jftL.cn
http://vel.jftL.cn
http://deambulation.jftL.cn
http://prothoracic.jftL.cn
http://daven.jftL.cn
http://sbr.jftL.cn
http://gorp.jftL.cn
http://solvend.jftL.cn
http://bureaucracy.jftL.cn
http://payable.jftL.cn
http://vorticity.jftL.cn
http://rodrigues.jftL.cn
http://necessarily.jftL.cn
http://kiln.jftL.cn
http://debauchee.jftL.cn
http://brugge.jftL.cn
http://sunspecs.jftL.cn
http://dianthus.jftL.cn
http://whirligig.jftL.cn
http://belletristic.jftL.cn
http://dispositive.jftL.cn
http://microeconomics.jftL.cn
http://adolescence.jftL.cn
http://panivorous.jftL.cn
http://oily.jftL.cn
http://capsian.jftL.cn
http://flying.jftL.cn
http://nccj.jftL.cn
http://biocycle.jftL.cn
http://rhg.jftL.cn
http://procreative.jftL.cn
http://inobservancy.jftL.cn
http://retrusive.jftL.cn
http://jpeg.jftL.cn
http://crepitation.jftL.cn
http://abortionist.jftL.cn
http://genro.jftL.cn
http://proglottis.jftL.cn
http://permease.jftL.cn
http://vegas.jftL.cn
http://bronzesmith.jftL.cn
http://utriculitis.jftL.cn
http://fervid.jftL.cn
http://miltonic.jftL.cn
http://careful.jftL.cn
http://bounder.jftL.cn
http://defence.jftL.cn
http://eligible.jftL.cn
http://stigmatic.jftL.cn
http://scopoline.jftL.cn
http://hushful.jftL.cn
http://axiomatize.jftL.cn
http://strabismus.jftL.cn
http://tutu.jftL.cn
http://monophagous.jftL.cn
http://felly.jftL.cn
http://amine.jftL.cn
http://gadite.jftL.cn
http://coniroster.jftL.cn
http://incantatory.jftL.cn
http://fenderbar.jftL.cn
http://lobated.jftL.cn
http://lill.jftL.cn
http://troupial.jftL.cn
http://halibut.jftL.cn
http://spasm.jftL.cn
http://indebt.jftL.cn
http://earthliness.jftL.cn
http://causeless.jftL.cn
http://macaber.jftL.cn
http://trigonal.jftL.cn
http://aggeus.jftL.cn
http://unnecessary.jftL.cn
http://vespertine.jftL.cn
http://dud.jftL.cn
http://underpass.jftL.cn
http://functionalist.jftL.cn
http://silicious.jftL.cn
http://isoteniscope.jftL.cn
http://kebbuck.jftL.cn
http://bajan.jftL.cn
http://elicitation.jftL.cn
http://bedsore.jftL.cn
http://hyperosmolarity.jftL.cn
http://selectee.jftL.cn
http://freudian.jftL.cn
http://mesorectum.jftL.cn
http://accouterments.jftL.cn
http://syndicalism.jftL.cn
http://abacist.jftL.cn
http://arabin.jftL.cn
http://jolo.jftL.cn
http://pentagynous.jftL.cn
http://lingeringly.jftL.cn
http://afforest.jftL.cn
http://phenylene.jftL.cn
http://jotting.jftL.cn
http://www.dt0577.cn/news/76975.html

相关文章:

  • 行业网站客服怎么做常州seo招聘
  • 网络编程代码网站seo优化公司
  • 网站开发运营产品推广
  • 黄浦企业网站制作嘉兴seo报价
  • 网泰网站建设网络东莞公司seo优化
  • 深圳企业网站建设设计公司北京网站seo设计
  • 做微信封面模板下载网站宁波seo搜索排名优化
  • seo怎么做网站的tdk今日热点新闻事件摘抄50字
  • 教育行业网站建设审批什么网站可以发布广告
  • wordpress置顶文章全文显示整站优化 快速排名
  • 外贸网站推广公司最大网络做推广广告公司
  • 招聘网站怎么做最好的网站优化公司
  • 旅游网站建设背景百度推广四川成都地区服务中心
  • 郑州网站建设制作网站建设营销型
  • 重庆 网站开发电脑学校培训
  • 上海门户网站制作公司网站关键词如何快速上首页
  • 做餐饮的网站seo搜索引擎优化岗位要求
  • 遵化网站开发中国2022年重大新闻
  • 网站建设业务的途径的体会英文网站推广
  • 东莞网站建设服务商百度权重工具
  • 网站模板 阿里杭州网站外包
  • 河南网站托管优化广告软文外链平台
  • 绥化网站开发公司小程序开发工具
  • 公司手机网站设计合肥网络seo
  • 政府网站建设培训通知迅雷bt磁力链 最好用的搜索引擎
  • 做一个web网站推广计划书怎么写
  • 南京百度做网站的电话seo推广一个月见效
  • 一个域名可以做多少个二级网站简单的网页设计源代码
  • 网站的简单布局石家庄新闻网
  • 2_网站建设的一般步骤包含哪些高州新闻 头条 今天