如何将已经DIY好太阳神三国杀自制武将武将调出来...

&>&太阳神三国杀 lua diy 武将变更
太阳神三国杀 lua diy 武将变更
上传大小:1.72MB
太阳神三国杀 lua diy
综合评分:0(0位用户评分)
所需积分/C币:
下载个数:1
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有0条
审核通过送C币
创建者:qq_
【VR技术开放日】VR开发从何入手演讲PPT汇总
创建者:tangxiaoyin
虚幻4引擎学习
创建者:huangyueranbbc
上传者其他资源上传者专辑
太阳神三国杀 lua diy 手牌上限
太阳神三国杀 lua diy 获得新技能 失去技能 触发事件
太阳神三国杀 lua diy 距离技能
太阳神三国杀 lua diy 启用ai
太阳神三国杀 lua diy
添加提示音
课程资源热门标签
VIP会员动态
下载频道积分规则调整V1710.18
CSDN下载频道积分调整公告V1710.17
开通VIP,海量IT资源任性下载
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&VIP年卡&4000万程序员的必选
为了良好体验,不建议使用迅雷下载
太阳神三国杀 lua diy 武将变更
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:786
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
全站1200个资源免积分下载
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
全站1200个资源免积分下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
全站1200个资源免积分下载
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
wangwangniu
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动***等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
太阳神三国杀 lua diy 武将变更在cpp区发了那篇DIY教程贴之后,我转战到了l;首先,AI的编写与lua技能的代码有很大关系,我;1.写代码要整齐,缩进量要层层递进,保证代码的易;2.写触发技的时候,要清楚每个触发事件的原理,最;则可能引入异常的行为;3.没有必要的时候不要重载can_trigger;函数;发的事件来写条件分支语句,这样逻辑会更加清晰一些;5.尽量避免在视作技中使用ask
在cpp区发了那篇DIY教程贴之后,我转战到了lua区,发现大家都是再写lua武将的DIY,没有人关心AI的lua。在我看来,与cpp相比,lua来实现DIY的武将优点是***卸载方便且不会影响cpp源代码的整洁,缺点是不能debug,通过设置断点来观察变量,在测试的过程中比较辛苦,还有就是偏于与系统耦合的技能比较难实现。这两天把AI部分的lua代码看了一遍清楚了,除了身份判断部分,基本清楚了它的原理。鉴于lua武将DIY的教程和范例已经比较完善,这次我就把AI的编写简要的整理一下。附件中的内容是和这次教程相关的代码、相关武将的卡牌图片以及本帖的PDF版本。附件中有“侠”三武将的lua和AI,以及两个我DIY的娱乐武将的AI(娱乐武将用CPP实现的,由于有一个修改性别的技能改变了底层的Player类,因此无法用lua完美实现,所以就不提供代码了,有兴趣的同学可以和我交流)。 首先,AI的编写与lua技能的代码有很大关系,我用自己设计的两个武将和“侠”三武将做了实验并且完成了这五个武将的AI。在编写“侠”三武将的AI时遇到了一些问题,后来我把寒秋的代码优化了一下才解决了问题。附件里会有“侠”三武将的代码,一个是原版的,一个是我改进过的,大家可以对比下。(并没有冒犯的意思,纯学术上的交流)所以算是给广大lua的DIY爱好者们几条编程方面的建议吧。 1. 写代码要整齐,缩进量要层层递进,保证代码的易读性 2. 写触发技的时候,要清楚每个触发事件的原理,最好不要加入多余的触发事件,否则可能引入异常的行为。当然,一般来说引入多余事件只是降低程序运行的效率罢了,对于神杀影响应该不大。 3. 没有必要的时候不要重载can_trigger、enabled_at_play、enabled_at_response这些函数。对于can_trigger这个函数,重载直接return true然后在on_trigger里判断玩家是否拥有该触发技和使用默认的can_trigger基本是一样的(因为can_trigger本身返回值就是触发者是否拥有该技能且触发者是否活着,貌似死人没法触发技能)。 4. 如果一个触发技可以在多个时间下触发,在写on_trigger函数的时候大家请按照触发的事件来写条件分支语句,这样逻辑会更加清晰一些。 5. 尽量避免在视作技中使用askForCard这个函数,我来举个例子:如果一个视作技可以把闪当作无中生有来使用,如果你不用askForCard,那么操作流程将是点击技能按钮à选择一张闪à点击确定当无中生有打出;但是如果使用了askForCard并且你装备了八卦阵,那么你点击技能按钮à系统提示你需要打出一张闪à使用八卦阵à判红à直接打出一张无中生有。一张牌当无中生有和零张牌当无中生有,知道区别了吧。 6. 在触发技一定要使用askForSkillInvoke(player,self:objectName(),data),这里要注意第三个参数data,它包含触发事件的详细信息,一般卖血技的是damage的结构体、无言那种是cardEffect结构体、烈弓是slashEffect结构体。这些data中的信息在写AI的时候十分重要,因此务必要加上以便于AI中完成复杂的判断。我之前写AI就是因为askForSkillInvoke(player,self:objectName())导致需要的变量总是空值,郁闷了很久。 7. 触发技中askForCard之前最好加上askForSkillInvoke。对于人来说,如果不加askForSkillInvoke,不想发动机能的时候直接点取消就行,加上了askForSkillInvoke无非就是在提示是否使用XXX技能时多点一个确定罢了。但是对于AI的编写,如果不加askForSkillInvoke,那么这个技能对应的AI就要写在smart-ai.lua的SmartAI:askForCard里,有点像cpp中的系统耦合技,这对于代码的整洁还有AI的移植是不利的。但是加上askForSkillInvoke后,我们就可以单独的对这个选择写一个AI,消除了耦合。 OK,建议提完了,开始说AI的编写吧。首先,基本上所有的非锁定技的视作技和触发技都可以独立新建一个lua文件编写,禁止技在smart-ai中的cardProhibit和slashProhibit里编写,锁定技在smart-ai.lua中的damageIsEffective、slashIsAvailable、prohibitUseDirectly、isCompulsoryView中编写,一些锁定技的响应(需要调用askForCard的)在smart-ai中的askForCard里编写,卡牌转换类技能在smart-ai中的getSkillViewCard里编写。
我把AI技能的编写分为几类: 1. 将卡牌视为三国杀已有主动使用卡牌的视作技,比如双雄、连环、火计 2. 将卡牌视为三国杀已有卡牌的视作技,这些卡牌用于响应,比如倾国、看破、急救 注:武圣、龙胆、酒池这些技能既属于第一类也属于第二类 3. 将卡牌视为技能卡的视作技,比如青囊、离间、驱虎 4. 所有的非锁定技的触发技,比如刚烈、八阵、悲歌 5. 禁止技,比如空城、谦逊、帷幕 6. 使效果无效的技能,暂且称无效技,比如无言、智迟、神君;有威慑力的技能,比如刚烈、恩怨、雷击 7. 视作锁定技,比如戒酒、武神 8. 对出杀次数、杀指定目标数、杀的距离修改的技能,比如天义、咆哮、方天画戟 9. 响应时的斟酌,比如AOE奸雄收牌、无双肉林只有一张闪就直接掉血 此外,一些技能还涉及到选项,比如志继觉醒摸牌还是回血、反间选择花色、无谋弃掉标记还是流失体力;另一些技能涉及到目标的选择,比如驱虎赢了选择受伤害者、旋风选择伤害者或杀的目标、眩惑来的牌给谁。这就要求我们具体问题具体分析了。 第一类技能编写的通式是: local skillname_skill={} skillname _skill.name=\table.insert(sgs.ai_skills, skillname) skillname _skill.getTurnUseCard=function(self)
判断是否满足应该使用的条件,若不满足则return nil
local card
选则要发动技能的卡牌,赋值给card
if not card then return nil end
local suit = card:getSuitString()
local number = card:getNumberString()
local card_id = card:getEffectiveId()
local card_str = (\转换卡牌名称:skillname[%s:%s]=%d\
local skillcard = sgs.Card_Parse(card_str)
assert(skillcard)
return skillcard end 例子是以下这个武将的技能—求败: [\独孤求败\ [\无剑\ [\有剑\ [\有剑\ [\求败\ [\求败\ [\当你没有装备武器时你的杀不可被闪避。\ [\回合内你可以将任意武器牌当决斗使用。若决斗成功则你可以摸两张牌否则对方摸两张牌\ [\= \当你装备有武器时本回合你可以出X张杀,X为你当前的攻击范围,回合内你使用的所有杀都将被计数(不包括决斗出的杀)。\ --luaqiubai local luaqiubai_skill={} --设置技能名称 luaqiubai_skill.name=\--把这个技能添加进ai_skills列表中,使AI可以使用这个技能 table.insert(sgs.ai_skills,luaqiubai_skill) --判断技能是否可以发动的函数
luaqiubai_skill.getTurnUseCard=function(self)
--获取手牌中杀的个数
local slash_num = self:getCardsNum(\ --获取该回合出杀的次数
local slash_used = self.player:usedTimes(\ --如果已装备武器,且手中有杀多于一个, --且获取该回合出杀的次数小于攻击范围,则不发动该技能
--这是为了保证有剑和求败两个技能利用最大化
if self.player:getWeapon() and slash_num > 0
and slash_used < self.player:getAttackRange() then return nil end
--获取我所有的手牌和装备牌
local cards = self.player:getCards(\ cards=sgs.QList2Table(cards)
local card
--根据使用价值来排序
self:sortByUseValue(cards,true)
--遍历所有卡牌
for _,acard in ipairs(cards)
--如果是武器牌则使用这个卡牌
if acard:inherits(\
card = acard
--如果没选发动技能的卡牌则返回空值
if not card then return nil end
local suit = card:getSuitString()
local number = card:getNumberString()
local card_id = card:getEffectiveId()
--构造卡牌字符串,卡牌名称:技能名称[花色:点数]=卡牌ID
local card_str = (\ --指定要使用的卡牌
local skillcard = sgs.Card_Parse(card_str)
assert(skillcard)
return skillcard end
第二类技能编写是在smart-ai.lua中的getSkillViewCard中添加代码,用于响应的卡牌有杀、闪、桃、酒、无懈,我们只需要在对应的分支语句里添加即可。比如在对闪的处理可以看到龙魂、龙胆和倾国,如果我们加一个技能叫“我闪”,这个技能可以把装备牌当闪使用,那么用下方红色的代码就能实现它的AI: ………… elseif class_name == \ if player:hasSkill(\
if card:getSuit() == sgs.Card_Club then
if card_place ~= sgs.Player_Equip then
if player:hasSkill(\
elseif player:hasSkill(\
if card_place == sgs.Player_Equip and player:hasSkill(\
有一个情况比较特殊,zeroCardView就是把0张牌当某牌,这个很特殊,目前只用来实现酒诗的AI,前两种技能如果是把0张牌当某牌,AI都可以用这个函数实现。如果写一个技能“万兽”和酒诗相似,只是正面向上时翻面可以当南蛮入侵,那么添加红色代码即可: local function zeroCardView(class_name, player)
if class_name == \
if player:hasSkill(\
else if class_name == \
if player:hasSkill(\
第三类技能编写的通式是: local skillname_skill={} skillname _skill.name=\table.insert(sgs.ai_skills, skillname) skillname _skill.getTurnUseCard=function(self)
判断是否满足应该使用的条件,若不满足则return nil
local card
选则要发动技能的卡牌,赋值给card
if not card then return nil end
local card_str = (\
local skillcard = sgs.Card_Parse(card_str)
assert(skillcard)
return skillcard end
sgs.ai_skill_use_func[\ local target
选择技能发动的目标,若没找到合适目标则return nil
use.card = card
use.to =append(target)
return end 例子是以下这个武将的技能—争宠: [\吴健\ [\争宠\ [\= \出牌阶段,你可以弃一张手牌,指定两名女性角色。若如此做,视为其中一名女性角色对另一名女性角色使用一张【决斗】(此【决斗】不可被【无懈可击】响应),每回合限用一次\ [\阉割\ [\你每次对其他男性角色造成伤害,可使收到该伤害的角色变为女性,直到游戏结束\ --zhengchong local zhengchong_skill={} --设置技能名称 zhengchong_skill.name=\--把这个技能添加进ai_skills列表中,使AI可以使用这个技能 table.insert(sgs.ai_skills,zhengchong_skill) --判断技能是否可以发动的函数 zhengchong_skill.getTurnUseCard=function(self)
--如果该回合发动过则不发动
if self.player:hasUsed(\
三亿文库包含各类专业文献、高等教育、各类资格考试、中学教育、外语学习资料、文学作品欣赏、生活休闲娱乐、行业资料、教程贴:教你自己编写DIY武将的AI(太阳神三国杀lua)96等内容。 
 这是基于踏青版太阳神三国杀的武将lua,仅供参考用,不能直接放入游戏中。如需...教程贴:教你自己编写DI... 16页 3下载券
太阳神三国杀diy图文教程... 23...  ·虫 首发:百度太阳神三国杀 Lua 吧 编写说明本...武将变更 第八章:启用 AI 一、创建我们的 AI ...在最上面找到 DIY 菜单,里面有个卡牌编辑器: 别...  太阳神三国杀新手教程 2786人
太阳神三国杀lua—DIY孟获by紫陌易尘 8964人
...正如《新版太阳神三国杀武将扩展学习手册》所描述的那样,太阳神三国杀的AI系统还是...  这是基于踏青版太阳神三国杀的武将lua,仅供参考用,不能直接放入游戏中。如需...教程贴:教你自己编写DI... 16页 3下载券
太阳神三国杀diy图文教程... 23...  我自己的用法是,每个武将阵亡的时候,出现特 效,特效文字就是死亡词 图片特效,...教程贴:教你自己编写DI... 16页 3下载券
太阳神三国杀lua—DIY神... 4...  百度太阳神三国杀 Lua 吧 (百度文库收藏版) 编写...武将变更 第八章:启用 AI 一、创建我们的 AI ...在最上面找到 DIY 菜单,里面有个卡牌编辑器: 别...  以天蓬元帅猪八戒为主角的关于太阳神三国杀Lua武将...太阳神三国杀的 AI 系统一般会 在这个时候记录一些...这里可以总结出一句话 了:源代码在手,怎么 DIY 都...  新版太阳神三国杀技能卡型视为技AI设计概述_计算机...本文假定读者已熟悉太阳神三国杀 Lua 武将扩展的有...教程贴:教你自己编写DI... 16页 3下载券 ©...您的位置:
→ 太阳神三国杀diy图文教程
太阳神三国杀diy图文教程
9:45:33 来源: 作者:wei哥 (4)
太阳神三国杀diy,即制作自己喜欢的武将名字,图像,所带有的技能,一些都可以按自己的想做的来,我们所需要准备的就一个太阳神三国志的游戏版本,及一个diy所需要的字体,下面开始详细的图文教程。准备工作1.太阳神三国杀diy所需要的游戏版本,随便哪一个版本都行,如果您还没有装太阳神三国杀,那不妨***这个4月5号更新的新版:游戏名称:太阳神三国杀踏青版完整版
游戏大小:
76M下载地址: 游戏版本中自带diy的制作工具。2.下载diy所需要的游戏字体,这样字体才会与制作太阳神三国杀的字体相同。diy图文教程:运行游戏,找到diy,如下图:好了,根据上面的图,相信您很容易就找到了,下面进入diy重点,做自己的武将:准备一张武将图片,简单编辑一下角度双击图片,然后按旋转角度的按钮,关闭的时候会让你选择是否保存,确定就可以了。如下图:旋转按钮  旋转后:  准备工作完成。打开程序的卡牌编辑器,如下图:没有选择好字体,所以会出现框框文字  正式开始:一、导入你的武将牌    二、调整武将牌大小  武将牌大小可能不满意,调整图像比例,还有拖动武将牌位置,如下图:  三、编辑称号1,先把右键输入法状态栏把输入法调到繁体的状态,下图:  2,把称号输入到称号文本框里(记住是繁体),然后点击文本框下面的字体设置按钮,设置如下图:  3、鼠标点击称号,这样的称号外围就会出现红框。这种情况之下,你可以把称号放到任意地方。  调整效果如下图:  三、编辑名称  步骤如上面,具体格式参数如下图:字体:方正行楷繁体。字体风格:普通。字体大小:36  拖动名字可以一定到合适的位置。添加技能1,添加一个技能  如下图:  2、编辑技能名字  在弹出的对话框填入技能名称  3、技能名字的字体设置  具体配置如下图:  4、点击技能编辑框的文字,让技能名出现红框。这样就可以上下移动名称了。  出来的效果图如下图:    技能提示:如果出现字体没有变化的情况,请改变技能名字的字体。改成别的字体,然后再切回“方正隶书繁体”或者是“方正隶书简体”。一般情况下就可以解决了。四、技能描述文字1、点击技能描述框的接近顶端的位置,会出现技能文本输入框。输入文字  2、添加锁定技和限定技  因为神上的程序是文本描述框式统一文字大小,所以加粗文字要另外添加。  的点击需要添加锁定技和限定技位置,点击下图的位置:  3、插入红桃、黑太等花色方法同理  具体效果如下图:  五、添加第二技能名字  步骤同上面的:    编辑技能名字的情况也如上面所说的。  删除技能的方法:鼠标点击想删除的技能,出现红框之后,按下键盘的“del”键。或者点击编辑器上面菜单的“删除技能”。六、技能描述框的处理1、如果技能描述文字过多,只能拖动下面的框调整大小。  2、鼠标放在技能框的最边处,按住左键,当鼠标变成双箭头的时候就可以拖动技能框了。  七、最后调整  点击最下面的版本描述,填入想要的你的名字    调整一下技能描述文本的文字大小,用空格还有回车控制文字布局  调整一下称号,名字的行间距,让文字看起来顺眼一点。  调整血量,提示还有武将势力。温馨提示:  因为初始的体力位置是不太正确的,请鼠标点击体力图标,把体力往上移动一点点。下图只是提示大家,体力是可以移动的。  八、图片保存1、  2、注意保存的格式需要你填入,一般保存为jpg的格式。“名字.jpg”  不填入格式保存为bmp的格式。特别提示:1、如果diy的过程中出现武将图像异常的方法,譬如说“武将图片移动到看不见的地方”。请使用工具栏里的按钮,“重置武将”  2、为了方便各位编辑,如果要把图像放到别的地方,譬如是QQ的聊天框。请使用下面的复制功能。这样你可以很快地“ctrl+v”到别的地方了。    编辑器还有一些功能我没有详细说出,请自己慢慢体会这个方便的编辑器吧!  最后给出卡牌编辑器,和ps模板做出来的对比效果。我相信以后这个编辑器会越来越好用的。    到这里,整个太阳神三国杀的diy教程就结束了,相信您看完上面的教程,也可以自己动手diy属于自己的武将了。&
相关游戏攻略
· · · · · · · ·
跑跑车网友 发表于
湖北武汉电信 跑跑车网友 发表于:
求教怎么更改势力啊
湖北武汉电信 跑跑车网友 发表于:
求教怎么更改势力啊
本站提供: 好玩的单机游戏,是大型基地网站Copyright &
.All Rights Reserved备案编号:湘ICP备号-1

参考资料

 

随机推荐