什么是触发器?起到什么作用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是触发器?起到什么作用?相关的知识,希望对你有一定的参考价值。
触发器是事件编辑器的精髓所在,游戏中多样的任务、不同的事件、胜利/失败的条件、天气的变化等等这些全部都是触发器的功劳。 触发器由三个部分组成,事件、条件、动作。 事件:或称为触发事件,顾名思义,就是当某个事件发生的时候就运行触发器。 条件:判断是否达到指定的条件,如果没有达到条件将不执行动作。可以留空,表示直接执行动作。一般来说,条件越多越容易出错,所以尽量只使用一两个条件。 动作:条件通过后所要做的事情。 我用个简单例子来说明,比如一个英雄进入地区后游戏胜利,那么就要这样设置。 事件:一个单位进入地区条件:判断单位是一个英雄为Turn
动作:游戏胜利。 在每个新建地图中都会有个叫做初始化的类,其中有个叫做对战初始化的触发器,它设定了每张地图默认的初始设置,其中包括:
Use melee time of day (for all players) - 启用默认的游戏中开始时间。
Limits Heros to 1 per Hero-type (for all players) - 限制玩家同一种英雄只能生产一名。
Hero trained Heroes a Scroll of Town Portal (for all players) - 给英雄一个传送卷轴。
Set starting resources (for all players) - 设置起始资源,给每个玩家分配一开始拥有的资源。
Remove creeps and critters from used start locations (for all players) - 移除开始点附近的野生单位、障碍物等。
Create starting units (for all players) - 在开始点上创建玩家开始对战游戏需要的主基地和工人
Run melee AI scripts - 让所有计算机玩家执行对战游戏人工智能。
Enforce victory/defeat conditions - 使用默认的胜利失败条件,所有建筑物被破坏即失败。 如果不需要,删除掉它们就可以了,事实上大部分RPG地图都不需要这些条件。 触发器的所有指令都是英文的,不过没关系,我专门为此制作了一个中英对照表,并在其中做了简要说明。请参阅附录:触发器中英对照表。 除此之外,触发器中还有很多函数,例如:"Last Created Unit",最后创建的单位。合理运用这些函数也是非常重要的,在触发器的使用中将会大量使用到这些函数。 触发器的使用是千变万化的,本章我介绍一些常见的例子,希望你能够举一反三,了解触发器的使用。 注意:类可以用中文命名,注释也可以用中文命名,但触发器不能用中文命名! 参考技术A 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。
触发器可以查询其他表,而且可以包含复杂的 SQL 语句。它们主要用于强制服从复杂的业务规则或要求。例如,您可以根据客户当前的帐户状态,控制是否允许插入新订单。
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。
kafka中的 zookeeper 起到什么作用,可以不用zookeeper么?
zookeeper 是一个分布式的协调组件,早期版本的kafka用zk做meta信息存储,consumer的消费状态,group的管理以及 offset的值。考虑到zk本身的一些因素以及整个架构较大概率存在单点问题,新版本中逐渐弱化了zookeeper的作用。新的consumer使用了kafka内部的group coordination协议,也减少了对zookeeper的依赖,
但是broker依然依赖于ZK,zookeeper 在kafka中还用来选举controller 和 检测broker是否存活等等。
以上是关于什么是触发器?起到什么作用?的主要内容,如果未能解决你的问题,请参考以下文章