L'opération à effectuer est (faisons le le plus clairement possible):
Citer:
$temps_regen_pm = $nb_pm_max / 24 * 60;
//Le temps de régénération d'un pm sur la base "total des pm régénérés en 24h"
$temps_écoulé = $date_derniere_connec - $date_connec_courante;
// Le temps écoulé depuis la dernière connexion, on en déduit le nombre de pm régénérés
$nb_pm_régénérés = $temps_écoulé / $temps_regen_pm;
// Division entière pour compter les pm régénérés
$temps_commencé_sur_pm_courant = $temps_écoulé % $temps_regen_pm;
// Le reste de la division entière correspond au temps non comptabilisé dans les pm "complet", donc vaut le temps commencé sur le pm en cours (qui est donc un pm "incomplet")
$temps_prochain_pm = $temps_regen_pm - $temps_commencé_sur_pm_courant;
// Temps restant
J'espère que c'est assez clair

Apparement le compteur fait pareil sauf qu'il contient un bug au début:
Citer:
$temps_regen_pm = $nb_pm_courant / 24 * 60;
Donc d'après le code, il effectue le calcul correctement mais en partant d'un temps de régénération faux. Dans ce cas la suite des opérations renvoit un résultat farfelu.
J'ai essayé et ça à l'air d'être ça.
PS: Logiquement, plus le nombre de pm courant est faible et plus le temps jusqu'au prochain pm à un maximum long. Quelqu'un avec 0 pm devrait montrer ce que dit le compteur.