返回顶部

[转载] [CuStomGo教程]从入门到入土,写出自己的小游戏[蟹蒙老鸽]

[复制链接]
像素搬运菌Lv.7 显示全部楼层 发表于 2024-2-22 03:40:03 |阅读模式 打印 上一主题 下一主题 来自 中国广西南宁
联机教程
教程类型: 插件
教程来源: 转载
原贴地址: mcbbs - 蟹蒙老鸽
教程目标: CuStomGo

马上登录/注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
CuStom GO教程贴[适用版本V8.4.X]
从零教会你成为一名熟练的CSG配置师

CuStomeGo最全最新教程贴
[施工完成!可喜可贺!]
[2020.2.26-2020.4.9 字符统计:6188字符 统计方法:Word文件统计 ]
教程前言

  CuStomGO由国人插件作者制作并在2016年发布到了站内最早的版本V3.0,开始长达4年的开发与扩展目前本体与其6个附属已经达到了40+任务判定,30+条件判定,语句控制等多种配置选项自定义的程度超乎想象,CSG不再是单一功能的插件,超高度的自由度用他与其他的插件连用如MM,公民2,菜单等等连用 可以制作“高端的副本”“全新的小游戏”“完美的PVP”与“自动化的剧情”甚至“插件”大大提高了RPG服务器游玩性与小游戏的丰富度

  打住,怎么感觉跟在打上个年代的广告一样,自己牛皮好像吹大了....
  言归正传本次教程贴是基于CuStomGo与其相关附属的教程插件所开的帖子由于作者本身的教程文件版本更新,有一些教程实在太老了配置已经发生了改变所以我就和作者商量了一下就开始着手更新基于V8.3与其相关附属插件的教程,我会以最简单的方式给各位讲解如何从零到有的完美使用CuStomeGo配置出你想要的那一份“游戏”。

  PS:以下教程为了方便将会把CuStomeGo简称为CSG

教程目录

第一章:CSG的基础概念
第二章:了解CSG三大核心
第三章:从零开始制作CSG队列
第四章:配置更加高端的CSG队列
第五章:CSG的扩展功能(6大附属)


第一章:CSG基础概念与准备
在开始之前CSG需要以下几个插件作为前置当然你也可以选择不装只是会麻烦很多事情。这里我已经为大家链接好了直接点击就可以到对应贴内下载

>>>Vault
>>>PlayerPoints
>>>MythicMob(你要做小游戏可能就用不上)
>>>PlaceholderAPI-2.8.2及以上版本

当确认你的服务器按照好上面的插件以后,就可以打入CSG了并且你会在CSG的配置文件夹看到下面的5个文件(3个文件夹+2个YML)

>>>itemtask  (储存各种定义好了的游戏脚本)
>>>lobby  (储存你的队列配置)
>>>sign  (储存各种定义好了的加入告示牌#目前废案中
>>>Data.yml (玩家数据)
>>>Option.yml  (CSG基础配置)

你如果使用CSG会经常收到这种提示
——游戏读取完毕
——队列保存完毕
#那么什么是游戏?什么是队列呢?
简单来说:“饥饿游戏”“起床战争”就叫做游戏,而“饥饿游戏”“起床战争”中的“一号大厅”“二号大厅”就相当于队列。
如果比喻成副本的话可以这样说:游戏就相当于第一关这个整体,队列就相当于第一关中的地图或者大厅。
而负责这一个版块的就是lobby文件夹,在lobby文件夹以内的文件夹就是游戏文件夹而在游戏文件夹以内的就是队列文件
文件结构:CuStomGo/lobby/游戏/队列.yml

如果你搞懂了这两个概念,那么恭喜你第一章内容毕业!如果没有搞懂也没有关系,因为不去实际用用真的很难懂,先往下看吧!

EXP:+10(10/100)
第二章:了解CSG的三大元素

在CSG中有三大配置元素(触发器,Task,TaskController)他们负责运行CSG的各种各样的事件.脚本.设置如果是初学到这里的小伙伴没必要学会怎么使用三大元素只是做一个阅览就够了。当你学到第四章在回来看说不定更好呢。而这些CSG的配置方法和MM的怪物制作其实是一种思维,将你需要的各种各样的东西组合到一起.


触发器——各种各样脚本逻辑运行。比如击杀了Boss执行什么,玩家死亡执行什么.
Task——触发器里面的脚本指令。
TaskController——游戏的时候各种执行,比如开始的时候执行什么,结束的时候执行什么

触发器
Trigger:

  <名字>:        #与MM的每个怪物的识别ID一个道理,每个名字不能一样
    Type: <触发器类型>       #触发器的类型,类型大全见下文
    Id:       #触发的对象(可以是玩家,怪物,等等),如果该触发器类型注有标签 [含ID值]则会对对象有要求
    - id1
    - id2
    ......
    Task:       #Task
    - task1
    - task2
    ......
触发器大全
Task
Task统一格式:
-  <命令>{<参数>}  <目标>[<选择器>=<参数>,<选择器>=<参数>...]
TaskController

标签含义:

[含触发者]       - 在这个Task中可以使用@p,<striker>等指向触发者的变量。
[限非自由加入]   - 这个TaskController仅能在非自由加入队列中使用,否则失效。
[含变量]         - 这个TaskController会有一个括号后缀,内含一个变量辅助判定。

TaskController大全
如果你学会了CSG的三大元素,那么你就完全可以自由编写的CSG脚本了~如果第一次看看的一脸懵逼也没有关系.请看下面的实战教程咯
EXP +50 (60/100)

第三章:从零开始制作CSG队列

这部分将开始是CSG的实战教程,以图文结合的方式给大家展示,那么废话多说,直接开始!

首先要在customego文件夹的lobby里面个用于储存{游戏}的文件夹这里我把她叫做【副本一】文件夹并且我们在创建一个.yml文件

注:这里的Default就是副本一的房间
打开我们的队列文件开始进行编辑吧(下方有教案,可以自己下载使用)
打开文件首先我们先来编辑最基本的内容

注:
[1]是否将这个队列文件设置为初始队列,每一个游戏也就是副本只能设置一个初始队列
[3]这个队列的名字,目前没什么用
[5][7]人数方面的限制,当满住最小人数的时候游戏就可以开始了,如果你想要做成单人副本就把最大与最小都设置成1就好了
[10] 是否自由加入,这个设置成false,如果你设置成true就当与别人正在打副本其他人也能进来打

相关时间方面设置

[14]当人数条件满足最少的时候需要等待多久
[16]当人数条件满住最多的时候需要等待多久
[18]这个游戏一场最长能玩多久
注释:如果你想要你的玩家加入就开始,你可以把你的等待时间全部设置为1,这样玩家一加入就可以开始游戏了(不能设置成0)

相关地点设置

[22]等待大厅的位置,玩家在什么地方等待游戏开始 格式(x,y,z,世界名)
*在V8.5版本过后地图坐标最好就填成(x y z,世界名)坐标中间的,改为空格隔开
[24]当游戏打完或者结束了最后把玩家传送到什么地方
[26]真正游戏的地方,相当于就是副本所在地(可以配置多个)
[29]玩家的区域范围,当跑出去的话会被强行拉回来。如果你的地图确保是完全封闭的其实都可以不用设置这个(可以配置多个)
注意V8.50后面的版本所有关于地点的设置都将用空格代替不再用 , 分隔了
游戏全局判定(TaskController)

[35-36]别乱动
[38-39]当玩家加入到等待大厅的时候执行什么指令,这里是给全部等待大厅玩家发送一条消息,可以设置多个(包括下面的几条都可以)
[40-41]当人满了的时候执行什么指令
[42-44]正式开始,执行的指令,这里的[44]是用控制台指令刷新mm怪物
[46-47]当结束和失败檫屁股执行什么,如果你是副本一定要记得结束消除本次的怪物,你可以不想要下一批玩家打两个boss吧。这里要注意一点你如果没有使用独立副本的附属的话,两个一样副本距离要大于32个方块距离,不如当A副本结束她会把B副本的怪物清除掉。B副本玩家:我的BOSS呢???
**这里的taskcontroller理论上你可以写无数个,然后再加无数个指令


游戏全局判定(Task)

[52-61] 这里是当你击杀了指定的mm boss不管还有没有小怪都会在60tik(3s)后结束本次游戏
*怪物标签可以添加多个,标签对应mm怪物的ID不是displayer(怪物名字)
[64-70]就是上面说的区域限制 [29] 问题,如果你没有搞区域就没必要写这个
[73-77]这是当队列遇到特殊情况会强制进行的措施,如插件被重载之类的
[79-83]这里是当你的游戏时间 [18] 到了后执行的操作
**这里的task理论上你可以写无数个,然后再加无数个判定

玩家的相关设置

这些都可以加也可以不加,看你自己的决定注释也写的很详细了我就不解释了
那么到现在基础的队列教程也就配置完毕了,当然详细的数据得更具你的服务器自己调整了,下方有这次教程写的配置模板,你可以直接下载改改就能直接用了
EXP +15 (75/100)
第四章:配置更加高端的CSG队列
这个位置我打算教各位怎么用CSG来写属于自己的小游戏,个人有什么想学的小游戏或者点子都可以写到下方评论区,我会根据不错的点子或者小游戏来尽量更新


第五章: CSG的扩展功能(附属插件讲解)
CSG拥有超多的附属,每一个附属都能给CSG增加全新的机制,学会使用附属会为你CSG带来不小的帮助
CustomGO-Divider
CustomGO-DailyJoin


简绍:CustomGo-DailyJoin是CustomeGo的每日限入附属,字面意思给游戏加上进入的限制次数,不是限制要求
使用方法:
1.将插件放入plugins后重启即可

2.打开生成的文件会有一个叫做Option.yml的文件打开文件就开始配置了,格式如下
[队列名]:[每日加入次数]

解释:
这里是配置了3个限制,特别注意DJ是通过队列名来进行限制的奥不是通过游戏进行限制的奥,相当于不同游戏同一个队列名都会受到限制。所以你要做的现在的游戏就用特殊的队列名哦
注意:
每日限制要通过重启服务器才能完成刷新,所以你要打上每日限制还要做一个游戏重启(这里建议找一个每日自动重启的插件,站内就有)



CustomGO-Leader

简绍:CustomeGo-Leader是CustomeGo的队长附属,他会指定第一个加入游戏的玩家是队长,队长拥有立即开始游戏与t出玩家的权限(相当于房主)
使用方式:
1.放入plugins后重启服务器,Leader不会生成相关的文件夹
2.打开你要开启队长设置的队列文件.就是第三章的那个教程的文件
3.在里面新的一行加上
Leader: true
就可以设置这个队列启用队长模式了
相关指令:
/fwl go   #立即开始游戏
/fwl kick 玩家   #踢出一名玩家
/fwl change 玩家   #转让队长



CustomeGo-Tili/JoinPrice
简绍:
JoinPrice扩展了CustomeGo的限制判定目前有(金币,点券,等级,TIlI的体力)
使用方法:
JoinPrice在V8.4及以上已经被整合到了CSG本体插件里面了,无需在打附属
Tili和其他附属一样放到插件包里面重启就会有专门的文件夹
配置方法:
打开需要加入现在的队列文件.还是第三章的那个文件

[Need]在开始游戏前判断玩家是否瞒住了这些条件,不会进行消耗
[Consume]在游戏开始后消耗玩家这些东西
前者是要求,后者是消耗
特别注意Need设置的内容要大于等于Consume的内容,如果小于的话,系统会自动将Consume作为Need进行判断
Tili文件夹的config配置:

这个什么好说的,自己看注释就是了
需要注意的就是在V8.4之前的版本,恢复速度是按照ti计算的20ti=1s,V8.4以后就按照秒了
然后就是注意的PAPI的版本,如果版本没设置对后台会报未连接的
PAPI变量: %fwtili.tili%  玩家当前体力
TiTl的相关指令:
/addtl <体力>             使你自己获得一定的体力。(需要权限:tili.addtl)
/addti <体力> <玩家>  使一个玩家获得一定的体力。(需要权限同上)
/addtall <体力>     使所有在线玩家获得一定体力。


ustomeGo-SPRoom.异步独立副本

重头戏来了,我最喜欢的一个附属插件,学会使用这个插件能让服务器B格直接上升到另一个层次
简绍:
CSG-SPR是CSG提供了异步独立系统,他能够为每一个玩家提供独立的副本与地图,0排队,0抢怪,0抢资源。并且采用的是异步生存地图避免了卡服的可能性只要不作死就不会造成服务器卡顿问题

使用方法:
1.首先你先要创建一个正常的游戏与配置(也就是第三章的配置文件)将他加载到服务器里面
2.输入/seril <CustomGo游戏名> 就会开始创建相关的独立副本,他会给你提示世界未加载新建一个超平坦地图.这个不用担心这个是正常现象
3.将服务器关闭,打开CSG—SPR的文件夹,里面有一个world文件,这个就是独立副本的世界模板,每一次生成独立副本就会复制一次这个模板.
将你的副本地图与对应的世界模板进行替换(内部文件全部替换)
4.在CSG-SPR中也有一个lobby的文件夹,这个就是独立副本的游戏文件夹,将独立副本的配置打开后将必要的世界名替换成<tag.world>组队的相关地点替换成none(这里可以去参考独立副本的模板文件)
<tag.world>就是代指你的独立副本的世界名字
5.启动服务器后如果文件正确就会生成一次独立副本文件
6.通过指令/fwroom xx setmax <最大副本数> 即可修改同时副本运行的上限(免费版一个副本最多10个,付费不限)


指令:
/seril <CustomGo游戏名>                       导入已有密室副本配置与对应地图,创建独立副本!
                                                          (若无对应地图,先自动创建一个超平坦世界作为对应地图)
/fwroom xx editworld                              重新修改(或传送到)已经导入为独立副本地图的世界
/fwroom xx renewlobby                           重新导入CustomGo配置到独立副本(修改配置后用)
/fwroom xx setmax <最大副本数>           设定该独立副本最多允许多少副本同时进行
/fwroom list                                           显示独立副本列表
/fwroom xx statu                                    查看一个独立副本的状态
/fwroom defaultloc                                 设置默认传送点(临时世界被移除时世界内玩家传送到这)

/fwroom xx join                                     (玩家指令)加入独立副本!
/fwroom xx join <玩家名>                      (管理员指令)令一名玩家加入独立副本(免费版缺失)!
/fw leave                                              (玩家指令)离开一个独立副本!(没错是CustomGo原指令)
请注意:
1.独立副本不能通过修改config来进行注册副本,必须通过指令一步一步的来



帖子地址: 

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

像素世界 成立于2022年8月,是中国开发者开创的一个综合像素沙盒游戏交流社区,拥有稳定的开发维护及运营技术,提供长期交流需求。本社区开放了我的世界模组、地图、插件等资源交流版块,集中了大量资源为玩家和开发者提供了优质的游戏环境。
  • 官方B站

  • 微信公众号

  • 商务合作