Faire gagner un %age d'une cagnote

Résolu
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007 - 22 nov. 2007 à 22:07
 cs_wims - 29 nov. 2007 à 18:53
Bonjour, je suis actuellement en train de completer un jeu "casino" (by juky) et j'aimerais pouvoir faire gagner aux joueurs un certain poucentage d'une cagnote seulement je ne sais pas comment m'y prendre.

Exemple:

1: la cagnote est de 100 000 points.
le joueur gagne 10% de la somme total de la cagnote (soit 1 000 points)

2: la cagnote est de 100 points.
Le joueur gagne 10% de la somme total de la cagnote (soit 1 point)

Pourriez vous me dire s'il vous plais comment je dois m'y prendre pour calculer le poucentage de la somme total de la cagnote s'il vous plais ?

Merci.

31 réponses

cs_KiNdErMaXi Messages postés 1052 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 30 novembre 2009 2
22 nov. 2007 à 22:50
Salut,
Si c'est juste le calcul qui t'ennuie, c'est tout bête !
10% d'une valeur = $calc(valeur/10)

[irc://irc.voila.fr/kinder Kinder_Maxi]
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
23 nov. 2007 à 12:35
en règle générale, a % de b est noté comme ceci : $calc(b * a / 100)


remarque : le symbole % existe, mais il est utilisé pour les modulo (restes de divisions entières)


 
3
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
23 nov. 2007 à 18:53
merci de votre aide mais il y a autre chose qui me chifonne

la somme de la cagnote est notée dans les variables sous la forme:

%casinouserepargnecagnote 8000

Et pour calculer et faire gagner les 10% de la cagnote voici ce que j'ai fais:

    if (%casinosysvaria == 18) { msg $chan �3;12FORMIDABLE $nick , tu viens de gagner 10% de la cagnote, soit $calc(%casinouserepargnecagnote/10) | inc %casinouserpoints $+ $nick $calc(%casinouserepargnecagnote/10) }

Hors ca ne fonctionne pas. :(

Ca m'affiche:

[18:39:37] -» +@LiNoX «- FORMIDABLE Kinou49 , tu viens de gagner 10% de la cagnote, soit

Pourriez vous me dire s'il vous plais comment gerer ca ?

Merci.
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
23 nov. 2007 à 19:12
sépare le / du nom de ta variable ainsi que tous les opérateurs en général
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
24 nov. 2007 à 17:36
ok merci je vais essayer je te tiens au courant :)
3
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
24 nov. 2007 à 17:53
Merci beaucoup ca marche :)

maintenant faut que je prévois une remise a zero de la cagnote toutes les semaines sinon j'te dis pas les sommes qui vont etre gagnés :D

merci a tous !!! :)
3
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
25 nov. 2007 à 13:26
Nouveau  petit probleme justement sur la remise a zero

j'ai codé ca:

if ($day == monday) { msg #M4ine-&-l0ire �2;�3;Remise à Zéro de la cagnotte ! | set %casinouserepargnecagnotte 0 }

seulement je ne sais pas comment lancer la remote sur un changement de jour par exemple ou sur un heure précise.

pourriez vous m'aider ? merci.
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
25 nov. 2007 à 13:38
Ca pourrait dans un premier temps donner ça :

alias minuit {
  .timer 1 61 .timerminuit 0:00 1 1 minuit
  if ($day == Monday) {
    msg #M4ine-&-l0ire �2;�3;Remise à Zéro de la cagnotte !
    set %casinouserepargnecagnotte 0
  }
}
on *:connect:.timerminuit 0:00 1 1 minuit

Mais faudrait aussi que tu gères le fait que le bot puisse être déconnecté le lundi à minuit (une autre variable). Ca pourrait alors donner ça :

alias minuit {
  .timerraz.minuit 1 61 .timerminuit 0:00 1 1 minuit
  if (($day == Monday) && (%casino.date != $date)) {
    msg #M4ine-&-l0ire �2;�3;Remise à Zéro de la cagnotte !
    set %casinouserepargnecagnotte 0
  }
  set %casino.date $date
}
on *:connect:minuit | minuit.timerminuit 0:00 1 1 minuit

avec ça, il ne faudra plus que le bot se connecte tous les lundis au moins une fois. C'est encore améliorable (genre s'il se connecte le mardi), mais là, j'ai la flemme :(
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
25 nov. 2007 à 13:39
euh ... j'me demande si un ON JOIN sur ton salon au lieu du ON CONNECT ne serait pas mieux, vu que avec ce code, tu peux faire /msg à peine après t'être connecté
change ça :)
3
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
25 nov. 2007 à 15:39
merci arkan!s tu m'es d'un grand secours :)

sinon pour le truc du %age t'aurais pas un moyen de faire en sorte d'arrondir au plus grand quand ya des virgules ?

j'ai bien peur que ce soit un peu complexe a faire non ?
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
25 nov. 2007 à 15:42
utilise $ceil(%valeur), tout simplement :p
3
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
25 nov. 2007 à 16:45
à la place du $calc(valeur /10) tu veux dire ???

Si tu pouvais détailler stp.
3
cs_KiNdErMaXi Messages postés 1052 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 30 novembre 2009 2
25 nov. 2007 à 16:53
Oui, tu le mets à la place de $calc(valeur /10)

$ceil arrondi à l'entier supérieur, comme tu voulais :)

[irc://irc.voila.fr/kinder Kinder_Maxi]
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
25 nov. 2007 à 18:04
tu fais $ceil($calc(%valeur / 10))
3
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
25 nov. 2007 à 18:25
ah d'accord merci beaucoup :)
3
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
25 nov. 2007 à 18:36
j'ai fais comme tu m'as dis ArKanis

inc %casinouserpoints $+ $nick $ceil($calc(%casinouserepargnecagnotte /50))

mais ca me donne ca :

[18:32:30] -» +LiNoX «- BRAVO tu viens de gagner 5% de la cagnotte, soit  points !!!

aurais-je oublié quelque chose ?
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
25 nov. 2007 à 19:29
de 1) montre tout le code, j'ai pas le /msg
de 2) 5%, c'est %valeur * 5 / 100, càd / 20, et pas / 50

tu devrais stocker la valeur de la cagnote avant d'incrémenter l'argent du type 
3
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
25 nov. 2007 à 19:54
désolé de mon imprecision voici la remote :

    if (%casinosysvaria == 18) {
      if (%casinouserepargne [ $+ [ $nick ] ] <= 99999) { msg $chan �3;12FORMIDABLE $nick , tu viens de gagner�3;4 10% �3;12de la cagnotte, soit�3;4 $ceil($calc(%casinouserepargnecagnotte / 10)) �3;12points !!! | inc %casinouserpoints $+ $nick $ceil($calc(%casinouserepargnecagnotte / 10)) | dec %casinouserepargnecagnotte $ceil($calc(%casinouserepargnecagnotte / 10)) }

pour les 5% enfaite j'ai pas mis le message correspondant à la bonne valeur j'ai bien mis 20 dans la remote du 5% :)
3
besky Messages postés 59 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 27 novembre 2007
25 nov. 2007 à 19:55
Enfaite au lieu de stocker quelque part ce qui a mon avis ralongerais la remote je préfere enlever d'un coté et ajouter de l'autre.
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
25 nov. 2007 à 20:10
vérifie que ta variable %casinouserepargnecagnotte soit bien un nombre
le code semble être bon sinon
3
Rejoignez-nous