shawenguan 1 anno fa
parent
commit
30d32e0136
1 ha cambiato i file con 63 aggiunte e 7 eliminazioni
  1. 63 7
      Scripts/168/pksPlanHelper.js

+ 63 - 7
Scripts/168/pksPlanHelper.js

@@ -352,7 +352,7 @@ async function checkLongDragonNotify(pksPlanListData, pksPlanItemData) {
 		let oneCostB = Math.floor(lotteryCostB / 4);
 		let oneCostA = Math.floor(lotteryCostA / 5);
 		//let buySeriesNum = Math.floor(Math.log2(oneCostC)) + 1;
-		let series10Cost = 521;
+		let series10Cost = 512;//Math.pow(2,9)
 		if (oneCostC >= series10Cost) {
 			if (!checkHitPrize(element.preDrawCode, element.planC, 0)) {
 				failItemC = element;
@@ -477,6 +477,53 @@ function checkHitPrize(drawCodeStr, planStr, posNum = 0) {
 	return false;
 }
 
+function calcPlanMatchCount(planArr, planStr){
+	let mateCount = 0;
+	for(let i=0; i < planArr.length; i++){
+		if(planStr.indexOf(planArr[i]) > -1){
+			mateCount+=1;
+		}
+	}
+	return mateCount;
+}
+
+function analyseBetProbability(planType, pksPlanItemData, pksPlanListData){
+	let probability = 100;
+	let planC = pksPlanItemData.planC;
+	let planB = pksPlanItemData.planB;
+	let planA = pksPlanItemData.planA;
+	let planCArr = planC.split(',');
+	let planBArr = planB.split(',');
+	let planAArr = planA.split(',');
+	let maxMateCount = 7;
+	let curMateCount = 0;
+	if(planType == 'A'){
+		maxMateCount = Math.min(planAArr.length, planBArr.length) + Math.min(planAArr.length, planCArr.length);
+		curMateCount = calcPlanMatchCount(planAArr, planB) + calcPlanMatchCount(planAArr, planC);
+	}else if(planType == 'B'){
+		maxMateCount = Math.min(planBArr.length, planAArr.length) + Math.min(planBArr.length, planCArr.length);
+		curMateCount = calcPlanMatchCount(planBArr, planA) + calcPlanMatchCount(planBArr, planC);
+	}else{
+		maxMateCount = Math.min(planCArr.length, planAArr.length) + Math.min(planCArr.length, planBArr.length);
+		curMateCount = calcPlanMatchCount(planCArr, planA) + calcPlanMatchCount(planCArr, planB);
+	}
+	let factor1 = 25*(curMateCount/maxMateCount);
+
+	let oneCostC = Math.floor(pksPlanItemData.lotteryCostC/3);
+	let oneCostB = Math.floor(pksPlanItemData.lotteryCostB/4);
+	let oneCostA = Math.floor(pksPlanItemData.lotteryCostA/5);
+	let turnNumC = Math.floor(Math.log2(oneCostC));
+	let turnNumB = Math.floor(Math.log2(oneCostB));
+	let turnNumA = Math.floor(Math.log2(oneCostA));
+
+	let maxTurnCount = turnNumA*3;
+	let factor2 = 25*(turnNumC+turnNumB+turnNumA)/maxTurnCount;
+
+	probability = probability - factor1 - factor2;
+
+	return probability;
+}
+
 async function checkPlanCBuyNotify(pksPlanItemData, pksPlanListData) {
 	let initCost = 1;
 	let turnCount = magicJS.data.read('168_PksPlanDrawTurnCountC', 0);
@@ -518,8 +565,11 @@ async function checkPlanCBuyNotify(pksPlanItemData, pksPlanListData) {
 	}
 
 	if (isPlanLotteryAutoBet()) {
-		let maxBetAmount = getPlanLotteryMaxBetAmount();
-		let betRet = await tryDragonBet(preDrawIssue, planC, turnOneCost, maxBetAmount);
+		let probability = analyseBetProbability('C', pksPlanItemData, pksPlanListData);
+		if(probability >= 70){
+			let maxBetAmount = getPlanLotteryMaxBetAmount();
+			let betRet = await tryDragonBet(preDrawIssue, planC, turnOneCost, maxBetAmount);
+		}
 	}
 
 	magicJS.notification.appendNotifyInfo(tipsMsg);
@@ -568,8 +618,11 @@ async function checkPlanBBuyNotify(pksPlanItemData, pksPlanListData) {
 	}
 
 	if (isPlanLotteryAutoBet()) {
-		let maxBetAmount = getPlanLotteryMaxBetAmount();
-		let betRet = await tryDragonBet(preDrawIssue, planB, turnOneCost, maxBetAmount);
+		let probability = analyseBetProbability('B', pksPlanItemData, pksPlanListData);
+		if(probability >= 70){
+			let maxBetAmount = getPlanLotteryMaxBetAmount();
+			let betRet = await tryDragonBet(preDrawIssue, planB, turnOneCost, maxBetAmount);
+		}
 	}
 
 	magicJS.notification.appendNotifyInfo(tipsMsg);
@@ -618,8 +671,11 @@ async function checkPlanABuyNotify(pksPlanItemData, pksPlanListData) {
 	}
 
 	if (isPlanLotteryAutoBet()) {
-		let maxBetAmount = getPlanLotteryMaxBetAmount();
-		let betRet = await tryDragonBet(preDrawIssue, planA, turnOneCost, maxBetAmount);
+		let probability = analyseBetProbability('A', pksPlanItemData, pksPlanListData);
+		if(probability >= 70){
+			let maxBetAmount = getPlanLotteryMaxBetAmount();
+			let betRet = await tryDragonBet(preDrawIssue, planA, turnOneCost, maxBetAmount);
+		}
 	}
 
 	magicJS.notification.appendNotifyInfo(tipsMsg);