骑马与砍杀中文站论坛

标题: PY扫盲教程——泰坦手把手教你如何用PY添加作弊项目 [打印本页]

作者: cangtian    时间: 2010-5-20 20:00
标题: PY扫盲教程——泰坦手把手教你如何用PY添加作弊项目
写在前面:

此贴就是一个PY扫盲帖,主要针对的对象就是TXT修改众,所以诸如技术含量之类的要求就不必奢望了。

另外将阿坑的置顶帖:MOD制作最简入门的地址也贴一下
http://bbs.mountblade.com.cn/viewthread.php?tid=78202

我的目的,只是为了能让更多的新手意识到,PY所拥有的优势。(不要怀疑这一点,比如这个帖子http://bbs.mountblade.com.cn/viewthread.php?tid=123503肯定有很多人觉得很神奇,却不知道到底是怎么修改出来的,我可以很负责任的告诉你,这个修改,对于PY来说,简直是简单到了无以复加(只要你肯看完这篇帖子),而TXT修改的话,绝对会让你欲仙欲死)

废话不多说,下面的内容里,我会对PY做一个尽可能细致的说明,并且手把手教大家一些基于PY的修改方法。

[spoiler=1.PY是什么?]在这个问题之前,我们得先知道Module System(以下简称SYS),所谓的SYS,就是骑砍开发组提供的脚本开发模式,这是mod制作的核心,所有逻辑功能都在这里实现。需要python2.6环境。

请注意最后一句话,python就是我们常说的PY,实际上,你可以简单的理解为,它的存在就是为了SYS,即MOD的开发!
[/spoiler]

[spoiler=2.PY编辑相对于TXT编辑有哪些优势?]首先我们要知道,游戏自带的Native剧本的TXT文本就是通过官网发布的SYS脚本编辑而成的(重要!)。换言之,PY是直指本源。而TXT只是SYS脚本经过编译后的产生物。两者可谓高下立判。
[/spoiler]

[spoiler=3.下载/安装/设置python2.6]python2.6的下载地址

http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi
http://u.115.com/file/f21e402860

安装没什么好说的,不要更改安装路径,直接“下一步”到底即可。

接下来就是路径设置~~~

在 我的电脑->右键属性->高级->系统变量  path里加上安装路径,比如 ";C:\Python26;"  
请加分号附在其他path后面而不是直接覆盖。

进入dos命令行方式,输入python 回车, 会显示
Python 2.6 (r26:66721, Oct  2 2008, 11:35:03).....  而不是找不到指令

如果嫌路径设置麻烦,这里还有更简单的办法:
直接在mod sys里(C步骤)找出build_module.bat   然后在其第一行添加
set path=C:\Python2.6;%PATH%[/spoiler]

[spoiler=4.下载/设置Module System路径并测试]战团1.113版MOD SYS的下载地址

http://173.192.225.169/mb_warband_module_system_1113.zip

在你的Native文件夹里新建一个文件夹,随便起个名字(我取的文件夹名是“source”),将下载的源码解压到这个新建的文件夹

打开module_info.py

export_dir = "../WOTS/Modules/Native/"
改为
export_dir = "../"

好了,在开始之前先尝试编译一下源码,看看是否有问题~~~

双击“build_module.bat”如果正常的话,应该会看到如下的界面

[/spoiler]

[spoiler=5.实例1 添加《所有城镇/村庄友好度99》作弊菜单]以上只是简单的介绍了一下安装/设置的流程,虽然起初我是考虑到用原版做教程的,但是鉴于目前领军者的热度,还是拿R大的作品开刀吧。

我们这一节的目标,是在领军者1.305版本里,添加一个《所有城镇/村庄友好度99》的作弊菜单。

首先,我们进入游戏查看一下,发现领军者里有一个作弊模式,如果勾选的话,会多出一个作弊菜单,



毫无疑问,我们准备加入的作弊菜单放在这里是最合适的,那么,动手吧~~~

首先是定位,我们得先找到刚才看到的一个作弊项,然后在这个作弊项目后面添加

打开汉化文件game_menus.csv,搜索“查 找 一 件 物 品”

找到的如下

mno_camp_cheat_find_item|查 找 一 件 物 品……

好了,接下来打开menus.txt,搜索“mno_camp_cheat_find_item”

找到如下代码

mno_camp_cheat_find_item  0  Find_an_item...  1 2060 1 864691128455135258  .

好的,我们需要的,就是这句Find_an_item...



打开领军者1.305自带的MOD源码module_game_menus.py

搜索刚才找到的“Find an item”(把_替换为空格)

应该是只能找到唯一的一个~~~

往下稍微拉一点,就能看到这一行

("camp_cheat_1",[],"{!}Increase player renown.",

顾名思义,Increase player renown就是增加玩家声望的作弊菜单

看下图


在图中我用汉字标记的地方插入以下代码

        ("debug_test", [], "{!}debug99: Test.",
        [
            (try_for_range, ":center", centers_begin, centers_end),
                (party_set_slot, ":center", slot_center_player_relation, 99),
            (try_end),
        ]),

如图


任务完成了,把改好的PY文件保存一下,然后双击build_module.bat编译一下,编译完成后进入游戏测试~~~

首先打开作弊菜单,我们发现,确实是多了一个刚才我们添加的作弊菜单



点击一下,然后随便进入一个城镇/村庄看看,结果,我们的目的达到了~~~

[/spoiler]

[spoiler=6.实例2 攻城补偿金蛋疼的900元修改]相信很多人会对这个蛋疼的设置感到不满,辛辛苦苦打下一座城镇/城堡,要求封给

自己,结果国王大手一挥:城不给你了,给你报销900元...

不知道你们是怎么看的,反正我每到这个时候,总是习惯性的翻白眼....

好了,不再废话,进入正题~~~

首先还是定位

打开game_menus.csv

找到这句话

menu_requested_castle_granted_to_another|你 从 你 的 国 王 {s3} 那

里 得 到 通 知。 ^^ 我 听 说 你 很 英 勇 地 战 斗 并 把 {s2} 给 攻 下

来 了。 你 的 胜 利 极 大 的 鼓 舞 了 我 们。 你 说 过 你 想 要 我 把

这 个 地 方 封 给 你, 但 恐 怕 我 并 不 能 同 意 你 的 要 求, 因 为

在 我 统 治 的 范 围 内, 你 已 经 有 了 封 地。 所 以 我 送 你 {reg6}

第 纳 尔 作 为 你 的 军 费 开 支, 而 {s2}, 我 把 它 封 给 {s5} 了。

然后打开menus.txt,查找”menu_requested_castle_granted_to_another“

肯定可以找到这些

menu_requested_castle_granted_to_another 4096

You_receive_a_message_from_your_monarch,_

{s3}.^^_'I_was_most_pleased_to_hear_of_your_valiant_efforts_in_the

_capture_of_

{s2}._Your_victory_has_gladdened_all_our_hearts._You_also_requeste

d_me_to_give_you_ownership_of_the_castle,_but_that_is_a_favour_whi

ch_I_fear_I_cannot_grant,_as_you_already_hold_significant_estates_

in_my_realm._Instead_I_have_sent_you_{reg6}

_denars_to_cover_the_expenses_of_your_campaign,_but_{s2}

_I_give_to_{s5}.'_ none 7 2031 1 1441151880758558722 522 3

1224979098644774912 144115188075856238 11 2322 2 3

1224979098644774912 2330 2 2 144115188075856883 521 3

1224979098644774913 144115188075856883 7 2322 2 5

1224979098644774913 2133 2 72057594037927942 900 2

好吧,我们需要的,就是开头的那个4096之后的对话,复制一小段就可以了,如

“You_receive_a_message_from_your_monarch”
还是老样子,把“_”替换为“空格”

之后,打开module_game_menus.py

查找“You receive a message from your monarch”

很显然,我们找到了~~~



看到图中那个醒目的900了吗?

如果英文稍微好点的朋友,看到图中找到的英文,应该能看懂是什么意思吧

自己可以和TXT修改对比一下,到底是PY的可读性强呢,还是在一大堆毫无规律可言

的数字里修改强呢?

呵呵,好了,那个900即攻城完成后,你向国王索要封地,但是对方拒绝的情况下,

给你的补偿军费

自己可以随意修改,但是不要太过火哦~~~

现在还不算结束,继续往下查找,还有一段一模一样的代码

同样修改为你想要的数值即可

这两段代码,一段是城镇的补偿金,一段是城堡的补偿金

修改后的效果,请看下图,猥琐的哈老四给出了最直接的答案
[/spoiler]

实例未整理完毕,请等待更新~~~

[spoiler=一些蛋疼的话]最后,再罗嗦几句,说一下为什么我会想起写这么一篇不伦不类的东西~~~

一直以来,很多人都是直接修改txt或是直接用修改器进行修改,比如原版人尽皆知的美腿修改器。

说实话,这些软件也确实方便,基本的修改都可以完成,但是,修改器终究是死的,就如同上面给出的实例1,添加的作弊菜单一样。

如果分析一下TXT文本,我想,用修改器改出这个菜单,也没有什么问题。

但是,换一个MOD呢,这个菜单还能起作用吗?

再或者,我突然觉得对这个作弊项目没兴趣了,想要加一个能刷出10个诺皇的作弊菜单呢?

想一想,实例1的作弊菜单,所有城镇/村庄友好度99,如果你看教程之前,你可能会觉得这种修改很难,或者说是不可能实现的东西,但是结果是什么?短短的几行代码就能解决了。

来这里时间长的朋友大概都听说过一句话“PY就是最好的修改器”但是可惜的是,很多人压根就不知道PY到底为何物.....

现在MOD制作技术区的冷清就很能说明问题~~~

其实,一直以来论坛对于PY源码开发都是大力支持的,但是结果却是不尽人意,和论坛庞大的注册基数相比,优秀的源码简直是凤毛麟角~~~

直到昨天在某个和游戏无关的群里和人闲聊,才豁然想通~~~

套用那位哥们的原话就是:“PC游戏最大的特点是什么?”我想到了无数的答案,但是唯独没有想到答案是“只要你有能力,就可以肆无忌惮的修改”

想想,也确实有道理,比如前段时间我发的这个帖子

http://bbs.mountblade.com.cn/viewthread.php?tid=115503

为什么这个毫无技术性可言的帖子会被人翻了一遍又一遍~~~

归根到底,我们心里还是抱着,“我在玩游戏,而不是游戏在玩我”的心态

所以,这个帖子,我的目的,是引发你对PY的兴趣,不管你的目的是什么,只要我能引起你的兴趣,我就算是成功了~~~

至于你看过这个帖子后,只是单纯的学会了几种修改方法,还是准备深入的研究PY,这就不在我所关心的范围的~~~

我只是单纯的相信:量变,终究引发质变!!![/spoiler]

PS:本文中我不会回答任何和PY有关的问题,因为我本人的水平也就是半吊子,打个比方,你要是问我2+2=?我会毫不犹豫的回答:4。但是你要是问我为什么2+2=4,那么我多半就会傻眼。所以,就不要强人所难了。而我的本意,也只是以“修改”为突破口,近距离的打碎PY神秘的外衣,让更多的人认识,接触,进而喜爱~~~

确实想要深入研究一下PY的,请到MOD制作技术区http://bbs.mountblade.com.cn/forumdisplay.php?fid=10寻找置顶的资料自行学习,有不懂的也可以在这个版区里发帖询问。

但是记住“千里之行始于足下”,如果你确实是连MOD制作区最基本的教程都看不下去,那么,TXT仍然是你最佳的选择

本文首发于骑砍中文站
[url=]http://bbs.mountblade.com.cn[/url]
转帖请注明出处,谢谢!
作者: 燕门飞雪    时间: 2010-5-20 20:15
python很不错啊
作者: 古堡骑士    时间: 2010-5-20 20:17
很好很强大。
作者: hjkl123    时间: 2010-5-20 21:44
谢谢楼主分享,很想学可是好像挺难的,我想问下士气系统,怎样把野战改成像攻城一样,敌我都不计算伤亡?所以都没有逃兵,参见http://bbs.mountblade.com.cn/vie ... BF%C6%F8&page=2
的42楼。((敌方永不逃跑的改法。))怎么修改??

PS:我年纪大了,非常非常非常讨厌这个士气系统,看到这么多人说这个士气系统真实,感到很愤怒啊,逃兵这么好做啊?国王和国王的狗不咬死你啊?想不打就可以不打,就不用死这么多人,也不会有战争了,直接国王跟国王单挑不就好了嘛,人家争三姨太关我们鸟事~
作者: lymilano    时间: 2010-5-20 21:52
感谢斑斑,像我这种新手一听到py就有一种很难的感觉,忽略,甚至逃避,以至于什么都伸手。。。
作者: 冲锋骑兵    时间: 2010-5-21 02:55
这个一定要顶!很想学会后做自己的MOD.
作者: babe    时间: 2010-5-21 06:00
强帖前排
作者: 掉队骑士    时间: 2010-5-21 07:20
前排..........
作者: johnney    时间: 2010-5-21 07:49
支持科普貼~
作者: 天河中逍遥    时间: 2010-5-21 09:24
好好学习
作者: 344478952    时间: 2010-5-21 10:46
又长见识了,,,,,
作者: 冲锋骑兵    时间: 2010-5-21 16:49
请问下只有正版才可以用PY吗?
作者: cangtian    时间: 2010-5-21 17:20
12# 冲锋骑兵

不是,比如战团的话,只要符合以下2点就可以

1.安装/设置python2.6

2.拥有战团的源码(或者是某个MOD的源码也可以)并设置好编译路径
作者: wen495204897    时间: 2010-5-21 21:13
感谢楼主分享,好好学习一下
作者: wen495204897    时间: 2010-5-21 21:14
感谢楼主分享,好好学习一下
作者: azhengheng00    时间: 2010-5-21 21:17
对我来说确实挺难的
作者: woxianghn45    时间: 2010-5-21 21:26
不支持都不行啊,看的头晕。PY我没看懂,倒是看懂文件和文件之间的关系了。。。
作者: 辟尘之风    时间: 2010-5-21 23:07
学习中,不过弱弱问一句,怎么我看不到图啊,都红叉叉。。。。。。。。
作者: cangtian    时间: 2010-5-21 23:16
学习中,不过弱弱问一句,怎么我看不到图啊,都红叉叉。。。。。。。。
辟尘之风 发表于 2010-5-21 23:07


清理一下IE缓存再看,图床无任何问题
作者: mengmengge    时间: 2010-5-21 23:42
1# cangtian


内牛满面。。。感恩那。。版大佛心来的。。。

终于学会PY。。。。脱离txt苦海。。

txt面对数字超级头大。。
作者: cangtian    时间: 2010-5-22 01:16
楼主哇,你关于环境变量的那段简直就是在害人,难道你只有c:\python26这一个环境变量么?如果有人真的照你说的把环境变量路径改成这个,那他的操作系统就要出问题。比如我的path环境变量下的路径有这么多:
C:\Wind ...
流淌的风华 发表于 2010-5-22 01:04


请你在测试过之后再来指责我害人好吗?

谢谢~~~
作者: 流淌的风华    时间: 2010-5-22 01:21
本帖最后由 流淌的风华 于 2010-5-22 01:32 编辑
请你在测试过之后再来指责我害人好吗?

谢谢~~~
cangtian 发表于 2010-5-22 01:16

是,你这样改是没什么不妥,但是这样做的结果就是所有相关的程序环境变量都到了c:\python26下,我是不可能这样测试的。
也许我的措辞是比较不当,但是请相信我绝无恶意。如果你认为有冒犯到你,那我改掉好了。
但是环境变量,尤其是系统变量,会影响到该机器所有用户名的环境变量,在修改的时候确实要慎之又慎。

所谓path环境变量,就是系统默认搜索应用程序的路径,如果变量里有C:\windows\system32,你直接在“运行”里面输入notepad.exe,系统就能够打开记事本程序,但是如果把C:\windows\system32和C:\windows\的变量都删掉,系统就会提示”找不到notepad.exe",而且同样的,所有在以上两个目录的文件都不能直接的打开了,必须要输入绝对路径才行。这样也许会不方便吧?
作者: cangtian    时间: 2010-5-22 01:31
之前情绪有些不好,是我的措辞有问题,抱歉~~~

心平气和的说两句

但是这样做的结果就是所有相关的程序环境变量都到了c:\python26下


实际上,我确实是不想说的太复杂,这样的修改相对来说要简单的多~~~

毕竟,我们安装这个程序,为的只是能够编译PY源码,仅此而已~~~~

只要源码能够顺利编译出来,我想,已经足够了~~~

你说呢?
作者: 流淌的风华    时间: 2010-5-22 01:33
本帖最后由 流淌的风华 于 2010-5-22 01:34 编辑
之前情绪有些不好,是我的措辞有问题,抱歉~~~

心平气和的说两句



实际上,我确实是不想说的太复杂,这样的修改相对来说要简单的多~~~

毕竟,我们安装这个程序,为的只是能够编译PY源码,仅此而已~~~~
...
cangtian 发表于 2010-5-22 01:31


确实是这样的,但是作为版主,而且写得又是教程,还是万万慎重为好,给大家做表率啊。
设想啊,如果有不懂的人这样改了,要用到命令提示符的时候,直接Win+R,在直接输入”cmd“,出来的是”找不到cmd“,他有不知道为什么,会不会以为系统坏了要重装啊?哈哈哈
作者: cangtian    时间: 2010-5-22 01:39
所谓path环境变量,就是系统默认搜索应用程序的路径,如果变量里有C:\windows\system32,你直接在“运行”里面输入notepad.exe,系统就能够打开记事本程序,但是如果把C:\windows\system32和C:\windows\的变量都删掉,系统就会提示”找不到notepad.exe",而且同样的,所有在以上两个目录的文件都不能直接的打开了,必须要输入绝对路径才行。这样也许会不方便吧?


其实,看到这句话,我就乐了~~~

说真的,我不认为精于此道的人会不知道我说的设置变量的方法有缺陷,而肯按照我所说的教程一丝不苟照做的人,我也不认为他会在运行里打上哪怕一个字符~~~

呵呵,都是从菜鸟走过来的,你觉得我说的有道理没?
作者: 流淌的风华    时间: 2010-5-22 01:41
其实,看到这句话,我就乐了~~~

说真的,我不认为精于此道的人会不知道我说的设置变量的方法有缺陷,而肯按照我所说的教程一丝不苟照做的人,我也不认为他会在运行里打上哪怕一个字符~~~

呵呵,都是从菜鸟 ...
cangtian 发表于 2010-5-22 01:39

嘿嘿,差不多,上一条回复我基本上就是当笑话讲的哇。
作者: newsamsam    时间: 2010-5-22 01:45
咦...几天没上来你变成版主了啊...撒花
作者: hp_honey    时间: 2010-5-31 11:41
本帖最后由 hp_honey 于 2010-5-31 11:53 编辑

支持一下。
关于上边的讨论,建议斑竹把
在“我的电脑”上点击右键,选择“属性”-“高级”-“环境变量”-双击“系统变量”里的"Path"变量名,最后将变量值修改为“C:\Python26”即可。


斟酌一下,比如改成制作区帖子里说的在 我的电脑->右键属性->高级->环境变量  path里变量值末尾添加上安装路径,比如 ";C:\Python26"  
注意是加分号附在其他path后面而不是直接覆盖。
不然就像前面说的,不少菜鸟都有被误导的危险。
作者: weishengwen    时间: 2010-6-3 10:18
学习了 感谢LZ
作者: 白蚁    时间: 2010-9-28 12:01
呵呵 有兴趣了 我现在已经从单纯的玩变得有兴趣做自己的修改了 如果有可能的话 甚至想做自己的东西 以至mod 呵呵
一切都会越来越好的!
作者: yang19811    时间: 2010-11-13 22:53
怎么给我的感觉都是在作弊码
作者: morji    时间: 2011-2-4 13:20
经验值增长……
PY我很久就装了,因为偶然之下买了一本PY教程书,但一直没看。
想不到M&B是PY弄的。唉LZ太有那个什么来着的精神了。
作者: hui2713879    时间: 2011-9-26 00:30
急啊 我改错了 怎么办啊?
我把变量值覆盖了 怎么改回来啊? [img][img][img][/img][/img][/img]
作者: wangrjw1293    时间: 2011-12-23 11:30
本帖最后由 wangrjw1293 于 2011-12-23 11:47 编辑

有问题,LZ还关注这个帖子吗?我怀疑第四步设置路径我弄错了,我没太懂。里面有2个啊
export_dir = "../WOTS/Modules/Native/"
#export_dir = "C:/Program Files/Mount&Blade/Modules/Native/"
改哪个?还是都改?
还有改完后,我双击了。但是都是错误,说不是内部或外部命令也不是可执行程序,最后还 提示说打不开。
谁来帮帮忙啊。。。
作者: bhgdwqh    时间: 2012-1-6 17:38
太复杂了还不如TXT修改
作者: jemeswang    时间: 2012-1-6 19:14
这个感觉难度非常高!~ 纯支持一下
作者: 756901493    时间: 2012-4-22 12:34
本帖最后由 756901493 于 2012-4-22 14:00 编辑

刚刚试了那么一下,现在准备开游戏看看效果,等会儿再来报告!
成功了,不过疑惑的是为什么能显示的只有阵营没变化的领主,其他叛变的流放的,被我灭国转移的都不能显示,可以再改么
作者: dcr5201    时间: 2012-10-18 13:57
嗯呐!!!!!!!!!!!
作者: qq624692023    时间: 2013-7-31 16:13
感觉好麻烦的说。。。这修改一下弄这么多事情出来。
作者: 轻云蔽月    时间: 2013-8-31 12:03
感谢楼主,楼主辛苦了~
作者: 轻云蔽月    时间: 2013-9-1 23:41
感谢楼主,楼主辛苦了~
作者: 452340935    时间: 2020-5-14 22:54
潘德的预言修改批量释放诺德精灵
作者: 骑自行车与砍杀    时间: 2022-3-30 23:07
看到你对path变量的描述,还有别人纠正你时,你表现出的傲慢,我觉得你是真的缺德,估计现实里人品也是烂的匪夷所思




欢迎光临 骑马与砍杀中文站论坛 (https://bbs.mountblade.com.cn/) Powered by Discuz! X3.4