作者:admin发布时间:2021-07-29分类:传奇私服浏览:191评论:6
原来在上发过,这次修改了下,重新在这里帖出来 主要是用来改写星际电脑的ai 赫赫,实在忍受不了原来那个弱智电脑了 如果能大家切磋,最好不过 我只是提供写的方法,本人也曾经写过一个,不过由于缺乏想象力,基本没有什么杀伤力,有兴趣的朋友可以到这里去下载一外国人写的星际ai,(适用于1。11a版) 这个电脑很强,尤其在PvT上,简直可以说是杀手,一般人应该无法用对抗这样的两家 我开始讲了 需要用到的软件有: 星际争霸(废话) 下载地址:点击附件 下载地址:点击...全部
原来在上发过,这次修改了下,重新在这里帖出来 主要是用来改写星际电脑的ai 赫赫,实在忍受不了原来那个弱智电脑了 如果能大家切磋,最好不过 我只是提供写的方法,本人也曾经写过一个,不过由于缺乏想象力,基本没有什么杀伤力,有兴趣的朋友可以到这里去下载一外国人写的星际ai,(适用于1。
11a版) 这个电脑很强,尤其在PvT上,简直可以说是杀手,一般人应该无法用对抗这样的两家Protoss 我开始讲了 需要用到的软件有: 星际争霸(废话) sceditIII 下载地址:点击附件 MPQ2K 下载地址:点击附件 修改之前,请注意备份patch_q文件 这个是我们要下刀的地方。
嘿嘿 我说得这种修改,无论是108,109,110都可以 以后想要炫耀你写的AI,只要把patch_q更新给大家就可以 注意,mpq2k的压缩包里含有storm。dll和staredit。
exe,所以千万不要解压到自己的星际目录了,随便放个其他目录就可以。 为了将来说起来方便,我们默认mpq2k的解压地址是 d:\mpq2k 现在,把patch_q,q拷过来 放心,q我们只是利用,不改(一定要解出来,否则scedit可能会出错) 运行以下语句 mpq2k。
exeeqscripts\n mpq2k。exeepatch_qscripts\n 这些语句都在控制台下执行 winmpq也可以完成类似功能,但是没找到下载地址。
把你的n和bwscript拷到sceditIII的default目录下 以上就是准备工作。 然后我们就进入编辑阶段。 SCEDIT的使用 运行sceditIII主程序,进入软件。
这个软件的界面,写得超级简单,简单到我都不知道该怎么使用 磕磕碰碰,总算给研究了出来 步骤如下: 1选择FILE---HDDNAVIGATOR 2选到刚才弄出来的那个(从default目录下选)n 3出现了一个电脑ai列表 这里是暴雪写得全部ai,很多是不会在地图编辑器里出现的,因为他们其实意义不大,有的甚至只是简单的造个农民就算了的 由于我们改动的是patch_q,这实际是个补丁文件,所以有些ai还没有给出,他们都在q,不过那些对我们没有什么实际意义 现在,我们打开ExpansionProtossCampaignInsane开始我们的研究把 关于ExpansionProtossCampaignInsane 研究这个AI 是因为它的代码比较少 而且他的AI很单纯,属于一根筋走到底的类型。
我一段段代码分析给大家看。 第一段 ;ASC3FilegeneratedbyScAIEditIII ; ;Scriptname:ExpansionProtossCampaignInsane 这个上面,都是注释,没有什么实际用途 script_nameExpansionProtossCampaignInsane script_idPSUx 这个script_name和id,最好不要改,否则可能会出问题 start_campaign wait1 start_town开始建设 defaultbuild_off 把默认的建设关掉,如果不写这句,电脑会自作主张造东西,那就麻烦了 default_min0 wait1 等0。
1秒钟,不知道是啥用,不用管它 transports_off 不知道啥意思…… define_max30probe define_max4arbiter define_max12high_templar 这里表示,同一时间内,一个基地最多拥有30个农民,4个仲裁,12个电兵 这里要说明一下,电脑开分基地,就是要再执行一次starttown,所以如果电脑有两个基地,就可以最多拥有60个农民,8个仲裁,24个电兵,以此类推 multirunblock1 这句话,是指多线程调用block1这段代码 block1就像编程语言中函数名或者过程名,我还没贴出来,里面其实就一句话 give_money,我研究了一下,意思是给电脑2000钱和2000气 赫赫,谁说电脑不作弊来着 多线程的意思是,在执行block1这段语句的时候, 不影响主程序继续往下跑 build1nexus150 造一个主基地,如果有了,就直接执行下一句 build7probe80造7个农民 上面的150和80,我没有研究出来是什么 但是总的来说,建筑一般是用80, 升级用30 另外,如果这样写两句 build7probe80 build7probe80 其实还是只有7个农民,因为7代表的是“造到” wait_build7probe等待7个农民造完 这句话其实很重要,假设你有250元钱,一下子点了5个农民, 算起来,电脑已经算是执行完build5probe80这句话了,他会直接往下执行 为了完全按我们的意愿走,还是加上这句。
multirunblock2 这和block1意思差不多,这个block2函数里(我没贴出来),写得是造到24个农民 今后无论电脑如何发展,这个都会并行运行,一直到24个为止 build1gateway80第一个兵营 defensebuild_gg1zealot defenseuse_gg1zealot 这两句的意思是,如果电脑被攻击,造1个狂热来防守 train3zealot造到3个狂热 build2gateway80 train6zealot build3gateway80 train12zealot 这上面的语句,其实就是电脑的第一波兵 一共是3个兵营,12个叉叉 下面这段,就是电脑组织的进攻 attack_add12zealot 加12个叉叉到进攻队伍里 attack_prepare 这两句以后,其实电脑往你家走了 wait500 等50秒 attack_do 攻击 attack_clear 清除攻击数据 这是为了下次再组织进攻的时候,attack_add用的 这么一段语句,就包括了电脑从开始发展到最好进攻的全过程 还有些高级技巧,下次再说啦 手都酸掉了 有兴趣的,可以先改改暴雪的代码 我下面先说一下,改了以后,怎么用 编辑窗口上有个小勾得标志,点一下 窗口下方会显示你这段代码是否合乎语法 不对的地方编辑器会给你指出来,直到0errormessage为止 然后点小勾右边的那个按钮 你的编辑就存到n里面了,关掉当前编辑窗口(注意,是当前编辑窗口,别把整个scedit关掉,那样你就全白做了),回到上级窗口(就是那个很多AI列表的那个)点一下3个齿轮为图标的那个冬冬,它会提示scriptcompliationdone!,如果没有提示,那就麻烦了,这我估计是软件的一个bug,你得把原来的那些咚咚全部恢复一下,重新改。
算是完成了,现在,把n从default目录下拷出来,放到刚才那个 d:\mpq2k的目录里 执行: mpq2kapatch_qnscripts\n 运行这句话的时候,确认你得把星际关掉,也别开星际地图编辑器 最后,把弄好的patch_q弄到星际目录下就算结束了 看起来很方便,其实经常因为某些奇怪的原因(如代码写错,版本问题等等,导致无法使用,那我们只好安心用外国人的产品) 最近有朋友给我提供过一个叫mpqworkshop的工具,我用过之后感觉非常不错,完全可以替代掉mpq2k,而且没有烦人的版本问题,只是我找不到下载地址了,哪个好心的网友提供一下,我把它一起贴上来 最近的研究成果 我上面写的都是修改ExpansionProtossCampaignInsane为名称的ai 这样需要特地编写一个地图,然后设置电脑的ai为这种(如何设置请自行查找介绍地图编辑器的文章),打得时候还要选usemapsetting 而如果修改的是ProtossExpansionCustomLevel那个ai,则你根本不必修改地图,每一幅地图甚至只要选melee或者topvsbottom,电脑都按照你写的代码来执行。
有的朋友问到建筑位置的问题,重申一下,无法决定电脑修建筑的位置,如果你想彻底的防守,就多造吧:) Script是顺序执行的机制 所以,当你写出 train12zealot train4dragoon这样的代码 除非电脑已经造好12个狂热,否则龙骑一个都不会造,(兵营里正在建造的狂热也被计算在内)。
所以,如果你的电脑发展很慢,你就要考虑是不是你写了错误的代码(有朋友在没有升级一攻的情况下,直接写升级2攻的代码,结果当然电脑在发呆,不知道如何是好) 用好defenduse_ag(好像是这么写的)或同类型的语句,否则电脑的建筑挨打的时候会发呆 开分基地用的是expand命令,如果你在expand后面加入建造其他建筑的代码,然后才修基地。
就会出现基地位置不对的情形(因为其他建筑占据了基地的位置) 攻防的升级要切实注意,前面说过的,代码传奇私服怪物的攻击类型怎么算是顺序执行,不过,攻防一旦开始升级,代码就可以继续往下走。如果你把升级1攻,2攻,3攻的代码写到一起,则电脑就会在开始升级一攻的时候代码继续前行,碰到升级2攻的代码,然后开始等待,因为现在不能升级2攻,如此类推。
scedit的帮助一定奥仔细看看。那里面介绍的很全面 空投是一种特殊的事件,不是你造出运输机,就可以空投,是一个特殊代码,我现在记不清楚了,看看暴雪的原代码就会有发现。 最重要的一个语句是give_Money 运行后电脑有2000钱,2000气 我基本就是这么改写电脑,然后和电脑比暴兵 电脑暴兵相当凶残的,而且比人暴兵来的恶心的多。
总觉得他们的兵耐打 星际自带任务关的ai也是可以编辑的,只是老出错,这个我不太清楚为什么,所以大家没事还是不要写任务关的代码 推荐将ai编写和rpg地图结合起来,这样练习战略战术很有好处 有朋友让我写速出Lurker什么的代码,不是我不想写,实在没有时间和精力 大家仔细研究,我可以帮助你们回答问题,应该不是很难的 SCEditIII有的时候会出现无法编译的情况,一般是代码里有错误,如果都检查过没有问题。
这时候关掉它,重新用原来的n和n覆盖你修改的,然后再打开一次,就可以了转载也许大家都看过(对你可能有帮助)。收起
已有6位网友发表了看法: