天龍八部原始碼描述

2021-06-03 10:17:48 字數 3859 閱讀 6042

天龍八部(武俠世界)的原始碼很可能是天龍八部**流出後改寫的,因為在看了**中可以找到一些證據,整個客戶端分為:乙個是編輯器,乙個是客戶端,採用ogre+cegui+自寫的簡單的物理碰撞檢測+fmod+自寫的網路庫。 

伺服器端**目前沒仔細關注

客戶端總體的描述如下: 

ui系統 cegui ui基礎系統

cegui渲染器

expat xml解析器 cegui依賴,估計編寫者不喜歡用 

freetype2 跨平台、開源的字型渲染器 用於繪製中文 

指令碼 luaplus

3d顯示引擎ogre開源的高效渲染引擎 最新的ogre是1.7.2 

碰撞檢測 opcode 開源,占用記憶體少 其他可考慮使用bullet,ode或者其他(一般根據實際需求選擇) 

天龍的碰撞檢測似乎是只做了簡單的碰撞盒檢測 

tinyxml xml的解析工具 遊戲中使用的xml解析器,其實目前可以用rapidxml更加小巧

music&sound effect fmod sdk即可 ,其實openal也是不錯的選擇。

wx系統 

wxclient action操作管理 包括聊天,物品,生活技能等 暫時看到,所有實際上都是針對圖示的操作 

cursor 滑鼠指標管理(還掛接了很多命令) 

database 客戶端用記憶體資料庫,實現了了wxengine中的db定義 包括搜尋,獲得,開啟檔案功能tlbb_dbc,可以證實雖然叫武俠,但是留下了天龍的影子 

datapool 將遊戲中資料都統一管理,包括ui,teamorgroup等 這裡面有個cmodelshowinui的類,(奇怪,這個類不應該放在這裡吧?) 

event 遊戲事件處理器,分為event佇列,和慢處理event佇列 很值得參考的部分!!!使用了註冊event處理函式的方式,引數很靈活!

fakeobject 用於在ui上顯示的物體(這裡作為乙個管理器類) 

helper 用luaplus匯出,另外建乙個幫助系統視窗 

input 輸入類 

inte***ce 整個遊戲的外部介面控制類,所有外部模組需要通過這個介面來控制遊戲的資料和控制,作為指令碼呼叫型別 

network 網路訊息的處理 

object 邏輯基類object與顯示無關,當然派生出可以顯示的型別!以及遊戲中具體物件型別 

procedure 遊戲流程,登陸,角色選擇,角色建立,進入場景等待,mmo遊戲主流程,登陸伺服器

resourcefiles 各種滑鼠.cur檔案 

script 指令碼系統管理器,繼承於engine的scriptenvironment,呼叫指令碼 

sound 

soure file _twinmain在這裡 2 

variable 配置引數系統

world 場景區域zone,scene,world管理器,尋路等等功能,乙個zone的大小正好是乙個螢幕的大小,zone構成scene 

wxcore 

collision 碰撞檢測,主要包裹了ogre的骨骼模型處理方法 

effectsystem 特效系統 

extra附加 modeltype 模型定義

skeletonmesh (懷疑被廢棄)dobject_nt包裹了ogre::entity,可掛接相關特效,scenenode上 

skeletonmeshurl 作為儲存格式,儲存dobject_nt 

logicmodel 渲染層和客戶端的結合層,利用渲染層,實現客戶端對場景中動態物體的需求,而不需呼叫渲染層** 

ogreext 對於ogre的擴充套件,渲染 

postfilters 3d畫面效果,後期過濾器

resourcesystem ogre的檔案系統,用於讀取和整體載入檔案系統 

header files&&source files 可渲染物件層basicrenderable及其子類

terrain 實現及其管理編輯,優化 

wx::object 繼承了boost::enable_shared_from_this

xercescparser 在這裡又發現了另外乙個xml的解析庫 

wx::acrotobj,wx::actorobject,wx::logicmodelobject 都要仔細閱讀弄清原理 

scene 基類,管理,序列化,編輯等方法 

wxengine cursor 

database

debuger 除錯用的?但是一直沒有看出來具體在**使用,難道是給指令碼? 

exception 裡面包括xzip的壓縮目錄……,當然也包括丟擲異常定義,及crashreport fakeobject,gfx,helper,input 

math,profile,script,sound

time,ui,util,variable 各種功能的虛類,當然也有具體實現了的類。等待繼續整理分析 2 

kernel tdkernel通過全部繼承於tdnode(及針對相應tdnode的tdclass)管理類註冊及外掛程式資訊 ceguisystem以及wxrender都是通過plugin的方式加入kernel(待驗證) 

tdnode為了kernel便於組織資料,而定下的核心節點類,類似樹 

tdclass節點定義類,根據類名取定義類的名字,類似mfc建立了自己的類鏈 重要的是幾個類定義實現巨集自動把tclass給賦值初始化了。還順便實現了createobject函式 

game action 

datapool

event 2 

inte***ce

object 

world

wxnetpackets combat 陣營資料結構表,技能及效果資料表記錄結構,資料表通用管理讀入器 有模板資料管理器 

database tlbb_dbc.h 定義伺服器客戶端通用的dbc資料庫檔案類 

common 整個遊戲的公用common定義,gamestruct

gameutil 方便函式,crc校驗,lock,二進位制轉化為字串db等東西 

隨機函式,type,指令碼命令結構,技能資料管理,playerstatus 2

重要的packetdefine 

header files&&source files 基本都是對common\net中packet的具體情況使用實現packet->execute packetdefine的實現 

wxrender camera 3種攝像機 

object rfobject基於wxengine中渲染層物體基類tentitynode的實現 

rfobj繼承於rfobject用於wx::object物件的包裹,自己指標放在wx::object的data中 

rfobj_actor,rfobj_model,rfobj_static,都繼承於rfobj人物,動態模型,靜態模型 2 

rfobj_actor原來設計應該會用到skeletonmesh.h中的dobject_nt,但實際上沒有產生關聯,wxlogicmodel被說明是用來替換原來的dobject 2 

header files&&source files debugpanel 包括除錯資訊以及hitobjectpanel(打擊資訊?) 

rendersystem 整合環境物件,後期渲染過濾管理,及核心system。載入資源技巧有不少在其中 

resourceprovider 資源提供系統,內部使用ogre的資源組管理器,進行統一的管理判斷。 resourceloadlistener 用於找到分析指令碼時的詳細錯誤,裡面是scriptparsinglistener : public orge::resourceloadlistener真夠強大的…… , 

rffakeobjectmanager 用於ui顯示的模型在渲染層的管理器 

terraingrid 地形格可渲染物件 

wxobj_projtex wxobj投射紋理,包括選擇環,陰影斑點,腳印

php mysql天龍八部 php天龍八部

連線mysql資料庫 判斷是否連線成功 選擇資料庫 設定字符集 準備sql語句 向mysql服務傳送sql語句 解析處理結果集 釋放結果集,關閉資料庫連線 連線資料庫 link mysqli connect localhost root var dump link 判斷資料庫是否鏈結 if mysq...

分詞 天龍八部

自定義詞典 段譽 段正明段正淳 段延慶皇妃 刀白鳳秦紅棉 甘寶寶阮星竹 王夫人王語嫣 木婉清鍾靈 高公升泰巴天石 華赫艮范曄 褚萬里古篤誠 傅思歸朱丹臣 南海鱷神 雲中鶴鍾萬仇 崔百泉過彥之 枯榮大師 本因本觀 本相本參 黃眉大師 破疑破嗔 鳩摩智蕭峰 蕭遠山阿朱 阿紫游坦之 馬伕人徐長老 白世鏡項...

關於天龍八部3的感想

以前一直沒有玩過網遊,玩的一直是單機的角色扮演類遊戲 武俠為主 大多數情況也是在乎劇情,我這個人玩遊戲還有個特點,就是我不喜歡仙啊 魔 神話之類的遊戲,我還是比較喜歡武俠一類的劇情很唯美結局不是那麼傷感類的遊戲。可能是我太多愁善感了。總體來說這個遊戲給我的感覺總體還是不錯的,我感覺有兩個缺點吧的。第...