- 好友
- 0
- 在线时间
- 406 小时
- 最后登录
- 2014-1-13
见习骑士
自由骑士 <

- UID
- 129119
- 第纳尔
- 401
- 精华
- 0
- 互助
- 16
- 荣誉
- 5
- 贡献
- 1
- 魅力
- 14
- 注册时间
- 2009-5-8

 鲜花( 6)  鸡蛋( 0)
|

楼主 |
发表于 2009-6-29 18:15:13
|
显示全部楼层
语言基础 以及简单语法规则
===程序语言基础===============
情况1:没有语言基础没有接触过编程,第一次接触程序想做自己MOD的朋友。
建议:如果你是属于第一种情况的话,你可以先不急着上手练习程序,而是把程序的原理搞懂,比如循环,判断,函数等基本的程序结构,然后再去看py的基础帖子,我相信会提高很快的。
直接去看一些复杂的代码或者模仿写,可能会感觉掉进无底洞..... 明白了程序的原理这块,就可以开始学习和练习一些简单程序。
情况2:有语言基础,之前接触过几门语言,现在想做自己MOD的朋友。
建议:如果你是属于第二种情况的话,我觉的你上手py脚本的速度会很快,因为你对程序的原理和运行的过程都比较熟悉了,不过对py脚本比较陌生。 所以对于你来说熟悉战团脚本的整体结构, 比语法更重要,最好可以看看三楼的一些例子,我相信会比较好。
战团py脚本虽然使用python写成,但实际语法比python要简单很多。
=====语法规则=======================
py脚本使用python作为编译器,但自定义的语法规则简单得多:
#号为注释符号 其后面内容不被编译
基本操作都是一个操作符带0-3个操作数(变量或常量啥的)
操作数之间也用逗号分隔
每个操作都用小括号括起来
每个操作后面跟逗号,
比如:
(agent_get_horse, “:horse_id", ":agent_id"),
操作符 变量1 变量2
一般变量用双引号包含,前缀是冒号
全局变量用双引号包含,前缀是$g
兵种、装备等特殊常量用双引号包含,在troops items这些文件中定义
一般常量无需包含,但要在module_constants.py里申明
所有的变量在引用前必须赋值(无须申明)
-----下面是个简单实例---------------------
(assign, ":value", "trp_swadia_veteran_multiplayer"), # 将变量赋值为某兵种序号
(try_begin), # 开始条件判断
(eq, ":value", -1), # 如果 ":value" == -1 继续往下执行
(player_set_troop_id, ":player_no", -1), # 设定玩家":player_no"的兵种为-1 (清空)
(else_try), # 没满足上面条件的往下执行
(is_between, ":value", multiplayer_troops_begin, multiplayer_troops_end), # 如果兵种序号在有效兵种范围内
(player_set_troop_id, ":player_no", ":value"), # 设定他的兵种为":value"
(call_script, "script_multiplayer_clear_player_selected_items", ":player_no"), # 调用这个函数,参数为玩家序号 (效果是清空他的装备,为接下来的动作做准备)
(try_end), # 结束条件判断
注1: "trp_swadia_veteran_multiplayer" 不是一个变量 而是 module_troops.py里申明了的具体兵种常量 外部引用时需要加trp_ 这样的前缀
注2: multiplayer_troops_begin 这些没有带引号的东东, 实际是module_constants.py已经申明了的常量 指向的是兵种定义的第一个 |
|