[請益] client端的指令(字串)分析

看板GameDesign (遊戲設計)作者 (hmm...)時間16年前 (2009/03/16 18:42), 編輯推噓4(408)
留言12則, 4人參與, 最新討論串1/2 (看更多)
請問一下大家,像一般線上遊戲,由server端傳資料給client  ,都是怎麼做字串的分析的呢?  我現在都是用很笨的做法,逐字去檢查以取得指令的前後端,  再由此取得指令與參數,比如說server端傳給client這樣的字 串.. [cmd]kill monster 1[/cmd] 先計算字串長度,再用迴圈跑,刪除掉[cmd]跟[/cmd],就可  以得到 kill monster 1,其中 kill是指令, monster 1 是  參數,由此再做動作。 ex:   for(i=0;i<sizeof(s);i++){ if((i+4)>sizeof(s)) break; if(s[i..(i+4)]=="[cmd]") start=i; if(s[i..(i+5)]=="[/cmd]") end=i; } 感覺這樣的方法效率滿差的,尤其當資料量大的時候..XD 不知道有沒有其他更好的方法呢?   另外,字串分析時,要是玩家在用聊天功能有出現[cmd]這樣  的系統字,字串分析就會出問題,所以玩家輸入部份,我的  方法是限制不可使用系統字,不知道線上遊戲都是怎麼做的? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.117.77

03/16 18:49, , 1F
玩家談話 統一套 [TELL] 關鍵字不就好了?
03/16 18:49, 1F

03/16 18:52, , 2F
建議command放header 不要跟資料混在一起
03/16 18:52, 2F

03/16 18:55, , 3F
回nd大,這樣的話[tell]也要限制玩家聊天時不可使用..
03/16 18:55, 3F

03/16 18:56, , 4F
as大說的不太瞭解,方便舉一些例子嗎..@@
03/16 18:56, 4F

03/16 18:57, , 5F
我現在都是用 [cmd]指令 參數(資料)[/cmd],這樣才有辦法
03/16 18:57, 5F

03/16 18:58, , 6F
得知傳遞的東西到哪邊結束.
03/16 18:58, 6F

03/16 19:04, , 7F
這種東西要先在client判斷好 然後直接送訊息ID就好啦
03/16 19:04, 7F

03/16 19:04, , 8F
不要加重server的負擔
03/16 19:04, 8F

03/16 19:10, , 9F
玩家按下送出 由系統統一掛上[TELL]
03/16 19:10, 9F

03/16 19:10, , 10F
系統的指令送出時統一掛上 [SYS]
03/16 19:10, 10F

03/16 19:11, , 11F
字尾就一律由系統掛上[END]<---只有最後一個才是真的
03/16 19:11, 11F

03/16 19:12, , 12F
規則訂好除非protocol被破解(有疑慮就要另外在加秘)
03/16 19:12, 12F
文章代碼(AID): #19lYqJ5D (GameDesign)
文章代碼(AID): #19lYqJ5D (GameDesign)