两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

戰(zhàn)斗系統(tǒng)實現(xiàn)方法

文檔序號:7763548閱讀:585來源:國知局
專利名稱:戰(zhàn)斗系統(tǒng)實現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)技術(shù),特別涉及戰(zhàn)斗系統(tǒng)實現(xiàn)方法。
背景技術(shù)
在目前的各種網(wǎng)絡(luò)游戲中,戰(zhàn)斗系統(tǒng)是一個非?;A(chǔ)也非常重要的底層系統(tǒng)。戰(zhàn)斗系統(tǒng)的好壞,關(guān)系到游戲玩家在游戲中的體驗效果,也關(guān)系到游戲的效果。目前的戰(zhàn)斗系統(tǒng)主要分為兩類,一類為回合制戰(zhàn)斗系統(tǒng),代表作為《夢幻西游》、 《問道》等,另一類為即時制戰(zhàn)斗系統(tǒng),代表作為《傳奇》、《魔獸世界》等。在目前的戰(zhàn)斗系統(tǒng)中,客戶端的移動主要包含兩種方式一種方式為客戶端在移動時通知給服務(wù)器,等待服務(wù)器反饋后再移動,這種方式會造成客戶端移動遲緩,操作不流暢;另一種方式為客戶端不斷地發(fā)送位置信息給服務(wù)器,服務(wù)器信賴該位置信息,這種方式會大大增加客戶端和服務(wù)器之間的通信流量,造成浪費,并且,通常會被外掛,產(chǎn)生各種嚴(yán)重的bug,風(fēng)險比較大。

發(fā)明內(nèi)容
本發(fā)明提供了戰(zhàn)斗系統(tǒng)實現(xiàn)方法,一方面實現(xiàn)客戶端及時移動,另一方面避免客戶端頻繁向服務(wù)器發(fā)送位置信息,并降低外掛風(fēng)險。本發(fā)明提供的技術(shù)方案包括一種戰(zhàn)斗系統(tǒng)實現(xiàn)方法,包括客戶端檢測其擔(dān)任的游戲角色是否能夠移動,如果是,動態(tài)計算尋路邏輯,并按照自身計算的尋路邏輯嘗試尋路移動,在移動成功后,通知給服務(wù)器;服務(wù)器接收到通知后,動態(tài)計算尋路邏輯,并按照自身計算的尋路邏輯與客戶端一起尋路,在尋路過程中發(fā)現(xiàn)異常時,通知客戶端終止移動,并將客戶端拉回到指定位置。由以上技術(shù)方案可以看出,本發(fā)明中,服務(wù)器信任客戶端,由客戶端先移動,之后服務(wù)器和客戶端同時尋路,當(dāng)服務(wù)器在尋路過程中發(fā)現(xiàn)異常時,修正客戶端的位置,這能夠保證客戶端及時移動,并且,由于客戶端和服務(wù)器各自按照自身的尋路邏輯尋路,并不需要頻繁交互,這減少了客戶端和服務(wù)器之間的通信流量,節(jié)省資源,并且也降低被外掛利用的風(fēng)險。


圖1為本發(fā)明實施例提供的基本流程圖;圖2為本發(fā)明實施例提供的戰(zhàn)斗流程圖;圖3為本發(fā)明實施例提供的戰(zhàn)斗中事件同步流程圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對頁
本發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明提供的方法包括圖1所示的流程參見圖1,圖1為本發(fā)明實施例提供的基本流程圖。如圖1所示,該流程可包括以下步驟步驟101,客戶端檢測其擔(dān)任的游戲角色是否能夠移動,如果是,則執(zhí)行步驟102, 否則,不移動。具體地,本步驟101可通過以下判斷來實現(xiàn)檢測其擔(dān)任的游戲角色是否能夠移動判斷當(dāng)前有沒有限制客戶端擔(dān)任的游戲角色移動的條件存在來實現(xiàn),如果有,則確定游戲角色不能移動,否則,則確定游戲角色能移動。步驟102,動態(tài)計算尋路邏輯,并按照自身計算的尋路邏輯嘗試尋路移動。步驟103,客戶端在移動成功后,通知給服務(wù)器。步驟104,服務(wù)器接收到通知后,動態(tài)計算尋路邏輯,并按照自身計算的尋路邏輯
與客戶端一起尋路。本步驟104中,所述服務(wù)器計算的尋路邏輯中,尋路的起點和終點均與客戶端計算的尋路邏輯中的起點和終點相同。通常,只要是起點和終點相同,則尋路邏輯也幾乎相同??梢钥闯觯景l(fā)明中,客戶端和服務(wù)器同時尋路,并不需要像現(xiàn)有技術(shù)那樣在移動時通知給服務(wù)器,等待服務(wù)器反饋后再移動,這會使客戶端展示流暢的技術(shù)效果,并且,本發(fā)明中,客戶端和服務(wù)器各自按照自身的尋路邏輯尋路,并不需要頻繁交互,這減少了客戶端和服務(wù)器之間的通信流量,節(jié)省資源,并且也降低被外掛利用的風(fēng)險。步驟105,服務(wù)器在尋路過程中發(fā)現(xiàn)異常時,通知客戶端終止移動,并將客戶端拉回到指定位置。這里,當(dāng)所述異常為所述服務(wù)器和所述客戶端之間的距離不合理時,所述將客戶端拉回到指定位置包括將客戶端拉回至使所述服務(wù)器和所述客戶端之間的距離合理的位置,比如服務(wù)器所在的位置等。當(dāng)所述異常為所述服務(wù)器檢測到限制所述客戶端移動的條件時,所述將客戶端拉回到指定位置包括將客戶端拉回至所述服務(wù)器指定的在所述服務(wù)器當(dāng)前所在位置附近的位置,以避免該異常。至此,完成圖1所示的流程。從圖1所示的流程可以看出,本發(fā)明中,服務(wù)器信任客戶端,由客戶端先移動,之后服務(wù)器和客戶端同時尋路,當(dāng)服務(wù)器在尋路過程中發(fā)現(xiàn)異常時,修正客戶端的位置,這能夠保證客戶端及時移動,并且,由于客戶端和服務(wù)器各自按照自身的尋路邏輯尋路,并不需要頻繁交互,這減少了客戶端和服務(wù)器之間的通信流量,節(jié)省資源,并且也降低被外掛利用的風(fēng)險。優(yōu)選地,本發(fā)明中,所述客戶端擔(dān)任的游戲角色還可進(jìn)行戰(zhàn)斗,并在戰(zhàn)斗過程中需要使用技能時,向服務(wù)器發(fā)送技能請求,并在接收到服務(wù)器發(fā)送的使用技能的通知后,開始使用技能。下面通過圖2所示的流程進(jìn)行描述需要說明的是,本發(fā)明中,所述客戶端和服務(wù)器遵守相同的戰(zhàn)斗邏輯,該戰(zhàn)斗邏輯預(yù)先被設(shè)定好。
參見圖2,圖2為本發(fā)明實施例提供的戰(zhàn)斗流程圖。如圖2所示,該流程可包括以下步驟步驟201,客戶端在擔(dān)任的游戲角色進(jìn)行戰(zhàn)斗需要使用一技能時,判斷該技能是否滿足條件,如果是,則執(zhí)行步驟202,否則,給出技能不滿足條件的提示。步驟202,向服務(wù)器發(fā)送技能請求。需要說明的是,為保證客戶端和服務(wù)器在戰(zhàn)斗中位置同步,所述技能請求中可攜帶所述客戶端擔(dān)任的游戲角色當(dāng)前所處的位置,以使服務(wù)器接收到該技能要求后,根據(jù)該技能要求攜帶的位置達(dá)到客戶端和服務(wù)器之間的同步。步驟203,服務(wù)器接收到技能請求后,驗證所述客戶端是否能夠使用所述客戶端請求的技能,如果是,則執(zhí)行步驟204,否則,通知客戶端終止使用所述技能。本步驟203中的驗證包括判斷所述客戶端請求的技能的使用頻率是否超過預(yù)設(shè)值,所述預(yù)設(shè)值用于防止外掛惡意利用的門限,所述客戶端請求的技能的使用頻率由設(shè)置的計數(shù)器實現(xiàn),如果是,則確定為惡意外掛利用,終止客戶端使用所述技能,并記錄外掛情況至LOG ;否則,確定客戶端能夠使用請求的技能,執(zhí)行步驟204。步驟204,服務(wù)器判斷自身距所述技能請求攜帶的位置的距離是否合理,如果是, 執(zhí)行步驟205,否則,執(zhí)行步驟206。本步驟205中的判斷具體實現(xiàn)時可有多種形式,比如判斷按照所述游戲角色的當(dāng)前速度設(shè)定時間內(nèi)能夠正常移動至所述技能請求攜帶的位置,如果可以,則認(rèn)為合理,否則,認(rèn)為不合理。步驟205,設(shè)置自身至所述位置。之后,執(zhí)行步驟207。步驟206,按照當(dāng)前速度移動至所述位置。之后,執(zhí)行步驟207。通過步驟204至步驟206可以實現(xiàn)服務(wù)器和客戶端同步??梢钥闯觯诳蛻舳嗣看蜗蚍?wù)器請求技能時,都會執(zhí)行客戶端和服務(wù)器的同步。也就是說,客戶端向服務(wù)器請求技能,是客戶端和服務(wù)器同步的時機。之所以執(zhí)行客戶端和服務(wù)器同步,主要原因是戰(zhàn)斗過程中位置是非常重要的,而本發(fā)明是信任服務(wù)器位置的,所以必須在戰(zhàn)斗過程中盡可能的同步服務(wù)器和客戶端的位置。步驟207,服務(wù)器生成隨機數(shù)種子,將所述隨機數(shù)種子攜帶在使用技能的通知中發(fā)送給客戶端,并且,自身也開始使用所述技能。本步驟207可在步驟206的移動過程中執(zhí)行。步驟208,客戶端接收服務(wù)器發(fā)送的使用技能的通知,并在檢測到所述服務(wù)器到達(dá)所述位置后,開始使用技能。本步驟208中,客戶端如果檢測到所述服務(wù)器未到達(dá)所述位置后,則繼續(xù)等待,直至所述服務(wù)器到達(dá)所述位置,才開始使用其請求的技能。步驟209,客戶端在使用的技能中包括隨機事件時,使用所述隨機數(shù)種子處理所述隨機事件。通過執(zhí)行步驟209,能夠保證客戶端和服務(wù)器的處理結(jié)果一致。至此,完成圖2所示的流程。需要說明的是,在圖2所示的流程中,如果服務(wù)器發(fā)現(xiàn)任何異常,都需要及時糾正,這能夠提高玩家的體驗感。
另外,還需要說明的是,客戶端執(zhí)行的戰(zhàn)斗邏輯中,存在一些判定操作比如攻擊判定,而客戶端自身不會判定,其會按照默認(rèn)的判定結(jié)果執(zhí)行,在服務(wù)器執(zhí)行判定后,發(fā)現(xiàn)客戶端執(zhí)行的判定結(jié)果是錯的,則及時糾正客戶端。這能夠保證戰(zhàn)斗的準(zhǔn)確度。另外,在戰(zhàn)斗中,客戶端觸發(fā)的事件與該事件對應(yīng)的結(jié)果必須同步,圖3示出了戰(zhàn)斗中事件同步的流程。參見圖3,圖3為本發(fā)明實施例提供的戰(zhàn)斗中事件同步的示意圖。如圖3所示,該事件同步分為6個階段,下面依次描述階段1,在此階段內(nèi)客戶端開始使用技能。階段2,在此階段內(nèi)服務(wù)器檢測到客戶端開始使用技能;階段3,在此階段內(nèi)服務(wù)器發(fā)送事件對應(yīng)的結(jié)果數(shù)據(jù)至客戶端。此階段3中,服務(wù)器相比于客戶端觸發(fā)事件,會提前一段時間(一般提前100-200 毫秒,具體可根據(jù)平均網(wǎng)絡(luò)延遲調(diào)整)發(fā)送該事件對應(yīng)的結(jié)果數(shù)據(jù)。這里,事件一般為客戶端執(zhí)行的動作,而事件對應(yīng)的結(jié)果數(shù)據(jù)為該動作造成的結(jié)果。本階段3中,可對該事件進(jìn)行限定,比如,為關(guān)鍵事件,諸如傷害判定事件、技能流程跳轉(zhuǎn)事件等。以事件為打擊為例,比如,客戶端火球打中一個目標(biāo),該打中即為事件,對應(yīng)的結(jié)果可為挨打的動畫,火球爆炸動畫,以及傷害等,該傷害是服務(wù)器計算的。階段4,客戶端緩存接收的結(jié)果數(shù)據(jù)。階段5,客戶端觸發(fā)事件,階段6,客戶端直接顯示緩存的該被觸發(fā)的事件對應(yīng)的結(jié)果數(shù)據(jù)。以事件為客戶端火球打中一個目標(biāo),對應(yīng)的結(jié)果數(shù)據(jù)為挨打的動畫,火球爆炸動畫,以及傷害為例,則本階段6內(nèi),當(dāng)客戶端火球打中一個目標(biāo)時,客戶端會及時播放目標(biāo)挨打的動畫,火球爆炸的動畫,并顯示傷害。這保證了客戶端的表現(xiàn)更加及時、準(zhǔn)確,即事件和客戶端表現(xiàn)的效果同步,不像現(xiàn)有技術(shù)那樣要么是提前要么是滯后。需要說明的是,如果因為某些原因,服務(wù)器沒能及時將事件對應(yīng)的結(jié)果數(shù)據(jù)發(fā)送給客戶端,則當(dāng)客戶端觸發(fā)事件時,會等到,直到對應(yīng)的結(jié)果數(shù)據(jù)到達(dá)時,顯示該結(jié)果數(shù)據(jù)。至此,完成本發(fā)明提供的方法描述。由以上技術(shù)方案可以看出,本發(fā)明中,服務(wù)器信任客戶端,由客戶端先移動,之后服務(wù)器和客戶端同時尋路,當(dāng)服務(wù)器在尋路過程中發(fā)現(xiàn)異常時,修正客戶端的位置,這能夠保證客戶端及時移動,并且,由于客戶端和服務(wù)器各自按照自身的尋路邏輯尋路,并不需要頻繁交互,這減少了客戶端和服務(wù)器之間的通信流量,節(jié)省資源,并且也降低被外掛利用的風(fēng)險。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
權(quán)利要求
1.一種戰(zhàn)斗系統(tǒng)實現(xiàn)方法,其特征在于,該方法包括客戶端檢測其擔(dān)任的游戲角色是否能夠移動,如果是,動態(tài)計算尋路邏輯,并按照自身計算的尋路邏輯嘗試尋路移動,在移動成功后,通知給服務(wù)器;服務(wù)器接收到通知后,動態(tài)計算尋路邏輯,并按照自身計算的尋路邏輯與客戶端一起尋路,在尋路過程中發(fā)現(xiàn)異常時,通知客戶端終止移動,并將客戶端拉回到指定位置。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)所述異常為所述服務(wù)器和所述客戶端之間的距離不合理時,所述將客戶端拉回到指定位置包括將客戶端拉回至使所述服務(wù)器和所述客戶端之間的距離合理的位置;當(dāng)所述異常為所述服務(wù)器檢測到限制所述客戶端移動的條件時,所述將客戶端拉回到指定位置包括將客戶端拉回至所述服務(wù)器指定的在所述服務(wù)器當(dāng)前所在位置附近的位置。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述客戶端計算的尋路邏輯和所述服務(wù)器計算的尋路邏輯中,尋路的起點和終點相同。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括所述客戶端擔(dān)任的游戲角色按照設(shè)置的戰(zhàn)斗邏輯進(jìn)行戰(zhàn)斗,并在戰(zhàn)斗過程中需要使用技能時,向服務(wù)器發(fā)送技能請求,并在接收到服務(wù)器發(fā)送的使用技能的通知后,開始使用技能。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述客戶端向服務(wù)器發(fā)送技能請求包括 判斷需要使用的技能是否滿足條件,如果滿足,則向服務(wù)器發(fā)送技能請求,否則,給出技能不滿足條件的提示。
6.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,所述服務(wù)器發(fā)送使用技能的通知包括所述服務(wù)器接收到技能請求后,驗證所述客戶端是否能夠使用所述客戶端請求的技能,如果是,則向客戶端發(fā)送使用技能的通知,并且自身也依照所述戰(zhàn)斗邏輯開始使用所述客戶端請求的技能。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述服務(wù)器向客戶端發(fā)送使用技能的通知包括服務(wù)器生成隨機數(shù)種子,將所述隨機數(shù)種子攜帶在使用技能的通知中發(fā)送給客戶端; 該方法進(jìn)一步包括客戶端在使用的技能中包括隨機事件時,使用所述隨機數(shù)種子處理所述隨機事件。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述客戶端發(fā)送的技能請求中攜帶所述客戶端擔(dān)任的游戲角色當(dāng)前所處的位置;所述服務(wù)器在驗證出所述客戶端能夠使用所述客戶端請求的技能時,進(jìn)一步包括所述服務(wù)器判斷自身距所述技能請求攜帶的位置的距離是否合理,如果是,設(shè)置自身至所述位置,否則,按照當(dāng)前速度移動至所述位置;所述客戶端開始使用技能包括檢測所述服務(wù)器是否到達(dá)所述位置,如果是,則開始使用技能,否則,繼續(xù)等待,直至所述服務(wù)器到達(dá)所述位置。
9.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,該方法進(jìn)一步包括服務(wù)器在檢測到客戶端開始使用技能時,發(fā)送事件對應(yīng)的結(jié)果數(shù)據(jù)給客戶端;所述事件至少包括傷害判定事件、技能流程跳轉(zhuǎn)事件;客戶端緩存接收的結(jié)果數(shù)據(jù),并在觸發(fā)事件時,直接顯示緩存的該被觸發(fā)的事件對應(yīng)的結(jié)果數(shù)據(jù)。
全文摘要
本發(fā)明提供了戰(zhàn)斗系統(tǒng)實現(xiàn)方法,包括客戶端檢測其擔(dān)任的游戲角色是否能夠移動,如果是,動態(tài)計算尋路邏輯,并按照自身計算的尋路邏輯嘗試尋路移動,在移動成功后,通知給服務(wù)器;服務(wù)器接收到通知后,動態(tài)計算尋路邏輯,并按照自身計算的尋路邏輯與客戶端一起尋路,在尋路過程中發(fā)現(xiàn)異常時,通知客戶端終止移動,并將客戶端拉回到指定位置。采用本發(fā)明,一方面實現(xiàn)客戶端及時移動,另一方面避免客戶端頻繁向服務(wù)器發(fā)送位置信息,并降低外掛風(fēng)險。
文檔編號H04L29/06GK102387132SQ201110247809
公開日2012年3月21日 申請日期2011年8月25日 優(yōu)先權(quán)日2011年8月25日
發(fā)明者劉毅 申請人:北京像素軟件科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
柯坪县| 当阳市| 黔西县| 出国| 平原县| 枣强县| 裕民县| 昌都县| 武宣县| 商洛市| 香格里拉县| 五峰| 怀化市| 嘉禾县| 阿瓦提县| 仪陇县| 多伦县| 全州县| 滦平县| 太仓市| 呼伦贝尔市| 炎陵县| 英德市| 霍林郭勒市| 周至县| 冷水江市| 台湾省| 方山县| 甘南县| 德阳市| 海晏县| 合江县| 龙江县| 九台市| 江达县| 沙洋县| 江北区| 托克逊县| 四会市| 南充市| 萨嘎县|