本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法。
背景技術(shù):
在大型多人在線即時(shí)制網(wǎng)游系統(tǒng)中,對(duì)服務(wù)端有著較高的要求——服務(wù)端必須完成游戲中所有戰(zhàn)斗對(duì)象的技能目標(biāo)檢測(cè)。由于服務(wù)端對(duì)每個(gè)技能目標(biāo)的檢測(cè)都是范圍檢測(cè),且絕大部分的技能需要的只是一個(gè)或幾個(gè)目標(biāo),則在服務(wù)端進(jìn)行技能目標(biāo)的檢測(cè)過(guò)程中,服務(wù)端還是需要在范圍內(nèi)一一遍歷以獲取目標(biāo),會(huì)產(chǎn)生較大的運(yùn)算量并占用大部分資源,且在遍歷范圍檢測(cè)中會(huì)產(chǎn)生大部分的無(wú)用功,耗時(shí)較多,造成服務(wù)端計(jì)算壓力過(guò)大難以平衡其它計(jì)算操作。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了解決上述現(xiàn)有技術(shù)的缺點(diǎn)和不足,提供一種緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法,通過(guò)客戶(hù)端檢測(cè)獲取技能目標(biāo),服務(wù)端只負(fù)責(zé)驗(yàn)證客戶(hù)端檢測(cè)得到的技能目標(biāo)的方法,減少服務(wù)端的運(yùn)算量和資源占用,由此降低服務(wù)端計(jì)算壓力和平衡服務(wù)端的其它計(jì)算操作。
一種緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法,包括以下步驟:
戰(zhàn)斗技能觸發(fā)后,服務(wù)端獲取技能范圍,并發(fā)送目標(biāo)數(shù)據(jù)至客戶(hù)端,通知客戶(hù)端在所述技能范圍內(nèi)檢測(cè)與所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象;
服務(wù)端接收由客戶(hù)端根據(jù)檢測(cè)得到的目標(biāo)對(duì)象生成的命中包,并對(duì)所述命中包進(jìn)行驗(yàn)證;
服務(wù)端根據(jù)其對(duì)命中包驗(yàn)證得到的驗(yàn)證結(jié)果判斷是否執(zhí)行技能操作。
本發(fā)明上述技術(shù)方案通過(guò)客戶(hù)端檢測(cè)獲取技能目標(biāo),服務(wù)端只負(fù)責(zé)驗(yàn)證客戶(hù)端檢測(cè)得到的技能目標(biāo)的方法,從而減少服務(wù)端的運(yùn)算量和資源占用,由此有效地降低了服務(wù)端計(jì)算壓力和平衡服務(wù)端的其它計(jì)算操作。
作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟服務(wù)端接收由客戶(hù)端根據(jù)檢測(cè)得到的目標(biāo)對(duì)象生成的命中包,并對(duì)所述命中包進(jìn)行驗(yàn)證,具體包括以下步驟:
服務(wù)端在游戲范圍內(nèi)建立若干單位格,由客戶(hù)端記錄技能觸發(fā)時(shí)技能所在的單位格位置、技能作用的方向及技能當(dāng)前作用時(shí)長(zhǎng);
由客戶(hù)端根據(jù)接收到的目標(biāo)數(shù)據(jù)繪制相應(yīng)的檢測(cè)框,并通過(guò)檢測(cè)框獲取與所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象,生成命中包并發(fā)送至服務(wù)端;
服務(wù)端接收由客戶(hù)端根據(jù)檢測(cè)得到的目標(biāo)對(duì)象生成的命中包后,獲取命中包中的目標(biāo)對(duì)象的驗(yàn)證數(shù)據(jù)及目標(biāo)對(duì)象的移動(dòng)速度數(shù)據(jù);
服務(wù)端通過(guò)自身直接獲取目標(biāo)對(duì)象的移動(dòng)速度數(shù)據(jù),且服務(wù)端比較其自身獲取得到的目標(biāo)對(duì)象的移動(dòng)速度數(shù)據(jù)與從命中包中得到的目標(biāo)對(duì)象的移動(dòng)速度數(shù)據(jù)的大小,得到數(shù)值較大的一移動(dòng)速度數(shù)據(jù);
服務(wù)端利用數(shù)值較大的一移動(dòng)速度數(shù)據(jù)參與驗(yàn)證運(yùn)算,并結(jié)合命中包中目標(biāo)對(duì)象的驗(yàn)證數(shù)據(jù)處理得到目標(biāo)對(duì)象經(jīng)過(guò)的單位格數(shù)量,生成相應(yīng)的位置列表;
服務(wù)端根據(jù)技能觸發(fā)時(shí)技能所在的單位格位置、技能作用的方向、技能當(dāng)前作用時(shí)長(zhǎng)及檢測(cè)框的形狀于服務(wù)端生成相應(yīng)的位置范圍圖形;
服務(wù)端遍歷所述位置列表,并判斷所述位置列表是否位于所述位置范圍圖形中;若所述位置列表中存在一位置位于所述位置范圍圖形中,則驗(yàn)證結(jié)果為驗(yàn)證通過(guò);否者,驗(yàn)證結(jié)果為驗(yàn)證失敗。
由上述步驟可知,相比于現(xiàn)有技術(shù)中游戲技能目標(biāo)檢測(cè)均由服務(wù)端對(duì)每一個(gè)技能進(jìn)行范圍檢測(cè)和遍歷該范圍獲取目標(biāo)的方法實(shí)現(xiàn),本發(fā)明通過(guò)上述方法步驟實(shí)現(xiàn)對(duì)技能目標(biāo)的檢測(cè),使得服務(wù)端只需要對(duì)接收到的客戶(hù)端的命中包進(jìn)行驗(yàn)證,而將范圍檢測(cè)和遍歷改為判斷位置點(diǎn)是否在位置范圍圖形中,由此大大減少了檢測(cè)的運(yùn)算和消耗,實(shí)現(xiàn)服務(wù)端可以騰出更多資源滿(mǎn)足其他操作。
作為本發(fā)明的進(jìn)一步改進(jìn),驗(yàn)證結(jié)果為驗(yàn)證失敗時(shí),服務(wù)端還記錄驗(yàn)證失敗的目標(biāo)對(duì)象,生成錯(cuò)誤列表。此處有利于對(duì)驗(yàn)證失敗的目標(biāo)對(duì)象的失敗原因進(jìn)行分析和方便其它方面的后續(xù)處理。
作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟服務(wù)端根據(jù)其對(duì)命中包驗(yàn)證得到的驗(yàn)證結(jié)果判斷是否執(zhí)行技能操作,具體包括以下步驟:
如果驗(yàn)證結(jié)果為驗(yàn)證通過(guò),則服務(wù)端對(duì)命中包中的目標(biāo)對(duì)象執(zhí)行技能操作;
如果驗(yàn)證結(jié)果為驗(yàn)證失敗,則服務(wù)端通知客戶(hù)端繼續(xù)于技能范圍內(nèi)檢測(cè)與目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象,并接收由客戶(hù)端重新發(fā)送的命中包,繼續(xù)對(duì)新的命中包進(jìn)行驗(yàn)證,直至服務(wù)端接收到由客戶(hù)端發(fā)送的結(jié)束檢測(cè)信號(hào)。
通過(guò)上述步驟,有利于避免檢測(cè)時(shí)間過(guò)長(zhǎng)而影響游戲效果和對(duì)運(yùn)算空間的占用。
作為本發(fā)明的進(jìn)一步改進(jìn),當(dāng)服務(wù)端接收到的命中包中包括若干目標(biāo)對(duì)象的數(shù)據(jù)時(shí),服務(wù)端對(duì)包含若干目標(biāo)對(duì)象的命中包的驗(yàn)證還包括以下步驟:
服務(wù)端預(yù)設(shè)一標(biāo)準(zhǔn)命中率數(shù)值和一標(biāo)準(zhǔn)相似度數(shù)值;所述標(biāo)準(zhǔn)命中率數(shù)值用于表明命中包中通過(guò)驗(yàn)證的目標(biāo)對(duì)象數(shù)量與全部目標(biāo)對(duì)象數(shù)量的比例;所述標(biāo)準(zhǔn)相似度用于表明命中包 中非標(biāo)準(zhǔn)包中的目標(biāo)對(duì)象與標(biāo)準(zhǔn)包中的目標(biāo)對(duì)象的相似度;
服務(wù)端接收由技能發(fā)動(dòng)者所在的客戶(hù)端發(fā)送的命中包,并標(biāo)志為標(biāo)準(zhǔn)包;
服務(wù)端接收由除技能發(fā)動(dòng)者外的其它客戶(hù)端發(fā)送的命中包,并標(biāo)志為非標(biāo)準(zhǔn)包;
服務(wù)端通過(guò)對(duì)標(biāo)準(zhǔn)包和非標(biāo)準(zhǔn)包中的全部目標(biāo)對(duì)象的分別驗(yàn)證,得到標(biāo)準(zhǔn)包的目標(biāo)對(duì)象驗(yàn)證通過(guò)率和非標(biāo)準(zhǔn)包的目標(biāo)對(duì)象驗(yàn)證通過(guò)率;
服務(wù)端分別判斷標(biāo)準(zhǔn)包和非標(biāo)準(zhǔn)包的目標(biāo)對(duì)象驗(yàn)證通過(guò)率是否大于或等于所述標(biāo)準(zhǔn)命中率數(shù)值,并判斷非標(biāo)準(zhǔn)包中的目標(biāo)對(duì)象與標(biāo)準(zhǔn)包中的目標(biāo)對(duì)象的相似度是否大于或等于所述標(biāo)準(zhǔn)相似度數(shù)值,如果是,則驗(yàn)證通過(guò),否則,記錄驗(yàn)證失敗的標(biāo)準(zhǔn)包和/或非標(biāo)準(zhǔn)包所在的客戶(hù)端,并生成一用于記錄驗(yàn)證失敗的客戶(hù)端及客戶(hù)端驗(yàn)證失敗次數(shù)的錯(cuò)誤列表。
通過(guò)上述步驟,實(shí)現(xiàn)對(duì)命中包中的多個(gè)目標(biāo)對(duì)象的快速驗(yàn)證,并保證了對(duì)命中包驗(yàn)證的合理性,保證對(duì)標(biāo)準(zhǔn)包和非標(biāo)準(zhǔn)包的均衡處理,進(jìn)一步保證了游戲的均衡性和有利于減少對(duì)多個(gè)目標(biāo)對(duì)象驗(yàn)證的驗(yàn)證運(yùn)算,保證服務(wù)端在驗(yàn)證多個(gè)目標(biāo)對(duì)象的過(guò)程中留有一定的空間,進(jìn)一步減少對(duì)服務(wù)端運(yùn)算空間的占用。
作為本發(fā)明的進(jìn)一步改進(jìn),本發(fā)明緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法還包括以下步驟:
服務(wù)端在戰(zhàn)場(chǎng)初始化時(shí)生成一命中包接收次數(shù)的最大限值,并生成一正常比例限值;
戰(zhàn)斗過(guò)程中,服務(wù)端接收由每一客戶(hù)端發(fā)送的命中包,并對(duì)每一客戶(hù)端發(fā)送的每一命中包進(jìn)行驗(yàn)證,同時(shí)于錯(cuò)誤列表中分別記錄每一客戶(hù)端發(fā)送的命中包的驗(yàn)證失敗次數(shù);且服務(wù)端分別統(tǒng)計(jì)對(duì)每一客戶(hù)端發(fā)送的命中包的接收次數(shù);
服務(wù)端判斷是每一客戶(hù)端的接收次數(shù)是否達(dá)到最大限值,
當(dāng)某一客戶(hù)端的接收次數(shù)已達(dá)到最大限值,則服務(wù)端從錯(cuò)誤列表中獲取該客戶(hù)端的驗(yàn)證失敗次數(shù),并分別計(jì)算得到該客戶(hù)端的驗(yàn)證失敗次數(shù)與最大限值的比值,并將該比值與正常比例限值進(jìn)行比較;如果該比值大于正常比例限值時(shí),則將該客戶(hù)端列入黑名單,并清空該客戶(hù)端的接收次數(shù)和錯(cuò)誤列表中記錄的驗(yàn)證失敗次數(shù),并對(duì)該客戶(hù)端重新進(jìn)行接收次數(shù)和驗(yàn)證失敗次數(shù)的記錄;如果該比值小于正常比例限值時(shí),則清空該客戶(hù)端的接收次數(shù)和錯(cuò)誤列表中記錄的驗(yàn)證失敗次數(shù),并對(duì)該客戶(hù)端重新進(jìn)行接收次數(shù)和驗(yàn)證失敗次數(shù)的記錄;
及如果某一客戶(hù)端的接收次數(shù)還沒(méi)達(dá)到最大限值,則繼續(xù)對(duì)該客戶(hù)端的接收次數(shù)和驗(yàn)證失敗次數(shù)進(jìn)行統(tǒng)計(jì)直至其接收次數(shù)達(dá)到最大限值。通過(guò)上述步驟,實(shí)現(xiàn)對(duì)戰(zhàn)斗雙方技能目標(biāo)的合理檢測(cè),并有利于對(duì)外掛游戲的客戶(hù)端的處理,以保證游戲過(guò)程的公平性和平衡性。
作為本發(fā)明緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法的另一種實(shí)施角度,以下以客戶(hù)端所在的角度對(duì)本發(fā)明進(jìn)行闡述,其包括以下步驟:
戰(zhàn)斗技能觸發(fā)后,客戶(hù)端接收由服務(wù)端發(fā)送的技能范圍和目標(biāo)數(shù)據(jù),并在所述技能范圍內(nèi)檢測(cè)與所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象,生成命中包;
客戶(hù)端將命中包發(fā)送至服務(wù)端,由服務(wù)端對(duì)所述命中包進(jìn)行驗(yàn)證,并由服務(wù)端根據(jù)對(duì)命中包驗(yàn)證得到的驗(yàn)證結(jié)果判斷是否執(zhí)行技能操作。
相對(duì)于現(xiàn)有技術(shù),本發(fā)明通過(guò)客戶(hù)端檢測(cè)獲取技能目標(biāo),服務(wù)端只負(fù)責(zé)驗(yàn)證客戶(hù)端檢測(cè)得到的技能目標(biāo)生成的命中包的方法,從而減少服務(wù)端的運(yùn)算量和資源占用,由此有效地降低了服務(wù)端計(jì)算壓力和平衡服務(wù)端的其它計(jì)算操作。
作為本發(fā)明的進(jìn)一步改進(jìn),所述客戶(hù)端接收由服務(wù)端發(fā)送的技能范圍和目標(biāo)數(shù)據(jù)后,根據(jù)接收到的目標(biāo)數(shù)據(jù)繪制相應(yīng)的檢測(cè)框,并通過(guò)檢測(cè)框獲取與所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象,生成命中包。通過(guò)運(yùn)用檢測(cè)框的方式實(shí)現(xiàn)對(duì)技能范圍內(nèi)的技能目標(biāo)的檢測(cè)和獲取,有利于提高獲取技能目標(biāo)的準(zhǔn)確性,并更加貼合技能范圍,避免檢測(cè)疏漏。
具體地,所述客戶(hù)端控制檢測(cè)框以恒定的速度沿戰(zhàn)斗技能作用方向前移,實(shí)現(xiàn)對(duì)技能范圍中與目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象的獲取。
作為本發(fā)明的進(jìn)一步改進(jìn),當(dāng)檢測(cè)框前移超出技能范圍時(shí),客戶(hù)端生成一終止包,并發(fā)送至服務(wù)端,通知服務(wù)端結(jié)束檢測(cè);并由服務(wù)端進(jìn)一步驗(yàn)證檢測(cè)框是否超出技能范圍,如果是,則由服務(wù)端中斷技能,否則,則對(duì)處于技能范圍內(nèi)的目標(biāo)對(duì)象執(zhí)行技能操作。此處有利于保證檢測(cè)的及時(shí)結(jié)束,避免超出技能范圍后的繼續(xù)檢測(cè)而引發(fā)的錯(cuò)誤,并避免檢測(cè)過(guò)長(zhǎng)而占用過(guò)多的資源。
為了更好地理解和實(shí)施,下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例1中緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法的流程圖;
圖2是圖1中完善后的步驟S2的方法流程示意圖;
圖3是圖1中緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法的進(jìn)一步詳細(xì)后的流程圖;
圖4是本發(fā)明實(shí)施例1中服務(wù)端對(duì)包含若干目標(biāo)對(duì)象的命中包的驗(yàn)證的方法流程圖;
圖5是本發(fā)明實(shí)施例2中緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法的流程圖。
具體實(shí)施方式
實(shí)施例1
請(qǐng)參閱圖1,一種緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法,包括以下步驟:
步驟S1:戰(zhàn)斗技能觸發(fā)后,服務(wù)端獲取技能范圍,并發(fā)送目標(biāo)數(shù)據(jù)至客戶(hù)端,通知客戶(hù)端在所述技能范圍內(nèi)檢測(cè)與所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象;在本實(shí)施例中,所述目標(biāo)數(shù)據(jù)包 括表示所述技能范圍的技能范圍數(shù)據(jù)也即需要檢測(cè)的范圍相關(guān)的數(shù)據(jù)、目標(biāo)對(duì)象的類(lèi)型、目標(biāo)對(duì)象所屬陣營(yíng)、及目標(biāo)對(duì)象的個(gè)數(shù)等數(shù)據(jù)。
步驟S2:服務(wù)端接收由客戶(hù)端根據(jù)檢測(cè)得到的目標(biāo)對(duì)象生成的命中包,并對(duì)所述命中包進(jìn)行驗(yàn)證;在本實(shí)施例中,所述命中包內(nèi)包含的數(shù)據(jù)有由客戶(hù)端檢測(cè)到的符合目標(biāo)數(shù)據(jù)(目標(biāo)對(duì)象類(lèi)型和目標(biāo)對(duì)象所屬陣營(yíng))的目標(biāo)對(duì)象、目標(biāo)對(duì)象的唯一標(biāo)識(shí)、目標(biāo)對(duì)象所處的位置及目標(biāo)對(duì)象的當(dāng)前速度等數(shù)據(jù)。
步驟S3:服務(wù)端根據(jù)其對(duì)命中包驗(yàn)證得到的驗(yàn)證結(jié)果判斷是否執(zhí)行技能操作。
通過(guò)步驟S1~S3,本發(fā)明實(shí)現(xiàn)利用客戶(hù)端檢測(cè)獲取技能目標(biāo),使得服務(wù)端只負(fù)責(zé)驗(yàn)證客戶(hù)端檢測(cè)得到的技能目標(biāo)的方法,從而減少服務(wù)端的運(yùn)算量和資源占用,由此有效地降低了服務(wù)端計(jì)算壓力和平衡服務(wù)端的其它計(jì)算操作。
請(qǐng)參閱圖2,為大大減少檢測(cè)的運(yùn)算和消耗,實(shí)現(xiàn)服務(wù)端可以騰出更多資源滿(mǎn)足其他操作,作為一種更優(yōu)的技術(shù)方案,對(duì)所述步驟S2進(jìn)行進(jìn)一步完善,完善后的步驟S2具體包括以下步驟:
步驟S21:服務(wù)端在游戲范圍內(nèi)建立若干單位格,由客戶(hù)端記錄技能觸發(fā)時(shí)技能所在的單位格位置、技能作用的方向及技能當(dāng)前作用時(shí)長(zhǎng);
步驟S22:由客戶(hù)端根據(jù)接收到的目標(biāo)數(shù)據(jù)繪制相應(yīng)的檢測(cè)框,并通過(guò)檢測(cè)框獲取與所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象,生成命中包并發(fā)送至服務(wù)端;在本實(shí)施例中,所述檢測(cè)框?yàn)楣潭ㄐ螤罨蛐螤畲笮」潭ǖ膱D形,如可為圓形、長(zhǎng)方形或環(huán)形等。
步驟S23:服務(wù)端接收由客戶(hù)端根據(jù)檢測(cè)得到的目標(biāo)對(duì)象生成的命中包后,獲取命中包中的目標(biāo)對(duì)象的驗(yàn)證數(shù)據(jù)及目標(biāo)對(duì)象的移動(dòng)速度數(shù)據(jù);在本實(shí)施例中,所述驗(yàn)證數(shù)據(jù)包括技能觸發(fā)時(shí)技能所在的單位格位置也即技能開(kāi)始出發(fā)時(shí)的位置點(diǎn)、技能作用的方向也即技能前進(jìn)方向、技能從觸發(fā)開(kāi)始時(shí)到當(dāng)前的運(yùn)行時(shí)長(zhǎng)及檢測(cè)框的形狀等數(shù)據(jù)。
步驟S24:服務(wù)端通過(guò)自身直接獲取目標(biāo)對(duì)象的移動(dòng)速度數(shù)據(jù),且服務(wù)端比較其自身獲取得到的目標(biāo)對(duì)象的移動(dòng)速度數(shù)據(jù)與從命中包中得到的目標(biāo)對(duì)象的移動(dòng)速度數(shù)據(jù)的大小,得到數(shù)值較大的一移動(dòng)速度數(shù)據(jù);
步驟S25:服務(wù)端利用數(shù)值較大的一移動(dòng)速度數(shù)據(jù)參與驗(yàn)證運(yùn)算,并結(jié)合命中包中目標(biāo)對(duì)象的驗(yàn)證數(shù)據(jù)處理得到目標(biāo)對(duì)象經(jīng)過(guò)的單位格數(shù)量,生成相應(yīng)的位置列表;
步驟S26:服務(wù)端根據(jù)技能觸發(fā)時(shí)技能所在的單位格位置、技能作用的方向、技能當(dāng)前作用時(shí)長(zhǎng)及檢測(cè)框的形狀于服務(wù)端生成相應(yīng)的位置范圍圖形;
步驟S27:服務(wù)端遍歷所述位置列表,并判斷所述位置列表是否位于所述位置范圍圖形中;若所述位置列表中存在一位置位于所述位置范圍圖形中,則驗(yàn)證結(jié)果為驗(yàn)證通過(guò);否者, 驗(yàn)證結(jié)果為驗(yàn)證失敗。
在本實(shí)施例中,服務(wù)端會(huì)為每一個(gè)目標(biāo)對(duì)象創(chuàng)建一個(gè)記錄其移動(dòng)過(guò)的單位格的位置列表,當(dāng)目標(biāo)對(duì)象移動(dòng)到新的單位格上時(shí),則將該格子的信息位置記錄到位置列表中,在本實(shí)施例中,允許位置列表最多保存10個(gè)單位格的信息,當(dāng)收錄第11個(gè)單位格的信息時(shí),則將最先收錄的單位格從位置列表中刪除,保證位置列表記錄的是目標(biāo)對(duì)象最近移動(dòng)過(guò)的10個(gè)單位格。
且在本實(shí)施例中,客戶(hù)端將命中包發(fā)給服務(wù)端時(shí),會(huì)帶上目標(biāo)對(duì)象的移動(dòng)速度,由當(dāng)前運(yùn)算速度較大的一方參與驗(yàn)證運(yùn)算,獲取目標(biāo)對(duì)象的位置信息。由于目標(biāo)對(duì)象的移動(dòng)速度不同,則單位時(shí)間內(nèi)通過(guò)的距離長(zhǎng)度也不同,若規(guī)定標(biāo)準(zhǔn)時(shí)間為200毫秒,則根據(jù)目標(biāo)對(duì)象的移動(dòng)速度與該標(biāo)準(zhǔn)時(shí)間即可計(jì)算得到目標(biāo)對(duì)象移動(dòng)的單位格數(shù)目,由此獲得位置信息。以下舉一例子說(shuō)明,如果目標(biāo)對(duì)象的移動(dòng)速度為20mm/s,則判斷該速度在200毫秒內(nèi)可以移動(dòng)4個(gè)單位格,則從該目標(biāo)對(duì)象的位置列表中獲取該目標(biāo)對(duì)象最近移動(dòng)過(guò)的4個(gè)單位格的位置信息(如從單位格7到單位格10),并對(duì)這些位置進(jìn)行一一驗(yàn)證,只有一個(gè)位置在技能范圍表示的位置范圍圖形中,即可通過(guò)驗(yàn)證。
在其它實(shí)施例中,上述步驟S21~S22的順序可互換。
為對(duì)驗(yàn)證失敗的目標(biāo)對(duì)象的失敗原因進(jìn)行分析和方便其它方面的后續(xù)處理,作為一種更優(yōu)的技術(shù)方案,所述步驟S2還包括步驟S28:驗(yàn)證結(jié)果為驗(yàn)證失敗時(shí),服務(wù)端還記錄驗(yàn)證失敗的目標(biāo)對(duì)象,生成錯(cuò)誤列表。
請(qǐng)參閱圖3,具體地,所述步驟S3中,服務(wù)端根據(jù)其對(duì)命中包驗(yàn)證得到的驗(yàn)證結(jié)果判斷是否執(zhí)行技能操作,具體包括以下步驟:
步驟S31:如果驗(yàn)證結(jié)果為驗(yàn)證通過(guò),則服務(wù)端對(duì)命中包中的目標(biāo)對(duì)象執(zhí)行技能操作;在本實(shí)施例中,執(zhí)行技能操作是指對(duì)作為技能承受者的目標(biāo)對(duì)象進(jìn)行扣血、暈眩、加狀態(tài)等操作。
步驟S32:如果驗(yàn)證結(jié)果為驗(yàn)證失敗,則服務(wù)端通知客戶(hù)端繼續(xù)于技能范圍內(nèi)檢測(cè)與目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象,并接收由客戶(hù)端重新發(fā)送的命中包,繼續(xù)對(duì)新的命中包進(jìn)行驗(yàn)證,直至服務(wù)端接收到由客戶(hù)端發(fā)送的結(jié)束檢測(cè)信號(hào)。
請(qǐng)參閱圖4,為實(shí)現(xiàn)對(duì)命中包中的多個(gè)目標(biāo)對(duì)象的快速驗(yàn)證,保證對(duì)命中包驗(yàn)證的合理性,并保證對(duì)標(biāo)準(zhǔn)包和非標(biāo)準(zhǔn)包的均衡處理,從而保證游戲的均衡性和有利于減少對(duì)多個(gè)目標(biāo)對(duì)象驗(yàn)證的驗(yàn)證運(yùn)算,保證服務(wù)端在驗(yàn)證多個(gè)目標(biāo)對(duì)象的過(guò)程中留有一定的空間,進(jìn)一步減少對(duì)服務(wù)端運(yùn)算空間的占用,作為一種更優(yōu)的技術(shù)方案,當(dāng)服務(wù)端接收到的命中包中包括若干目標(biāo)對(duì)象的數(shù)據(jù)時(shí),服務(wù)端對(duì)包含若干目標(biāo)對(duì)象的命中包的驗(yàn)證還包括以下步驟:
步驟S41:服務(wù)端預(yù)設(shè)一標(biāo)準(zhǔn)命中率數(shù)值和一標(biāo)準(zhǔn)相似度數(shù)值;所述標(biāo)準(zhǔn)命中率數(shù)值用于表明命中包中通過(guò)驗(yàn)證的目標(biāo)對(duì)象數(shù)量與全部目標(biāo)對(duì)象數(shù)量的比例;所述標(biāo)準(zhǔn)相似度用于表明命中包中非標(biāo)準(zhǔn)包中的目標(biāo)對(duì)象與標(biāo)準(zhǔn)包中的目標(biāo)對(duì)象的相似度;為更清楚地了解本發(fā)明中的標(biāo)準(zhǔn)命中率數(shù)值和標(biāo)準(zhǔn)相似度數(shù)值的定義,以下舉一例子簡(jiǎn)單說(shuō)明:對(duì)于標(biāo)準(zhǔn)命中率數(shù)值:例如,本實(shí)施例中設(shè)定的標(biāo)準(zhǔn)命中率數(shù)值為60%,若一個(gè)命中包中一共有10個(gè)目標(biāo),其中8個(gè)通過(guò)驗(yàn)證,則該命中包的命中率為80%,則可知該命中包的命中率80%大于標(biāo)準(zhǔn)命中率數(shù)值60%,故通過(guò)驗(yàn)證。對(duì)于標(biāo)準(zhǔn)相似度數(shù)值:在本實(shí)施例中,設(shè)定攻擊者(也即技能發(fā)動(dòng)者)所在的客戶(hù)端發(fā)送的命中包為標(biāo)準(zhǔn)包,并設(shè)定被攻擊者(也即技能承受者)所在的客戶(hù)端為非標(biāo)準(zhǔn)包,如果標(biāo)準(zhǔn)包中具有目標(biāo)對(duì)象1和目標(biāo)對(duì)象2;及非標(biāo)準(zhǔn)包中具有目標(biāo)對(duì)象1和目標(biāo)對(duì)象3;則可知標(biāo)準(zhǔn)包中和非標(biāo)準(zhǔn)包中僅有一個(gè)相同的目標(biāo)對(duì)象,也即目標(biāo)對(duì)象1,并由于非標(biāo)準(zhǔn)包和標(biāo)準(zhǔn)包中的目標(biāo)對(duì)象數(shù)量分別為2,因此,此時(shí)非標(biāo)準(zhǔn)包與標(biāo)準(zhǔn)包的相似度為50%,如果設(shè)定的標(biāo)準(zhǔn)包相似度數(shù)值為50%,則此時(shí)非標(biāo)準(zhǔn)包可認(rèn)為達(dá)到標(biāo)準(zhǔn)相似度。
步驟S42:服務(wù)端接收由技能發(fā)動(dòng)者所在的客戶(hù)端發(fā)送的命中包,并標(biāo)志為標(biāo)準(zhǔn)包;
步驟S43:服務(wù)端接收由除技能發(fā)動(dòng)者外的其它客戶(hù)端發(fā)送的命中包,并標(biāo)志為非標(biāo)準(zhǔn)包;例如一場(chǎng)比賽有10個(gè)玩家,此時(shí)有10個(gè)客戶(hù)端,A發(fā)動(dòng)了技能1,則A所在的客戶(hù)端發(fā)送的技能1命中包稱(chēng)為標(biāo)準(zhǔn)包,其他9個(gè)客戶(hù)端發(fā)送的技能1命中包稱(chēng)為非標(biāo)準(zhǔn)包。
步驟S44:服務(wù)端通過(guò)對(duì)標(biāo)準(zhǔn)包和非標(biāo)準(zhǔn)包中的全部目標(biāo)對(duì)象的分別驗(yàn)證,得到標(biāo)準(zhǔn)包的目標(biāo)對(duì)象驗(yàn)證通過(guò)率和非標(biāo)準(zhǔn)包的目標(biāo)對(duì)象驗(yàn)證通過(guò)率;
步驟S45:服務(wù)端分別判斷標(biāo)準(zhǔn)包和非標(biāo)準(zhǔn)包的目標(biāo)對(duì)象驗(yàn)證通過(guò)率是否大于或等于所述標(biāo)準(zhǔn)命中率數(shù)值,并判斷非標(biāo)準(zhǔn)包中的目標(biāo)對(duì)象與標(biāo)準(zhǔn)包中的目標(biāo)對(duì)象的相似度是否大于或等于所述標(biāo)準(zhǔn)相似度數(shù)值,如果是,則驗(yàn)證通過(guò),否則,記錄驗(yàn)證失敗的標(biāo)準(zhǔn)包和/或非標(biāo)準(zhǔn)包所在的客戶(hù)端,并生成一用于記錄驗(yàn)證失敗的客戶(hù)端及客戶(hù)端驗(yàn)證失敗次數(shù)的錯(cuò)誤列表。例如技能1發(fā)動(dòng)后,客戶(hù)端A發(fā)送的命中包命中率和相似度都為100%,全部達(dá)標(biāo)則不記錄;客戶(hù)端B的命中率為10%,不達(dá)標(biāo)則將客戶(hù)端B記入錯(cuò)誤列表,并且B相應(yīng)的錯(cuò)誤次數(shù)加1;客戶(hù)端C的相似度為10%,不達(dá)標(biāo)則將C也記入錯(cuò)誤列表,并且C對(duì)應(yīng)的錯(cuò)誤次數(shù)加1。
為實(shí)現(xiàn)對(duì)戰(zhàn)斗雙方技能目標(biāo)的合理檢測(cè),并有利于對(duì)外掛游戲的客戶(hù)端的處理,以保證游戲過(guò)程的公平性和平衡性,作為一種更優(yōu)的技術(shù)方案,本發(fā)明緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法還包括以下步驟:
步驟S51:服務(wù)端在戰(zhàn)場(chǎng)初始化時(shí)生成一命中包接收次數(shù)的最大限值,并生成一正常比例限值;在本實(shí)施例中,所述命中包接收次數(shù)的最大限值是在每次創(chuàng)建戰(zhàn)場(chǎng)時(shí)隨機(jī)生成的,而所述正常比例限值可根據(jù)實(shí)際需要和戰(zhàn)場(chǎng)情況設(shè)定。
步驟S52:戰(zhàn)斗過(guò)程中,服務(wù)端接收由每一客戶(hù)端發(fā)送的命中包,并對(duì)每一客戶(hù)端發(fā)送的每一命中包進(jìn)行驗(yàn)證,同時(shí)于錯(cuò)誤列表中分別記錄每一客戶(hù)端發(fā)送的命中包的驗(yàn)證失敗次數(shù);且服務(wù)端分別統(tǒng)計(jì)對(duì)每一客戶(hù)端發(fā)送的命中包的接收次數(shù);
步驟S53:服務(wù)端判斷是每一客戶(hù)端的接收次數(shù)是否達(dá)到最大限值,
當(dāng)某一客戶(hù)端的接收次數(shù)已達(dá)到最大限值,則服務(wù)端從錯(cuò)誤列表中獲取該客戶(hù)端的驗(yàn)證失敗次數(shù),并分別計(jì)算得到該客戶(hù)端的驗(yàn)證失敗次數(shù)與最大限值的比值,并將該比值與正常比例限值進(jìn)行比較;如果該比值大于正常比例限值時(shí),則將該客戶(hù)端列入黑名單,并清空該客戶(hù)端的接收次數(shù)和錯(cuò)誤列表中記錄的驗(yàn)證失敗次數(shù),并對(duì)該客戶(hù)端重新進(jìn)行接收次數(shù)和驗(yàn)證失敗次數(shù)的記錄;如果該比值小于正常比例限值時(shí),則清空該客戶(hù)端的接收次數(shù)和錯(cuò)誤列表中記錄的驗(yàn)證失敗次數(shù),并對(duì)該客戶(hù)端重新進(jìn)行接收次數(shù)和驗(yàn)證失敗次數(shù)的記錄;
及如果某一客戶(hù)端的接收次數(shù)還沒(méi)達(dá)到最大限值,則繼續(xù)對(duì)該客戶(hù)端的接收次數(shù)和驗(yàn)證失敗次數(shù)進(jìn)行統(tǒng)計(jì)直至其接收次數(shù)達(dá)到最大限值。
進(jìn)一步,還可以在比賽結(jié)束后根據(jù)異常的客戶(hù)端超時(shí)次數(shù)、不達(dá)標(biāo)次數(shù)和黑名單次數(shù)等相關(guān)數(shù)據(jù)驗(yàn)證該異常的客戶(hù)端是否使用外掛,再進(jìn)行后續(xù)處理。
實(shí)施例2
請(qǐng)參閱圖5,作為本發(fā)明緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法的另一種實(shí)施角度,以下以客戶(hù)端所在的角度對(duì)本發(fā)明進(jìn)行闡述,在客戶(hù)端角度上的緩解游戲服務(wù)端技能目標(biāo)檢測(cè)計(jì)算壓力的方法包括以下步驟:
步驟Sa:戰(zhàn)斗技能觸發(fā)后,客戶(hù)端接收由服務(wù)端發(fā)送的技能范圍和目標(biāo)數(shù)據(jù),并在所述技能范圍內(nèi)檢測(cè)與所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象,生成命中包;
步驟Sb:客戶(hù)端將命中包發(fā)送至服務(wù)端,由服務(wù)端對(duì)所述命中包進(jìn)行驗(yàn)證,并由服務(wù)端根據(jù)對(duì)命中包驗(yàn)證得到的驗(yàn)證結(jié)果判斷是否執(zhí)行技能操作。
為進(jìn)一步提高獲取技能目標(biāo)的準(zhǔn)確性,并更加貼合技能范圍,避免檢測(cè)疏漏,作為本發(fā)明一種更優(yōu)的技術(shù)方案,所述客戶(hù)端接收由服務(wù)端發(fā)送的技能范圍和目標(biāo)數(shù)據(jù)后,根據(jù)接收到的目標(biāo)數(shù)據(jù)繪制相應(yīng)的檢測(cè)框,并通過(guò)檢測(cè)框獲取與所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象,生成命中包。具體地,所述客戶(hù)端控制檢測(cè)框以恒定的速度沿戰(zhàn)斗技能作用方向前移,實(shí)現(xiàn)對(duì)技能范圍中與目標(biāo)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)對(duì)象的獲取。
在本實(shí)施例中,所述檢測(cè)框?yàn)橐粋€(gè)大小和形狀固定的圖形,其可為圓形、長(zhǎng)方形和環(huán)形。
為保證檢測(cè)的及時(shí)結(jié)束,避免超出技能范圍后的繼續(xù)檢測(cè)而引發(fā)的錯(cuò)誤,并避免檢測(cè)過(guò)長(zhǎng)而占用過(guò)多的資源,作為本發(fā)明一種更優(yōu)的技術(shù)方案,當(dāng)檢測(cè)框前移超出技能范圍時(shí),客 戶(hù)端生成一終止包,并發(fā)送至服務(wù)端,通知服務(wù)端結(jié)束檢測(cè);并由服務(wù)端進(jìn)一步驗(yàn)證檢測(cè)框是否超出技能范圍,如果是,則由服務(wù)端中斷技能,否則,則對(duì)處于技能范圍內(nèi)的目標(biāo)對(duì)象執(zhí)行技能操作。
另外,可結(jié)合實(shí)施例1和實(shí)施例2的進(jìn)行更好地理解和完善,在此就不再贅述。
相對(duì)于現(xiàn)有技術(shù),本發(fā)明通過(guò)客戶(hù)端檢測(cè)獲取技能目標(biāo),服務(wù)端只負(fù)責(zé)驗(yàn)證客戶(hù)端檢測(cè)得到的技能目標(biāo)的方法,從而減少服務(wù)端的運(yùn)算量和資源占用,由此有效地降低了服務(wù)端計(jì)算壓力和平衡服務(wù)端的其它計(jì)算操作。
本發(fā)明并不局限于上述實(shí)施方式,如果對(duì)本發(fā)明的各種改動(dòng)或變形不脫離本發(fā)明的精神和范圍,倘若這些改動(dòng)和變形屬于本發(fā)明的權(quán)利要求和等同技術(shù)范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變形。