Posted on 2011-01-05 14:33
點點滴滴 閱讀(820)
評論(0) 編輯 收藏 引用 所屬分類:
09 游戲策劃
這里列舉在技能戰(zhàn)斗系統(tǒng)開發(fā)中,碰到的兩個與位置同步相關的問題
(一)
在MMORPG游戲中,對于那些同時擁有近攻和遠程系等多種職業(yè)的游戲,策劃一般都會對近攻類的職業(yè),加上沖鋒類的技能,以便平衡遠程類職業(yè)在攻擊距離上的優(yōu)勢。在client看到的效果,是玩家邊播放沖鋒動作,然后快速接近目標,并對目標一個傷害,而對server而言,該技能與其它技能在處理的不同之處在于,施法玩家在施法的同時,也作一個位置的變更。一般server的處理流程是,先檢查沖鋒直線路徑是否合法(有無阻擋)和其它施法條件,若通過,則告訴client可以施法,并同時設置當前玩家坐標為沖鋒后的坐標(該坐標由client帶上來)。
由于server移動系統(tǒng)在對client發(fā)過來的移動數(shù)據(jù)作檢驗時,需要檢查本次移動的起步點,是否為上次移動的結束點,即作線段端點合法檢查,而沖鋒到達的目標點并未在上次移動的路徑棧信息中,所以,server技能系統(tǒng)在設置沖鋒位置時,需要先清除原路徑棧信息(如調(diào)用MoveStop接口),以便確認本次沖鋒為一次全新的移動。
(二)
兩個玩家同時使用沖鋒技能時(目前client在做技能時,采用先表現(xiàn)的方式),出現(xiàn)一個玩家(沖鋒目標client)停在沖鋒途中的現(xiàn)象,原因為server廣播技能施法時,沒有帶目標主動位移的信息(client在處理沖鋒位置時,對于使用沖鋒技能的client,因為它知道沖鋒到達的位置,所以它的處理沒有問題,而另一個沖鋒目標client,由于它不知道對方要沖到哪里,則client處理時就是選擇沖鋒路徑上的一點,這樣就會看到停在沖鋒途中了)所致。解決辦法是,要么在協(xié)議中下發(fā)目標位移信息,要么在策劃規(guī)則上,只允許同一時刻一個玩家沖鋒,如:沖鋒加暈眩debug等;
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/stanjiang2010/archive/2010/05/04/5556393.aspx