Een speler moet eenheden kunnen aanmaken door een aantal in te vullen. Dit gaat een tabel in met de volgende query:
INSERT INTO $config[DB_Prefix]_Kazerne (Username,Stad_ID,Eenheid,Eind_Tijd,Totaal_Eenheden) VALUES
('$user','$Stad_ID','Ruiter',NOW() + INTERVAL %d MINUTE,'$E_1_A')
Waarbij $config[DB_Prefix] de tabel prefix is, $user de gebruikersnaam, $Stad_ID de stad, Ruiter de eenheid en $E_1_A de eenheden * de tijd per eenheid.
Dit werkt prima. Stel, een speler voert 10 in bij Ruiter (5 minuten), komen er netjes 50 minuten bij.
Maar, nu is het de bedoeling, dat als er 5 minuten om zijn, dat er 1 Ruiter bijkomt. Hiervoor had ik het volgende plan:
Plan
Gegevens in de tabel:
- Het aantal eenheden
- De eindtijd
(En dan stad id, eenheden naam etc.)
De eindtijd - de huidige tijd, geeft bijvoorbeeld 45. Het aantal eenheden is 10. Dan zou het systeem moeten zien dat dat één eenheid is. (Tijden staan in een array, dat is geen probleem). Dan update de tabel met een eenheid erbij bij de stad, en een eenheid eraf bij de eenheden in de maak. Stel, we zijn bij 40 minuten, staat er 9 eenheden, wordt 8, tabel met eenheden gaat 1 omhoog, etc.
Mijn bedoeling voor de de minuten uit rekenen hoeveel er nog moeten was dit:
<?php
// Tijd van de eenheid opvragen
$EH = $rows['Eenheid'].'_Tijd_Config';
// Aantal eenheden keer de tijd
$End = $rows['Totaal_Eenheden'] * $WDE[$EH];
// De tijd in minuten zetten zodat deze in een interval kan
$E = $End.' minutes';
// Huidige datum creëren
$date = date_create('NOW');
// Formaat aanpassen
$news = $date->format('Y-m-d H:i:s');
// Interval maken met het aantal minuten
$none = date_add($date, date_interval_create_from_date_string($E));
// Uur, minuten, secondes scheiden om een mktime toe te passen
$t1 = $none->format('H');
$t2 = $none->format('i');
$t3 = $none->format('s');
$t4 = $date->format('H');
$t5 = $date->format('i');
$t6 = $date->format('s');
// Tijden maken
$tweedetijd = mktime($t1,$t2,$t3,date("m"),date("d"),date("Y"));
$eerstetijd = mktime($t4,$t5,$t6,date("m"),date("d"),date("Y"));
// Eindtijd
$verschil = $eerstetijd - $tweedetijd;
?>
$verschil geeft 0 aan, dat werkt dus niet. Wat doe ik verkeerd? Tevens: Hoe kan ik controleren of er een eenheid is aangemaakt?
Alvast bedankt.