雪千渔Blog

  • 首页
  • 写写代码
    • dotNet
    • C++
    • Lua
    • Visual Basic
    • Java
    • Android
    • Web
  • DCC
    • Maya
    • Maya-Plug
    • AfterEffect
    • AfterEffect-Plug
    • PhotoShop-Plug
  • 游戏制作
    • Unity3D
    • UnrealEngine
    • 经验杂谈
    • 游戏设计
    • 自研引擎
    • 效果实现
  • 其他
    • 乱七八糟
    • 软件工具
    • 留言板
    • 自制素材
    • 关于我
  • 世界的尽头
雪千渔blog
唯有热爱,能抵漫长岁月
  1. 首页
  2. 乱七八糟
  3. 正文

[程序开发文档]ColorUpdate客户端更新程序服务端设置

2017年6月3日 6160点热度 124人点赞 0条评论

该服务端可用手动配置和软件自动配置,目前软件自动配置未达到特别完善。

服务端要放在html服务器文件夹里面 下载使用的是http

手动制作

手动更新会比自动更新稍稍麻烦了一点 但是可以自行的拓展更多功能。

手动更新需要先自行创建更新补丁,以客户端根目录的结构创建文件夹;

比如要更新个mod文件 就需要创建.minecraft文件夹 在里面在创建mods文件夹

将需要更新的mod放进去之后,在客户端根目录压缩.minecraft文件夹,压缩包的名称为 新版本号.zip(例如101.zip);

压缩的格式必须为zip,否则无法识别。

如果更新文件既在.minecraft文件夹内又在客户端根目录(也就是和启动器同目录)则需要压缩.minecraft文件夹和其他更新文件。压缩后打开压缩包的目录应该是这样的:

文件为101.zip

    .minecraft
          mods
              newmods.jar
    游戏说明.txt

这个版本号是不可跳过的,如果跳过客户端将无法正常启动。

手动打开UpdateLogs.txt更改更新日志保存。

打开version.txt

在原来的版本号上+1,如原版本是100,则要改成101,并确认目录下有101.zip这个文件的存在。保存该文件后,就完成了手动配置。

如有会使用命令提示符cmd/bat的话,可以自己编写update.bat放到客户端根目录压缩到更新包内,更新后会自动执行,但是最后一行最好是del %0 来删除此次更新的update.bat文件,以免下一次更新如果更新没有update.bat就会执行旧的脚本导致无法预料的错误。

 

*新增 内置删除函数:

需提交一个名为kill.ini的文件到客户端目录(启动器同目录),这个文件中记录着该复制哪些文件,删除哪些文件,和删除哪些文件夹。

[kill]
;这个代表复制的文件数量,如果没有填0
copyindex=1
;这个是复制文件的路径,如果数量填2,只需换行增加一条copypath2=xxx|xxx
;中间的“|”符号是分割两个路径的,左面的是复制的文件路径,右面的是复制到什么路径
copypath1=.\1.jar|.\.minecraft\mods\1.jar
;这个是删除文件的文件数量,如果没有填0
fileindex=1
;删除文件路径
path1=.\1.exe
;删除文件夹的数量
dirindex=1
;文件夹路径
dirpath1=.\xxx路径

以上三条按照顺序运行,复制文件、删除文件、删除文件夹。删除文件夹会删除文件夹内的所有文件。

这三个copyindex、fileindex、dirindex必须存在,如没有删除的填写为0即可

该项删除函数不可以删除不存在的文件,否则会导致删除失败。

 

如何使用程序更新压缩包

如何使用程序更新压缩包;

利用7z更新zip源码
Private Sub setupZipUpdate()
    If Dir(LocalDir & "\" & localVer + 1 & "ex", vbDirectory) <> "" Then
        Dim mainIni As String
        mainIni = LocalDir & "\" & localVer + 1 & "ex\main.ini"
        Dim exindex As Integer
        exindex = GetINI("ex", "exindex", mainIni)
        Dim ii As Integer
        For ii = 1 To exindex
            Dim exs() As String
            exs = Split(GetINI("ex", "ex" & ii, mainIni), "|")
            exs(0) = pointPath(".\ColorUpdate\" & localVer + 1 & "ex\" & exs(0))
            exs(1) = pointPath(exs(1))
            Shell App.path & "\ColorUpdate\7z.exe u " & exs(1) & " " & exs(0), 1
            
            Sleep 500
            Do
                If CheckExeIsRun("7z.exe") = False Then
                    Exit Do
                End If
            Loop
            
        Next ii
        
        Dim FSO As Object
        Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.DeleteFolder LocalDir & "\" & localVer + 1 & "ex"
        
    End If
    
End Sub

 
 

更新压缩包比较特殊,因为使用的是7z.exe 属于外部文件,无法检测每个解压文件的属性,所以更新压缩包被单列出来了。

所有的压缩包更新文件需要在ColorUpdate文件夹,也就是发布的时候要增加".\ColorUpdate\新版本号(也就是本地版本号+1)ex\"这个文件夹

比如当前客户端版本是103,这里发布更新是104  文件夹就是".\ColorUpdate\104ex\"。

在文件夹中需要创建一个main.ini,这个ini配置文件是用来记录那些文件要更新到哪个压缩包内。

ini书写格式:

[ex]
exindex=1
ex1=.\ex1\asste|.\.minecraft\mods\test.jar

这里的"exindex"是执行的数量,下面是条目,如果"exindex"改为2则需要在下面加一个"ex2="。

解压更新的规则: 以"|"符号为中心分割两个路径,左面是文件或者文件夹名称,右面是更新的zip或者jar文件路径。左面的路径(也就是在".\ColorUpdate\104ex\ex加上索引号"这个文件夹里),右侧的只能使用绝对路径,"."为当前路径(更新器所在位置),。

以上可以在".\ColorUpdate\104ex\ex1\asste"文件夹中放入需要添加或者更新的文件,如果不更新文件夹更新文件的话需要加入后缀名,如"asste.class"。

如要删除压缩包的内容则在".\ColorUpdate\104ex\"建立kill.ini

[killex]
index=1
kex1=.\120.zip|s\1.exe

以上为删除压缩包配置的书写格式,意思是删除游戏根目录(程序同目录)下的"102.zip"压缩包中的"s\1.exe"文件,使用"|"分割

 

更新文件夹,所有文件夹内的文件和文件夹都会跟随压缩进压缩包,有一些压缩包都有单一数据文件夹(就是打开压缩包内的文件夹才有数据),可以按照同样的目录结构来制作更新,这样能减少配置文件的书写量。

压缩更新完毕后自动删除104ex文件夹

使用版本管理器配置

初级功能:

首页:

1.更改更新日志: 直接改写即可 可使用插入分割线和时间等功能方便编写,最后需要保存日志更改才可生效,玩家会在更新界面看到此更新日志。

2.版本管理器:需要点击一下刷新列表,会显示当前本地存在的更新补丁。

3.新增版本控制:有MOD、材质、mc文件夹、和根目录(启动器目录)的更新方案

删除文件和复制文件最好使用删除函数,说明在上面。

直接将文件拖放进去或者手动添加即可(同一目录文件不可重复添加文件名相同的文件)

关于自动运行脚本,使用的都是CMD命令,查看更多命令请百度。

del .\.minecraft\mods\a.jar
del %0

第一句del 是删除的意思 .\为当前目录,此操作的意思就是删除a.jar这个MOD,最后的del %0为删掉自身脚本文件,如果不删除会导致下次更新还会自动运行,此文件会被保存为名为update.bat的文件在根目录一起被压缩进更新包,该文件是运行在更新安装之后的,也就是说先删除一个MOD在更新一个同名的MOD是不可行的,因为在更新阶段新的同名MOD就会强制覆盖掉旧的MOD。

然后点击制作更新包,本地就将更新包打包好了,不过这时还没发布,所以玩家还是检测不到新的客户端,我们点击发布提交即可。在制作更新包后发布提交之前可以在\updatefile\ads中查看更新包制作情况



发布提交后即可,高级功能暂未推出

请手动将updatefile文件夹内的UpdateLogs.txt、version.txt和制作的新的更新包上传至服务器
===================旧版ColorUpdate软件配置教程=======================

目录:colorupdate-1

文件夹ads为软件的一些需要调用的文件 一般情况下都不用去碰。

md.bat运行可以在本目录创建一个.minecraft文件夹。

在UpdateLogs.txt里写入文字是会显示在客户端更新的界面,主要用来写更新日志。

version.txt里存着的是当前的版本号,目前版本的服务端只有但版本号,比如100。

当前版本软件较为简陋以后会将推出分内部版本号和外部版本号的更新组件。

首先是简单的软件配置:

colorupdate-2

可以看到当前服务端版本号为100,如果想让客户端更新那么就要调整到101

首先打开更新包制作界面

colorupdate-3

目前只提供四种更新的自动处理,在需要更新的东西上打上对勾 然后把文件拖放到对应的框内

colorupdate-4

点击制作即可完成更新包的制作在同目录会出现个新做的101.zip更新包

默认制作完成后返回,在主界面输入好更新日志(不是必须)点击2.更新新版本即可发布新的更新补丁。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Minecraft
最后更新:2022年1月15日

JomiXedYu

一名游戏玩家。

点赞
< 上一篇

文章评论

取消回复

*

code

JomiXedYu

一名游戏玩家。

分类
  • AfterEffect / 6篇
  • AfterEffect-Plug / 1篇
  • Android / 1篇
  • C++ / 12篇
  • dotNet / 12篇
  • Lua / 4篇
  • Maya / 2篇
  • Maya-Plug / 1篇
  • Office-VSTO&VBA / 2篇
  • Unity3D / 14篇
  • UnrealEngine / 1篇
  • Visual Basic / 8篇
  • Web / 2篇
  • 乱七八糟 / 2篇
  • 效果实现 / 2篇
  • 经验杂谈 / 2篇
  • 自制素材 / 3篇
  • 计算机图形学 / 1篇
  • 软件工具 / 4篇
友情链接
  • DorinXL
  • 小博博客
  • 秋橘斋

COPYRIGHT © 2014-2021 雪千渔Blog. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

辽ICP备20006894号-1