azezaea
This commit is contained in:
parent
8c704f50a7
commit
fe290834c3
3 changed files with 51 additions and 0 deletions
|
@ -15,6 +15,7 @@ CREATE TABLE sub_events (
|
|||
sub_event_type INT(2) COMMENT '0: score, 1: speedrun(time based score)',
|
||||
start_time INT(11) DEFAULT 0,
|
||||
multiplier INT(11) DEFAULT 1,
|
||||
http_password VARCHAR(255) DEFAULT NULL,
|
||||
PRIMARY KEY (event_code, sub_event_code)
|
||||
)
|
||||
SQL;
|
||||
|
|
48
httpCallBack.php
Normal file
48
httpCallBack.php
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
header('Content-Type: application/json');
|
||||
if (!isset($_POST["password"], $_POST["uuid"], $_POST["event_code"], $_POST["sub_event_code"])) {
|
||||
die(json_encode(["status" => "error", "message" => "Invalid Request"]));
|
||||
}
|
||||
require "config.php";
|
||||
$uuid = $_POST["uuid"];
|
||||
$event_code = $_POST["event_code"];
|
||||
$sub_event_code = $_POST["sub_event_code"];
|
||||
$password = $_POST["password"];
|
||||
$event_data = getEventData($con, $event_code);
|
||||
if ($event_data === false) {
|
||||
die(json_encode(["status" => "error", "message" => "Event not found"]));
|
||||
}
|
||||
$sub_event_data = getSubEventData($con, $event_code, $sub_event_code);
|
||||
if ($sub_event_data === false) {
|
||||
die(json_encode(["status" => "error", "message" => "Sub Event not found"]));
|
||||
}
|
||||
// Password is a password sent from the client to register his result, it's mainly used for code events where participants have to find a password with their code and then submit it to the server to register their result
|
||||
if ($sub_event_data["http_password"] !== $password) {
|
||||
die(json_encode(["status" => "failed", "message" => "Invalid Password Try Again"]));
|
||||
}
|
||||
$player_res = mysqli_query($con, "SELECT * FROM `event_players` WHERE player_id='$uuid'");
|
||||
$player = mysqli_fetch_assoc($player_res);
|
||||
if ($player === false) {
|
||||
die(json_encode(["status" => "error", "message" => "Player not found"]));
|
||||
}
|
||||
$score = 0;
|
||||
if ($sub_event_data["sub_event_type"] == 0) {
|
||||
$score = 10;
|
||||
} elseif ($sub_event_data["sub_event_type"] == 1) {
|
||||
$score_time_req = time();
|
||||
$start_time = $sub_event_datas["start_time"];
|
||||
$timelength = $score_time_req - $start_time;
|
||||
$get_position_in_classment = mysqli_query($con, "SELECT score_time FROM `scores` WHERE event_code='$event_code' AND sub_event_code='$sub_event_code' AND score_time<$score_time ORDER BY score_time ASC");
|
||||
$position_in_classment = mysqli_num_rows($get_position_in_classment) + 1;
|
||||
$bestscore = $timelength;
|
||||
if ($position_in_classment != 1) {
|
||||
$gpic = $get_position_in_classment->fetch_all()[0][0];
|
||||
$bestscore = $gpic[0][0];
|
||||
}
|
||||
$score = (20000 * $bestscore) / ($timelength * $position_in_classment);
|
||||
$score = intval($score);
|
||||
}
|
||||
$query = ("INSERT INTO `scores` (event_code, sub_event_code, player_id, score, score_time) VALUES ('$event_code', '$sub_event_code', '$player_id', $score, $score_time) ON DUPLICATE KEY UPDATE score=$score, score_time=$score_time");
|
||||
mysqli_query($con, $query);
|
||||
|
||||
die(print_r(json_encode(["status" => "success", "message" => "Score Registered"])));
|
|
@ -107,6 +107,8 @@ if (isset($_GET["admin"])) {
|
|||
<option value=0>Score</option>
|
||||
<option value=1>Speedrun</option>
|
||||
</select></label>
|
||||
<label for=sub_event_multiplier>Global score multiplier:<input type=number name=sub_event_multiplier id=sub_event_multiplier></label>
|
||||
<label for=sub_event_http_password>Event HTTP Request password:<input type=text name=sub_event_http_password id=sub_event_http_password></label>
|
||||
<input type=submit value=Valider>
|
||||
</form>
|
||||
<?php
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue