为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

新版太阳神三国杀武将技能AI设计概要

2017-09-20 49页 doc 99KB 59阅读

用户头像

is_496339

暂无简介

举报
新版太阳神三国杀武将技能AI设计概要新版太阳神三国杀武将技能AI设计概要 目录 第一章:AI概述 第二章:触发技与响应询问 一、响应技能发动询问 二、响应卡牌使用询问 三、响应卡牌打出询问 四、响应选择询问 五、响应角色选择询问 六、响应卡牌选择询问 七、响应五谷丰登选牌询问 八、响应卡牌展示询问 九、响应花色询问 十、响应遗计询问 十一、响应拼点询问 十二、响应弃牌询问 第三章:视为技与技能发动 一、一般视为技与卡牌使用 二、一般视为技与卡牌响应 三、判定锁定视为技 四、使用技能卡 第四章:AI特征信息 一、使用价值...
新版太阳神三国杀武将技能AI设计概要
新版太阳神三国杀武将技能AI设计概要 目录 第一章:AI概述 第二章:触发技与响应询问 一、响应技能发动询问 二、响应卡牌使用询问 三、响应卡牌打出询问 四、响应选择询问 五、响应角色选择询问 六、响应卡牌选择询问 七、响应五谷丰登选牌询问 八、响应卡牌展示询问 九、响应花色询问 十、响应遗计询问 十一、响应拼点询问 十二、响应弃牌询问 第三章:视为技与技能发动 一、一般视为技与卡牌使用 二、一般视为技与卡牌响应 三、判定锁定视为技 四、使用技能卡 第四章:AI特征信息 一、使用价值与使用优先级 二、相合花色与相合卡牌 三、武将嘲讽值 四、仇恨值与角色关系 第五节:常用AI函数 第一章 AI概述 正如《新版太阳神三国杀武将扩展学习手册》所描述的那样,太阳神三国杀的AI系统还是有一定章法可循的。武将技能AI作为AI系统的重要组成部分,自然也不例外。手册第八章里简单介绍了AI的概念和作用,给我们留下了一个初步的印象;这里将更进一步,感受一下更具体的武将技能AI设计工作。 说起来,武将技能AI还是与具体的武将技能有着密不可分的联系。技能的种类、传递数据的方式,许多因素都影响着武将技能AI的设计。触发技有触发技的AI策略,视为技也有自己的一套AI实现方法。具体到技能上,更是花样百出,各有不同。不过,掌握了武将技能AI的工作方法,再进行具体的设计,就容易很多了。 一般而言,距离修改技、手牌上限技之类的技能,在游戏里以锁定技的样貌出现,不需要玩家干预。不论操作者是人类玩家还是电脑玩家,都是同样的效果,所以这些技能理论上是不需要AI支持的。 对于触发技来说,电脑玩家只需要知道在需要作出选择的时候,如何找出正确的答案即可。为此,AI系统提供了一系列的决策表和决策函数。每当遇到触发技询问时,首先查阅决策表中是否有对应的决策函数。若找到这样的函数,就根据函数的结果作出选择;若没有找到,就交给AI系统统一处理,得出一个一般情形下的选择结果。 所以,触发技AI的设计,其实就是针对技能中出现的各个询问场景,编写对应决策函数的过程。每个询问场景都会有自己特定的决策函数格式,按照这些格式写决策函数,就会很容易设计出触发技的AI了。 而对于视为技来说,情况又有所不同。视为技没有特定的触发时机,需要玩家主动选择发动。这需要考虑两个方面:什么时候发动,以及要以怎样的方式发动。在这个过程中,AI系统会依次检查玩家拥有的卡牌,判断哪些卡牌可用,并参照可用卡牌的优先级、使用价值等特征信息,选出当前最应使用的卡牌(包括技能卡和实际的卡牌),按照对应的卡牌使用方式使用它。每当使用完一张卡牌,再重复这个过程,直到不再有卡牌可用。 这样,视为技的AI设计,一方面要提供判断卡牌是否可用的检测函数,一方面要提供包含了卡牌使用方式的执行函数。此外,还要提供一些相关的特征信息,以决定在所有卡牌使用过程中的出场顺序。 除了武将技能AI以外,AI系统还包括了身份识别等更为丰富的内容,这里就不再关注了。关于AI系统的更为详尽的介绍,可以参考太阳神三国杀extension-doc文件夹中的11-Fundamentals.lua,18-Beta.lua等文档。 第二章 触发技与响应询问 一、响应技能发动询问 技能代码中出现askForSkillInvoke()函数的地方就是询问是否发动技能的场景了。它的函数原型是: Room:askForSkillInvoke(player, skill_name, data) 其中: player:ServerPlayer类型,表示被询问发动技能的当前角色。 skill_name:string类型,表示技能的名字。 data:QVariant类型,表示传递给AI系统的参考数据。 另一个函数原型是: ServerPlayer:askForSkillInvoke(skill_name, data) 参数skill_name和data的涵义与第一个原型中的同名参数是相同的。 对于这个场景,AI系统的处理函数是: SmartAI:askForSkillInvoke(skill_name, data) 这个函数首先将通过表sgs.ai_skill_invoke查找对应的决策函数,而这个决策函数正是我们要具体设计的内容。 响应技能发动询问的决策函数原型是: function(self, data) 其中: self:表示表SmartAI,由AI系统提供。 data:表示参考数据,其实就是技能代码中传递过来的data参数了。 它的执行结果是bool类型的。如果为true,表示发动技能;为false的话,则不发动这个技能。 这个表self(或者说表SmartAI)提供了许多有用的信息,比如: self.player就是Room:askForSkillInvoke(player, skill_name, data)中的第一个参数player,ServerPlayer类型,表示当前响应询问的角色。 self.room表示当前所在的游戏房间,Room类型。 self.friends表示当前角色的所有友方角色,也包括自己在内,table类型。这里的友方不一定意味着身份的相同,主公与忠臣、忠臣与内奸、主公与内奸、内奸与反贼之间在一定时段內都可能会是友方关系。 self.friends_noself表示当前角色的除自身以外的所有友方角色,table类型。 self.enemies表示当前角色的所有敌方角色,table类型。同self.friends的情形一样,身份的差异也不一定意味着阵营的对立。 将我们的决策函数写入表sgs.ai_skill_invoke的方法是: sgs.ai_skill_invoke[skill_name] = function(self, data) 这就将技能名skill_name与特定的决策函数对应起来了。 如果技能是否发动与决策无关,那么决策函数可以简化成一个对应的bool值,比如: sgs.ai_skill_invoke[skill_name] = true 就表示技能skill_name始终发动。 如果SmartAI:askForSkillInvoke(skill_name, data)函数没有找到所需要的决策函数,那么它将按照默认的方式处理这个场景。即,如果技能skill_name的触发频率是sgs.Skill_NotFrequent,那么产生一个false结果,不发动这个技能;如果触发频率是sgs.Skill_Frequent,那么产生一个true结果,发动技能。 对于其它场景,AI系统也是大体依照这样的流程进行处理的,后文不再赘述。 二、响应卡牌使用询问 技能代码中出现askForUseCard()函数的地方就是询问使用卡牌的场景了。函数原型是: Room:askForUseCard( player, pattern, prompt, notice_index=-1, method = sgs.Card_MethodUse ) 其中: player:ServerPlayer类型,表示被询问使用卡牌的当前角色。 pattern:string类型,表示卡牌应符合的条件。 prompt:string类型,表示询问时出现的提示信息。 notice_index:number类型,表示提示信息的编号,默认为-1。 method:sgs.Card_HandlingMethod类型,表示卡牌的处理方式,默认是sgs.Card_MethodUse。 对于这个场景,AI的处理函数是: SmartAI:askForUseCard(pattern, prompt, method) prompt、method和技能代码中的同名参数是相同的。 三个参数pattern、 这个函数通过表sgs.ai_skill_use来查找决策函数。 响应卡牌使用询问的决策函数原型是: function(self, prompt, method) 它的执行结果是一个string,表示卡牌的使用方式。具体的格式是: #N:C:->U #N[S:P]:C:->U @N=C->U @N[S:P]=C->U 其中: N表示卡牌的对象名(objectName())。 S表示卡牌的花色字符串(getSuitString())。 P表示卡牌的点数(getNumber())。 C表示卡牌的子卡构成,是由一系列通过“+”连接的卡牌编号(getId())组成的字符串。”.”表示没有子卡。 U表示卡牌的使用对象构成,是由一系列通过“+”连接的角色的对象名(objectName())组成的字符串。”.”表示不指定使用对象。 以“#”开始的string结果表示Lua卡牌的使用方式,而以“@”开始的string结果表示C++卡牌的使用方式。因此我们在设计武将技能AI时,写出的卡牌的使用方式,都是以“#”开始的。 将决策函数写入表sgs.ai_skill_use的方法是: sgs.ai_skill_use[pattern] = function(self, prompt, method) 如果SmartAI:askForUseCard(pattern, prompt, method)函数没用找到这个决策函数的话,默认产生的结果是”.”,表示不使用任何卡牌。 三、响应卡牌打出询问 技能代码中出现askForCard()函数的地方就是询问打出卡牌的场景了。这个函数的原型是: Room:askForCard(player, pattern, prompt, data, skill_name) 以及 Room:askForCard( player, pattern, prompt, data, method = sgs.Card_MethodDiscard, to=NULL, isRetrial = false, skill_name ) 其中: player:ServerPlayer类型,表示被询问打出卡牌的当前角色。 pattern:string类型,表示卡牌应符合的条件。 prompt:string类型,表示询问时出现的提示信息。 data:QVariant类型,表示参考数据,还是从技能代码里传递过来的。 skill_name:string类型,表示技能的名字。 method:sgs.Card_andlingMethod类型,表示对卡牌的处理方式,默认是 sgs.Card_MethodDiscard。 to:ServerPlayer类型,默认为nil。 isRetrial:bool类型,表示是否用于改判,默认为false。 对于这个场景,AI的处理函数是: SmartAI:askForCard(pattern, prompt, data) 这个函数通过表sgs.ai_skill_cardask来查找决策函数。 响应卡牌打出询问的决策函数原型是: function(self, data, pattern, target, target2) 和响应卡牌使用询问的决策函数一样,它的结果也是string类型的,表示卡牌的使用方式。 将决策函数写入表sgs.ai_skill_cardask的方法是: sgs.ai_skill_cardask[prompt] = function(self, data, pattern, target, target2) 如果SmartAI:askForCard(pattern, prompt, data)函数没有找到这个决策函数,AI系统会尝试着按照pattern和prompt决定打出哪些卡牌。如果仍然找不到符合条件的卡牌,那么将产生”.”的结果,表示不打出任何卡牌。 四、响应选择询问 技能代码中出现askForChoice()函数的地方就是询问选择的场景了。这个函数的原型是: Room:askForChoice(player, skill_name, choices, data) 其中: player:ServerPlayer类型,表示被询问选择的当前角色。 skill_name:string类型,表示技能的名字。 choices:string类型,表示各个选项,是由一系列通过”+”连接的选项字符串组成的。 data:QVariant类型,表示要向AI传递的参考数据。 对于这个场景,AI系统的处理函数是: SmartAI:askForChoice(skill_name, choices, data) 这个函数通过表sgs.ai_skill_choice来查找决策函数。 响应选择询问的决策函数原型是: function(self, choices, data) 它将产生一个string类型的结果,表示选出的那个选项。 将决策函数写入表sgs.ai_skill_choice的方法是: sgs.ai_skill_choice[skill_name] = function(self, choices, data) 那么决策函数可以直接简化成这个结果,比如: 如果选择的结果与决策无关, sgs.ai_skill_choice[skill_name] = “choiceA” 就表示技能skill_name询问选择时,始终选择choiceA。 如果SmartAI:askForChoice(skill_name, choices, data)函数仍然没有找到这个决策函数,那么AI系统首先将检查这个技能是否有默认的选择,如果有,就直接用默认的选择作为结果。否则,AI系统将从choices里随机选出一个选项,作为最终的结果。 五、响应角色选择询问 技能代码中出现askForPlayerChosen()函数的地方就是询问选择一名角色的场景了。这个函数的原型是: Room:askForPlayerChosen(player, targets, reason) 其中: player:ServerPlayer类型,表示被询问选择角色的当前角色。 targets:QList类型,是一个列表,表示各个备选的角色。 reason:string类型,表示询问角色选择的原因。 对于这个场景,AI系统的处理函数是: SmartAI:askForPlayerChosen(targets, reason) 这个函数通过表sgs.ai_skill_playerchosen来查找决策函数。 响应角色选择询问的决策函数原型是: function(self, targets) 它将产生一个ServerPlayer类型的结果,表示被选出的角色。 将决策函数写入表sgs.ai_skill_playerchosen的方法是: sgs.ai_skill_playerchosen[reason] = function(self, targets) 如果SmartAI:askForPlayerChosen(targets, reason)找不到这样的决策函数,那么AI系统将从这些备选角色中随机选择一名,作为最后的结果。 六、响应卡牌选择询问 技能代码中出现askForCardChosen()函数的地方就是询问选择一张卡牌的场景了。这个函数的原型是: Room:askForCardChosen(player, who, flags, reason) 其中: player:ServerPlayer类型,表示被询问选择卡牌的当前角色。 who:ServerPlayer类型,表示待选卡牌所属的目标角色。 flags:string类型,表示待选卡牌的位置标志。由”h”(表示手牌区)、”e”(表示装备区)、”j”(表示判定区)组合而成。 reason:string类型,表示询问卡牌选择的原因。 对于这个场景,AI系统的处理函数是: SmartAI:askForCardChosen(who, flags, reason) 这个函数通过表sgs.ai_skill_cardchosen来查找决策函数。 响应卡牌选择询问的决策函数原型是: function(self, who, flags) 它将产生一个number类型的结果,表示选出的卡牌的编号。 将决策函数写入表sgs.ai_skill_cardchosen的方法是: sgs.ai_skill_cardchosen[reason] = function(self, who, flags) 如果选择的结果与决策过程无关,那么可以决策函数可以简化为具体的卡牌编号。比如: sgs.ai_skill_cardchosen[reason] = 23 就表示在响应原因为reason的卡牌选择询问时,始终选择编号为23的卡牌(杀[?10])。 如果SmartAI:askForCardChosen(who, flags, reason)找不到这个决策函数,那么AI系统将根据who是否为友方、flags包含的区域以及具体的reason作出一般情形下的选择。这个选择的过程较为复杂,具体可参考smart-ai.lua中该函数的具体代码。 七、响应五谷丰登选牌询问 技能代码中出现askForAG()函数的地方就是询问从五谷丰登界面选择一张卡牌的场景了。这个函数的原型是: Room:askForAG(player, card_ids, refusable, reason) 其中: player:ServerPlayer类型,表示被询问五谷丰登选牌的当前角色。 card_ids:QList类型,表示五谷丰登界面中所有备选卡牌的编号列表。 refusable:bool类型,表示是否可以拒绝响应此询问。 reason:string类型,表示询问选择的原因。 对于这个场景,AI系统的处理函数是: SmartAI:askForAG(card_ids, refusable, reason) 这个函数通过表sgs.ai_skill_askforag来查找决策函数。 响应五谷丰登选牌询问的决策函数原型是: function(self, card_ids) 它将产生一个number类型的结果,表示选出的卡牌的编号。 将决策函数写入表sgs.ai_skill_askforag的方法是: sgs.ai_skill_askforag[reason] = function(self, card_ids) 如果SmartAI:askForAG(card_ids, refusable, reason)找不到这样的决策函数,那么AI系统将根据refusable、reason以及self.player自身的技能和对卡牌的需求程度作出一般情形下的选择。这个选择的过程同样较为复杂,具体可以参考smart-ai.lua中该函数的具体代码。 八、响应卡牌展示询问 技能代码中出现askForCardShow()函数的地方就是询问展示一张卡牌的场景了。这个函数的原型是: Room:askForCardShow(player, requestor, reason) 其中: player:ServerPlayer类型,表示被询问展示卡牌的当前角色。 requestor:ServerPlayer类型,表示发起询问的源角色。 reason:string类型,表示询问卡牌展示的原因。 对于这个场景,AI系统的处理函数是: SmartAI:askForCardShow(requestor, reason) 这个函数通过表sgs.ai_cardshow来查找决策函数。 响应卡牌展示询问的决策函数原型是: function(self, requestor) 这个函数将产生一个Card类型的结果,表示将展示的卡牌。 将决策函数写入表sgs.ai_cardshow的方法是: sgs.ai_cardshow[reason] = function(self, requestor) 如果SmartAI:askForCardShow(requestor, reason)没用找到这样的决策函数,那么AI系统将从当前角色的手牌中随机选择一张作为结果以进行展示。 九、响应花色询问 技能代码中出现askForSuit()函数的地方就是询问选择一种花色的场景了。这个函数的原型是: Room:askForSuit(player, reason) 其中: player:ServerPlayer类型,表示被询问选择花色的当前角色。 reason:string类型,表示询问花色的原因。如果reason缺失的话,AI系统会将其补全为”fanjian”,并依照反间选择花色的情形处理。 对于这个场景,AI系统的处理函数是: SmartAI:askForSuit(reason) 这个函数通过表sgs.ai_skill_suit来查找决策函数。 响应卡牌展示询问的决策函数原型是: function(self) 这个函数将产生一个number类型的结果,表示选出的花色编号。其中,0、1、2、3分别表示黑桃、红心、草花、方块花色。 将决策函数写入表sgs.ai_skill_suit的方法是: sgs.ai_skill_suit[reason] = function(self) 如果SmartAI:askForSuit(reason)没用找到这样的决策函数,那么AI系统将从0,3中随机选出一个数字作为最后选择的结果。 十、响应遗计询问 技能代码中出现askForYiji()函数的地方就是询问遗计分牌的场景了。这个函数的原型是: Room:askForYiji(guojia, cards, is_preview=true, visible=false) 其中: guojia:ServerPlayer类型,表示被询问遗计分牌的当前角色。 cards:QList类型,表示待分配的卡牌的编号列表。 is_preview:bool类型,默认为true。 visible:bool类型,表示卡牌在分配过程中是否对所有角色可见,默认为false。 原本这个函数只是技能“遗计”专用的,后来随着“礼让”等技能的出现,才开放出来,有了进行额外的AI设计的可能。 对于这个场景,AI系统的处理函数是: SmartAI:askForYiji(card_ids, reason) 这个函数是通过表sgs.ai_skill_askforyiji来查找决策函数的。 响应遗计询问的决策函数原型是: function(self, card_ids) 这个函数将产生两个结果,依次是ServerPlayer类型(表示分牌的目标角色)和number类型(表示分给目标角色的卡牌的编号)的。 将决策函数写入表sgs.ai_skill_askforyiji的方法是: sgs.ai_skill_askforyiji[reason] = function(self, card_ids) 如果SmartAI:askForYiji(card_ids, reason)没有找到这个决策函数,那么AI系统将根据self.player自身存在的标志,采用“礼让”或“遗计”的策略产生分牌的结果。这部分内容较为复杂,具体可以参考smart-ai.lua中此函数的相关代码。 十一、响应拼点询问 技能代码中出现askForPindian()函数的地方就是询问打出一张卡牌拼点的场景了。这个函数的原型是: Room:askForPindian(player, from, to, reason) 其中: player:ServerPlayer类型,表示被询问打出卡牌拼点的当前角色。 from:ServerPlayer类型,表示发起拼点的角色。 to:ServerPlayer类型,表示被拼点的角色。 reason:string类型,表示拼点的原因。 对于这个场景,AI系统的处理函数是: SmartAI:askForPindian(requestor, reason) 这个函数通过表sgs.ai_skill_pindian查找决策函数。 响应拼点询问的决策函数原型是: function(minusecard, self, requestor, maxcard, mincard) 其中: minusecard:Card类型,由AI系统产生的当前角色手牌中点数最小的卡牌。 self:表示由AI系统提供的表SmartAI。 requestor:ServerPlayer类型,表示发起拼点的角色。 maxcard:Card类型,由AI系统产生的当前角色手牌中使用价值不高的卡牌中点数最大的卡牌;或者就是minusecard。 mincard:Card类型,由AI系统产生的当前角色手牌中使用价值不高的卡牌中点数最小的卡牌;或者就是minusecard。 这个函数将产生一个Card类型的结果,表示将打出的用于拼点的卡牌。 将决策函数写入表sgs.ai_skill_pindian的方法是: sgs.ai_skill_pindian[reason] = function(minusecard, self, requestor, maxcard, mincard) 如果SmartAI:askForPindian(requestor, reason)没有找到这样的决策函数,那么AI系统将根据requestor是否为友方角色,来决定使用mincard或maxcard作为产生的结果。 十二、响应弃牌询问 技能代码中出现askForDiscard()的地方就是询问弃置卡牌的场景了。这个函数的原型是: Room:askForDiscard( target, reason, discard_num, min_num, optional=false, include_equip=false, prompt ) 其中: target:ServerPlayer类型,表示被询问弃牌的当前角色。 reason:string类型,表示弃牌的原因。 discard_num:int类型,表示应当弃牌的数目。 min_num:int类型,表示最少应弃牌的数目。 optional:bool类型,表示是否可以选择不弃牌,默认为false。 include_equip:bool类型,表示弃牌范围是否包括装备区,默认为false。 prompt:string类型,表示询问时出现的提示信息。 对于这个场景,AI系统的处理函数是: SmartAI:askForDiscard(reason, discard_num, min_num, optional, include_equip) 它是通过表sgs.ai_skill_discard来查找决策函数的。 响应弃牌询问的决策函数原型是: function(self, discard_num, min_num, optional, include_equip) 这个函数将产生一个table类型的结果,表示将弃掉的卡牌的编号名单。 将决策函数写入表sgs.ai_skill_discard的方法是: sgs.ai_skill_discard[reason] = function(self, discard_num, min_num, optional, include_equip) 如果AI系统的处理函数没有找到这样的决策函数,那么将按照一般情形的弃牌策略产生结果。这个决策的过程较为复杂,具体可参考smart-ai.lua中此函数的相关代码。 第三章 视为技与技能发动 一、一般视为技与卡牌使用 一般视为技,也就是将一些卡牌视为一张已存在的卡牌的技能,大多是没用特定的触发时机的。从第一章我们知道,AI系统通过不断检查卡牌是否可用来决定具体的使用方式;而在这个过程中,除了需要检查各个真实的卡牌,还需要检查那些可能通过视为技视为的虚拟卡牌。这首先要求AI系统了解当前角色拥有哪些视为技,或者说,我们需要先将我们的一般视为技信息加入AI系统。 AI系统通过表sgs.ai_skills记录已经存在的视为技,而视为技的各种信息也是通过一个表来体现的。所以最初的代码应该是: local 视为技信息表对象 = {} 视为技信息表对象[“name”] = “视为技名字” table.insert(sgs.ai_skills, 视为技信息表对象) 第一句话创建了一个视为技信息表,用于记录一个视为技AI的各类信息。 第二句话指明了这个信息表的名字,表明其对应的视为技。从此这个信息表就可以用来表示当前的这个视为技了。 第三句话是将信息表插入到表sgs.ai_skills,使得AI系统可以意识到这个视为技的存在,进而也有了发动它的可能。 在AI系统通过这三句话得知了视为技的存在后,接下来就是要检查包括视为的虚拟卡牌在内的各个卡牌是否可用了。对于视为技AI来说,这一步是通过getTurnUseCard函数具体实现的。这个函数的原型是: function(self, inclusive) 其中: self:其实就是表SmartAI自身。 inclusive:bool类型,仅在当前角色没有手牌时其值为true,否则为nil。 它将产生一个Card类型的结果,表示通过这个视为技视为的虚拟卡牌。如果产生的结果为nil,那么AI系统将不会在出牌时考虑发动这个视为技。 经常我们会用sgs.Card_Parse()函数产生这个虚拟卡牌,函数的原型是: Parse(str) 这里,唯一的参数str表示卡牌的构成方式,string类型。对于一般视为技来说,它的具体格式是: “N:K[S:P]=C” 其中: N表示视为卡牌的对象名(objectName()) K表示视为技的名字 S表示视作卡牌的花色字符串(getSuitString()) P表示视作卡牌的点数字符串(getNumberString()) C表示卡牌的具体构成,是由一系列通过“+”连接的所用卡牌的编号组成的字符串。 因此,检查视为的卡牌是否可用,让AI系统考虑发动视为技的方法就是: 视为技信息表对象.getTurnUseCard = function(self, inclusive) 由于一般视为技视作的是一种已经存在的卡牌,所以具体的使用方式,我们就不用额外给出了。 二、一般视为技与卡牌响应 有很多一般视为技都可以用于卡牌的响应,而不仅仅是在出牌阶段主动发动。在响应卡牌需求时,AI系统要做的事情,就是判断一下哪些卡牌可以用于发动这个视为技,并且给出视作卡牌的具体构成方式。当然,这个具体的判断过程,实际上也是一个函数,它的原型是: function(card, player, card_place) 其中: card:Card类型,表示当前判断的一张实际卡牌。 player:ServerPlayer类型,表示需要作出卡牌响应的当前角色。 card_place:sgs.Player_Place类型,表示当前这张实际卡牌所在的位置。 class_name:string类型。 如果处于card_place位置的卡牌card符合此视为技的要求,那么它将产生一个string类型的结果,表示所视作的卡牌的构成方式。 AI系统通过表sgs.ai_view_as来查找这个函数,方法是: sgs.ai_view_as[skill_name] = function(card, player, card_place, class_name) 这里,用于指明此函数的skill_name,string类型,表示这个一般视为技的名字。 三、判定锁定视为技 锁定视为技作为视为技的一种特殊情形,在AI设计时,除了要像主动发动一般视为技那样,创建自己的信息表并记录到表sgs.ai_skills中之外,还要给出一个判定卡牌是否受到影响而改变的处理函数。每次AI系统在检查所拥有的卡牌之前,都会先通过这个处理函数,将受影响的卡牌变更为其锁定视作的卡牌,再继续后续的工作。这个处理函数的原型是: function(card, card_place, player) 其中: card:Card类型,表示当前判定的一张实际卡牌。 card_place:sgs.Player_Place类型,表示此判定的卡牌当前所在的位置。 player:Player类型,表示拥有此锁定视为技的角色,同时也是卡牌持有者。 如果卡牌的确受到此锁定视为技的影响,那么这个函数将产生一个string类型的结果,表示具体的影响方式。和卡牌构成方式一样,格式是“N:K[S:P]=C”,只是这里的C必然只由一个卡牌编号组成而已。 四、使用技能卡 在武将扩展行为中,比起一般视为技,在视为技中使用技能卡的情形更为普遍。不过同样地,这也需要先将相应的视为技加入AI系统,方法和一般视为技是一样的,通过sgs.ai_skills实现。 接下来也是通过getTurnUseCard函数让AI系统认识到这张技能卡的可用性。而且我们通常也是用sgs.Card_Parse()函数产生一个虚拟的技能卡的。不同的是,虽然这个Parse函数的原型没变,还是Parse(str),不过参数str的格式不再是一般视为技中的“N:K[S:P]=C”了,而是在“响应卡牌使用询问”时介绍的,技能卡自己的构成方式”#N:C:->U”(Lua技能卡)或者”@N=C->U”(C++技能卡)。 由于getTurnUseCard函数只是用来告诉AI系统考虑使用这张技能卡的,具体的使用方式,包括具体要用什么牌、对谁使用等等,通常不需要在这里写好,所以很多时候,参数str的内容只是被刻意简单地写成了: “#N:.:”(对于Lua技能卡) 或者是 "@N=.->."(对于C++技能卡) 仅仅给出了技能卡的名字N,而子卡构成C和使用对象U都被忽略了。 在AI系统决定使用这张技能卡后,就要考虑具体的使用方法了。显然这是需要我们提供的,而AI系统则提供了一个表sgs.ai_skill_use_func来记录这些具体的使用方法。届时,AI系统通过查这个表,找到我们提供的使用方法,就可以真正发动技能使用技能卡了。 说到这个具体的使用方法,其实也表现为一个函数,这个函数的原型是: function(card, use, self) 其中: card:Card类型,表示一张虚拟的技能卡,其实就是刚才那个getTurnUseCard 函数产生的结果。比如sgs.Card_Parse(“#N:.:”),如果之前str参数被简单地写成”#N:.:”的话。 use:sgs.CardUseStruct类型,是一个卡牌使用结构体,表示技能卡的使用方法。我们就是通过填充这个结构体来告诉AI系统如果按照我们的意愿正确使用技能卡的。 self:依然是SmartAI的代名词,不解释了。 这个函数并不显式地产生任何结果,因为结果已经通过填充参数use传达出去了。比如,use.card表示要使用的技能卡,而use.to表示技能卡的使用目标。在这里,只有当use.card被填充(不为nil)时,AI系统才会去真正使用这张技能卡。 将这个函数写入表sgs.ai_skill_use_func的方法是: sgs.ai_skill_use_func[name] = function(card, use, self) 里面的那个name表示技能卡的名字,用于在表中区分各个使用方法函数。 关于这些触发技与视为技的AI设计,大体上就分为这些类型了,具体实例可参阅与本文拟配套的《新版太阳神三国杀武将技能AI实例分析》。 第四章 AI特征信息 一、使用价值与使用优先级 对于使用技能卡的视为技来说,提供具体的使用方法只能令AI系统在游戏时按要求使用技能卡,但是很多时候我们同样关心包括技能卡在内的各类卡牌的使用次序。比如,孙权先使用一张【无中生有】再发动制衡(使用制衡技能卡)可能就会比直接发动制衡(使用制衡技能卡)的效果更好。这其实就涉及了卡牌的两个设计要素:使用价值和使用优先级。 卡牌是有自己的使用价值的,而AI系统通常倾向于先使用价值更高的卡牌。在上面的例子中,无中生有的使用价值是10,而制衡卡的使用价值是9,所以一般情况下电脑玩家会先使用无中生有而不是直接制衡掉它。 这样一个容易想到的结果就是,如果不向AI系统给出我们的技能卡的使用价值,那么这些技能卡应该总是被最后使用的。 表sgs.ai_use_value被用来记录各个卡牌的使用价值,比如我们可以用形如 sgs.ai_use_value[name] = value 的式子来规定名称为name的技能卡所具有的使用价值是value。 另外,有些技能卡可能本身使用价值并不高,但是我们仍然希望电脑玩家优先使用它,那么可以通过设定卡牌的使用优先级来达到这个目的。 表sgs.ai_use_priority用于记录各个卡牌的使用优先级,优先级数值越高的卡牌将被优先考虑使用。我们可以用形如 sgs.ai_use_priority[name] = priority 的式子将名称为name的技能卡的使用优先级设定为priority。 二、相合花色与相合卡牌 许多技能卡都是由一些实际的卡牌构成的。而很多情况下会对这些实际的卡牌有各种各样的约束,不是所有的卡牌都能被用来产生技能卡的。在这些约束中,花色限制和卡牌种类限制应该是最为常见的方式了。 因而对于一个武将来说,如果TA拥有这样的技能,那么TA可能会对特定的花色或种类的卡牌的需求更多一些。如果我们能将这些信息提供给AI系统,那么这名武将就会提高对特定卡牌的关注程度(比如在五谷丰登选牌时优先选择特定类型的卡牌),达到更好地发动技能的目的。 表sgs.NAME_suit_value用于记录一个名为NAME的视为技的相合花色,通常这个表中可以包括四个项目,spade、heart、club和diamond,用来表示此视为技与四种花色的相合程度。比如: sgs.qixi_suit_value = { spade = 3.9, club = 3.9 } 表示技能“奇袭”(qixi)的相合花色是黑桃(spade)和(club),分别达到了3.9的相合程度。 表sgs.NAME_keep_value用于记录一个名为NAME的视为技的相合卡牌类型,表中的项目就是具体的卡牌种类了,用来表示此视为技与各类卡牌的相合程度。比如: sgs.qiangxi_keep_value = { Peach = 6, Jink = 5.1, Weapon = 5 } 表示技能“强袭”(qiangxi)的相合卡牌是桃(Peach)、闪(Jink)以及武器牌(Weapon),分别达到了6、5.1、5的相合程度。 三、武将嘲讽值 技能的不同带来的影响还有武将地位和作用的差异。拥有更高技能强度的武将理应遭到对立阵营的更多的攻击,这体现的就是武将嘲讽的概念。 在AI系统中,武将嘲讽是通过数值来体现的,而一名武将的默认嘲讽值是0。这个数值越高,嘲讽越大,也就有更多可能遭到对立方的攻击;反之,被对立方视而不见的几率就会增强。比如,张辽的嘲讽值是4,夏侯惇的嘲讽值是-3,因此在同等条件下,张辽遭到攻击的可能性比夏侯惇要高出很多。 AI系统使用表sgs.ai_chaofeng来记录武将的嘲讽值,格式是: sgs.ai_chaofeng.NAME = value 其中,NAME表示武将的名字,value就是对应的嘲讽值了。 比如,sgs.ai_chaofeng.liubei = -2,就表示刘备(liubei)的嘲讽值是-2。有如此低的嘲讽值,也难怪很少有优先集火刘备的情形出现了。 四、仇恨值与角色关系 在游戏中,从一名角色的行为出发,我们很可能感觉到TA的立场,或者TA对其他角色的态度。这为我们判断角色的身份,提供了重要的依据。其中很重要的一点就是,在这些行为中包含的友好或敌视的程度。在AI系统中,通常用仇恨值的概念,来表达和体现这样的行为特征。 在AI系统中,我们关注的可能包含角色关系的行为,主要有3种,包括: 使用卡牌、选择目标,以及选择卡牌。 对于这些仇恨值来说,数值越大,表明源角色对目标角色的敌意越重,双方立场对立的可能性也就越大。 第一,使用某些卡牌(包括技能卡)可能会表现出一定的立场倾向。比如,对一名角色使用仁德技能卡(发动仁德),通常应当被认为是一种友好行为;而使用突袭技能卡(发动突袭),更多情况下表达出的则是一种敌对的立场。 AI系统使用表sgs.ai_card_intention来记录使用各种卡牌时的仇恨值。而很多时候计算仇恨值是通过一个函数完成的。这个函数的原型是: function(card, from, tos) 其中: card:Card类型,表示这张被使用的卡牌; from:ServerPlayer类型,表示使用这张卡牌的源角色; tos:QList类型,表示使用这张卡牌的目标角色列表。 通常这个函数并不产生显式的结果,而是在函数中引用一个叫作sgs.updateIntention的函数,通过这个函数来更新双方的仇恨关系。 sgs.updateIntention函数的原型是: sgs.updateIntention(from, to, intention, card) 其中: from和card与计算仇恨值的函数中的同名参数的含义是相同的,分别表示卡牌的使用者和卡牌自身; to表示其中一个目标角色,ServerPlayer类型。 intention表示具体要更新的仇恨值。这个函数的功能便是在使用卡牌card后,以intention为涨幅更新from对to的仇恨值了。 将计算仇恨值的函数写入表sgs.ai_card_intention的方法是: sgs.ai_card_intention[name] = function(card, from, tos) 在这里,name表示所使用卡牌的名称,用来区分各个具体的计算函数。 如果计算函数中,更新的仇恨值始终是固定的,那么函数可以简化为这个固定的数值。即: sgs.ai_card_intention[name] = intention 就表示使用一次卡牌name,仇恨值始终增加intention。 第二,在响应角色选择询问等场合,目标选择的结果也会体现出角色间的关系如何。比如,驱虎拼点成功时要选择一名伤害目标,那么显然这种选择就是带有敌意的,因为我们通常不会把友方角色当成被选择的目标。 AI系统使用表sgs.ai_playerchosen_intention来记录选择目标所引起的仇恨值变更情况。当然,这种变更也是由一个函数具体完成的,它的函数原型是: function(from, to) 其中: from:ServerPlayer类型,表示作出选择的源角色。 to:ServerPlayer类型,表示被选择的目标角色。 同使用卡牌时的仇恨值计算函数一样,这个函数也没有显式的结果产生,而是通过函数内部的sgs.updateIntention来更新仇恨值的。 将这个变更函数写入表sgs.ai_playerchosen_intention的方法是: sgs.ai_playerchosen_intention[reason] = function(from, to) 这里,reason表示选择的原因,通常就是askForChoice函数中的第二个参数skillname。 当仇恨值固定时,这个函数就可以简化为一个具体的数值,表示这个固定的仇恨值: sgs.ai_playerchosen_intention[reason] = intention 就表示在reason询问角色选择时,对目标角色的仇恨值始终增加intention。 第三,在选择目标角色的卡牌时也可能传达出某种感情色彩。比如,用过河拆桥拆掉目标的装备应当被认为比拆掉目标判定区的延时性锦囊更有敌视的意味。 AI系统使用表sgs.ai_cardChosen_intention来记录选择卡牌时所引起的仇恨值变化情况。此时我们可以通过一个函数来提供这类仇恨值,它的原型是: function(from, to, card_id) 其中: from:ServerPlayer类型,表示作出选择的角色。 to:ServerPlayer类型,表示被选择卡牌的目标角色。 card_id:number类型,表示被选出的卡牌的编号。 同样地,这个函数依然不产生显式的结果,而是通过内部的 sgs.updateIntention更新仇恨值。 将这个供给函数写入表sgs._ai_cardChosen_intention的方法是: sgs.ai_cardChosen_intention[reason] = function(from, to, card_id) 里面的reason,表示卡牌选择的原因,被用来区分各个提供仇恨值的函数。 当然,如果这里提供的仇恨值也是固定的一个数值,那么函数将被简化为这个值,也就是: sgs.ai_cardChosen_intention[reason] = intention 这说明,在reason条件下不论选择哪张卡牌,都将累积intention的仇恨值。 第五章 常用AI函数 一、排序 如果想对一系列卡牌或角色进行排序,那么可以参考AI系统提供的一些排序函数。主要有以下一些: 1、function SmartAI:sort(players, key) 这个函数被用来对一些角色(players)以某种(key)进行排序。其中: players:table类型,表示待排序的角色名单。 key:string类型,表示排序的标准。可以省略。 通常在排序时有这样一些已经设定好的标准: “hp”,表示按体力值从小到大排序; “handcard”,表示按手牌数目从少到多排序; “value”,表示按角色的质量从小到大排序; “chaofeng”,表示按角色的嘲讽值从高到低排序; “defense”,表示按角色的防御杀的能力从低到高排序; “threat”,表示按角色的威胁程度从高到低排序。 而默认的标准是”defense”,也就是当参数key被省略时,按照角色对杀的防御能力排序。 这个函数并不产生显式的结果,但是players所代表的角色名单将被实际排序。 2、function SmartAI:sortByKeepValue(cards,inverse,kept) 这个函数被用来将一些卡牌(cards)按照各自的卡牌保留值进行排序。其中: cards:table类型,表示待排序的卡牌名单。 inverse:bool类型,表示排序的结果是否反转。可以省略。这里如果填true,那么将按照卡牌保留值从大到小排序,而填false或者省略的话,表示按照卡牌保留值从小到大的顺序排列。 kept:bool类型,表示是否参考实际技能对卡牌的影响。可以省略。这个参数的存在其实是因为卡牌有两种保留值,一个是本身固有的保留值,或者说通常意义上的保留值(由表self.keepValue记录);还有一个是因为与某些武将技能相合而产生的技能保留值(由表sgs.NAME_keep_value记录)。如果填true,那么将参考技能保留值进行排序;如果填false或者省略,那么只根据卡牌自身的保 留值进行排序。 同sort函数一样,这个函数也不产生显式的结果,只是对cards所代表的卡牌名单进行排序操作而已。 3、function SmartAI:sortByUseValue(cards, inverse) 这个函数可以用来按卡牌使用价值对一些卡牌(cards)进行排序。其中: cards:table类型,表示待排序的卡牌名单。 inverse:bool类型,表示排序的结果是否反转。可以省略。如果填true,表示按照使用价值从小到大进行排序;填false或者省略,则会按照使用价值从大到小的顺序排序。 这个函数没有显式的结果,只负责对cards所代表的卡牌名单进行排序处理。 二、敌友关系 1、function SmartAI:isFriend(other, another) 这个函数被用来判断两名角色(other和another)是否属于同一阵营。其中: other:ServerPlayer类型,表示待判断的一方。 another:ServerPlayer类型,表示待判断的另一方。可以省略。 如果参数another被省略,那么将判断other代表的角色与自身self.player是否是属于同一阵营的。或者可以等价地认为(虽然实际上不是这样),another被自动填充为self.player。 这个函数的结果是bool类型的。如果结果为true,表明从another方看来,other是友方角色;如果结果为false,则认为other不属于友方(可能是中立,更可能是敌方角色)。 2、function SmartAI:isEnemy(other, another) 跟isFriend很相似的一个函数,用于判断两名角色(other和another)是否属于两个对立的阵营。参数的含义和isFriend中同名参数的是一样的。 结果也是bool类型的。不同的是,如果结果为true,表明从another方看来,other是一个敌方角色;而结果为false时,认为other不算是敌方(可能是中立角色,更可能是友方)。 三、角色状态 1、function SmartAI:getOverflow(player, getMaxCards) 这个函数被用来检查一名角色(player)手牌溢出的情况。其中: player:ServerPlayer类型,表示待判断的目标角色。 getMaxCards:bool类型,表示检查的方式。可以省略。这和最后产生的结果有关,如果填true,函数将产生弃牌阶段弃牌后将剩余的手牌数目;如果填false,产生的则是当前手牌溢出(超出手牌上限)部分的数目。 这个函数的结果是number类型的,表示检查的结果。 这个函数在处理时,考虑了庸肆等技能的影响,在AI设计时不需要重复考虑了。 2、function SmartAI:isWeak(player) 这个函数经常被用来检查一名角色(player)是否处于虚弱状态。其中: player:ServerPlayer类型,表示待检查的目标角色。可以省略。如果不写的话,默认是指自身self.player。 这个函数的结果是bool类型的。如果结果为true,表示此角色虚弱,而false则认为其尚有足够强的生存能力。 这个函数在处理时,考虑了不屈、龙魂、魂姿等技能的影响,在AI设计时是不需要重复考虑它们的。 3、function SmartAI:hasSkills(skill_names, player) 这个函数被用来检测一名角色(player)是否至少拥有某些技能(skill_names)中的一个。其中: skill_names:table类型或string类型,表示待检查的所有目标技能的名字名单。如果传递过来的参数是string类型的,那么各技能名字间应用符号“|”分隔,以便在函数内部将其转化成对应的table类型。 player:ServerPlayer类型,表示待检查的目标角色。可以省略。在这个参数被省略时,它将被自动补全为自身self.player,表示检测自己是否拥有skill_names中包含的某个技能。 这个函数的结果是bool类型的。只要目标角色拥有这些技能中的任意一个,函数就会产生true的结果。而只有在目标角色不具备所有这些技能时,才会得到false的结果。 四、伤害效果 1、function SmartAI:damageIsEffective(to, nature, from) 这个函数的作用是判断对一名角色(to)造成的伤害是否有效。其中: to:ServerPlayer类型,表示伤害的目标。可以省略。被省略时,将被自动补全为自身self.player。 nature:sgs.DamageStruct_Nature类型,表示伤害的属性。可以省略。被省略时,将被自动选择为无属性伤害sgs.DamageStruct_Normal。 from:ServerPlayer类型,表示伤害的来源。可以省略。被省略时,将被自动填充为进行当前回合的角色(由self.room:getCurrent()确定)。 这个函数的结果是bool类型的,表示from对to造成的nature属性伤害是否有效。如果结果为true,表示可以造成伤害;当结果为false时,伤害无效。 在这个函数中,考虑了绝情、神君、愤勇、大雾、水泳、名士等技能的影响,设计AI时就不需要重复考虑了。 2、function SmartAI:aoeIsEffective(card, to, source) 和damageIsEffective类似,这个函数是用来判断多目标伤害性锦囊牌(card)能否对一名角色(to)造成伤害的。其中: card:Card类型,表示可能造成伤害的多目标伤害性锦囊牌。 to:ServerPlayer类型,表示待判断的目标角色。 source:ServerPlayer类型,表示卡牌的使用者。可以省略。省略时,将被自动设定为当前进行回合的角色(由self.room:getCurrent()确定)。 这个函数的结果是bool类型的,表示角色source使用的多目标锦囊牌card能否对目标角色to造成伤害。如果结果为true,表示伤害有效;如果结果为false,说明不能造成伤害。 在这个函数中,考虑了藤甲、各类禁止技、无言、绝情、祸首、巨象、智迟、啖酪、皇恩等因素的影响,同时结合了damageIsEffective的结果,因而在设计AI时,可以就不考虑上述因素了。 3、function SmartAI:getJiemingChaofeng(player) 这是一个针对技能“节命”设计的评估函数,主要用来评价一名拥有节命技能的角色在受到伤害时可能得到的收益。其中,参数player为ServerPlayer类型,表示被评价的目标角色。 在这个函数中,将对目标角色player的所有友方角色进行统计,查看他们当前手牌数与其体力上限(超出5时取5体力上限)的差距,得出节命时可能摸牌的数目,并根据这个数目评出相应的得分。 函数的结果是一个number类型的数值,表示最终的评分。如果得分为正数,表明目标角色的友方角色都有很多的手牌,节命空间较小;得分越多,嘲讽越高。如果得分为负数,表明有些友方角色手牌较少,节命空间较大;得分越少,嘲讽越低。 原文已完。下文为附加文档,如不需要,下载后可以编辑删除,谢谢~ 村支部书记在乡镇会议上的汇报发言 各位领导,同志们: 我叫XXXX,是XXX村村支部书记。能够在今天的会议上发言,我深感荣幸,这是乡党委、政府及管理区领导对XXX村“两委”工作的肯定,也是对我们珍惜荣誉、发扬成绩、戒骄戒躁、再创佳绩的鼓励。 XXX村有6个自然村,8个村民组,1500口人,村域面积9600亩,而耕地面积仅有1370亩。与杨庄管理区大部分村一样,距XXX街较远,自然条件较差,山多地少,人均不足一亩地。 2005年,我接任村支书时,全村还有贫困人口520人,道路、水利等基础设施十分落后,也没有什么产业,村里大部分劳力外出打工,留下老弱病残,在家靠天吃饭。 为了甩掉贫穷落后的“帽子”,村两委做了很多难,也出了很大力。俗话说,要想富,先修路。不走泥巴路也是全村男女老少多年来的期盼,于是,新一届村两委班子将修路确定为全村头等大事。通过跑项目、要指标,功夫不负有心人,终于在07年修通了新东、新西、河西三个组至四柳路的1.9公里村村通道路,08年又修成石东、石西两个组的2.3公里村村通道路。截止目前,全村六个自然村全部通上水泥路,其中XXX、河西两个村民组已经达到了“户户通”。 修好了路,群众们走亲串友方便了,上街买东西方便了,脸上的笑容也多了,几个村干部觉得跑腿流汗都值了。但是,我们又发现了新的问题,群众腰包不鼓、兜里没钱,依然是饱一顿饥一顿,甚至有些困难户吃了上顿没下顿,咋办,经过村两委班子多次商议,一致认为要发展一个产业,要有特色,要有高效益。结合村情,我们在充分调查、论证的基础上,决定组织群众沿北部山区,大力发展以薄皮核桃种植为主的特色林果业。说了就算,想了就干,经过做群众工作,甚至是村干部带头种植,如今,全村已经发展薄皮核桃2000余亩,建成苗圃园两个、占地150多亩,成立种植专业合作社4个、养殖合作社1个,已经有一部分群众得到了实惠。 近年来,国家对农村人居环境改善相当重视,我们村两委班子也做了不少努力,村容村貌有了很大改善,虽不能与平原地区相比,但在山区农村也称得上亮点。尤其是去年以来,我们村被乡党委、政府确定为美丽乡村建设试点村,在上级的支持和全村群众的努力下,试点XXX组完成路面硬化、修补300余米,整理边沟280米,铺设道沿石100多米,种植绿化树木312棵,粉刷墙壁600余平,初步实现了污水不乱流、垃圾不乱到,村容村貌焕然一新。 可以说,一直以来,村两委班子总是在千方百计带领群众发展产业,总是在想方设法改善群众生产生活水平,也取得了一些成效,得到了上级领导和绝大部分群众的认可。我们也很知足,但并不是满足,更不会骄傲。下一步,我们还要牢记乡党委、政府的嘱托和全村群众的期望,继续发展特色产业,尤其是薄皮核桃种植,力争今年再发展 600亩,发动更多的群众参与,把产业做大做强,让群众得到更多的实惠。在美丽乡村建设上,进一步解决XXX组试点的污水和垃圾处理问题,加强对群众良好生活习惯的培养,将XXX组打造成居住环境优美、群众精神风貌焕然一新的“美丽乡村”。并在此基础上,逐步向其余村民组辐射,不断加大工作力度,不负领导和群众期望,让XXX村成为一个产业结构明晰、基础设施完善、村容村貌优美、社会治安良好的美丽乡村。 县委第一责任人组织落实巡视反馈意见情况报告 根据XX省委巡视统一部署,XX年4月24日至5月23日,省委县(市、区)巡视一组对XX县进行了巡视。8月18日,省委县(市、区)巡视一组向XX县委反馈了巡视意见。按照党务公开原则和巡视工作有关要求,现将巡视整改情况予以公布。 一、切实把巡视整改工作作为政治任务抓紧抓好 XX县委高度重视省委县(市、区)巡视一组反馈意见,坚决把整改工作抓严抓实抓到位,切实承担起巡视整改的主体责任。县委书记张镇城同志为第一责任人,积极主动对照反馈意见,坚持高标准、严要求,坚决把整改工作落实到位。 (一)统一思想认识,认真领会省委要求和巡视组反馈意见 省委巡视组反馈意见后,张镇城同志立即主持召开县委常委会,专题学习省委重要指示,领会把握巡视组反馈意见。通过学习,大家 深刻认识到省委县(市、区)巡视一组代表省委到XX开展巡视工作,对于我县巩固和扩大党的群众路线教育实践活动成果,深入开展“三严三实”专题教育活动,推进党风廉政建设和反腐败工作的深入开展,营造良好的从政环境、构建良好的政治生态,具有十分重要的意义。巡视组提出的整改要求和各项意见,明确具体,针对性、指导性、操作性都很强,完全符合XX实际,充分体现了对XX工作的关心支持,体现了对XX广大党员干部的警示和爱护,是县委总结反思、改进工作的重要契机。为此,县委要求全县各级党委(党组)和广大党员干部特别是领导干部,要以此次省委巡视组反馈意见为动力,进一步统一思想,充分认识省委对县(市、区)巡视工作的重要意义,不断增强党要管党、从严治党的政治意识和责任担当。 (二)加强组织领导,层层传导压力推动整改落实 县委对巡视整改工作负主体责任,纪委承担监督责任。整改工作在县委常委会集体领导下开展,建立牵头挂项机制,由张镇城同志总体负责整改落实工作,其他班子成员和相关领导认真履行“一岗双责”,根据职责分工相互配合抓好各项整改任务的落实。张镇城同志认真履行第一责任人的责任,亲力亲为抓部署、抓推动、抓督导,先后主持召开县委常委会议和专题会议,对落实巡视整改工作进行专题研究部署;在赴XX中央党校学习期间,还多次打电话了解整改工作进展情况;国庆长假回XX期间,专门听取整改情况汇报,召集相关领导进一步研究,督促落实跟进措施,推动整改落实。县长何德发等领导对照整改问题,牵头制定分管联系领域内问题整改推进措施,督 促县直部门和乡镇推动整改落实向基层延伸;全县各级党委(党组)积极对照整改任务,各负其责、抓好整改;县委办、政府办、纪委认真做好协调、推进、督办等工作,推动形成上下联动、合力整改的工作格局。 (三)明确责任分工,从严从实开展各项整改工作 县委针对巡视组反馈的党风廉政建设、落实中央八项规定精神和作风建设、执行政治纪律和政治规矩、选人用人和执行民主集中制等四方面8项内容,研究制定《关于落实省委县(市、区)巡视一组〈关于对XX县巡视情况的反馈意见〉的整改任务与分解》,细化分解成19项整改任务,每项整改事项都确定了牵头领导、牵头单位和责任单位,明确了整改时限和目标要求,使责任更加明晰、措施更加具体,保证了整改事项“件件有方案、事事有人抓”。张镇城同志在统筹协调抓好整改落实各项工作同时,带头领办具体整改事项,担任3项整改事项的牵头领导,其他常委也根据各自的工作职责领办整改事项,一个问题一个问题深入研究,一个步骤一个步骤推进整改。同时,坚持把整改落实与巩固党的群众路线教育实践活动成果相结合,与开展“三严三实”专题教育相结合,以巡视反馈问题的整改推动作风持续转变。 二、省委巡视组反馈意见整改落实情况 省委县(市、区)巡视一组向我县反馈了在党风廉政建设、落实中央八项规定精神和作风建设、执行政治纪律和政治规矩、选人用人和执行民主集中制等四方面存在的问题。截止10月15日,四个方面 19个具体问题,已经整改完成14个,正在整改5个;移交初信初访件44件,已核查结束37件,正在办理7件;对相关责任人88人进行责任追究,涉及科级领导干部39人,其中,进行诫勉谈话、责令书面检查、辞退等57人次,立案查处31人,已给予党政纪处分26人。具体整改工作进展情况如下: (一)党风廉政建设方面 1.“两个责任”落实不到位问题 一是着力落实“两个责任”。县委深入学习领会习近平总书记关于党风廉政建设和巡视工作的重要讲话精神、省委对巡视整改工作的重要部署,制定出台《关于落实党风廉政建设党委主体责任的实施意见》、《关于落实党风廉政建设纪委监督责任的实施意见》、《XX县党风廉政建设责任追究暂行办法》等文件制度,进一步明确党委主体责任、纪委监督责任和责任追究的情形、方式、程序及结果运用,促进责任落实具体化,督促党委领导班子切实履行“一岗双责”,扎实抓好职责范围内的党风廉政建设。纪委监察机关履行监督责任,协助县委加强党风建设,推动各级党组织履行主体责任。加强纪律审查力度,进一步严明纪律,严格落实中央八项规定精神,坚决查处以招商引资为名公款吃喝、公款旅游的案件,并及时给予问责和曝光,努力形成高压态势。2015年1-9月,全县共新立案79件,办结65件,党政纪处分65人,移送司法机关追究刑事责任4人,挽回经济损失300多万元。同时,强化自身建设,建立纪检监察干部业务培训常态化机制,提升纪检监察干部履职能力和水平,今年共组织纪检监察系 统综合业务培训班3期培训230人次,选派县乡纪检监察干部参加中央、省、市纪检监察业务培训25人次。 二是强化干部监督管理。不断强化“全面”和“从严”意识及措施,切实加强对领导干部监督制约,为经济和社会发展提供坚强有力的纪律保障。抓常态,把严格执行和落实好党员领导干部诫勉谈话、函询、重大事项报告和个人有关事项报告等干部监督制度作为一项常态化的工作来抓,坚持把纪律挺在前面,注重抓早抓小,以良好的党风政风带民风社风。今年来共有178名拟提拔或调整的领导干部提交了个人有关事项报告表,科级干部报告婚丧喜庆等个人重大事项28人次。抓重点,加大对重点领域和关键岗位干部的监督,特别是单位“一把手”和领导班子,对他们在政治立场、民主决策、廉洁自律和班子建设等方面进行全面监督。加强对干部选拔任用工作的监督,把好选人用人关口,今年共对6批160名转任或拟提拔对象进行任前公示,组织2批15名拟提拔科级领导职务的干部参加任职前廉政法规知识测试。落实领导干部任期和离任经济责任审计制度,加大对领导干部特别是重要岗位领导遵守财经纪律等情况的监督力度,今年共计划对18个单位的主要领导进行经济责任审计,已经完成10个,在审3个。抓问责,严格执行“一案双查”制度,加大责任追究力度,坚持把责任追究作为落实党风廉政建设责任制的关键环节,今年已查处责任追究案件19起,问责科级领导干部35人,其中,立案调查17人,给予党纪处分13人,诫勉谈话9人,责令作出书面检查9人。 三是认真办理巡视组移交事项。首先,集中时间集中力量及时核 查省委巡视组移交的信访件和问题线索。要求纪委对巡视组交办的信访件和问题线索162件,其中:业务内信访件84件(初信初访件44件),业务外信访件78件(已转相关部门办理),建立工作台账,集中时间集中力量,由县纪委常委带队,进行调查核实。加大查办案件力度,在梳理排查问题线索的基础上,对可查性强、时机成熟的适时启动立案程序。截止10月15日,44件初信初访件中,37件已核查结束,7件正在办理。其中:查实转立案12件15人,已给予党纪处分15人;部分属实7件,已整改到位3件,建议提起诉讼1件,给予诫勉谈话1件,正在落实整改2件;失实了结15件;直接了结3件。对巡视期间,西潭乡党委副书记李南君违反中央八项规定精神,大操大办丧事,在群众中造成不良影响,县纪委及时立案调查,给予党内警告处分。其次,着力做好日常信访举报工作。及时处置新受理的信访件,做到当周签批交办,限时办结。今年1-9月,新受理检控类初信初访103件,逐件进行核实,从中发现问题线索并转立案39件,有效减少信访存量、遏制信访增量,努力做到信访件“零暂存”。 2.工程建设等重点领域存在的问题 责令相关单位、部门进行自查清理,逐个问题抓好整改落实,出台《XX县加强和规范财政性资金对外借款行为管理意见》、《关于进一步加强和规范招标投标管理的若干意见的通知》等文件制度,加强工程建设等重点领域的廉政风险防控。 (1)关于有的BT项目建设不规范问题 ?厦深高铁XX站站前广场及道路建设BT项目。县城投公司及时 组织审核调查,强化整改落实。一是强化BT项目财政审核和政府项目工程审计结算工作。9月17日,县审计局已对该项目进行审计。二是站前广场及道路建设BT项目建安费下浮1.5%。三是启动追责程序,县纪委对时任城投公司总经理林光荣、副总经理林镇国分别进行党纪立案调查,县城投公司对财务部负责人许隽生进行效能告诫,并通报批评。四是建立健全制度,印发工程招投标、操作流程,制定小额工程招投标管理办法,加强对业务人员招投标政策法规和BT项目知识的培训教育。 ?XX县中医院搬迁(含瑞康医院)建设BT项目。一是建安费下浮比例按3 % 进行结算。二是对未能认真把关项目建安费下浮比例等问题的相关人员进行问责,县卫计局分别给予负有领导责任的中医院副院长沈永义效能告诫、直接责任人基建科科长沈汉乾行政警告处分。 ?南湖公园片区及配套用地建设项目。加强对南湖公园片区及配套用地建设项目的监督管理,县城建局责令业主单位提交书面情况说明,并对其进行约谈和通报批评,给予相关责任人XX县房地产综合开发总公司总经理沈少山行政警告处分。同时,采取了三项整改措施:一是终止该项目土地一级开发条款,并终止土地挂牌出让净收益的30 % 分成的合同条款,另按合理的回报支付投资人的投资收益。二是403.69亩土地由政府方面统一收购储备挂牌出让,所得土地出让金偿还上述投资款及收益。三是对于项目未约定回购期问题,县房地产综合开发总公司正在施工方协商合同条款变更。 (2)关于有的工程项目以时间紧、要求高为由规避公开招投标问题 ?XX工业园区绿化项目规避招投标问题。县纪委责令XX工业园区分管建设工作的党工委委员杨云飞、土地规划建设局局长沈仕超作出书面检查。目前,工业园区已建立健全园区工程建设项目管理的决策、实施机制,规范建设项目的运作流程,建设发展公司年初按照规划提出项目盘子,制定年度投资计划,明确项目负责人和完成时限,报园区项目工作领导小组审核后再按计划、按程序实施项目,避免随意性。 ?金都工业集中区绿化项目规避招投标问题。金都工业集中区要求市政公司、招投标工程领导小组、财税管理局等多部门联动,组织人员开展工程项目清理。县纪委对时任金都工业集中区市政工程建设公司经理肖华顺进行诫勉谈话,责令作出书面检查。 ?金星乡规避招投标问题。2011年7月,乡政府将总价25万余元的办公楼主楼铝合金窗项目发包给无施工资质的个人,用现金结算并多付2万元,现已收回多付铝合金窗项目款19031.9元。关于2012年10月至2013年2月间,将总造价78.82万元的绿化配套工程分为3个项目实施,以及计生服务所业务用房大楼1台电梯工程(造价22.9万元)未经政府集中采购等问题,金星乡于8月31日召开专题会议,乡党委书记作为党风廉政建设的第一责任人对省委巡视组反馈的问题向班子会作检讨,深刻反省,并制定整改方案,具体到责任人、责任单位,形成专题会议纪要。县纪委对时任金星乡党委书记李保芳进 行党纪立案调查。 ?一些重点工程项目勘察、设计、监理方的选择,没有按规定进行招标,而是采用邀标或比选方式问题。加强县污水厂扩建及管道配套工程、站前广场、连站大道拓宽工程等项目的监督管理,制定工程招投标管理长效机制,确保应招标的工程项目百分之百招标,确保招投标工作的规范性和合法性。 (3)关于部分工程项目随意增加工程量、提高工程造价问题 ?县城投公司擅自同意施工方因取土点改变增加项目工程费用问题。县城投公司及时成立调查组,对巡视组反馈的问题进行调查、核实、梳理,深入分析研判。一是强化BT项目财政审核和政府项目工程审计结算工作。9月17日,县审计局已对该项目进行审计,确保国有资金不流失。二是暂停支付第二、三期70%回购款。三是施工方同意分担业主因取土点变更重新租地、赔青、坟墓迁移等费用110万元。四是对相关责任人进行问责。县纪委对时任城投公司总经理林光荣、副总经理林镇国分别进行党纪立案调查。县城投公司对项目现场负责人沈洪辉进行辞退处理;对项目现场管理人员许松琛、沈晓三、沈森鑫等3人,因现场监管不力问题,进行调离岗位处理,并通报批评。 ?县南环城路及玉峰南路道路工程项目调整中标价问题。县城投公司把该工程相关资料文件及省巡视组对该项目巡视提出的问题一并报送审计部门进行审计,由审计部门根据工程的实施情况进行核定,公司与施工单位的结算最终以审计结算价进行结算。同时,县纪 委对时任城投公司总经理林光荣、副总经理林镇国分别进行党纪立案调查,城投公司对该项目工程部负责人许晓东进行效能告诫,并通报批评。 (4)关于违规用大额现金支付工程款问题 ?桥东镇。2012年1月至2014年8月,桥东镇政府有14个工程项目以收款收据做账。桥东镇要求相关施工单位补开具正式发票入账,目前已补开发票的工程13项,总金额125.1015万元;未补开发票的工程1项,金额1.18万元。鉴于时任党委书记沈瑞强违纪被开除党籍,县纪委对时任镇长沈晓文给予党内警告处分,责令财务人员作出书面检查。 ?深桥镇。2011年3至2014年11月,深桥镇政府有23个2-21万元不等的工程项目以现金结算方式支付,总金额85.39万元,并以收款收据做账。深桥镇要求23个工程项目负责人补开税务发票重新登帐,已全部整改到位。县纪委已责令有关责任人作出书面检查,并将结合有关问题线索进行问责。 (5)关于违规出借国有资金、出租(售)国有资产问题 ?深桥镇违规出借公款问题。经查,深桥镇2007年1月至2014年12月间共出借国有资金32笔给9家民营企业,尚有部分资金未收回。深桥镇加大整改力度,约谈业主,制定催讨计划。县纪委已成立调查组对此问题进行调查核实,并将严肃追究责任。同时,在全县范围内开展财政性资金非公务借款清理专项行动,出台《关于进一步加强规范财政性资金对外借款行为管理意见》,规范财政资金管理。 ?县交通局违规出租挖掘机、交管站站房等国有资产问题。县交通局领导高度重视,立即召开会议研究并作出整改。一是现四都、三角点、太平三处交管站房结欠租金均已入库,原出租协议不再延续,交管站房原租用者已撤离。二是挖掘机原租用者已于9月3日交回机械及随机附件,也随之解除,挖掘机结欠租金已追缴到位,挖掘机已入库管理。三是交通局日前已按规范程序向县国有资产管理部门办理交管站房等国资出租(处置)报批手续的程序。四是对时任人秘股股长沈俊光未能及时报告上述国有资产出租协议到期(或应解除协议)时间,延误单位按规范程序办理公开出租(处置)报批手续时间等问题,县纪委对沈俊光进行党纪立案调查,责令交通局局长张育纯作出书面检查。 ?XX工业园区将新城花园店面低价出售问题。经查阅相关资料,XX工业园区出售的新城花园17间店面中,时任班子成员均无购买,个别领导的亲戚、身边工作人员是否有购买正在进一步核实。 3.少数基层干部在土地征收流转中以权谋私,群众身边的“四风”和腐败问题时有发生 一是严格监督。县委、县政府把查处发生在群众身边的“四风”和腐败问题作为落实党风廉政建设主体责任的重要内容,主要领导切实担负起第一责任人的责任。同时,发挥各职能部门的主体作用,县民政、财政、人社、国土、城建、农业、卫计、税务以及基层执法、监管、公共服务等窗口行业涉及到的部门,既各负其责、主动履职,又加强联动、形成合力,着力整治行业、系统的发生在群众身边的“四 风”和腐败问题。二是严肃执纪。纪检监察机关把发生在群众身边的“四风”和腐败问题列入纪律审查重点,作为纪律处分的重要内容。坚持把纪律挺在前面,抓早抓小、动辄则咎,用纪律管住大多数。大力加强土地廉政风险防控,开展打击非法买卖土地专项整治行动,严肃查处非法倒卖土地行为,去年以来,查处了党员干部非法买卖土地窝串案,涉案56人,立案24人(其中科级8人),移送司法机关16人,涉案金额460多万元。同时,坚持以零容忍态度,严厉查处医疗领域、惠民资金拨付中侵害群众利益的案件,今年来,查处发生在群众身边的“四风”和腐败问题28件,党政纪立案28件,现已党纪处分25人。其中,医疗卫生领域侵害群众利益的案件4件,惠农强农资金拨付中侵害群众利益的案件10件,基层干部吃拿卡要的案件1件,查处基层行政执法乱作为案件5件。三是严加防范。相继出台《关于建立惠农资金落实情况报告制度的通知》、《关于进一步规范强农惠农资金公开公示制度》、《关于开展涉农资金专项整治行动的实施意见》等文件制度,规范惠农强农资金使用;印发《关于开展严厉打击非法买卖土地专项行动方案》,严肃查处土地流转中侵害群众利益案件。 (二)落实中央八项规定精神和作风建设方面 4.公务用车费用支出偏高问题 一是加强公务用车管理。县委办、政府办联合印发《关于进一步规范公务用车费用支出管理的通知》,严格执行公务用车配备使用管理有关规定,坚持总量控制、规范管理、厉行节约。严格控制车辆经 费预算支出,以前三年的平均数下调10%为基数,科学设定单位公车运行费用限额。严格执行公务用车使用管理制度,督促各单位建立健全派车制度,实行定点维修制度,严禁以收款收据报销车辆维修费用。严格落实公务用车“一车一卡”加油制度,实行定额用油、一车一卡、专卡专用制度,从源头上加强对公务用车燃油费的监控管理。二是开展燃油补贴清退工作。检查发现部分单位存在违规发放交通燃油费补贴,一定程度上导致了我县整体公务用车费用支出偏高问题。为严肃财经纪律,深化落实中央八项规定精神,经县委、县政府研究决定,由县政府办下发《关于清退违规发放交通燃油费补贴的通知》,要求全县各单位自查清退2013年7月1日以来违规发放交通燃油费补贴。截止10月15日,全县共清退违规发放的交通燃油费补贴121.44万元。三是强化公务用车的监督检查。加强对全县公务用车费用支出的全方位监督检查,县委、县政府督查室、县效能办采取巡查、暗访、督办等方式,不打招呼、不定时间、不限地点对全县公务用车油卡使用、定点停放、派车制度等情况进行监督检查。四是加大惩处力度。今年来,共查处违规使用公务用车、违规报支私车费用和违规发放交通燃油费补贴等问题7起13人,如查处了梅岭镇违规发放交通燃油费补贴问题,对梅岭镇原党委书记陈金平、原纪委书记杨立辉进行党纪立案,对时任镇长沈来龙、现任镇长陈三武进行诫勉谈话;县国土资源局秀篆国土所所长陈武元公车私用问题,给予行政警告处分;桥东镇原党委委员XX顺违规报支私车费用问题,给予XX顺党内警告处分。 5.公务接待管理不严、财务报支不规范问题 一是认真核实整改。针对县林业局等10个单位公务接待管理不严、财务报支不规范等问题,县纪委已组织人员进一步调查核实,督促相关单位整改到位,并对违反规定的相关责任单位和责任人严肃追究责任。?关于县林业局公务接待和招商引资接待开支票据不规范问题,经核实,县纪委对县林业局负责食堂接待的人秘财务股股长沈金辉、副股长陈镇林进行诫勉谈话,责令县林业局局长胡平忠作出书面检查。?关于县公安局公务接待和招商引资接待开支票据不规范问题,经核实,对县公安局负责公务接待工作的时任警务保障室主任李小明进行诫勉谈话,责令食堂管理员沈玉龙作出书面检查。?关于XX工业园区公务接待和招商引资接待开支票据不规范问题,经核实,县纪委对园区分管办公室的党工委副书记叶斌进行诫勉谈话,责令园区副主任王雪芳、财税局局长林荣治、经发局局长吴丽萍等7人作出书面检查,责令退缴未注明接待事由、对象、人数标准等内容的已报销票据7张金额计5250元。?关于金星乡同城接待、异地接待问题,经核实,县纪委对分管党政办的时任金星乡副乡长沈宝川进行诫勉谈话,责令金星乡党委书记陈燕贞、财政所所长陈永林、党政办副主任林炎钦等4人作出书面检查。?关于县发改局同城接待、异地接待和用公款购买土特产品问题,责令县发改局副局长许旭松、时任办公室主任叶和泉等3人作出书面检查,责令退缴违规购买土特产品金额计1.15万元。?关于交通局等单位同城接待、异地接待问题,经核实,县纪委对经办人员沈舜平给予党内警告处分、沈彩明进行约谈,责令 县交通局退缴“2015年1至3月异地接待开支”金额计5022元,责令交通局局长张育纯作出书面检查。?关于霞葛镇以收款收据报支接待费和公款购买土特产品问题,经核实,县纪委已责令霞葛镇进行整改,对时任镇长陈敏聪、现任镇长吕自信、时任党政办主任张文培给予党内警告处分,对党委书记沈林松进行诫勉谈话。?关于深桥镇用公款购买土特产品问题,县纪委对深桥镇时任组织委员兼党政办主任吴志斌、工作人员吴激进行约谈,案件在进一步调查中。?关于白洋乡用公款购买土特产品问题,经核实,县纪委对白洋乡时任乡长许仲岚党内严重警告处分,对纪委书记田元斌、分管公务接待工作的时任党委委员林惠丹、时任党政办主任李煜给予党内警告处分,对党委书记沈东生、乡长吕新国进行诫勉谈话,责令白洋乡党委宣传委员黄瑞麟、财政所所长许朝辉等13人作出书面检查,同时,白洋乡党委研究决定将财政所所长许朝辉降职改任财政所副所长,将总务陈志明调离党政办,给予白洋乡党政办通报批评,并撤销党政办“总务”岗位。?关于四都镇公务接待和招商引资接待开支票据不规范和大额办公用品未按规定实行政府采购问题,经核实,县纪委对四都镇分管党政办的党委组织委员沈一娟给予党内警告处分,责令时任镇长蔡祥瑞、党政办主任张文艺等7人作出书面检查。二是健全完善制度。深化落实中央八项规定精神,先后制定《关于进一步加强行政事业单位财务管理的意见》、《XX县推行财务公开工作的实施方案(试行)》、《XX县县直机关会议费管理办法》等文件,进一步规范财务报销,压缩“三公”经费支出;出台《XX县进一步规范公务接待管理意见 的通知》,对公务接待范围、接待标准、审批程序和报销手续作出明确规定。三是加大查处力度。在五一端午、中秋国庆期间,在全县范围内开展违反中央八项规定精神突出问题专项整治活动,由县纪委监察局领导班子带队,抽调乡镇纪委书记、县直纪检组长、财政局、公安局等部门人员,组成5个督查小组,对48个乡镇(区)、县直单位和旅游景点,开展中央八项规定精神落实情况监督检查,重点检查“三公”经费支出等情况,发现疑似线索37条,调查核实4条,转党政纪立案3件。今年来,共查处违反中央八项规定精神问题19起68人,立案调查18人、给予党政纪处分17人,诫勉谈话12人、书面检查37人、责令辞退1人,点名道姓通报4起5人。 6.干部“庸政、懒政、怠政”现象 一是强化干部思想教育。深入学习习近平总书记系列讲话精神,发挥乌山红色革命教育基地作用,加强党员干部的理想信念教育。结合“三严三实”专题教育活动,进一步坚定理想信念,强化党性原则,明确干事创业的行为准则,不断强化党员干部“忠诚、干净、担当”意识。二是深化机关效能建设。贯彻落实《XX县深化“马上就办”行动、优化发展软环境的实施方案》,围绕纪律作风开展督查,针对可能存在的一些干部纪律松懈、庸懒散拖以及群众办事“三难”等现象,综合运用经常性、随机性抽查、明察暗访等形式督查。出台《2015年度绩效考评工作方案》,促进转变作风、高效履职、优化服务。三是完善干部考核评价体系。紧盯年初确定的目标任务,结合省、市“三比一看”、“三个年活动”和“大干六个月”等活动的部署要求,抽 调干部到重点项目、征地拆迁一线锻炼,提高干部担当意识和执行力。修订完善《注重工作实绩推荐选拨干部考评办法》,积极探索干部“能上能下”机制,形成能者上、庸者下、劣者汰的良好用人导向。同时,把监督干部同信任干部、保护干部、激励干部统一起来,支持干部锐意改革、大胆创新,激发干部知难而进、干事创业。 (三)执行政治纪律和政治规矩方面 7.对上级的决策部署监督不力、执行不到位问题 一是抓好党性党风党纪教育,结合党的群众路线教育实践活动和“三严三实”专题教育活动,引导党员干部着力增强宗旨观念、提高实践能力、强化责任意识、树立正确政绩观和利益观、增强党纪观念。二是加强监督检查,确保政令畅通,开展上级党委、政府和县委、政府一系列决策部署贯彻落实情况的监督检查,如印发《关于2015年中秋国庆期间开展中央八项规定精神落实情况监督检查的通知》,不断巩固落实中央八项规定精神成果,严防“四风”问题反弹。三是严肃查处对上级的决策部署监督不力、执行不到位等行为,特别是未能结合本地实际制定贯彻落实中央八项规定精神的具体措施,以招商引资为名、白条开支等形式搞变通、应付等问题,加大问责力度,严肃查处了梅岭镇违规发放交通燃油费补贴问题,林业局等单位公务接待管理不严、财务报支不规范问题,白洋乡、霞葛镇等用公款购买土特产品问题。 (四)选人用人和执行民主集中制方面 8.个别单位存在“近亲繁殖”现象 一是摸清底数,强化整改。经摸排,县法院、公安局、市场监督管理局、交通局、林业局、农机站等6个单位,在同单位工作有亲属关系的公务员或事业(参公)干部共51人,其中违反《公务员回避规定(试行)》的16人。截止10月15日,违反回避规定的16人中,市场监督管理局县管干部存在直接上下级领导关系的1对夫妻和1对兄妹已在巡视期间分别将其中1人调离原单位,其他在同一单位双方属同一领导分管的有亲属关系的12人,均对其中一方进行适当的岗位调整。二是建章立制,源头防范。县人社局参照《公务员法》有关回避的要求,结合本县实际,出台制定岗位和工作回避规定,坚决从制度层面杜绝“近亲繁殖”现象。同时,加大对《干部选拔任用工作条例》、《公务员法》等有关干部政策法规的学习培训力度,督促各级党委和组织人事部门严格按照政策法规办事。 三、持续巩固和深化整改工作成果 经过两个月的集中整改,我县的整改工作取得了一定成效,但县委清醒地认识到,整改工作离省委的要求和干部群众的期待还有一定差距,党风廉政建设仍然任重道远。下一步,县委将严格对照巡视反馈意见要求,举一反三,标本兼治,抓常抓严抓实,坚持不懈抓好整改落实工作,以实际成效取信于民。 一是坚持问题导向抓好专项整治。坚持目标不变、力度不减,对巡视整改工作紧抓不放,督促各级党组织加强对整改工作的领导,坚持问题导向,大力发扬“钉钉子”精神,以“踏石留印、抓铁有痕”的劲头解决突出问题,坚定不移地向老大难问题开刀,做到敢碰硬、 啃“硬骨头”。 二是层层传导压力抓好责任落实。严格落实党委主体责任和纪委监督责任,切实督促各级党委对党风廉政建设负起全面领导责任,特别是抓牢抓实党委主要负责人第一责任人职责;班子其他成员要根据工作分工,对职责范围内的党风廉政建设负主要领导责任,切实履行“一岗双责”,凝聚形成抓整改的强大合力。支持各级纪委聚焦中心任务,加强对党风廉政建设和反腐败工作的监督,切实履行好党内监督职责,确保党风廉政建设责任制落到实处。 三是强化堵塞漏洞抓好建章立制。把显性问题整改与隐性问题查找统一起来,把立行立改与完善长效机制结合起来,以落实整改为契机,进一步建章立制,扎好制度的篱笆,坚持用制度管事管人,深入推进作风建设和反腐败工作,切实以正风肃纪、高压反腐的有力举措,逐步形成不敢腐、不能腐、不想腐的良性体制,促进全县广大干部廉洁从政,汇聚起深化改革发展、建设美丽XX的正能量。 欢迎广大干部群众对巡视整改落实情况进行监督。如有意见建议,请及时向我们反映。联系方式:电话XX;邮政信箱:XX县县委大楼四楼县纪委党风室;电子邮箱:
/
本文档为【新版太阳神三国杀武将技能AI设计概要】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索