(〇)愤怒的吐槽、部分开源计划
小鬼本来打算寒假回家再完善完善再加点诸如NPC购买什么的功能的,结果就有那么一个傻逼把服务端给公开了。所以首先让我们热烈祝贺我们热爱或曾经热爱的彩虹岛即将倒闭。
由于服务端的公开泄漏,小鬼五年半来从未停止努力的彩虹岛单机版或模拟器项目也就失去了其意义。现宣布CHDEMU项目于即日正式终结,作者未来将不对本项目进行任何的维护。源代码将以公共领域形式(Public Domain)部分开源,您可以自由地修改、编译、再发布本项目的代码用以学习、添加功能、修正BUG等目的。
如果您喜欢本项目的成果或认为本项目的源代码给您的学习带来很大帮助,您可以考虑向我捐助。
(一)项目介绍、与“私服”的区别
CHDEMU是大型多人在线角色扮演游戏(MMORPG)La Tale(中文名:彩虹岛)的单机与局域网模拟器。网络游戏La Tale由韩国Actoz开发,中国大陆区于2007年至2012年由盛大网络代理运营,2013年以后由盛大游戏独立研发。以上组织视具体情况拥有该网络游戏的合法版权。
La Tale在2011年在台湾区由爱玩家运营时发生过运营商人为原因的服务端二进制程序泄漏,泄漏程序两年来在地下非公开传播并用于架设私服。2013年12月,该二进制程序在中国大陆被短时间公开到因特网上,目前尚不能评估该事件对全球La Tale运营的负面影响。
本项目由本人,即此博客博主、曾经的资深彩虹岛玩家、现上海师范大学音乐学院钢琴系研究生gmsj0001同学独立开发,初衷是当游戏停运或线上虚拟社会 发展不乐观时能够帮助老玩家在线下找回曾经美好的回忆。本项目最初于2008年下半年发起,所有代码均为自主研发。与泄漏的官方服务端没有任何关系。
即便如此,请勿架设以营利为目的的私服,不论是使用您有幸得到的官方服务端,或是利用本项目的部署或源代码。于道德上讲,架设私服会严重影响彩虹岛的可持续发展,于法律上讲,架设私服在各国均属于违法行为。作者将不对因擅自架设私服的行为引来的纠纷负责。
(二)功能与特性
本版本实现了以下功能:
1、上一版本的跑地图(小鬼版彩虹岛音乐播放器 = =!)
2、技能的学习与使用
3、物品的获取、装备的穿戴
总的来说,该版本的新特性是可以实现像模像样的纸娃娃系统,可以放喜欢的技能并截图。
协议版本采用“经典”的274版核心,兼容274-283范围的客户端版本。开发测试使用的是美服2013年1月的280709客户端。
(三)简单使用说明
客户端可以使用274-283之间的任何版本。汉语用户可考虑使用274版的私服客户端(繁体中文,大陆用户请使用乱码大师或AppLocale调整编码),英语用户可使用美服V7.0至20130117之间的任何版本。参考下载地址见文章末尾。客户端的命令行启动不再赘述。
使用美服版本的用户可使用作者提供的一个微型补丁绕过XTrap加载与开启输入法。
服务端配置文件为chdemu.ini,相关设置说明如下:
IP、Port:监听的IP地址与端口
ResourceDir:资源文件目录,可设置为客户端的目录
Pack:资源文件是否使用SPF打包
游戏登陆时会自动创建不存在的用户名,第一次登陆输入的密码即为设置的密码。结束游戏时请按ESC键点击结束游戏,请勿直接关闭模拟器程序,否则游戏将无法得到保存。
支持以下标准GM命令(GM命令以双斜杠开始):
传送:portal XPos YPos [StageID] [MapGroupID]
获取物品:giveitem ItemID [Count]
地图号请自行测试,物品号可以用搜索引擎找到,有时间我可能会整理一份发出来。
(四)高级使用说明
chdemu.db为SQLITE数据库,有技术基础的同学可使用相关工具打开编辑其中的数据。
下载链接里还提供了一个封包侦听工具,有兴趣的同学可用来分析协议,理论上对当前多个地区运营的版本有效,且不受NP限制。
技术基础更NB的同学可以前往github下载或fork部分开源的源代码,谨代表作者本人为可能比较糟糕的编码水平给读者带来的困惑致以最诚挚的歉意。
(五)相关下载地址
模拟器:http://lxf.me/www/upload/latale/chdemu_v2.7z
美服补丁:http://lxf.me/www/upload/latale/lataleusa_patch.7z
封包工具:http://lxf.me/www/upload/latale/sniffer.7z
源代码:http://github.com/gmsj0001/chdemu
274版私服客户端:http://pan.baidu.com/share/link?shareid=1552961789&uk=1261605962
美服20130117版:http://www.gamefront.com/files/22901610(国内用户需爬墙)
美服2012年9.0版:http://download.cnet.com/La-Tale/3000-7540_4-10877348.html
写得一手好文书
错误应用程序名称: chdemu.exe,版本: 0.0.0.0,时间戳: 0x52c26797
错误模块名称: MSVCR100.dll,版本: 10.0.30319.1,时间戳: 0x4ba1dbbe
异常代码: 0xc0000417
错误偏移量: 0x0008ae6e
错误进程 ID: 0x484
错误应用程序启动时间: 0x01cf1cef6f8f0051
错误应用程序路径: C:\Users\Charles\Desktop\chdemu_v2\chdemu.exe
错误模块路径: C:\Users\Charles\Desktop\chdemu_v2\MSVCR100.dll
报告 ID: ad4510b3-88e2-11e3-b478-005056c00008
Win7 64位 已停止工作。
模拟器当前操作是 Loading Sqlite Database…
链接:http://pan.baidu.com/s/1kTgMcib 密码:832这是服务端源代码吗?
不是。这是六年前国外的一个模拟器项目LaLore,只实现了登陆到游戏。我的代码都在github上。
你好,你有彩虹岛工具集吗?就是可以操作SPF,ldt,tbl,和XML文件的工具或者有什么办法导出ldt为excle吗?
没有现成的。请参考开源的代码按自身需求定制
压根就找到过这方面的开源代码…
你见过吗?
请参考本项目Common.h/Common.cpp SPFFileReader类、LDTFile类等。
你好,想请教下那些技能移动的位置到底是怎么算出来的~~。。
LDT表里有_Speed_Delay、_Speed_Time、_Speed_X、_Speed_Y几个参数描述技能释放之后的运动(比如向前冲)。
参见 https://github.com/gmsj0001/chdemu/blob/master/src/Skill.cpp
如果你说的是整个地图坐标计算,则是花了几百个小时完全从客户端里一行行逆向出来的,此部分代码未开源。
能够透露的是游戏是在按照0.01s的时间片对当前的加速度、速度做积分计算出新的坐标,然后判断新坐标的地形更新动作状态(如边缘掉落),动作状态再反过来影响加速度、速度(彩虹岛默认的重力加速度1600,跳跃初速度-800,所以跳一下是1s)
你好,我想请教下那个跳跃高度是怎么算出来的,-800 我尝试一秒-800 但是有点怪.
能重新发一下这个连接给我嘛大神 11035597@qq.com
你好,我想请教一下 关于解析LDT的源码是哪些。
common.cpp
會停止運作 為什麼?
windows7 64-bit
小鬼大神能否把你的MOB_1.DAT源码发下。。 我想研究研究
能给一下那个地图板块计算和动作计算源码吗..。给个价格也行.. 我想研究研究
失效了
你好,我很感兴趣你的项目,我对彩虹岛也很感兴趣,您的资源和链接大部分已经不存在,能否给我指导一下,时隔已久,我不知道你能否回我。
2022年3月14日回来考古,下载了模拟器和274版私服客户端,把ResourceDir改成了latale的文件夹,双击chdemu运行后显示已在10000端口开始监听,然而选择私服窗口化运行后,注册不了账号,进不去游戏,放弃了