• 03 Mai 2025, 00:22:54


Auteur Sujet: [AIDE] Régulation du PayTime  (Lu 1631 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne LiL SmokKe

  • *
  • Criminel
  • Messages: 37
    • Voir le profil
[AIDE] Régulation du PayTime
« le: 01 Novembre 2011, 11:08:45 »
Bonjour à tous.

Voilà, ça fait plusieurs jours que je cherche en vain pour trouver une solution a un problème de gestion du PayTime assez embêtant.

Je m'explique :
Ce que j'aimerais faire, c'est un PayTime (toutes les heures) qui soit aux alentours de 200$, histoire de pas avoir rapidement des joueurs avec des dizaines de millions de dollars. Aussi, je voyais quelque chose du genre : Tu travail -> Tu gagne de l'argent , tu ne travail pas -> 10$/heure. (Dans le but de développer le RP civil et autres.)

Dans les faits cela peut paraitre simple voir enfantin, mais quand je suis tombé nez-à-nez avec le code du public PayDay () j'ai commencé à prendre peur ;)

Voici mon code de PayDay : http://pastebin.gtaonline.fr/pastebin.php?show=1174

On m'avais déjà donnée certaines pistes en lisant des topics par-ci par-là sur le forum. Mais aucunes concrètes.

D'avance merci de vos réponse.
Si elles peuvent même m'aider c'est encore mieux ;)

Bonne Journée,
Lil SmokKe
Signature hors-normes : 600*150px maximum.

vincentdu90

  • Invité
Re : [AIDE] Régulation du PayTime
« Réponse #1 le: 01 Novembre 2011, 14:41:17 »
Salut ,

J'ai pas bien compris tu veux modifier ton code Payday() déjà présent ou en créer un nouveau ?

Vincent

Hors ligne LiL SmokKe

  • *
  • Criminel
  • Messages: 37
    • Voir le profil
Re : [AIDE] Régulation du PayTime
« Réponse #2 le: 01 Novembre 2011, 22:44:46 »
Salut.

Je pensais le modifier.
Mais si la seul solution que j'ai est d'en créer un autre, alors pas de souci je le ferais.
Ceci dépend de ce que vous me conseillerez ou non de faire.

D'avance Merci.
Lil SmokKe
Signature hors-normes : 600*150px maximum.

vincentdu90

  • Invité
Re : [AIDE] Régulation du PayTime
« Réponse #3 le: 01 Novembre 2011, 22:57:13 »
Et bien tu peux toujours le modifier , mais dans ce cas il va falloir être vigilant car en modifiant une partie d'un GM ça peut affecter le reste de ce dernier .
Sinon pour ton système de PayTime , il doit y avoir une variable du genre "PlayerInfo[pJob]" ou similaire donc tu peux déjà t'en servir pour régler la paye .

Vincent
« Modifié: 01 Novembre 2011, 23:05:43 par vincentdu90 »

Hors ligne LiL SmokKe

  • *
  • Criminel
  • Messages: 37
    • Voir le profil
Re : [AIDE] Régulation du PayTime
« Réponse #4 le: 02 Novembre 2011, 10:59:39 »
Salut.

Je sais, et j'ai pris conscience du fait que tout pouvais être affecté.
Seulement là il s'agit simplement de la partie "argent" du PayTime. En clair, les choses qui doivent être reload toute les heures via le PayTime le seront toujours.

J'ai cherché un peu dans certains autres GM et j'ai trouvé ceci dans U2C-RP (Merci Foo).
[spoiler="Code"]
	
	
	
	
if(
PlayerInfo[i][pPayDay] >= 5)
	
	
	
	
{
	
	
	
	
    
Tax += TaxValue;//Should work for every player online
	
	
	
	
    
PlayerInfo[i][pAccount] -= TaxValue;
	
	
	
	
	
new 
checks PlayerInfo[i][pPayCheck] / 5;
	
	
	
	
	
checks += (random(1)+10) + PlayerInfo[i][pLevel]*(5);
	
	
	
	
	
new 
member PlayerInfo[i][pMember],leader PlayerInfo[i][pLeader],rank PlayerInfo[i][pRank];
	
	
	
	
	
if(
member == || leader == 1// LSPD
	
	
	
	
	
{
	
	
	
	
	
    if(
rank == 1)
	
	
	
	
	
        
checks += 45+random(15);
	
	
	
	
	
    else if(
rank == 2)
	
	
	
	
	
        
checks += 70+random(15);
	
	
	
	
	
    else if(
rank == 3)
	
	
	
	
	
        
checks += 100+random(15);
	
	
	
	
	
    else if(
rank == 4)
	
	
	
	
	
        
checks += 140+random(15);
	
	
	
	
	
    else if(
rank == 5)
	
	
	
	
	
        
checks += 170+random(15);
	
	
	
	
	
    else if(
rank == 6)
	
	
	
	
	
        
checks += 200+random(15);
	
	
	
	
	
}
[/spoiler]

Donc d'après ce que j'ai compris, une fois que le joueur à dépassé les 5 PayTime, il disposera d'un salaire varient pour chaque rang qu'il occupera et pour chaque faction ( Ex : Chef LSPD = 200+ une valeur aléatoire entre 0 et 15 ? )

Voilà,
D'avance Merci.
Signature hors-normes : 600*150px maximum.

vincentdu90

  • Invité
Re : [AIDE] Régulation du PayTime
« Réponse #5 le: 02 Novembre 2011, 12:16:43 »
Attention à l'opérateur "+=" .
En effet :
x += y
équivaut à
x = x+y

Du moins il me semble

Donc ici ça donnerait par exemple :
checks += 45+random(15);
équivaut à
checks = checks + (45+random(15));

PS : Source

Hors ligne LiL SmokKe

  • *
  • Criminel
  • Messages: 37
    • Voir le profil
Re : [AIDE] Régulation du PayTime
« Réponse #6 le: 02 Novembre 2011, 13:20:08 »
D'accord.

Donc si j'ai bien compris :

Salaire = Salaire + 200 + random(15) ?

C'est un peu bête dans l'absolu, mais bon. Si c'est ça, je suppose qu'il y a une variable "checks" quelque part et qu'il est possible de la modifier.
Signature hors-normes : 600*150px maximum.

Hors ligne iMax

  • *
  • Tueur
  • Messages: 76
    • Voir le profil
Re : [AIDE] Régulation du PayTime
« Réponse #7 le: 02 Novembre 2011, 14:12:13 »
Pourquoi rajouter random ?

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : [AIDE] Régulation du PayTime
« Réponse #8 le: 02 Novembre 2011, 14:24:04 »
Oui, il y a une variable checks, juste quelques lignes plus haut :
new checks = PlayerInfo[i][pPayCheck] / 5;
checks += (random(1)+10) + PlayerInfo[i][pLevel]*(5);

Le calcul est un peu compliqué mais si on l'éclate pour un joueur de rang 5 par exemple ça nous donne :

checks = PlayerInfo[i][pPayCheck] / 5 + random(1) 10 + PlayerInfo[i][pLevel]*5 + 170 + random (15);
La dernière partie du salaire (2 derniers termes)  est conditionnée par le faite que le joueur est membre ou leader.

Donc, si tu veux que les joueurs "civils" gagnent quand même un salaire tu peux modifier comme suit :

new checks = PlayerInfo[i][pPayCheck] / 5;
checks += (random(1)+10) + PlayerInfo[i][pLevel]*(5);
devient
new checks = 10; // 10$ de l'heureCeci correspond à la partie fixe du salaire donnée à tous les joueurs.

Les lignes du style checks += XX + random (15); correspondent à la partie concernant l'appartenance à un groupe et le rang que le joueur a dans ce groupe.
Tu peux changer le montant de cette partie en modifiant les valeurs correspondantes à XX.
Et libre à toi de supprimer le random (15).

++
Syg

Courtesy of GtaManiac

Hors ligne LiL SmokKe

  • *
  • Criminel
  • Messages: 37
    • Voir le profil
Re : [AIDE] Régulation du PayTime
« Réponse #9 le: 02 Novembre 2011, 16:19:56 »
Merci Syg pour ta brillante explication. Que j'ai somme toute mis du temps a comprendre, et relus plusieurs fois. Enfin ;)

Si je récapè-pette tout :
 - Je suis un peu abruti pour ne pas avoir vue la variable checks juste au dessus.

Pour disposer d'un salaire fixe (à savoir 10$ de RMI pour une personne n'ayant aucuns travail) je dois modifier la variable check comme dans le dernier exemple que tu m'a cité.
Du coup, pour que les personnes disposant d'un travail et/ou d'une faction gagnent plus je doit faire qqch de se type :
[spoiler="PayTime"]
Citer
new checks 10// Modification de la variable CHECK pour avec 10$ de plancher
...
new 
member PlayerInfo[i][pMember],leader PlayerInfo[i][pLeader],rank PlayerInfo[i][pRank];
if(
member == || leader == 1// Exemple de la LSPD
{
    if(
rank == 1)
        
checks += 45+random(15); // 10 + (45+random(15))
    
else if(rank == 2)
        
checks += 70+random(15);
    else if(
rank == 3)
        
checks += 100+random(15);
    else if(
rank == 4)
        
checks += 140+random(15);
    else if(
rank == 5)
         
checks += 170+random(15);
    else if(
rank == 6)
         
checks += 200+random(15);
}
[/spoiler]

Merci encore de ton/votre aide.
Bonne Journée.
Signature hors-normes : 600*150px maximum.

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : [AIDE] Régulation du PayTime
« Réponse #10 le: 03 Novembre 2011, 21:52:39 »
C'est exactement ça.
Comme quoi, tu n'es pas aussi abruti que tu ne le penses  ;).

++
Syg
Courtesy of GtaManiac