Seit einiger Zeit bin ich dabei den F1 Mod und den Cash Mod zusammenzubringen. Das klappt bisher auch ganz gut. Aktuell hänge ich jedoch bei dem Problem der korrekten Berechnung des Gewinns fest und bräuchte bitte mal wieder einen größeren Denkanstoß.
Ich habe folgendes bisher umgesetzt:
Code: Alles auswählen
//
// Race Bet
//
if ($formel_config['show_race_bet'] == '1')
{
$sql = "SELECT COUNT(*) AS count FROM " . FORMEL_RACES_TABLE;
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not query formel_races table", "Error", __LINE__, __FILE__, $sql);
}
$total_races = $db->sql_fetchfield("count", 0, $result); // Anzahl der Rennen pro Saison
$sql = "SELECT COUNT(*) AS count FROM " . USER_GROUP_TABLE . " WHERE group_id=106";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not query formel_races table", "Error", __LINE__, __FILE__, $sql);
}
$total_tippers = $db->sql_fetchfield("count", 0, $result); // Anzahl der Tipper
$race_place_1 = $formel_config['race_place_1']; // Gewinn vom gesamten Renneinsatz in Prozent für den 1. Platz
$race_place_2 = $formel_config['race_place_2']; // Gewinn vom gesamten Renneinsatz in Prozent für den 2. Platz
$race_place_3 = $formel_config['race_place_3']; // Gewinn vom gesamten Renneinsatz in Prozent für den 3. Platz
$bet_race_sum = ($formel_config['race_bet'] * $total_tippers); // Jackpot für das aktuelle Rennen
$bet_race_place_1 = (($bet_race_sum/'100') * $race_place_1); // Gewinn für den 1. Platz aktuelles Rennen
$bet_race_place_2 = (($bet_race_sum/'100') * $race_place_2); // Gewinn für den 2. Platz aktuelles Rennen
$bet_race_place_3 = (($bet_race_sum/'100') * $race_place_3); // Gewinn für den 3. Platz aktuelles Rennen
$bet_season_sum = ($formel_config['race_season'] * $total_races * $total_tippers); // Jackpot für die Saison
$bet_season_place_1 = (($bet_season_sum/'100') * $race_place_1); // Gewinn für den 3. Platz für die Saison
$bet_season_place_2 = (($bet_season_sum/'100') * $race_place_2); // Gewinn für den 2. Platz für die Saison
$bet_season_place_3 = (($bet_season_sum/'100') * $race_place_3); // Gewinn für den 3. Platz für die Saison
}
Das ganze habe ich dann in die Platzberechnung pro Rennen eingebunden:
Code: Alles auswählen
while ($row = $db->sql_fetchrow($result))
{
$real_rank++;
if($row['tipp_points'] != $previous_points)
{
$rank = $real_rank;
$previous_points = $row['tipp_points'];
}
if ($rank === 1)
{
$rank_img = '<img src="' . $first_rank . '" alt="1. Platz" title="1. Platz" />';
$tipper_won_race = $bet_race_place_1; // Gewinn für den 1. Platz
}
elseif ($rank === 2)
{
$rank_img = '<img src="' . $secound_rank . '" alt="2. Platz" title="2. Platz" />';
$tipper_won_race = $bet_race_place_2; // Gewinn für den 2. Platz
}
elseif ($rank === 3)
{
$rank_img = '<img src="' . $third_rank . '" alt="3. Platz" title="3. Platz" />';
$tipper_won_race = $bet_race_place_3; // Gewinn für den 3. Platz
}
else
{
$rank_img = $rank;
$tipper_won_race = '0';
}
$tipp_user_row = get_userdata($row['tipp_user']);
$tipp_username = $tipp_user_row['username'];
$tipp_userpoints_race = $row['tipp_points'];
$template->assign_block_vars('top_tippers_race', array(
'RANK_RACE' => $rank_img,
'TIPPER_NAME_RACE' => $tipp_username,
'TIPPER_POINTS_RACE' => $tipp_userpoints_race,
'TIPPER_WON_RACE' => $tipper_won_race // Höhe des jeweiligen Gewinns für das aktuelle Rennen
)
);
}
$db->sql_freeresult($result);
Korrekt wäre es so:
Der 1. Platz bekommt 50%, der 2. Platz 30% und der 3. Platz 20% des Gewinns. Gibt es zwei 1. Plätze, entfällt der 2. Platz, der Gewinn für den 1. und 2. Platz wird addiert und durch 2 geteilt. D. h. beide 1. Plätze bekommen je 40%. Gibt es drei oder mehr 1. Plätze werden die 100% des Gewinns entsprechend geteilt. Dito das ganze für den 2. Platz. Betrifft dies den 3. Platz teilen sich halt alle dessen 20%.
Wo ist mein Denkfehler?
Bye