做技能的逻辑运算调用是怎么做的

技能脚本系统实现分析 - 为程序员服务
技能脚本系统实现分析
Author: Tuz ()
Date: 05.20.2013
为了更好的优化技能脚本模块,本文主要针对职业基本属性配置、技能属性配置、技能脚本实现及与其相关联的BUFF、天赋等模块进行梳理分析。
服务器底层(C++)技能的管理分析
技能C++层次类关系图
技能释放基本流程
技能释放由客户端输入驱动通过网络模块发送消息,服务器收到消息后查找到技能对应释放对象调用脚本系统执行对应技能的入口函数, 其执行过程如下序列图所示:
天赋开启流程
在客户端天赋界面点选各个技能天赋确定后发消息通知服务器,服务器解析消息根据技能id及天赋id调用对应技能天赋的初始化lua函数(当玩家登陆进入服务器时也会根据天赋记录调用初始化函数),执行序列图如下所示:
BTW: 当前天赋系统结构不能非常简单完美的实现重置天赋,那些根据额外的天赋属性触发的天赋可以简单的清理玩家对象的技能属性列表,但对于那些被动天赋很多都是挂触发器(Trigger)实现的,这需要删除触发器,进而涉及到触发器ID的保存问题
技能中天赋逻辑参见
脚本层技能管理分析
当前脚本系统中根据功能大致可分为以下几个模块:
职业基本属性配置模块(classAttTable): 通过lua table配置各个职业的基本数值属性、主要有基础HP、基础MP、基础护甲、基础法抗、基础攻击力,基础法术强度等与技能计算相关的属性,配置示例如下:
ClassAttTable = {
[11] = {MaxHpBase = 550, ArmorBase = 0, SpellResistanceBase = 0, PhysicalPowerBase = 10, CriticalRating = 0,
CriticalDamageIncrease = 1, ArmorPenetration = 0, ArmorPenetrationRatio = 0, AttackInterval = 900,
AttackTimeBase = 1.11, SpellPowerBase = 10, SpellPenetration = 0, SpellPenetrationRatio = 0, SpellCDReduce = 0,
MaxMpBase = 200, MpRecoverBase = 3, HpRecover = 5, SpellToughness = 0, HitProbability = 0, DodgeProbability = 0, ViewRange = 12},
目前该配置由策划填写的csv表格通过工具生成lua文件所得。
技能数值属性(skillAttTable): 通过lua table配置各个技能的基本数值属性, 包括技能消耗、技能CD时间、技能断定距离、技能伤害类型及技能伤害,该配置与职业基本属性配置一样通过csv表格由工具生成lua文件所得;
技能公共模块(serverSkillPublic): 主要包括技能流程中经常使用到的公共函数,包括施法前检查函数skillSelfOK, skillTargetOK,吟唱函数skillIncant以及BUFF公共函数等;
技能属性配置模块(skill_propertyset): 配置初始化各个技能的所有属性, 其中技能伤害,技能CD等基础数值属性直接引用技能数值属性配置,技能配置中通过大量调用接口函数InitSkillProperty实现;
BUFF数值配置模块(buff_propertyset): 配置方式与技能属性配置相同均通过InitSkillProperty配置
技能逻辑模块(skill): 各个技能的具体的执行逻辑,例如战普通攻击技能脚本逻辑/skills/skill_11001.lua
BUFF逻辑模块(buff)
天赋系统模块(genius): 包括天赋属性配置及天赋执行逻辑函数, 目前我们有些的天赋是嵌入技能脚本中执行的;
数值计算模块(math): 主要包括技能消耗计算,技能伤害计算等与数值相关的计算模块;
怪物AI模块(AI): 驱动怪物行为逻辑.
这些模块通过脚本逻辑或者BUFF逻辑组织起来组成完成的技能逻辑,下面具体分析战及圣各个技能脚本实现。
脚本中网络通信
目前项目里lua脚本与客户端的通信可以通过C++提供的功能接口进行间接通信,还可以通过调用C++提供的接口RunClientScript与客户端进行直接通信,该函数功能是通过发送客户端定义好的lua函数名及序列化好的参数调用客户端的逻辑脚本,目前脚本中大量使用RunClientScript主要:
怪物AI中同步怪物属性及动作;
副本相关逻辑脚本;
技能脚本中控制技能特效、发送技能伤害及资源消耗;
发送命中伤害显示playHitVisToClient()
向客户端发送某目标免疫、闪避、抵抗的消息playStateInvalidToClient()
skillMessageToClient(主要是控制动作特效)skillMessageToClient()
消耗资源,同时发送相关显示消息给客户端resCostAndMsgToClient()
数值计算模块中更新角色属性(playerAttCaculate).
战职业技能分析
战技能大都通过SkillStage技能属性控制技能的每一阶段的逻辑执行, 下面具体看看每个技能的执行序列图。
连续对前面扇形范围内全部敌人造成数次伤害,之后,对更大范围内敌人造成一次高伤害但自身有收招硬直的攻击
前冲一小段距离,并连续打击周围的敌人,可再次点击热键来释放终结技
技能施放后,战士发出一声怒吼,以自身为中心x格(暂定6)范围内敌人减速y%(暂定40%),持续z秒(暂定3
对方向前冲,行径中对前面区域多次造成伤害并击退,击退距离和战每段冲刺距离一样,方向为被击退者对于战的方向。过程中再次热键释放终结技升龙劈
战普通攻击技能(11001)
圣职业技能分析
在出现选择框后可以再次点击该技能,选择框会出现些许形状变化,此操作用于区分真身位置,默认状况是残影前冲攻击,再次点击则是真身前冲残影留在原地
需求: 增加流影斩最大可移动距离25%
实现分析: 根据添加的技能属性Gis_ImproveDisRatio修改技能属性MaxDis值, 其过程如下时序图所示:
天赋-快速准备
需求: 当流影斩成功命中敌人时,会立即缩短流影斩一半的冷却时间
实现分析: 开启该天赋会添加新技能属性Gis_cutCDTime,当Q命中目标时尝试调用gis_sheng.on_cutdown_cdtime(),其过程如下图所示:
需求: 当目标的当前血量少于20%,圣会尝试斩杀对方,造成基础攻击300%的伤害,只有真身出击时才可触发这个效果
实现分析: 开启该天赋会添加新技能属性Gis_lopHpRatio及Gis_lopDamRatio, 当对目标伤害结算前尝试调用gis_sheng.try_lop_target()增加伤害并伤害结算,其过程如下图所示:
W-三向分身
出现方向的选择框并确认后,角色将朝选定的方向滑出,与角色呈120度夹角的另外2个方向会有2个残影以同样的姿势滑出
需求: 使用三项分身之后,获得BUFF,圣及其残影的所有伤害提升30%,持续1.5秒
实现分析: 技能释放后调用gis_sheng.try_improve_all_damage()检查是否启用该天赋并添加增益BUFF, 其过程如下所示:
需求: 被圣及其分身所碰到每个目标都将被减速30%,持续2秒
实现分析: 施法前调用gis_sheng.try_guibu()检查是否启用改天赋并添加碰撞触发器, 其过程如下所示:
需求:使用三向分身后角色会获得反击状态2秒,在此状态持续时圣受到攻击时,残影会瞬移到攻击者身旁重击他使之昏迷1秒,触发这个效果后BUFF会消失
实现分析: 技能释放后调用gis_sheng.try_counterattack()检查是否启用该技能,如果启用添加反击BUFF,反击BUFF给宿主对象注册伤害触发器,当触发器触发时触发影子进行攻击,其过程如下所示:
按下快捷键,角色朝鼠标方向发动攻击,没按一次追加一次攻击,最多五次进入冷却时间(前面攻击长时间未按键也会进入冷却),每次攻击会使目标定身1秒
天赋-影增强
需求: 连切引发的影子联动攻击的伤害提高50%
实现分析: 影子攻击前调用 gis_sheng.try_improve_blur_damage()提供技能伤害数值并返回恢复函数,攻击过程结束时执行恢复,其过程如下所示:
需求: 圣的连切会让对方暴露弱点,使对方承受的圣的伤害提升30%,这个DEBUFF持续1.5秒
实现分析: 伤害结算前调用gis_sheng.try_be_bloodthirsty()给目标添加DEBUFF,其过程如下所示:
需求: 3次连续被击退的敌人将被击倒(2.5秒)
实现分析: 当发生3次攻击时调用gis_sheng.try_be_rip()给目标添加击倒DEBUFF,其过程如下所示:
按键后出现锥形选择框, 选择方向后角色做出攻击准备姿势,在2秒后对区域发动沉重AOE攻击;同时圆形提示框内的残影会立即瞬移到箭头区域对区域内的敌人实施攻击,每个残影的攻击会使敌人昏迷0.5秒
天赋-追击强化
需求: 被残影追击攻击到的敌人将被昏迷
实现分析: 当影攻击到目标添加昏迷BUFF前调用gis_sheng.try_enhance_pursue()增加昏迷BUFF时间,其过程如下所示:
需求: 每击中一个敌人,会给圣叠加一层饮血BUFF,在10秒内回复最大血量的10%,最多可叠加5层
实现分析: 当攻击到目标伤害结算后调用gis_sheng.try_bebloodthirsty_with_healthregen()添加饮血BUFF,其过程如下所示:
需求: 到达目标点之后,圣再次施放乱舞从而返回起始位置,再次造成伤害
实现分析: 当技能释放后调用gis_sheng.try_anti_blade()返回lua闭包函数并执行该闭包,该闭包注册移动停止触发器,当移动停止后调整面向并调用skill_41006_cast()以达到再次施法,其过程如下图所示:
需求: 圣的普通攻击内置CD延长至2倍于目前时长,但会造成1.5倍于目前伤害的物理伤害
实现分析: 启用该天赋直接修改普通攻击技能CD时间, 示意图略
需求: 只要还有自身残影在场,圣便不会死去,当此时圣受到致命伤害时,圣和残影位置互换,由残影来遭受此次伤害
实现分析: 启用该天赋时给玩家对象身上保存拦截死亡HOOK(BTW: 由于结构的原因只能用这种取巧的方式实现),该HOOK函数主要功能是与周围最近的影子交换位置并取消其所受伤害减少的HP,其过程如下图所示:
需求: 当残影由于受到伤害消失时,将回复圣能量30点,并会使残影位置上的敌人减速30%,持续1.5秒
实现分析: 启用该天赋时添加一个新技能41010(用于承载资源消耗),当影子受伤消失时执行该技能的资源消耗并给周围敌对目标添加DEBUFF,其过程如下图所示:
原文地址:, 感谢原作者分享。
您可能感兴趣的代码PPT技能分享系列合集:PPT技能概要_Office办公助手
分享高质量的原创Office教程、Word教程、Excel教程、PPT教程。
PPT技能分享系列合集:PPT技能概要
发布时间: 来源:Office办公助手(www.officezhushou.com)
PPT的运用越来越广泛了,不仅是教学课件、工作汇报、产品展示、项目介绍、活动宣传需要用PPT,而且,一些简单的平面设计、动画制作甚至电子杂志都可以通过PPT来实现。
掌握了PPT制作的一些技能也是很有必要的,本文就PPT制作中所使用的一些基本技能,如逻辑与展示、PPT版面设计、PPT素材选择、PPT动画运用及PPT的字体与颜色的选择等方面做详细介绍。
下面本文将本教程的主要框架及讲述的内容描述如下,其余的部分大家自己下载本文最后的附件的PPT教程学习。
一、PPT的逻辑与展示
大纲设计:PPT仅是一种辅助表达的工具,其目的是让PPT的受众能够快速地抓住表达的要点和重点。因此,好的PPT一定要思路清晰、逻辑明确、重点突出、观点鲜明。
模板设计:在做PPT开始,不要着急做每一页的内容,第一步,先设计PPT的几个关键页面。
颜色与逻辑展示:可以通过设置不同的主题颜色来区分不同的章节,这样更方便PPT受众对PPT内容进度的准确把握。
动画与逻辑展示:通过不同的动画设计来展现PPT的逻辑关系,比如,通过母版实现局部切换的动画方式,就可以很好的区分PPT的逻辑并列、包含等关系。
二、PPT版面设计
正文排版&①局部标题设计;②图文排版④排列设计;
具体教程可参考:及。
三、PPT素材的选择
&巧妇难为无米之炊&,是否拥有一个&好又多&的素材库是决定我们能否快速制作一个赏心悦目PPT的关键,这些素材来自于哪里呢?浩瀚的互联网为我们提供了巨大的素材仓库。
图片的选择与编辑&①图片选择的原则;②图片的编辑。
图表的选择与设计&①图表的选择;②图表的优化原则。
具体教程可参考:
三、PPT动画运用
动画运用的原则是:与逻辑或讲课思路一致,吸引注意力,少而精,不能太花哨。
逻辑切换动画、简单动画的个性设置、 单个对象的组合设计、 多个对象的组合设计。
具体教程可参考:
四、PPT的字体与颜色的选择
字体的选用及大小设置、颜色的选择及设置技巧。制作PPT是一个创造美的过程,美在版式、美在颜色。
具体教程可参考:
PPT技能分享系列合集:PPT技能概要 PPT教程下载:
相关拓展阅读:
更多相关阅读
上一篇: 下一篇:
用互联网思维写文案—小公司也可以颠覆大品牌。小公司0成本营销,逆
本文主要讲述了PPT中模板素材、逻辑图示、数据图表、图片图形四大部
本文讲解了在PPT演示文稿中如何快速改变幻灯片排列顺序的方法。
本PPT教程就是从PPT封面设计、PPT封底设计、PPT目录页设计、PPT过渡页设
专题教程推荐
(window.slotbydup=window.slotbydup || []).push({
id: '3577897',
container: s,
size: '300,450',
display: 'inlay-fix'
热门资源下载您的位置:
→ 模拟人生4图文教程全攻略(8号更新)
模拟人生4图文教程全攻略(8号更新)
14:42:59 来源: 作者:枫红一刀流 (0)
15:逻辑1级:下西洋棋、绘制解锁此技能,和下棋、显微镜和望远镜互动可提升技能。2级:收集植物样本并使用显微镜分析它们,还能和其他市民讨论逻辑。3级:现在有机会从下棋和卡牌游戏获得比平常更多的逻辑技能。4级:现在可以阅读中级的逻辑书藉了。5级:现在可以收集化石样本并使用显微镜分析它们。6级:现在有机会从互动中获得更多的逻辑技能。7级:现在可以阅读进阶逻辑书藉了。8级:现在可收集晶体样本并使用显微镜加以分析,还可为紧张得不得了的市民提供逻辑解决方案。9级:下棋、玩牌赢了的话可获得更好的情绪指数。10级:他在生气的时候,可以在“符合逻辑的大声嚷嚷”后降低他的愤怒。达到10级获得成就“基础”。
相关游戏攻略
? ? ? ? ? ? ? ?
本站提供: 好玩的单机游戏,是大型基地网站Copyright &
.All Rights Reserved备案编号:湘ICP备号-1《逻辑思维,只要五步 工作和生活中时时会用到的逻辑思维技巧 思维训练书籍》【摘要 书评 试读】- 京东图书
客户服务
逻辑思维,只要五步 工作和生活中时时会用到的逻辑思维技巧 思维训练书籍
与行业相比
京 东 价 &
[定价 &¥]
PLUS会员专享价
您购买此商品可享受专属价
增值业务 &
重  量 &
搭配赠品 &
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
规格与包装
商品介绍加载中...
下载客户端,开始阅读之旅
著者[日]下地宽也
出版社企业管理出版社
正文语言中文
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
印刷版次不同,印刷时间和版次以实物为准。
价格说明:
京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。
划线价:商品展示的划横线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
价 格: 到
   
iframe(src='//www.googletagmanager.com/ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')【图文】PPT高级技巧指南_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
PPT高级技巧指南
阅读已结束,下载本文到电脑
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 逻辑高 的文章

 

随机推荐