D'après ce que tu as dit, toutes les heures on gagne un point de respect et tous les 4 points, on gagne un niveau.
Donc toutes les 4 heures, on gagne un niveau.
Si le joueur a joué pendant 66 heures, il sera donc bien niveau 16 (66/4).
Par contre, à toi de limiter le niveau du joueur si il dépasse le niveau max.
Par exemple, si dans ton mode on ne peut pas dépasser le niveau 10 (niveau max), on atteindra ce niveau en 40 heures de jeu. Ensuite, on ne progressera plus.
Maintenant, tu peux compliquer la chose en introduisant une progression exponentielle.
Pour passer du niveau 0 au niveau 1, il faut 4 heures,
Pour passer du niveau 1 au niveau 2 il faut 6 heures (donc 10 heures en tout pour passer du niveau 0 au niveau 2),
Pour passer du niveau 2 au niveau 3 il faut 9 heures (donc 19 heures en tout pour passer du niveau 0 au niveau 3),
A chaque fois, on rajoute la moitié du temps qu'il faut pour le niveau précédent.
Le calcul pour déterminer le niveau en fonction du temps de jeu se complique:
On a à faire à une suite géométrique : Un+1 = k.Un (dans notre cas, k=1.5 et U0=4)
Soit Un=kn.U0
Pour trouver n en fonction de Un il suffit d'appliquer la formule suivante (je vous passe les détails du calcul) :
n=E((ln (Un)-ln(U0))/ln(k)) où E() est la fonction partie entière
NB : Voir l'image pour une meilleur présentation
Exemple pour un temps de 66 heures :
n=E((ln(66) - ln(4)/ln(1.5))=E(6.9)=6
Le joueur sera donc niveau 6.
Si on veut que les niveaux "monte" plus vite, il suffit de diminuer le valeur de k. Inversement, on peut augmenter la valeur de k pour que le joueur prenne moins de niveaux.
Exemple pour 66 heures avec k=1.2 on trouve n=15
Exemple pour 66 heures avec k=1.8 on trouve n=4
Attention, k doit être strictement supérieur à 1.
EDIT : Dans mes formules, j'utilise le logarithme népérien (ln) mais il est équivalent d'utiliser le logarithme décimal (log).
Sous SAMP, il faut utiliser la fonction floatlog avec un seul paramètre (ça fait un logarithme décimal par défaut).
++
Syg