CHDEMU V2 LaTale Emulator Readme (English Version)

Part I: About this project

CHDEMU is a server emulator of the MMORPG La Tale, which is developed by Actoz Inc. from Korea. CHDEMU IS NOT A PRIVATE SERVER. It should be only used for self use and for study purpose.

The project is developed by gmsj0001, the author of this blogger.Further development may be canceled because of a public leak of La Tale official server occurred at Dec 2013. Thus the author decided to make this version partial open sourced in Public Domain. You can download, modify, complie, or re release this project freely for studying, adding feature, or fixing issues.

If you like this project, either the distribution or the source, you can consider making a donation to me. Thank you.

Part II: Features

This version of CHDEMU provides the following features.

O Tour around the game world
O Learn and cast skills
O Obtain and equip items

The emulator is tested on the 20130117 release of USA La Tale and compatible with any client from version 274 to 283. Suggest download links will be provided at the end of the article.

Part III: Simple Usage

Configures is located in chdemu.ini. Available settings are:

IP, Port: The IP address and the port for listening.
ResourceDir: Directory of the data files. Fill in your game client path.
Pack: Use SPF pack files or not.

First login will create the user. Please provide the correct username and password.

The following standard GM commands are available (GM commands start with double slashes):

portal PosX PosY [StageID] [MapGroupID]
giveitem ItemID [Count]

A client patch is provided to skip the XTrap loading and enable Non-English input methods.

Part IV: Advanced topics

chdemu.db is a SQLITE database. Advanced users can use related tools to edit the saved data.

There is a packet sniffer tool provided in the download links. You can use it for analyzing the La Tale packet structs.

Users who know about programming can visit github to checkout or fork the partial sources for building a custom server yourself.

Part V: Links

CHDEMU: http://lxf.me/www/project/latale/chdemu_v2.7z
Client patch: http://lxf.me/www/upload/latale/lataleusa_patch.7z
Packet sniffer: http://lxf.me/www/upload/latale/sniffer.7z
Source: http://github.com/gmsj0001/chdemu
USA client (20130117): http://www.gamefront.com/files/22901610
USA client (v9.0, 2012): http://download.cnet.com/La-Tale/3000-7540_4-10877348.html

CHDEMU V2 彩虹岛模拟器发布暨使用说明

(〇)愤怒的吐槽、部分开源计划

小鬼本来打算寒假回家再完善完善再加点诸如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最新的开发图

昨天达成了一个checkpoint,即物品系统基本操作逻辑的完成。包括物品的获取(目前是通过GM作弊命令)、销毁、分发、装备等。

其中物品装备的逻辑还是有点难度的,因为装备栏有的物品是占用两格(双手武器)或三格(时装衣服),装备物品时要判断冲突,想当然写了几遍都有逻辑漏洞,最后不得不在开发笔记上列举所有的冲突情况才总结出与原版的服务端一致的逻辑(算法)。

目前所有的代码都是重构过的了,采用的是与官方相同的编码规范(不要问我从哪儿得到的官方编码规范),即变量全部为匈牙利命名法(驼峰法,有前导数据类型字符),函数全部为首字母大写。如m_fPosX、GetPosX()、m_sObjects等(这也是Windows下做开发的微软系的惯例规范,Java系终究还是不习惯)。上个版本的编码规范是C式的写法,所有变量不带m_也不带类型字符,结果越写越混乱。

架构上基本是自己重新画的,有些东西借鉴了ArcEmu。ArcEmu是我比较喜欢的一个项目,几年前就有读过,最近重读它的代码觉得质量还是蛮不错的,尽管我从来没玩过Wow。我的项目起名叫ChdEmu也是学ArcEmu的。其他的项目像MaNGOS系也有阅览过,但觉得不合口味,比如ACE库显得有点笨。Ryzom也有读,毕竟是真正在营的游戏,但觉得太重量级,子系统划分过细,本来很简单的一个操作他能给你在10个子系统里转来转去执行了1000行代码。

我是个完美主义和精简主义的人,这两个主义结合起来难度可不小。我的目标是用最少的代码、最少的CPU和内存完成最好的工作,并且这些代码的架构还要读起来漂亮、高端大气上档次。这堪比开一场真正意义上的音乐会。

呃好像跑题了。回到项目。因为物品系统能用了,所以现在可以当个纸娃娃玩,给自己弄点好看的衣服穿。下一个checkpoint是技能系统。发布时间预计在明年1-2月份。

不过大概要等到放假再写了。这周是第八周,依据本人多年开音乐会死在台上的经验,接下来要进入学霸模式,差不多持续6周,等曲子都背出来才能稍微缓一口气。

叨叨完毕,下面上图(根据惯例传到百度相册,看大图请亲自前往)。

啥?你说下图穿的是裙子?呃被发现了,可能是状态系统一直没怎么弄完善,初始化的时候Gender随便填的,我开始也没怎么注意后来弄了个裤子结果发现是灰色的没法装备。。。

CHDEMU LaTale Emulator V1.00 Readme For Foregin Users

Part I: Definations and Statements

CHDEMU is a server emulator of the MMORPG LaTale, which is developed by Actoz Inc. from Korea. CHDEMU IS NOT A PRIVATE SERVER. It should be only used for study and for fun.

The project is developed by gmsj0001, the author of this blogger. The project is closed source currently.

Part II: Client Compatibility

This version of CHDEMU is only compatible with the Chinese version 1.42, which is released at December, 2008, with the LaTaleClient version 1.262.4XX. The client package download link will be provided at the end of this article.

Part III: Features

Of the connection server, the emulator provides you to login, create or delete character.

Of the world server, the emulator currently implemented the Map system, Coord system. Some of the NPCs, Chat are alos implemented. The emulator support multiple players to logon to the game.

In a word, the emulator allows you to tour around the game world. Please notice that this project is the first server emulator of LaTale in the world that can perform a map tour.

Part IV: Instructions for use

For local test (single player), you can simply run the server chdemu.exe by a double click on the executable file. The client shoud be launched from the command line:
LaTaleClient.exe /Run:VHIGH /Window /LoginServer:127.0.0.1:10000

For multiple players on lan or wan, you need to run the server by specifying the listening IP address using the command line like this:
chdemu.exe -ip 192.168.1.237
And the client command line should be:
LaTaleClient.exe /Run:VHIGH /Window /LoginServer:192.168.1.237:10000

The first login will create the user. Please input the correct username and password. This password will be used when you login again. Then you can create your character and logon to game.

One cheat command have been used in the game. You can input the following syntax in the chat window to portal to anywhere.
//portal StageID MapGroupID [PosX] [PosY]
For example:
//portal 6 0          Elias
//portal 15 0        Blackmoon city
//portal 67 0        Atlantis

Part V: International Issues

LaTale uses the MultiByte Character Set (MBCS) in developing the game, so the client will show unrecognizable texts on non-chinese codepage machines. If you’re concerning about this, you can change the system locale settings or use the AppLocale utilities.

Part VI: Futher development

The next development will support the lastest client versions. It will be released at January, 2014.

Download links:

Server: http://dl2.gmsj.org/latale/chdemu_1_00.7z
Client: http://x001.gmsj.org/download/latale/LaTale_1_42_CHINA.7z

X001 server got hacked on Nov 4th and the hacker erased all my data on the disk. So the download link was broken. You can wait for the version 2.0 got released.

 

 

GhostCHD网络封包引擎用户层过LaTale台服nProtect

这篇文章其实不能给外挂初学者带来什么帮助,因为我的目的不是调试NP保护下的游戏来找call什么的——事实上,在国服待的几年我已经把这游戏研究透了,不夸张地讲给我一年的全日制时间我能自己逆向写一份这游戏。

GhostCHD引擎只有一个功能——分析游戏的通信协议、然后自己发包。辅助软件坚决不读写游戏内存,即便是当年发布的GhostCHD辅助实际上也是一个小型的独立游戏客户端,而不依赖游戏本身。说白了就是脱机挂。脱机版本的GhostCHD我没有发布过,不过当年接代练生活技能就用的是脱机的,一天能同时接五六个单子,最后受不了的是宽带带宽的说。

这使得我的思路受NP的限制不大。众所周知NP主要防的是外部程序对游戏内存的读写。

在国服,我的思路的Hook部分需要做3个地方:发包的地方、收包的地方、以及游戏主循环中的一个地方。

由于NP据说会对游戏代码段进行校验,曾经有位大神曰过,解决代码段校验的最好办法就是不对游戏代码段进行修改,虽然我听了很恼火,但是想来想去没有更性价比的方法,所以原来的Hook需要改一改。

那么很自然地想到改为ws2_32.dll中的send与recv。这样比以前麻烦一些,主要是send一次有可能发两个以上的包,而recv接收的单位不一定是一个封包而是半个封包,需要把它看作字节流来分析。另外需要自己处理加密与解密——这个倒简单了,标准端不像国服用SDDynDll做动态加密,而是个很简单的xor加密,10年还是11年改过一次算法,不过还是很快被爱好者们贴到ragezone论坛上去了,由于早知道发包相关代码的位置,自己静态分析也非常方便。

至于游戏主循环的那个hook,接触过D3D编程的都知道D3D游戏的窗口循环调用的是PeekMessage。OK,hook到这儿。

因为不知道NP会不会对send和recv这么重要的函数做inline hook检查,所以我决定使用修改IAT的办法做Hook。IAT的具体函数指针的地址可以通过运行不加载NP的情况(如不加参数的启动,会报错)挂载OD调试来找出来。

在计算机程序战争中,永远只有一个公理:谁先来谁是爷。所以注入游戏没有什么防NP的技术——我们只需要在NP加载前把代码注入了就是了。

又有传言NP会扫描程序加载的模块,看有没有可疑的DLL。这个好办,我毕业设计就是干这个的,专门把DLL变成shell code来注入。

台服的客户端加了壳,所以不能注入后就去修改东西,要等壳加载完毕后再修改。最后Hook方面主要的代码就是这个样子:

#include <windows.h>

#pragma comment(lib, "ws2_32.lib")

void Encrypt(unsigned char *data, unsigned int len)
{
	const char *key = "qmfaktnpgjs";
	for (unsigned int i = 0; i < len; ++i)
	{
		if (data[i] != 0)
			data[i] ^= key[i % 11];
	}
}

int PASCAL Hook_send(SOCKET s, const char *buf, int len, int flags)
{
	//some code
}

int PASCAL Hook_recv(SOCKET s, char FAR * buf, int len, int flags)
{
	//some code
}

BOOL WINAPI Hook_PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg)
{
	//some code
	return PeekMessageA(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg);
}


extern "C" __declspec(dllexport) void main()
{
	DWORD* iat_send = (DWORD*)0x98A4AC;
	DWORD* iat_recv = (DWORD*)0x98A4E4;
	DWORD* iat_PeekMessageA = (DWORD*)0x98A410;
	DWORD pfn_send = (DWORD)GetProcAddress(GetModuleHandleA("ws2_32.dll"), "send");
	DWORD pfn_recv = (DWORD)GetProcAddress(GetModuleHandleA("ws2_32.dll"), "recv");
	DWORD pfn_PeekMessageA = (DWORD)GetProcAddress(GetModuleHandleA("user32.dll"), "PeekMessageA");

	while (!(*iat_send == pfn_send && *iat_recv == pfn_recv && *iat_PeekMessageA == pfn_PeekMessageA))
	{
		Sleep(10);
	}
	*iat_send = (DWORD)&Hook_send;
	*iat_recv = (DWORD)&Hook_recv;
	*iat_PeekMessageA = (DWORD)&Hook_PeekMessageA;
}

 

鉴于当年经常被人偷学技术,所以删掉了与挂有关的代码。仅供技术探讨。

逛了一下台服

本来下载台服的客户端是用来为了提取文件看原作剧情的,结果无意中有了一个重大的发现。

就是我命令行中用/LOCALE:CHINA启动游戏同样会加载NP,这在以前的任何的客户端都没遇到过。用WinHex打开内存看命令行处理的一些字符串常量(台服客户端加了ASPack好象,懒脱壳了)。发现/LOCALE后面的可选参数没有了CHINA,/PUBLISHER后面的可选参数没有了SNDA。我再看了下美服的最新客户端,也是如此,这说明韩方已经不承认彩虹岛在中国大陆有正规的代理。

再看国服最新的客户端,有USA,有TAIWAN,但是PUBLISHER中并没有GAMEFLIER。稍微了解下应该知道台服去年4月爱玩家因合同到期而停服,其后由游戏新干线重新代理,国服客户端却没有显示出来说明国服的客户端是盛大自己编译的,并且基础源代码分支出来的时间至少要有一年。结合国服的一系列乱象,我认为La Tale在中国大陆的代理已经到期,而鉴于盛大和老搭档兼老冤家Actoz的纠结的亲密关系,彩虹岛实际上已经不是由盛大网络代理,而是由盛大游戏独立开发了分支。由于不再是代理而是分支,盛大才能够拿到源代码添加内挂、农场这些奇怪的东西,并且有权任意修改原作地图、剧情主线故事,甚至出品自己的资料片。也就是说,现在的国服是彻头彻尾的《彩虹岛山寨版》。

真正喜欢彩虹岛的老玩家如果有选择的话是不会回国服的。原因大家都心知肚明,不仅仅是因为滥改剧情。

先发一个“真正的”《彩虹岛2:暴风》的吉恩利亚大陆地图。

WORLD_01_JIENDIA

刚开始看到这个图我也有点疑问,以为台服开新世界时也修改了地图,后来专门去766论坛求证了下,看到了韩方彩虹岛2的地图手稿才知道这个图不是来自新世界,而是彩虹岛2。

台服目前客户端1G,注册方便,无需台湾身份证,而且目前不需要代理即可登陆游戏。因为服务器屏蔽了ICMP,所以没法ping来测试延迟,不过我从河南网通访问不卡,可以正常游戏,并且直觉上感觉这个版本的客户端有防卡的优化,抓梯子能感觉出来。

BIG5码方面。昨天夜里用AppLocale,可以游戏没乱码,但是输入法搞不定,换了很多个输入法都不行。AppLocale的Hook似乎只做了输出方面,输入法架构不管怎么搞传进去都会被变成GB,然后显示成乱码。就算用台湾键盘布局用Alt键打内码也没法打出第二字节小于7F的汉字,所以昨天折腾半夜连个名字都没起出来(“小鬼”的小字是A4 70,打进去会只识别70,也就是个“p”字)。

今天试着用了个“游戏乱码修正大师”,完美解决。提到这个有必要说一下,网上搜出来的1.2版是不知道谁打包的流氓软件版,我就华丽丽地中招了。真的只有2003年出的一个1.01版,华军收录的那个。个人觉得这个软件唯一的不完美是它把所有的繁体字都“完全透明地”变成简体字了,这样就是你看到所有台湾人说话和名字都是简体,台湾人看到的所有大陆人说话和名字都是繁体。虽然这样似乎比较完美,不过没有身处异域的气氛了嘛。

因为有NP所以不能启动游戏后再注入,要用修正大师作为启动器。命令行昨天截了个,/LoginServer:211.72.205.168:10000 /Run:VHIGH /LOCALE:TAIWAN /PUBLISHER:GAMEFLIER。

游戏上只要跟着做任务就可以了,会刚刚好够升级的,不会像国服那样练级练到手残。也完全不需要当RMB玩家(呃,这篇文章里说XTB是不是更合适一些。。)也就是除了买时装,游戏本身是不需要花钱的。而国服不花钱甚至连主线都继续不下去。

虽然以后不会有时间和精力玩,不过看到这么好的环境还是决定在这儿安个家。九尾狐大厅,老名字。

SPSCF0000

有同样需求的朋友,仅仅是因为喜欢游戏而玩游戏的,怀念国服07到08年环境的,可以前往这儿安家。记住,不要给大陆人丢脸,不要把国服的坏风气带到这儿。

CHDEMU彩虹岛模拟器v1.00发布暨使用说明

(一)项目声明、与“私服”的区别、与运营商的关系准则

CHDEMU是大型多人在线角色扮演游戏(MMORPG)La Tale(中文名:彩虹岛)的单机与局域网模拟器。网络游戏La Tale由韩国Actoz开发,中国大陆区域于2007年至2012年由盛大网络代理运营,2013年以后由盛大游戏独立研发。以上组织视具体情况拥有该网络游戏的合法版权。

本项目由本人,即此博客博主、曾经的资深彩虹岛玩家、现上海师范大学音乐学院钢琴系研究生gmsj0001同学独立开发,初衷是当游戏停运或线上虚拟社会发展不乐观时能够帮助老玩家在线下找回曾经美好的回忆。项目所有服务端代码均为自主研发,中国大陆区目前没有出现源代码或服务端泄漏事件,虽然台湾区与北美区听说曾出现私服,但与本项目无关。

本项目当前使用的客户端为2008年中国大陆区域圣诞节版,此时国服彩虹岛为盛大网络代理运营,客户端版权为韩国Actoz所有,与盛大游戏无关。本项目未对该版本客户端(可执行档与游戏资源设定)进行任何修改。

“私服”是指未经版权方许可私自架设网络游戏服务器运营并从中牟利。一般而言,私服来自于泄漏的服务端程序或源代码,可以达到与正版服务器很高的仿真度。而本模拟器仿真度低下,仅能提供自娱自乐性质的基本的地图游览,同时由于作者当前主修音乐,计算机仅作为业余爱好,以后也并不会对本项目进行很大程度的维护与更新。所以本项目不是、将来也不可能成为或用于搭建真正意义上的私服。另外,作为一名深爱着彩虹岛的老玩家,本项目也秉持着给老玩家带来回忆的初衷,将永久免费提供给玩家使用,将来亦不会考虑收费。目前全世界范围内并无另外的模拟器项目,任何声称“出售彩虹岛私服”的组织或个人均为诈骗,请广大朋友注意。

即便如此,本项目仍以不影响运营商正常运营为基本准则。为此本项目采用了同样为自主研发的相对可靠的软件保护与版本控制策略,一旦发现或接到玩家汇报软件导致了有不利于官方服务器虚拟社会的情况出现,作者将有权关闭更新通道并停用已部署的软件。彩虹岛项目组若发现此软件给游戏运营带来了不利影响,请邮箱或电话联系本人,本人会配合处理。

使用本软件的玩家请注意以下几点:
1、在论坛转发本软件时请链接本文地址,注明软件名称为“彩虹岛模拟器”,不得使用“私服”、“SF”字样。
2、不得在公网Windows Server服务器上运行本软件并向公众发布IP地址。
3、不得利用本软件从事任何的营利活动,例如把本免费软件忽悠成收费的挂淘宝卖。

(二)功能与特性

本模拟器目前实现的功能有:
1、跑地图。
2、跑地图。
3、还是跑地图。

事实上,它就是个有画面的彩虹岛音乐播放器。听音乐之余,你可以与NPC对话来复习一下彩虹岛的剧情——那些你在官方服务器上忙着练级而忘了去关心的,作为一个游戏最重要的东西。

除此之外没有了。不能穿衣服,不能攻击,不能改键位,不能放技能和表情,不能吃药瓶,不能打怪。所以,鉴于客户端会占用近900M硬盘空间,请围观玩家务必一定谨慎选择是否要下载试玩。

客户端为标准的未经任何修改的国服1.42版,发布于2008年12月22日,即08年圣诞版。这个版本为刚刚开放了尘世城与太空塔的版本。之所以选择这个版本是因为作者玩彩虹岛主要在2009年,对这阶段的游戏比较熟悉。2010年开三转后彩虹岛通讯协议有了重大的变化,而那个时候作者已经离开彩虹岛了。同时,选用较旧的数据也是为了尽可能避免与官方主版本产生冲突。试想一个新资料片的地图还未在官方出现就出现在这儿的话,“领导们”会不高兴的。

(三)简单使用说明

客户端部分,用户需下载“1.42版客户端精简版”压缩包(约10M),并且需要拥有一套完整的国服当前版本的彩虹岛游戏。首次运行客户端时,软件会分析当前国服客户端中的文件,并自动提取旧版需要的文件来生成1.42版的客户端。整个过程约需要3-6分钟。

服务端模拟器部分,用户只需运行单一可执行文件chdemu.exe。请注意不要将模拟器解压到与客户端相同的目录下。默认情况下模拟器仅在本机监听,如果需要进行局域网或广域网多人游戏请使用命令行“chdemu.exe –ip xxx.xxx.xxx.xxx”启动模拟器。在广域网联机时,请自行设置路由器端口映射并进行ping测试,彩虹岛能够容忍延迟仅有50ms,否则会出现明显的卡顿,而且跑步时会抓不住梯子。

游戏登陆时会自动创建不存在的用户名,请注意第一次登陆即为设置密码的过程,务必输入准确。

结束游戏时请按ESC键点击结束游戏,不要直接关闭模拟器窗口,那样做等同于“炸线回档”,游戏将不能正确保存。

游戏中可以使用GM命令,即以双斜杠开始的指令。目前支持的仅有传送命令“//portal StageID MapGroupID [PosX] [PosY]”,可用于快速传送或人物掉入死区时恢复。如输入“//portal 6 0”可回到艾丽娅斯。常用的地图号有:6-0艾丽娅斯,15-0黑月城,67-0亚特兰蒂斯,80-0马拉松版普鲁顿神殿等等。更多数据请玩家自行实验。

(四)FAQ

暂时空缺

(五)关于误报

所有不给360“交保护费”的软件均会被该流氓杀软干掉,仔细想想这种宁可错杀一万不能放过一个的杀毒思路还确实挺适合中国大批的电脑小白的。所以请用户自行判断是否添加白名单。

(六)下载链接

客户端:LaTale_1_42_Lite.7z

模拟器:chdemu_1_00.7z

本项目已停止维护,请移步新版本http://lxf.me/228

彩虹岛Win7下所有文字不显示之谜

回来没多久就被羽毛找,要帮忙写个接口,考虑到任务量并不大就答应了,用基于内存文件映射共享内存的方法做,没多久写好,打开游戏测试结果傻了,所有文字都显示不出来。。。

开始以为是客户端哪里多出来什么文件,删和改名了一大堆还是不行,调兼容模式也不行,羽毛建议重装游戏,虽然很不想下1.5G的家伙,不过最后还是没办法,试试吧。

下完重装,结果还是不行!!抓狂ing。。。因为原来一直都可以,所以我推测是客户端更新后字体哪方面出了问题,打算明天用OD跟d3d的字体函数试试。

这时羽毛发来个百度知道的连接,是同样问题的,但并没给出答案,问题时间是10年,最后解决了,解决的办法是重装系统,并且提到了咨询客服说到了注册表。

这样一来就可以基本排除是客户端的问题,而是系统这边,那这边跟注册表有关并且最可能导致问题的是——显卡驱动高级设置。

于是进Intel图形属性,把有可能有关的设置都恢复默认,重启游戏,问题解决!

最后又进行了几次对照试验,证明是3D选项中texture quality的设置问题,当时的设置调成了performance,可能是MF玩一些显卡要求高的游戏调的吧,造成了显卡忽略渲染了一些东西,毕竟彩虹岛这样游戏内用系统字体的情况已经很少了。改成默认的balance即可。

ASP.NET MVC折腾系列之(4)——LaTaleDB 1.0 Source Released!

开发环境:Windows 7 + Visual Studio 2008 + ASP.NET MVC 2 + MySql

部署环境:Debian 5 Lenny + Apache 2 + mod_mono + MySql

线上地址:http://www.gmsj.org/chddb

源代码下载:http://www.gmsj.org/chddb/LaTaleDB.rar

131205:链接已失效,需要资源请在评论区使用真实邮箱留言

源代码编译需求:.NET Framework 3.5 SP1 + Visual Studio 2008 SP1 + MySql.Data.dll

数据库导入说明:请自备LaTale客户端,自行编译SPFExtractor.exe提取资源,手动建立数据库,再用MySqlImporter.exe将DATA\LDT中的数据导入数据库。

 

作为练手作业,项目用到的知识技术:

原生HTML与CSS(因为用不惯VisualStudio WebDev,HTML与CSS均为手写,就像高一时和豆子童鞋上课时在纸上写HTML一样,新学到不少CSS的东西)

ASP.NET(母板、Cache、ASP.NET底层运行机制、数据库访问)

ASP.NET MVC(自定义Routing、自定义ActionResult作为实时的图片输出、View中直接引用Model等)

.NET(System.Drawing.Bitmap、ASP.NET运行时)

VB.NET(新学到VB.NET和C#.NET中using语句)

数据库一大堆乱七八糟东西 = = 还有就是蛋疼的Linux下部署(可参考前三篇文章) = =

 

然后。。没了。。作为做了四年PHP开发的忠实粉丝,我对ASP.NET完美秒杀PHP的现实表示压力很大。。