本站建议最低逻辑分辨率宽度720px
Loading...
西奥小镇吧
【教程】西奥小镇插件制作全攻略
tid:6222335740
16229151 22 324 4
楼主:Anssss11 Anssss😳
最后回复:贴吧用户_JJADK9G
1楼
pid:127024028352
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

本帖主要分为两部分
-画图
-代码
2楼6条
pid:127024043667
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

前言:
插件是西奥小镇游戏中必不可少的一部分,希望能培养更多国区西奥小镇插件作者,为国争光
真棒
  • 百度用户UID4597861865 null 贴吧用户_a4SNbZ4 的头像贴吧用户_a4SNbZ4
    如果要做高架车站车站里那部分火车道是画图时用注意什么吗?
3楼
pid:127024056817
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

-Part 1 画图
图片是插件最重要的部分,它最直接代表着插件的优劣,有好的贴图能给玩家好的印象
4楼2条
pid:127024089934
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

通常使用的画图软件:
-手机:
Iso PixPro(像素小画家,本帖以此为例)
8bit Painter(八位元画家)
Pixly
Pixel Station
-电脑
Photoshop
不同软件操作有所不同,但需要遵守的规则是一定的
5楼7条
pid:127024120022
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

1.1 边界
适用于一个建筑的地面边界、楼顶等
比较容易理解
通常使用“22”形式,即两个两个像素
以插件德国包豪斯德绍大学为例
可以看到地面和楼顶都是22形式
这样可以符合玩家视觉
  • 百度用户UID3545810523 null ZFTSΩ 的头像ZFTSΩ
    如果画的图跟游戏的地面不相交怎么办
6楼8条
pid:127024181327
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

1.2 阴影
西奥小镇中的太阳在游戏界面的左方
因此使用比建筑颜色稍深的作为阴影会更自然
  • 百度用户UID3545810523 null ZFTSΩ 的头像ZFTSΩ
    如果贴图与地面不相交怎么办
  • 百度用户UID3545810523 null ZFTSΩ 的头像ZFTSΩ
    就是将图片整体下移是吗?
  • 百度用户UID3545810523 null ZFTSΩ 的头像ZFTSΩ
    哦!谢谢解惑
7楼2条
pid:127024324758
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

1.3 其他
(1)贴图格式一般软件存储为.png,这是最好的,以.jpg也可以,不推荐
(2)在绘制例如建筑底部和建筑墙面时如果有一大块的相同色区,最好交杂差不多颜色但深浅不同的像素(不需要分层分布),这样更加自然,可以参考上面图片的建筑底部
  • 百度用户UID2760428601 SWATYO null 的头像SWATYO
    jpg背景是白的
    阴险
8楼
pid:127024401337
百度用户UID3545810523 null ZFTSΩ 的头像

ZFTSΩ

额 如果做的贴图与地面不相交怎么办
9楼6条
pid:127024558686
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

-Part 2 代码
代码能赋予插件不同的独特的功能,是评价插件的第二指标,代码也能为整个的插件效果做出决定
10楼
pid:127024812209
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.1 代码结构
1 必要代码
"指标":"数据"(记得使用英语的双引号和冒号)
指标是数据所表示的意思(比如宽度、长度)
数据是表示的具体数值(如宽度为5)
在每一行的最后面要加上 ,(英语的逗号)
最后一行不用加上逗号
在每份代码的最前面加上[{ 最后面加上 }]
11楼2条
pid:127024825693
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.1 代码结构
"指标":"数据"(记得使用英语的双引号和冒号)
指标是数据所表示的意思(比如宽度、长度)
数据是表示的具体数值(如宽度为5)
在每一行的最后面要加上 ,(英语的逗号)
最后一行不用加上逗号
在每份代码的最前面加上[{ 最后面加上 }]
12楼6条
pid:127024856142
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.2 必要代码
这是一个插件建筑必须的代码
具体如图所示
*水和电力为正即生产,为负及消耗
*只有工商住宅需要Level(等级,分为T TT TTT)
14楼5条
pid:127025793207
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

*需要格外注意的是width和height,之前说法和翻译是宽和高,但是我发现实际分别是建筑物靠左边的长和右边的长,具体见下图,此处以Rjroldan1的作品插件发射台为例。
*代码中的width和height必须一致,若不一致,会出现如下图2的情况。
  • 百度用户UID901207189 夏末点残阳Sky null 的头像夏末点残阳Sky
    想问下楼主大佬pc端mod是不是和移动端不兼容呢?外网看到金门大桥的mod和这个航天飞机的mod贼喜欢,在移动端怎么也找不到
    狂汗
15楼2条
pid:127025846217
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.2.1 种类
不同建筑有不同的种类"type"
这会决定它显示在哪里
下面是种类对应的名称
residential 住宅
commercial 商业
industrial 工业 park 公园
sport 体育 religion 宗教 public 政府 award 奖励 decoration 装饰 landmark 地标 power 电 water 水 police 警察 military 军事
airport 机场 education教育
midic 医疗 waste disposal 垃圾处理
terrain 地形
body dispodal 葬礼服务
asphalt 沥青 tree 植物 hills 山丘
zone 区域 intersections 立交
bus 公交 train 轨道交通
elevated train 高架列车
metro 地铁 firework 烟火
disaster 灾难 firebrigade 消防
christmas 冬天
16楼
pid:127025857726
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3 辅助代码
2.3.1 基础辅助代码
这部分的代码可以凭自己喜好选择
*"draw ground"代码若选择"true"就是下方要土地
反之就是不要土地,显示水,只有透明部分会显示
*"text"介绍工商业、住宅如果加了也不会显示,所以不需要,但不会报错
17楼
pid:127025863307
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3.2 范围代码
这部分提供建筑的范围
*感谢MCLee的分享
*范围可以是负的
19楼
pid:127025877632
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3.3 供应代码
适用于教育和医疗
教育除了教育影响外,还需要学位
医疗除了医疗影响外,还需要床位
否则没用
如图所示,教育分为低等和高等
23楼
pid:127030808412
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3 高级代码
2.3.1 条件代码
条件代码指建筑需要条件才能解锁:
①需要另一个建筑激活(比如市长别墅需要雕像)
"requirement":{"requirements":[{"type":"BUILDING","data":{"id":"(条件建筑的id,这里以博物馆id为例)$museum00"}}]},
②需要城市等级(比如中型公园需要城市四级)
把上方一部分改为:
"type":"RANK","data":{"id":"(需要的城市等级id,这里以12级超大城市为例)$rnk_city_large"}
③需要某个阶级市民数量(比如插件西奥软件公司需要10000富裕阶级市民)
把上方一部分改为:"type":"HABITANT_COUNT","count":(你需要多少个某个阶级的市民),
游戏中总共有贫穷中产富裕三个阶级,分别对应"factor0""factor1""factor2"三个代码,需要一个阶级市民数量,则把其他两个代码设为0,但注意不要输入你要设的那个阶级代码。如需要6666个富裕阶级市民可解锁某一建筑,则把上方部分改为
"type":"HABITANT_COUNT","count":6666,"factor0":0,"factor1":0
24楼7条
pid:127031042419
百度用户UID2821803126 hebajxb 夜雨行💦 的头像

hebajxb

夜雨行💦

有没有隐藏代码?
25楼3条
pid:127033595046
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3.4 自定义种类
当你制作了很多同一类的插件时,你可以考虑在游戏里新建一个种类把它们都放进去(如下图我的BRT和桥梁)
*自定义种类需要在同一插件的文件夹类另开一个文档和放一张类别图标。
代码是:[{"frames":[{"bmp":"图标图片名.png"}],"id":"输入id","ordinal":填数字,是这个种类在那一大类中的顺序是第几个,"title":"种类名字 ","type":"category(注意,这里只能写category)","category":"(你这个种类要归入哪一大类,那一大类的id,这里以交通为例)$cat_transport00"}]
*当你想把你的新插件归入你那新建的一类时,先写"type":大类(如公园、装饰),然后写
"category":"你那新建一类的id"
26楼
pid:127040303897
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3.5 自定义区域
当你制作了许多同一类的建筑后,你可以考虑把它们添加到同一个区域中,直接生成(类似于住宅区、商业区)
一个区域代码需要两张图片
如图所示,需要格子图(图1)和图标(图2)
区域代码是:
[ {"author": "作者名",
"base": "$zone×××(你想要添加的区域属于什么类型,住宅商业工业的种类)",
"category": "$cat_zone00",
"draw ground": true,
"frames": [ {"bmp": "格子图片名.png"} ],
"height": 1(一般来说一个格子只能是1),
"id": "×××",
"needs road": 区域是否需要道路,
"placeable": true,
"preview frames": [{"bmp": "标志图片名.png" }],
"price": 价格,
"rci(诱发改变)": true,
"text": "区域介绍",
"title": "标题",
"type": "zone",
"width": 1(同理,一般只能是1)}]
27楼
pid:127040332201
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

如果要把一个建筑放进这个区域中,让建造这个区域时会有这个建筑,只需要在建筑代码中加入一行:"zone":"区域id"即可,记得区域代码文件和建筑代码文件要放在一个文件夹里。
28楼2条
pid:127040364749
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

下面给大家分享一些格子图片
第一波
29楼
pid:127040372620
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

下面给大家分享一些格子图片
第二波
31楼3条
pid:127040396839
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3.6 升级代码
想像体育馆一样升级建筑让它看起来更酷?你需要两张大小相等的图片(一张升级前,一张升级后),它们两张图片只需要一份代码文件。
代码是:
(balabala对升级前建筑的介绍)
"upgrades": [{
"frames": [{"bmp":"升级后图片名.png"}],
"id": "upgrade",
"price": 升级价格,
"build time":升级时间,
"text": "升级后介绍",
"title": "升级后题目"}]
注意,如果这个建筑会生成车的话,升级前后各需要写一次代码。
33楼
pid:127063550800
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3.7 旋转视角代码
当你完成一个建筑,想让它像太阳能发电站(下图)一样能按左右箭头切换不同的视角或外观时,可以用这个代码:
"frames":[{"bmp":"第一张图片.png"},
{"bmp":"第二张图片.png"},
{"bmp":"第三张图片.png"},
{"bmp":"第四张图片.png"}],
(以此类推)
接着最后加一行:
"rotation aware":true,
注意,这个代码所需要的图片是分开的,不是像车辆图片一样连起来的
34楼1条
pid:127085390173
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3.8 条件代码
条件代码指建筑需要条件才能解锁:
①需要另一个建筑激活(比如市长别墅需要雕像)
"requirement":{"requirements":[{"type":"BUILDING","data":{"id":"(条件建筑id,这里以博物馆id为例)$museum00"}}]},
②需要城市等级(比如中型公园需要城市四级)
把上方一部分改为:
"type":"RANK","data":{"id":"(需要的城市等级id,这里以12级超大城市为例)$rnk_city_large"}
35楼12条
pid:127090899625
百度用户UID2871337667 Anssss11 Anssss😳 的头像

Anssss11

Anssss😳

2.3.9 插件内置翻译
如果你希望让你的插件可以令全世界的玩家看得懂(上传到插件商店),那最好让你的插件可以适应不同语言。
在插件中,每种语言都有自己对应的两个字母的代码(如中文是zh,详见下图)。你可以在代码的title和text中添加这样的代码:
"title":"语言A的介绍[语言B的代码]语言B的介绍"
比如说
"title":"Hello[zh]你好"
*同理,可以叠加无数种语言。
*第一种语言不需要添加代码
42楼
pid:128441916390
百度用户UID2605475892 adhkl518 null 的头像

adhkl518

好端端代码一运行就这样了。。。。
43楼5条
pid:129741037946
百度用户UID3527256748 EEMB190 EMB190 的头像

EEMB190

EMB190

那这样行吗
滑稽
  • 百度用户UID2971302474 fvjugnvgjgb456 null 的头像fvjugnvgjgb456
    不知道,但你洛阳铲的功夫真的nb
    阴险
    滑稽
44楼3条
pid:129760243833
百度用户UID2360333947 哈鲁大 null 的头像

哈鲁大

一直好奇,为什么没有多车道的mod,类似于高速路的地面道路。不管什么区域,地面双向两车道。真是需要吐槽下
47楼
pid:131833277571
百度用户UID4148162462 DRFG66 null 的头像

DRFG66

说到做插件,我前几天就想到在qq群某个胡言乱语的
60楼1条
pid:133799616251
百度用户UID4334273474 Mic0x null 的头像

Mic0x

关于车辆的代码:
(在复制时请务必把含有@的句子删除掉)
[
{
"id":"$车子的id",
"type":"car",
"frames":[
{"bmp":"车子贴图","w":宽,"h":高,"count":数量} ],
"v2":true
}
]
tbm@n0099.com https://github.com/n0099/open-tbm