注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

太阳神上的博客

青青子衿,悠悠我心,但为君故,沉吟至今。

 
 
 

日志

 
 
 
 

太阳神三国杀中的事件触发机制(一)  

2011-08-11 17:08:29|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这是太阳神三国杀中程序处理技能和各种游戏规则(如各种特殊模式的特殊规则)的基本机制,除了少部分技能与系统耦合度较大外,其他绝大部分技能都是以这个事件触发机制为基础的。

首先,什么是事件(event),事件是一个三元组(triplet),它包含3个元素:

事件类型(type):在程序里它是一个枚举值,本质上是一个整数,这些事件类型是随着游戏规则的越来越丰富而制定的,到鹊桥版为止,共有37个事件,这个枚举类型的定义在源代码下的 src/structs.h 里可以见到。

目标角色(target):任何事件都有一个目标角色,表示此事件的产生者,例如判定事件的判定者,体力回复时间的回复体力的角色等。

事件数据(data):这个数据包含了此事件的相关信息,对于伤害事件来说,就是一个包含了所有伤害信息的结构体,对于体力流失事件来说就是体力流失的点数。

下面是完整的表格:

类型

说明

数据

相关技能

默认处理

GameStart

游戏开始

七星

摸4张起始手牌,神武将选势力

TurnStart

回合开始

争功

若面朝上,则翻回来跳过,反之行动一个回合

PhaseChange

阶段改变

非常多,任何在非出牌阶段的回合内主动发动的技能都响应这个事件

根据不同的阶段进行不同的处理,判定阶段判定延时锦囊,出牌阶段询问出牌等

DrawNCards

摸牌阶段的摸牌

摸牌数目(int)

英姿、裸衣、好施、庸肆

 

HpRecover

体力回复

回复信息(RecoverStruct)

恩怨

恢复体力

HpLost

体力流失

流失点数(int)

 

若体力流失导致体力值降为0或以下,则进入濒死处理

HpChanged

体力发生改变

争锋

 

StartJudge

开始判定

判定结构体(JudgeStar)

 

从摸牌堆翻取一张牌作为判定牌

AskForRetrial

请求改判

同上

鬼才、鬼道

 

FinishRetrial

判定结束

同上

天妒、落英

将判定牌放入弃牌堆

Pindian

拼点

拼点结构体(PindianStar)

孙策的制霸

将拼点的2张牌放入弃牌堆

Predamage

造成预估伤害

伤害结构体(DamageStruct)

裸衣、古锭刀

 

Predamaged

受到预估伤害

同上

白银狮子的多余伤害防止、天香、大雾、神君、藤甲的火焰伤害加成

 

DamageDone

伤害造成

同上

武魂(加标记)、狂骨的回血条件判断

按照伤害点数进行体力的扣减

Damage

造成伤害

同上

烈刃,狂骨的回血

 

Damaged

受到伤害

同上

所有卖血流技能

 

DamageComplete

伤害结算完成

同上

新倚天剑、烧营

若受到伤害者处于连环状态且此伤害是属性伤害,则进行伤害的传导

Dying

濒死

濒死结构体DyingStruct

不屈的翻不屈牌、补益

 

AskForPeaches

求桃

涅槃

 

AskForPeachesDone

求桃结束

不屈的判断

若此时体力值仍<=0则进入死亡处理

Death

阵亡

行殇、挥泪、武魂索命、断肠

将阵亡者的手牌、装备、判定区的牌和相关标记全清理掉,还有死亡的奖惩

GameOverJudge

游戏结束判断

 

早于阵亡处理,若满足游戏结束条件,则游戏结束,反之进入死亡的处理

SlashEffect

造成杀的效果

SlashEffectStruct

朱雀羽扇使无属性杀变火杀、纵火、雌雄双股剑、青釭剑、激昂摸牌

 

SlashEffected

受到杀的效果

同上

仁王盾使黑杀无效、藤甲使普通杀无效、享乐令杀者弃基本牌、激昂摸牌

 

SlashProceed

杀的结算

同上

铁骑、无双、烈弓、肉林

向被杀者请求打出一张闪,若没闪则命中、反之闪避

SlashHit

杀命中

同上

麒麟弓、寒冰剑

造成1点杀的伤害、若此杀的杀伤力被酒加强,则造成2点伤害

SlashMissed

杀闪避

同上

贯石斧、青龙偃月刀、猛进

 

CardAsked

询问卡牌

卡牌模式字符串

激将、护驾、连理

 

CardUsed

使用卡牌

CardUseStruct

集智

 

CardResponsed

打出卡牌

CardStar

雷击

 

CardDiscarded

弃置卡牌

CardStar

落英、琴音

 

CardLost

失去单张卡牌

CardMoveStar

枭姬、连营

 

CardLostDone

失去卡牌完毕

CardStar

屯田、旋风

 

CardEffect

造成卡牌效果

CardEffectStruct

  

CardEffected

受到卡牌效果

同上

藤甲的无效化AOE

 

CardFinished

卡牌使用完毕

CardUseStruct

巨象收南蛮

 

ChoiceMade

角色做出某种决定

决定字符串

 

仅用于AI

  评论这张
 
阅读(2808)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017