一種游戲戰(zhàn)斗校驗(yàn)方法、系統(tǒng)及服務(wù)端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及游戲領(lǐng)域,尤其涉及一種游戲戰(zhàn)斗校驗(yàn)方法、系統(tǒng)及服務(wù)端。
【背景技術(shù)】
[0002]戰(zhàn)斗是大多數(shù)角色扮演(RPG)網(wǎng)絡(luò)游戲的核心體驗(yàn),玩家在游戲中花費(fèi)資源培養(yǎng)自身角色或者卡牌,然后在戰(zhàn)斗中體現(xiàn)培養(yǎng)的效果,因此必須確保戰(zhàn)斗中玩家數(shù)值的真實(shí)性。否則如果有玩家通過作弊器修改戰(zhàn)斗數(shù)值而獲利,將大大降低游戲的公平性,使得正常玩家大量流失,對游戲運(yùn)營造成毀滅性的打擊。
[0003]對于一些戰(zhàn)斗過程中需要客戶端(尤其是移動客戶端)頻繁操作的網(wǎng)絡(luò)游戲,由于手機(jī)無線網(wǎng)絡(luò)網(wǎng)速的限制,無法將每次操作的戰(zhàn)斗數(shù)值結(jié)算都發(fā)送給游戲服務(wù)端完成,否則戰(zhàn)斗過程會有明顯的卡頓,用戶體驗(yàn)非常不友好。但如果戰(zhàn)斗數(shù)值結(jié)算在客戶端本地進(jìn)行,玩家則有可能通過作弊器修改戰(zhàn)斗數(shù)值,造成上述不良影響。
[0004]目前針對戰(zhàn)斗過程需要客戶端頻繁操作的游戲,一般有以下幾種校驗(yàn)方案:一是在客戶端加入一些防范修改戰(zhàn)斗數(shù)值的保護(hù)措施。例如通過某種算法對內(nèi)存中的戰(zhàn)斗數(shù)值做一些混淆和校驗(yàn),其中,混淆可以避免玩家直接修改客戶端戰(zhàn)斗界面上顯示的數(shù)值,校驗(yàn)則是為了在玩家修改某個數(shù)值之后能夠檢測出來。二是在客戶端戰(zhàn)斗結(jié)束后,服務(wù)端對客戶端的戰(zhàn)斗結(jié)果做一些關(guān)鍵數(shù)據(jù)的校驗(yàn)。例如根據(jù)客戶端的初始戰(zhàn)斗數(shù)值,按玩家最完美的操作估算所能戰(zhàn)勝的最大敵方戰(zhàn)斗數(shù)值,如果超過了則校驗(yàn)失敗。
【發(fā)明內(nèi)容】
[0005]然而現(xiàn)有技術(shù)的校驗(yàn)方案一,由于保護(hù)措施和校驗(yàn)均是在客戶端進(jìn)行,而玩家是有可能直接通過反編譯等手段破解整個客戶端,所以并沒有從根本上杜絕作弊的可能性。而校驗(yàn)方案二雖然是在服務(wù)端進(jìn)行校驗(yàn),但這種針對關(guān)鍵數(shù)據(jù)的校驗(yàn)只能是比較粗略的校驗(yàn),玩家只要控制好作弊修改的數(shù)值范圍,或者只修改那些不會進(jìn)行校驗(yàn)的數(shù)值,則依然可以fe驗(yàn)成功并獲得利益。
[0006]針對上述問題,本發(fā)明的目的在于提供一種游戲戰(zhàn)斗校驗(yàn)方法、系統(tǒng)及服務(wù)端,可對玩家的戰(zhàn)斗數(shù)值和戰(zhàn)斗結(jié)果進(jìn)行完整的檢驗(yàn),防止玩家的作弊行為。
[0007]第一方面,提供了一種游戲戰(zhàn)斗校驗(yàn)方法,包括如下步驟:
[0008]接收來自客戶端的游戲戰(zhàn)斗指令,其中,所述游戲戰(zhàn)斗指令至少包括第一戰(zhàn)斗方的標(biāo)識及第二戰(zhàn)斗方的標(biāo)識;
[0009]根據(jù)所述第一戰(zhàn)斗方的標(biāo)識及所述第二戰(zhàn)斗方的標(biāo)識,查詢所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值,并返回給所述客戶端,以使所述客戶端能夠根據(jù)玩家的操作對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算,生成戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果;
[0010]接收所述客戶端發(fā)送的戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果,并在確定需要對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn)時,根據(jù)所述戰(zhàn)斗邏輯代碼對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算,生成第二戰(zhàn)斗結(jié)果;
[0011]根據(jù)預(yù)設(shè)的校驗(yàn)標(biāo)準(zhǔn)對所述第一戰(zhàn)斗結(jié)果及所述第二戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)結(jié)果向所述客戶端返回對應(yīng)的信息。
[0012]在第一種實(shí)現(xiàn)方式,所述根據(jù)預(yù)設(shè)的校驗(yàn)標(biāo)準(zhǔn)對所述第一戰(zhàn)斗結(jié)果及所述第二戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)的結(jié)果向所述客戶端返回對應(yīng)的信息,包括:
[0013]判斷所述第一戰(zhàn)斗結(jié)果與所述第二戰(zhàn)斗結(jié)果是否完全一致;
[0014]若是,則向所述客戶端返回通過校驗(yàn)的信息;
[0015]若否,則向所述客戶端返回警報信息。
[0016]在第二種實(shí)現(xiàn)方式,所述根據(jù)預(yù)設(shè)的校驗(yàn)標(biāo)準(zhǔn)對所述第一戰(zhàn)斗結(jié)果及所述第二戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)的結(jié)果向所述客戶端返回對應(yīng)的信息,包括:
[0017]判斷所述第一戰(zhàn)斗結(jié)果與所述第二戰(zhàn)斗結(jié)果的差是否在預(yù)設(shè)的范圍內(nèi);
[0018]若是,則向所述客戶端返回通過校驗(yàn)的信息;
[0019]若否,則向所述客戶端返回警報信息。
[0020]在第三種實(shí)現(xiàn)方式,所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值包括隨機(jī)戰(zhàn)斗值及用于生成所述隨機(jī)戰(zhàn)斗值的隨機(jī)種子;和/或,
[0021]所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值包括隨機(jī)戰(zhàn)斗值及用于生成所述隨機(jī)戰(zhàn)斗值的隨機(jī)種子。
[0022]在第四種實(shí)現(xiàn)方式,所述戰(zhàn)斗邏輯代碼及所述第一戰(zhàn)斗結(jié)果由所述客戶端在游戲戰(zhàn)斗結(jié)束時根據(jù)玩家的操作對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算生成;或者,所述戰(zhàn)斗邏輯代碼及所述第一戰(zhàn)斗結(jié)果由所述客戶端在游戲戰(zhàn)斗進(jìn)行至預(yù)定比例時根據(jù)玩家的操作對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算生成。
[0023]結(jié)合第一方面的第四種實(shí)現(xiàn)方式,在第五種實(shí)現(xiàn)方式,所述接收所述客戶端發(fā)送的戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果,并在確定需要對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn)時,根據(jù)所述戰(zhàn)斗邏輯代碼對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算,生成第二戰(zhàn)斗結(jié)果,包括:
[0024]接收所述客戶端發(fā)送的戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果,并判斷所述第一戰(zhàn)斗結(jié)果是否為玩家失敗;
[0025]若否,則對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)所述戰(zhàn)斗邏輯代碼對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算,生成第二戰(zhàn)斗結(jié)果;
[0026]若是,則不對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并直接向所述客戶端返回失敗信息。
[0027]第二方面,提供了一種游戲戰(zhàn)斗校驗(yàn)方法,包括如下步驟:
[0028]客戶端根據(jù)玩家的操作生成游戲戰(zhàn)斗指令,并將所述游戲戰(zhàn)斗指令發(fā)送至服務(wù)端;其中,所述游戲戰(zhàn)斗指令至少包括第一戰(zhàn)斗方的標(biāo)識及第二戰(zhàn)斗方的標(biāo)識;
[0029]所述服務(wù)端接收所述游戲戰(zhàn)斗指令,并根據(jù)所述第一戰(zhàn)斗方的標(biāo)識及所述第二戰(zhàn)斗方的標(biāo)識,查詢所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值,并返回給所述客戶端;
[0030]所述客戶端根據(jù)玩家的操作對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值進(jìn)行數(shù)值結(jié)算,生成戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果;
[0031]所述服務(wù)端接收所述戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果,并在確定需要對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn)時,根據(jù)所述戰(zhàn)斗邏輯代碼對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值進(jìn)行數(shù)值結(jié)算,生成第二戰(zhàn)斗結(jié)果;
[0032]所述服務(wù)端根據(jù)預(yù)設(shè)的校驗(yàn)標(biāo)準(zhǔn)對所述第一戰(zhàn)斗結(jié)果及所述第二戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)結(jié)果向所述客戶端返回對應(yīng)的信息。
[0033]在第一種實(shí)現(xiàn)方式,所述服務(wù)端根據(jù)預(yù)設(shè)的校驗(yàn)標(biāo)準(zhǔn)對所述第一戰(zhàn)斗結(jié)果及所述第二戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)的結(jié)果向所述客戶端返回對應(yīng)的信息,包括:
[0034]所述服務(wù)端判斷所述第一戰(zhàn)斗結(jié)果與所述第二戰(zhàn)斗結(jié)果是否完全一致;
[0035]若是,則向所述客戶端返回通過校驗(yàn)的信息;
[0036]若否,則向所述客戶端返回警報信息。
[0037]在第二種實(shí)現(xiàn)方式,所述服務(wù)端根據(jù)預(yù)設(shè)的校驗(yàn)標(biāo)準(zhǔn)對所述第一戰(zhàn)斗結(jié)果及所述第二戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)的結(jié)果向所述客戶端返回對應(yīng)的信息,包括:
[0038]所述服務(wù)端判斷所述第一戰(zhàn)斗結(jié)果與所述第二戰(zhàn)斗結(jié)果的差是否在預(yù)設(shè)的范圍內(nèi);
[0039]若是,則向所述客戶端返回通過校驗(yàn)的信息;
[0040]若否,則向所述客戶端返回警報信息。
[0041]在第三種實(shí)現(xiàn)方式,所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值包括隨機(jī)戰(zhàn)斗值及用于生成所述隨機(jī)戰(zhàn)斗值的隨機(jī)種子;和/或,
[0042]所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值包括隨機(jī)戰(zhàn)斗值及用于生成所述隨機(jī)戰(zhàn)斗值的隨機(jī)種子。
[0043]在第四種實(shí)現(xiàn)方式,所述戰(zhàn)斗邏輯代碼及所述第一戰(zhàn)斗結(jié)果由所述客戶端在游戲戰(zhàn)斗結(jié)束時根據(jù)玩家的操作對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算生成;或者,所述戰(zhàn)斗邏輯代碼及所述第一戰(zhàn)斗結(jié)果由所述客戶端在游戲戰(zhàn)斗進(jìn)行至預(yù)定比例時根據(jù)玩家的操作對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算生成。
[0044]結(jié)合第二方面的第四種實(shí)現(xiàn)方式,在第五種實(shí)現(xiàn)方式,所述服務(wù)端接收所述客戶端發(fā)送的戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果,并在確定需要對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn)時,根據(jù)所述戰(zhàn)斗邏輯代碼對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算,生成第二戰(zhàn)斗結(jié)果,包括:
[0045]所述服務(wù)端接收所述客戶端發(fā)送的戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果,并判斷所述第一戰(zhàn)斗結(jié)果是否為玩家失敗;
[0046]若否,則所述服務(wù)端確定對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)所述戰(zhàn)斗邏輯代碼對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算,生成第二戰(zhàn)斗結(jié)果;
[0047]若是,則所述服務(wù)端不對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并直接向所述客戶端返回失敗?目息O
[0048]第三方面,提供了一種服務(wù)端,包括:
[0049]指令接收單元,用于接收來自客戶端的戰(zhàn)斗指令,其中,所述戰(zhàn)斗指令至少包括第一戰(zhàn)斗方的標(biāo)識及第二戰(zhàn)斗方的標(biāo)識;
[0050]查詢單元,用于根據(jù)所述第一戰(zhàn)斗方的標(biāo)識及所述第二戰(zhàn)斗方的標(biāo)識,查詢所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值,并發(fā)送至所述客戶端,以使所述客戶端根據(jù)玩家的操作對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值進(jìn)行數(shù)值結(jié)算,生成戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果;
[0051]結(jié)算單元,用于接收所述客戶端發(fā)送的戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果,并在確定需要對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn)時,根據(jù)所述戰(zhàn)斗邏輯代碼對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值進(jìn)行數(shù)值結(jié)算,生成第二戰(zhàn)斗結(jié)果;
[0052]校驗(yàn)單元,用于根據(jù)預(yù)設(shè)的校驗(yàn)標(biāo)準(zhǔn)對所述第一戰(zhàn)斗結(jié)果及所述第二戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)校驗(yàn)結(jié)果向所述客戶端返回對應(yīng)的信息。
[0053]在第一種實(shí)現(xiàn)方式,所述校驗(yàn)單元具體用于,
[0054]判斷所述第一戰(zhàn)斗結(jié)果與所述第二戰(zhàn)斗結(jié)果是否完全一致;
[0055]若是,則向所述客戶端返回通過校驗(yàn)的信息;
[0056]若否,則向所述客戶端返回警報信息。
[0057]在第二種實(shí)現(xiàn)方式,所述校驗(yàn)單元具體用于,
[0058]判斷所述第一戰(zhàn)斗結(jié)果與所述第二戰(zhàn)斗結(jié)果的差是否在一預(yù)設(shè)的范圍內(nèi);
[0059]若是,則向所述客戶端返回通過校驗(yàn)的信息;
[0060]若否,則向所述客戶端返回警報信息。
[0061]在第三種實(shí)現(xiàn)方式,所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值包括隨機(jī)戰(zhàn)斗值及用于生成所述隨機(jī)戰(zhàn)斗值的隨機(jī)種子;和/或,
[0062]所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值包括隨機(jī)戰(zhàn)斗值及用于生成所述隨機(jī)戰(zhàn)斗值的隨機(jī)種子。
[0063]在第四種實(shí)現(xiàn)方式,所述戰(zhàn)斗邏輯代碼及所述第一戰(zhàn)斗結(jié)果由所述客戶端在游戲戰(zhàn)斗結(jié)束時根據(jù)玩家的操作對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算生成;或者,所述戰(zhàn)斗邏輯代碼及所述第一戰(zhàn)斗結(jié)果由所述客戶端在游戲戰(zhàn)斗進(jìn)行至預(yù)定比例時根據(jù)玩家的操作對所述第一戰(zhàn)斗方的戰(zhàn)斗數(shù)值及所述第二戰(zhàn)斗方的戰(zhàn)斗數(shù)值執(zhí)行數(shù)值結(jié)算生成。
[0064]在第五種實(shí)現(xiàn)方式,所述結(jié)算單元具體用于,
[0065]接收所述客戶端發(fā)送的戰(zhàn)斗邏輯代碼及第一戰(zhàn)斗結(jié)果,并判斷所述第一戰(zhàn)斗結(jié)果是否為玩家失??;
[0066]若否,則對所述第一戰(zhàn)斗結(jié)果進(jìn)行校驗(yàn),并根據(jù)所述戰(zhàn)斗邏輯代碼對所述第