UID285587
帖子
精華
主題
積分13275
現金
積極性
威望
違規
熱心
推廣次數
閱讀權限30
註冊時間2010-9-7
在線時間 小時
最後登錄1970-1-1
TA的每日心情 | 慵懶 2017-2-15 05:18 PM |
---|
簽到天數: 476 天 連續簽到: 1 天 [LV.9]以壇為家II
|
樓主 |
發表於 2012-2-29 14:44:08
|
顯示全部樓層
本帖最後由 dreamunreal 於 2012-2-29 03:03 PM 編輯
我先1開樓.
[client.date相關]
Client.date的好在于,不需要重新編譯服端就可以直接改map所的客端日期.
對於商業端是至重要的.當然了,也不排除某些用戶有特殊需要.
我推測了一下這個東西的寫法:
clif.c 中的所有 #if #else 等 有關 packetver 的預處理 全部都寫成正式代碼.
不再以預處理的方式寫入.
然后定義 packetver 變量在 map啟動時讀取.用用戶定義的Client.date以達到隨意修改client.date的效果.
然了.只是我人的推測,不代他是正确的.
[挂店重相關]
挂店重重載,相信大家都知道,在map關閉時保留下所有挂店的角色的商店信息.
然后map啟動后自重載這些角色挂好店,不需要玩家重新開店.
我推推測的原理如下:
在玩家商店時.把商店的信息寫入數據表.
然后在商店更新時(商店物品被購買),更新數據表的內容
在商店關閉(東西被買光,商人重登,關閉商店),清理數據表的內容.
商人角色被刪除(刪人),清理數據表的內容
map啟動完成后,執行函數A.檢測記錄掛店信息的數據表中是否有信息
如果有.則執行函數B,使被記錄角色登入,然后執行函數C,根据數據表中的內容使玩家重新開啟商店.
然后入下一條數據的檢測.
至于函數A,B,C的法...
目前我有任何想法,雖然我曾經有查閱過源碼中有關角色登錄相關的信息,但是全無收穫
但是函A,C是很容易寫好的.相信如果我去做 也花不了多少時間.
至于函數B,need more infomations. |
|