→ darkflier:剛剛沒仔細看原來是serve傳給client資料XDDD 03/16 19:14
→ darkflier:不過方法都一樣啦不要讓費時間在分析以知資料 03/16 19:15
→ darkflier:只有發出訊息的那個人需要去分析即可 03/16 19:15
推 green0924:所以大大意思是,若常重覆出現的訊息或資料就存在client 03/16 19:16
→ green0924:端..ex: A使用技能X攻擊B,造成10點傷害. 03/16 19:17
→ green0924:資料就只要傳 A atk B,10 這樣嗎? 03/16 19:17
Orz.....
最近在減肥所以沒去吃晚餐就回應你一下好了
訊息的傳送
理論上會有幾種方法
最基本的封包會有
1.message Event ID
2.subID
3.data size
4.data_content
1.代表這訊息的ID
可能是對話可能是攻擊可能是移動....else
ex:
MESSAGE_TALK = 0
MESSAGE_ATTACK = 1
MESSAGE_GAMEOVER = 2
MESSAGE_PLAY = 3
2.subID就不一定會用到 用到的時候大多是快速的再做封包傳遞的時候使用
例如可能是立即傳送給其他玩家或是檢查之類的訊息
3.就是這包封包整個的size有多大
看到這裡我們可以知道這個封包前面三個資料的大小一定是固定的
所以真正的資料是放在壓縮過的封包裡面
至於壓縮解壓縮的過程就不詳提看個家做法
所以你現在有問題的部分是死在1
你需要的不是去檢查他傳過來的字串
是要檢查他這個ID是要幹什麼的
不過聽你的講法好像你完全不是這樣搞Orz.....
像你所提到的
tag 內容 tag/
這時候你要做的是把你的tag編一個ID
然後傳送出去
並把內容做好壓縮(或不壓也看端看資料流量)
所以你收到的訊息之後就立刻知道這ID是要幹嘛的
然後就把資料解開去做你要做的事情
以上
不過每個人用法都不同不過都大同小異啦...
如果你相信大家電腦都很好server超級強壯
也是可以直接用字串去判斷現在要幹嘛就是啦XDDD
不過這樣你在判斷那邊可能......會寫到吐血吧
我個人是偏好多table index
這樣在寫成是比較好理解也可以畫出圖讓人一目了然
每個ID互隊的關係...
最後...
我已經四年沒寫過網路程試
搞不好這套已經落伍很久了XDDDDD
※ 編輯: darkflier 來自: 122.116.118.21 (03/16 19:30)
→ green0924:訊息ID..這個是指.. ex: 1--使用技能a, 2--使用技能b 03/16 19:20
→ green0924:109--跟npc xx對話 03/16 19:20
→ green0924:類似這樣的東西? 03/16 19:20
推 NDark:簡單有簡單的作法,難有難的作法.也不一定全部都查表. 03/16 19:21
推 green0924:終於瞭解了,於來是這樣子的用法,這樣就不用逐字分析了 03/16 19:42
→ green0924:謝謝大大的說明囉~^_____^ (這篇板主應該要M起來的) 03/16 19:43