コード例 #1
0
function UpdateLadderGamePoints($game_id, $logRep) {
  
  $logRep->logInfo('UpdateLadderGamePoints: game_id='.$game_id);
  
  $sql = "SELECT * FROM weblm_games WHERE game_id = '$game_id'";
  
  $logRep->logInfo('UpdateLadderGamePoints: sql='.$sql);
  
  $result = mysql_query($sql);
  $row = mysql_fetch_array($result);

  $draw = $row['isDraw'];
  $teamBonusOld = $row['teamBonus']; 
  $winpoints = $row['winpoints'];
  $winner = $row['winner'];
  $winner2 = $row['winner2'];
  $sixGameId = $row['sixGameId'];
  $winTeamId = $row['winnerteam'];
  $loseTeamId = $row['loserteam'];
  
  $teamBonusNewArray = getTeamBonus($winTeamId, $loseTeamId, $draw, $winpoints-$teamBonusOld);
  $teamBonusNew = $teamBonusNewArray['bonusWinner'];

  $logRep->logInfo('UpdateLadderGamePoints: teamBonusNewArray[msg]='.$teamBonusNewArray['msg'].' teamBonusOld='.$teamBonusOld.' teamBonusNew='.$teamBonusNew);

  if ($teamBonusOld != $teamBonusNew) {
    $teamBonusDiff = $teamBonusNew - $teamBonusOld;

    $sql = "UPDATE weblm_games SET winpoints=winpoints+$teamBonusDiff, ".
      "teamBonus='$teamBonusNew' WHERE game_id=$game_id";
    $result = mysql_query($sql);
    
    $logRep->logInfo('UpdateLadderGamePoints: sql='.$sql.' affected='.mysql_affected_rows());
        
    $pointsField = getPointsFieldForVersion('H'); // PES6 PC
        
    $sql = "SELECT $pointsField from weblm_players where name = '$winner'";
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);
    $pointsOld = $row[$pointsField];
    $pointsNew = $pointsOld + $teamBonusDiff;						
    if ($pointsNew < 0) {
      $pointsNew = 0;
    }
    
    $sql = "UPDATE weblm_players SET $pointsField = $pointsNew WHERE name = '$winner'";
    $result = mysql_query($sql);
    
    $logRep->logInfo('UpdateLadderGamePoints: sql='.$sql.' affected='.mysql_affected_rows());
    
    if (!empty($winner2)) {
      $sql = "SELECT $pointsField FROM weblm_players WHERE name = '$winner2'";
      $result = mysql_query($sql);
      $row = mysql_fetch_array($result);
      $pointsOld = $row[$pointsField];
      $pointsNew = $pointsOld + $teamBonusDiff;						
      if ($pointsNew < 0) {
        $pointsNew = 0;
      }
      
      $sql = "UPDATE weblm_players SET $pointsField=$pointsNew WHERE name='$winner2'";
      $result = mysql_query($sql);
      
      $logRep->logInfo('UpdateLadderGamePoints: sql='.$sql.' affected='.mysql_affected_rows());
    }
  }
}
コード例 #2
0
ファイル: editGame.php プロジェクト: kinj1987/evo-league
			else {
				$adminname = GetInfo($idcontrol,'admin_username');
				$comment = mysql_real_escape_string($comment);
				$sql = "UPDATE $gamestable set winnerresult = '$winnergoals', ".
					"loserresult = '$losergoals', ".
					"winnerteam = '$winnerteam', loserteam = '$loserteam', ".
					"fairness = '$fairness', ".
					"host = '$host', ".
					"comment = '$comment', ".
					"deleteReason = '$deleteReason', ".
					"deletedBy = '$adminname', ".
					"version = '$version' ".
					"WHERE game_id = '$gameId'";
				$result = mysql_query($sql);
				
				$teamBonusNewArray = getTeamBonus($winnerteam, $loserteam, $draw, $winpoints-$teamBonusOld);
				$teamBonusNew = $teamBonusNewArray['bonusWinner'];
				$msg.= $teamBonusNewArray['msg'];
				if ($teamBonusOld != $teamBonusNew) {
					$teamBonusDiff = $teamBonusNew - $teamBonusOld;
					$msg.= "<p>Team bonus changed: <b>$teamBonusOld</b> -&gt; <b>$teamBonusNew</b></p>";
					
					$sql = "UPDATE $gamestable SET winpoints = winpoints + $teamBonusDiff, ".
						"teamBonus = '$teamBonusNew' WHERE game_id = '$gameId'";
					$msg.= "<p>Updating game - SQL: $sql</p>";
					$result = mysql_query($sql);

					$pointsField = getPointsFieldForVersion($version);
					
					$sqlp = "SELECT $pointsField from $playerstable where name = '$winner'";
					$resultp = mysql_query($sqlp);
コード例 #3
0
ファイル: functions.php プロジェクト: kinj1987/evo-league
function calculateGamePointsReportGame(&$winner1, &$winner2, &$loser1, &$loser2, $winnerresult, $loserresult, &$winnerteam, &$loserteam, $ratingOldWinner1, $ratingOldWinner2, $ratingOldLoser1, $ratingOldLoser2, $pointsOldWinner1, $pointsOldWinner2, $pointsOldLoser1, $pointsOldLoser2, $type, $isDraw, &$comment, $sixGameId)
{
    $msg = "";
    $singleBonus = 1.4;
    $doublePenalty = 0.6;
    if ($type == "1on1") {
        $ratingoldwinnerAvg = $ratingOldWinner1;
        $ra2oldwinnerAvg = $pointsOldWinner1;
        $ratingoldloserAvg = $ratingOldLoser1;
        $ra2oldloserAvg = $pointsOldLoser1;
    } else {
        if ($type == "2on1") {
            $ratingoldwinnerAvg = round(($ratingOldWinner1 + $ratingOldWinner2) / 2);
            $ra2oldwinnerAvg = round(($pointsOldWinner1 + $pointsOldWinner2) / 2);
            $ratingoldloserAvg = $ratingOldLoser1;
            $ra2oldloserAvg = $pointsOldLoser1;
            $msg .= "<p>" . getPlayerLinkBold($winner1) . "&ndash;" . getPlayerLinkBold($winner2) . " points average: <b>{$ra2oldwinnerAvg}</b></p>";
        } else {
            if ($type == "1on2") {
                $ratingoldwinnerAvg = $ratingOldWinner1;
                $ra2oldwinnerAvg = $pointsOldWinner1;
                $ratingoldloserAvg = round(($ratingOldLoser1 + $ratingOldLoser2) / 2);
                $ra2oldloserAvg = round(($pointsOldLoser1 + $pointsOldLoser2) / 2);
                $msg .= "<p>" . getPlayerLinkBold($loser1) . "&ndash;" . getPlayerLinkBold($loser2) . " points average: <b>{$ra2oldloserAvg}</b></p>";
            } else {
                $ratingoldwinnerAvg = round(($ratingOldWinner1 + $ratingOldWinner2) / 2);
                $ra2oldwinnerAvg = round(($pointsOldWinner1 + $pointsOldWinner2) / 2);
                $ratingoldloserAvg = round(($ratingOldLoser1 + $ratingOldLoser2) / 2);
                $ra2oldloserAvg = round(($pointsOldLoser1 + $pointsOldLoser2) / 2);
                $msg .= "<p>" . getPlayerLinkBold($winner1) . "&ndash;" . getPlayerLinkBold($winner2) . " points average: <b>{$ra2oldwinnerAvg}</b></p>";
                $msg .= "<p>" . getPlayerLinkBold($loser1) . "&ndash;" . getPlayerLinkBold($loser2) . " points average: <b>{$ra2oldloserAvg}</b></p>";
            }
        }
    }
    $ratingdiff = getRatingDifference($ratingoldwinnerAvg, $ratingoldloserAvg);
    if ($isDraw > 0) {
        $ra2newwinneradd = getLadderPointsDraw($ra2oldloserAvg, $ra2oldwinnerAvg);
        $ra2newloserrem = getLadderPointsDraw($ra2oldwinnerAvg, $ra2oldloserAvg);
    } else {
        if ($ra2oldwinnerAvg > $ra2oldloserAvg) {
            $ra2newwinneradd = getLadderPointsBetterWon($ra2oldloserAvg, $ra2oldwinnerAvg);
            $ra2newloserrem = getLadderPointsBetterWon($ra2oldwinnerAvg, $ra2oldloserAvg);
        } else {
            if ($ra2oldwinnerAvg <= $ra2oldloserAvg) {
                $ra2newwinneradd = getLadderPointsBetterLost($ra2oldloserAvg, $ra2oldwinnerAvg);
                $ra2newloserrem = getLadderPointsBetterLost($ra2oldwinnerAvg, $ra2oldloserAvg);
            }
        }
    }
    if ($type == "2on1") {
        $penalty = round($ra2newwinneradd * $doublePenalty);
        $winPenalty = $ra2newwinneradd - $penalty;
        $msg .= "<p>{$type} win points penalty: <b>-{$winPenalty}</b></p>";
        $ra2newwinneradd = round($penalty);
        $ra2newloserrem = round($ra2newloserrem * $doublePenalty);
    } else {
        if ($type == "1on2") {
            $bonus = round($ra2newwinneradd * $singleBonus);
            $winBonus = $bonus - $ra2newwinneradd;
            $msg .= "<p>{$type} win points bonus: <b>+{$winBonus}</b></p>";
            $ra2newwinneradd = round($bonus);
            $ra2newloserrem = round($ra2newloserrem * $singleBonus);
        } else {
            if ($type == "2on2") {
                $ra2newwinneradd = round($ra2newwinneradd);
                $ra2newloserrem = round($ra2newloserrem);
            }
        }
    }
    // draw?
    if ($isDraw > 0) {
        $ratingdiff = 0;
        if ($ra2oldwinnerAvg > $ra2oldloserAvg) {
            // point winner(s) must go to the left side
            // names
            flip($winner1, $loser1);
            flip($winner2, $loser2);
            flip($pointsOldWinner1, $pointsOldLoser1);
            flip($pointsOldWinner2, $pointsOldLoser2);
            flip($winnerteam, $loserteam);
            if (is_null($sixGameId)) {
                // add reporter to comment
                $comment = "[reported by {$loser1}] " . $comment;
            }
        }
    }
    $cowardFactor = getCowardFactor($ra2oldwinnerAvg, $ra2oldloserAvg);
    if ($cowardFactor < 1) {
        $msg .= "<p>500+ ladder points each - win/lose points reduced by factor <b>{$cowardFactor}</b></p>";
        $ra2newwinneradd = round($ra2newwinneradd * $cowardFactor);
        $ra2newloserrem = round($ra2newloserrem * $cowardFactor);
    }
    $teamBonusArray = getTeamBonus($winnerteam, $loserteam, $isDraw, $ra2newwinneradd);
    $teamBonusWinner = $teamBonusArray['bonusWinner'];
    $ra2winneraddbonus = $ra2newwinneradd + $teamBonusWinner;
    if ($teamBonusWinner > 0) {
        $teamBonusWinnerDisplay = "(+" . $teamBonusWinner . " for team)";
    }
    $msg .= $teamBonusArray['msg'];
    // set new points amount
    $ra2newwinner = $pointsOldWinner1 + $ra2winneraddbonus;
    $msg .= "<p>" . getPlayerLinkBold($winner1) . " wins {$ra2winneraddbonus} {$teamBonusWinnerDisplay} for a total of {$ra2newwinner} points.</p>";
    if (!empty($winner2)) {
        $ra2newwinner2 = $pointsOldWinner2 + $ra2winneraddbonus;
        $msg .= "<p>" . getPlayerLinkBold($winner2) . " wins {$ra2winneraddbonus} {$teamBonusWinnerDisplay} for a total of {$ra2newwinner2} points.</p>";
    }
    $ra2newloserremL1 = 0;
    $ra2newloser = getLosePoints($pointsOldLoser1, $ra2newloserrem, $ra2newloserremL1);
    $msg .= "<p>" . getPlayerLinkBold($loser1) . " loses {$ra2newloserremL1} for a total of {$ra2newloser} points.</p>";
    if (!empty($loser2)) {
        $ra2newloserremL2 = 0;
        $ra2newloser2 = getLosePoints($pointsOldLoser2, $ra2newloserrem, $ra2newloserremL2);
        $msg .= "<p>" . getPlayerLinkBold($loser2) . " loses {$ra2newloserremL2} for a total of {$ra2newloser2} points.</p>";
    }
    $result = array();
    $result["ratingdiff"] = $ratingdiff;
    $result["pointsNewWinner1"] = $ra2newwinner;
    $result["pointsNewWinner2"] = $ra2newwinner2;
    $result["pointsNewLoser1"] = $ra2newloser;
    $result["pointsNewLoser2"] = $ra2newloser2;
    $result["addPointsWinner"] = $ra2winneraddbonus;
    $result["removePointsLoser1"] = $ra2newloserremL1;
    $result["removePointsLoser2"] = $ra2newloserremL2;
    $result["teamBonusWinner"] = $teamBonusWinner;
    $result["message"] = $msg;
    return $result;
}