GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: TheAlex86 le 02 Novembre 2009, 01:52:04
-
Bien le bonsoir je voudrai savoir si il existe un prog qui calculerai le niveau rapport au heure de jeu
sur base du systeme de niveau du godfather?
merci beaucoup.
-
pardon?
essaie de reformuler c presque aussi difficile à comprendre qu'un proverbe de Jean Lapierre
++Sim++
-
oui c'est vrai je reformule
donc: je cherche une calculateur
sachant que pour passer du niveau 1 au niveau 2 il faut 8 point de respect qu'on a 1 point de respect par heure==> on sais que celui qui a 8heures de jeu sais être au plus haut au niveau 2
pour le niveau 3 c'est 12h par exemple celui qui a 11h de jeu il sais etre lvl 2 mais pas 3 et celui qui a 13h sais etre lvl 3 ou moin.
Et j'aimerai un calculateur qui en rentrant le nombre d'heure de jeu me calcule le niveau max au quel il peu etre.
es-ce plus Clair?
-
Salut,
Divise le nombre d'heures par 4 et le résultat sera le niveau.
++
-
a pas con, merci :)
Double post
a pars que ça marche pour le lvl 2 mais plus apres Car le mec qui a 66 hereu de jeu
Si on diviise 66/4 = 16.5
imposible qu'en 66h de jeu il ai le lvl 16,....
-
C'est tout les combien d'heures de jeu que le niveau change ?
-
Salut,
tu peut utiliser un truc de ce genre:
GetMaxLevel(playerid)
{
new hour = ...;//temps en heures jouées
new tmp = 8;
while(tmp < hour)
{
tmp += 4;//on augmente de 4 la valeur en temps pour monter d'un niveau à chaque nouveau niveau
hour -= tmp;
}
return floatround((tmp - 4)/4, floatround_floor);
}
Il y a peut-être quelques ajustements à faire, mais ça devrait être approximativement le résultat recherché
par contre arrange toi pour comprendre le code
++Sim++
-
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
-
Y a un truc qu il a oublier de preciser c 'est que chaque niveau n as pas 4 point de respect max
par exemple pour monter au lvl 2 il faut 4 pts de respect mais pour le niveau 3 il faut 12 etc .... je connais pas le nb precis de respect qu il faut mais c' est un truc de ce genre
-
lol ouais si c'est tt les 4h
exemple de niveau 1 a 2 c'ets 8h
de 2 a 3 c'ets 12
il doit y avoir un exponentiel j'imagine mais lequel,...
a chaque foi qu'un joueur atteint un niveau les point de respect revienne a zero. et donc du niveau 1 a deux il n'y a pas 4h mais 16 h de jeu
c'est le code base de Godfather pour les niveau.
et mon but c'est pas de limiter les niveau mais de calculer quel niveau devrai avoir un joueur avec xh de jeu admeton s'il a 100 h de jeu quel niveau devrai t'il etre.
-
désolé du double post mais a force d'y pensé j'ai réfléchi et trouver les formule adéquoite. un pti truc sympas je vous le post comme ça vous pourrez en profité ;)
http://www.megaupload.com/?d=XPFKMADX (http://www.megaupload.com/?d=XPFKMADX)
Voila bonne journée