admin 发表于 2019-10-9 06:37:18

传奇3代码完全解析

Grobal2.pas,,,客户端和服务端通用的文件,定义了一些消息标识,数据结构,消息操作函数
Actor.pas,,,精灵(包括人物heros,npc,怪物mon)类,但是主要是heros类,NPC以及mon类派生于actor类
FState.dfm,,,各个子窗口,如f11,,f9等快捷键调出的窗口等
clmain.dfm,,cl-client,,客户端主界面窗体,打开可以看到它use了Fstate.dfm
fstate.pas,,FState.dfm的模块文件,,结合DWinCtl.pas和delphix中的绘图函数绘制各个子窗口在DDraw下真实效果的模块
IntroScn.pas 游戏的引导场景实现,比如登录选人等
clmain.pas,,clmain.dfm对应的源程序文件,,处理了程序启动时的网络连接,载入的wil客户端文件,等一系列操作
WIL.pas 比较重要的文件之一,,在原delphix图像包装类的基础上改装而成,封装了wil文件及其全部操作(结合wmUtil)
clEvent.pas 消息管理器
DWinCtl.pas 提供几个在DX下使用的控件
mir2.res 可能只有一个图标吧,就是那个龙字样的
SoundUtil.pas wav文件夹内声音文件的调用操作
wemade.pal 调色板文件
mir2.dpr 工程文件
EDCode.pas 消息加解密函数,6BIT加密算法的具体实现,用wpe截到的封包都是加密格式的,去掉密文前的!和最后的@
ClFunc.pas 输助函数库
MapUnit.pas 地图单元
AxeMon.pas 怪物单元,包含怪物在客户端的攻击等效果的实现,由actor类派生,不知为什么命名为axemon斧怪?
怪物对主角的伤害等算法当然不包含在,这是服务器res的工作
HerbActor.pas BOSS怪
PlayScn.pas 相对于引导场景,这里是游戏主场景画面实现
DrawScrn.pas 整个游戏场景的最终绘图工作
Soundfx.h 音乐文件操作的预编译头
magiceff.pas 客户端魔法效果的绘制与表现,当然也不包括魔法伤害实现.
hutil32.pas,cliUtil.pas 包含了一些输助函数等
unit Grobal2; //全局(服务器和客户端通用)消息,数据结构,函数等
interface
uses
Math,windows;
Const
BUFFERSIZE =1024; //缓冲定义

//客户端发送的命令
CM_SOFTCLOSE =0; //退出传奇(游戏程序,可能是游戏中大退,也可能时选人时退出)

//登录有关的命令 //CM: client msg,这些定义的消息都是客户端向服务端主动发送的
CM_IDPASSWORD =1; //客户端向服务器发送ID和密码
CM_QUERYUSERSTATE=2; //查询用户状态(用户登录进去,实际上是客户端向服务器索取查询最近一次
退出服务器前的状态的过程,服务器自动把用户最近一次下线以让游戏继续的一些信息返回到客户端)
CM_ADDNEWUSER =3; //新建用户,就是注册新账号,登录时选择了"新用户"并操作成功
CM_UPDATEUSER =4; //更新注册资料??
CM_SELECTSERVER =5; //选服务器,注意不是选区,盛大一区往往有(至多8个??group.dat中是这么写的)
//不止一个的服务器
CM_CHANGEPASSWORD =6; //修改密码
CM_NEWCHR =7; //创建新角色,注意不是上面所说的新建用户
CM_QUERYCHR =8; //登录成功,客户端显出左右角色的那一瞬
CM_DELCHR =9; //删除角色
CM_SELCHR =10; //选择角色开始游戏
CM_QUERYUSERNAME=11; //进入游戏,服务器返回角色名到客户端
CM_SAY =22; //角色发言

//客户端界面操作相关
CM_MAGICKEYCHANGE = 30; //魔法快捷键改变
CM_CREATEGROUP =42; //新建组队
CM_WANTMINIMAP =43; //用户点击了"小地图"按钮
CM_OPENGUILDDLG =45; //用户点击了"行会"按钮
CM_GROUPMODE=41; //关组还是开组
CM_ADDGROUPMEMBER =51; //组内添人
CM_DELGROUPMEMBER =52; //组内删人

CM_SPEEDHACKUSER =59; //用户加速作弊检测
CM_ADJUST_BONUS =60; //用户得到奖励??私服中比较明显,小号升级时会得出金钱声望等,不是很确定,
//求经过测试的高手的验证

CM_QUERYBAGITEMS=62; //查询包裹物品
CM_LOGINNOTICEOK = 63; //健康游戏忠告点了确实,进入游戏
//动作命令1
CM_TURN =4001; //转身(方向改变)
CM_WALK =4002; //走
CM_SITDOWN =4003; //挖
CM_RUN =4004; //跑
CM_HIT =4005; //普通物理近身攻击
CM_POWERHIT =4008; //攻杀
CM_LONGHIT =4009; //刺杀
CM_WIDEHIT =4010; //半月
CM_HEAVYHIT =4011; //烈火攻击
CM_BIGHIT =4012; //??
CM_THROW =4013; //抛符
CM_FIREHIT =4014; //??
CM_SPELL =4015; //施魔法

CM_CLICKNPC =3015; //用户点击了某个NPC进行交互

//动作命令2
CM_OPENDOOR =2001; //开门,人物走到地图的某个过门点时
CM_DROPITEM =2010; //从包裹里扔出物品到地图,此时人物如果在安全区可能会提示安全区不允许扔东西
CM_PICKUP =2011; //捡东西
CM_TAKEONITEM =2021; //装配装备到身上的装备位置
CM_TAKEOFFITEM = 2022; //从身上某个装备位置取下某个装备
CM_EAT =2023; //吃药
CM_BUTCH =2024; //54的野蛮?

//与商店NPC交易相关
CM_MERCHANTDLGSELECT =2030; //商品选择,大类
CM_MERCHANTQUERYSELLPRICE =2031; //返回价格,标准价格,我们知道商店用户卖入的有些东西掉持久或有特殊
//属性系统会自动加价
CM_MERCHANTQUERYREPAIRCOST =2032; //客户端向NPC取得修理费用

CM_USERSELLITEM =2040; //用户卖东西
CM_USERREPAIRITEM =2041; //用户修理东西
CM_USERSTORAGEITEM =2042; //用户寄存东西
CM_USERGETDETAILITEM =2043; //取得商品清单,比如点击"蛇眼戒指"大类,会出现一列蛇眼戒指供你选择
CM_USERBUYITEM =2044; //用户买入东西
CM_USERTAKEBACKSTORAGEITEM =2045; //用户向保管员取回东西
CM_USERMAKEDRUGITEM =2046; //用户制造毒药(其它物品)
CM_DROPGOLD =2050; //用户放下金钱到地上

CM_DEALTRY =2060; //开始交易,交易开始
CM_DEALCANCEL =2061; //取消交易
CM_DEALADDITEM =2062; //加东东到交易物品栏上
CM_DEALDELITEM =2063; //从交易物品栏上撤回东东???好像不允许哦
CM_DEALCHGGOLD =2064; //本来交易栏上金钱为0,,如有金钱交易,交易双方都会有这个消息
CM_DEALEND =2069; //交易成功,完成交易

CM_GUILDHOME =2070; //点击"行会主页"
CM_GUILDMEMBERLIST =2071; //点击"成员列表"
CM_GUILDADDMEMBER =2072; //增加成员
CM_GUILDDELMEMBER =2073; //踢人出行会
CM_GUILDUPDATENOTICE =2074; //修改行会公告
CM_GUILDUPDATERANKINFO =2075; //更新联盟信息(取消或建立联盟)

//装备项目
U_WEAPON =0; //武器
U_RIGHTHAND =1; //右手
U_DRESS =2; //衣服
U_HELMET =3; //头盔
U_NECKLACE =4; //项链
U_ARMRINGR =5; //右手戒指
U_ARMRINGL =6; //左手戒指
U_RINGR =7; //右戒指
U_RINGL =8; //左戒指

//服务器端发送的命令 sm:server msg,服务端向客户端发送的消息
//登录、新帐号、新角色、查询角色等
SM_NEWID_SUCCESS =101; //创建新账号成功
SM_NEWID_FAIL =102; //..失败
SM_PASSWD_FAIL =103; //验证失败,"服务器验证失败,需要重新登录"??
SM_NEEDUPDATE_ACCOUNT =104; //需要更新,注册后的ID会发生什么变化?
//私服中的普通ID经过充值??或者由普通ID变为会员ID,GM?
SM_UPDATEID_SUCCESS =105; //更新成功
SM_UPDATEID_FAIL =106; //更新失败
SM_PASSOK_SELECTSERVER = 107; //密码验证完成且密码正确,开始选服
SM_SELECTSERVER_OK =109; //选服成功
SM_QUERYCHR =111; //返回角色信息到客户端
SM_QUERYCHR_FAIL =112; //返回角色信息到客户端失败
SM_NEWCHR_SUCCESS =113; //新建角色成功
SM_NEWCHR_FAIL =114; //..失败
SM_CHGPASSWD_SUCCESS =115; //修改密码成功
SM_CHGPASSWD_FAIL =116; //..失败
SM_DELCHR_SUCCESS =117; //删除角色成功
SM_DELCHR_FAIL =118; //..失败
SM_STARTPLAY=119; //开始进入游戏世界(点了健康游戏忠告后进入游戏画面)
SM_STARTFAIL =120; //开始失败,玩传奇深有体会,有时选择角色,点健康游戏忠告后黑屏

SM_VERSION_FAIL =121; //客户端版本验证失败
SM_OUTOFCONNECTION =122; //超过最大连接数,强迫用户下线
SM_RECONNECT =125; //与服务器重连
SM_SENDNOTICE =202; //发送健康游戏忠告

SM_MYSTATUS =131; //我的状态,最近一次下线状态,如是否被毒,挂了就强制回城
SM_TIMECHECK_MSG = 227; //时钟检测,以免客户端作弊

SM_CHANGEMAP =201; //地图改变,进入新地图
SM_AREASTATE = 228; //周围状态
SM_NEWMAP =223; //新地图??
SM_MAPDESCRIPTION = 229; //地图描述,行会战地图?攻城区域?安全区域?
SM_LOGON =224; //logon

SM_CHANGELIGHT =240; //负重改变
SM_LAMPCHANGEDURA=241; //蜡烛持久改变
SM_LIGHTING =242; //免蜡开关

SM_OPENDOOR_OK=249; //通过过门点成功
SM_OPENDOOR_LOCK=250; //发现过门口是封锁的,以前盛大秘密通道去赤月的门要5分钟开一次
SM_CLOSEDOOR =251; //用户过门,门自行关闭

SM_DEATH=260; //正常死亡
SM_NOWDEATH =261; //秒杀?
SM_SKELETON=262; //尸体
SM_ALIVE =263; //复活??复活戒指
SM_ABILITY =264; //打开属性对话框,F11
SM_SUBABILITY=265; //打开输助属性对话框
SM_DAYCHANGING=266; //传奇界面右下角的太阳星星月亮
SM_WINEXP =267; //获得经验
SM_LEVELUP =268; //升级,左上角出现墨绿的升级字样
SM_HEALTHSPELLCHANGED =269; //治愈术使你的体力增加
SM_ADJUST_BONUS =280;

SM_STRUCK =310; //受攻击
SM_CHANGEFACE=311; //变脸,发型改变?
SM_OPENHEALTH=312; //
SM_CLOSEHEALTH =313; //
SM_INSTANCEHEALGUAGE=314; //实时治愈
SM_BREAKWEAPON=315; //武器破碎

//对话消息
SM_CRY=316; //喊话
SM_GROUPMESSAGE =347; //组内聊天!!
SM_GUILDMESSAGE =348; //行会聊天!~
SM_WHISPER=349; //私聊
SM_HEAR=351; //有人回你的话
SM_SYSMESSAGE=390; //系统消息,盛大一般红字,私服蓝字

SM_USERNAME =352; //
SM_CHANGENAMECOLOR=353; //名字颜色改变,白名,灰名,红名,黄名


加十列 发表于 2019-10-9 07:02:39

这个帖一般般,还可以哦!

不怕苦 发表于 2019-10-15 09:17:09

又抢到前排了。哈,不用怀疑,不用惊讶,你也没有看错!

颠覆信仰 发表于 2019-10-22 07:37:26

这贴内容不错

炽火猫猫羊悲哀 发表于 2019-10-30 08:35:18

呵呵。。。不错啊

弑神尐葬 发表于 2019-11-9 08:43:51

么有分,谁能送我点积分啊::>_<::

敬仰 发表于 2019-11-19 07:02:16

么有分,谁能送我点积分啊::>_<::

众神玖掵貓 发表于 2019-12-1 08:12:19

呵呵,低调,低调!

无敌真寂寞 发表于 2019-12-10 08:39:56

呵呵,低调,低调!

战魂 发表于 2019-12-23 08:46:55

么有分,谁能送我点积分啊::>_<::
页: [1] 2 3 4
查看完整版本: 传奇3代码完全解析