Horses : course de chevaux en direct !

Contenu du snippet

Ce script à mettre dans les REMOTES de votre mIRC ou de celui de votre bot permet d'offrir à vos chatteurs un peu de divertissement en leur proposant de parier sur une course de chevaux !

/!\ ATTENTION /!\ ! Necessite une limite de flood assez peu severe (2 phrases toutes les 4 secondes pendant envrion 30-40secondes) /!\

Il y a 5 chevaux en course (en ajouter d'autres est simple, suivez le script), chacun commence par choisir un cheval, puis le depart est donné.
Le commentateur va ainsi se mettre à commenter la course en précisant si un cheval passe en tete ou s'il conserve la position de leader à chaque "round" (toutes les 4 secondes). Les commentaires sont générés au hasard et composés de 3 parties, qui s'assemblent aléatoirement, afin de diversifier au maximum. Pour ajoter d'autres commentaires, là encore, suivez le script, c'est très simple...

Le depart en tete d'un cheval lui apporte 10 points, il prend 8 points chaque fois qu'il passe en tete et à nouveau 10 points lorsqu'il conserve sa position de leader. Le cheval avec le plus de points à la fin de tous les rounds (entre 15 et 20, aléatoirement), passera la ligne d'arrivée en tete.
  • MISE A JOUR : 1/09/2003 à 11h30* ==> voir en bas

Source / Exemple :


;=========================================
;=============== CHEVAUX! ================
;=========================================

menu channel {
  Chevaux: /chevaux
}

alias /chevaux {
  /set %cheval1 WinterHorse
  /set %cheval2 Napoléon
  /set %cheval3 Tornade
  /set %cheval4 Ouragan
  /set %cheval5 Black
  /set %che_val1 0
  /set %che_val2 0
  /set %che_val3 0
  /set %che_val4 0
  /set %che_val5 0
  /set %parieur1 M. De la Motte Voisée
  /set %parieur2 Duc de Chamberlain
  /set %parieur3 Victor Neument
  /set %parieur4 Henry W. Walker
  /set %parieur5 Bob Drumontal
  /set %pari1 0
  /set %pari2 0
  /set %pari3 0
  /set %pari4 0
  /set %pari5 0
  /set %temps 20
  /set %nbr $rand(15,20)
  /set %nbr2 %nbr

  /set %txt100 3Extraordinaire !
  /set %txt101 3Et voici un fabuleux revers ! En effet
  /set %txt102 3Tant et si bien que se jouant du leader,
  /set %txt103 3AHURISSANT ! 
  /set %txt104 3Mais voilà qu'augmentant sa vitesse,
  /set %txt105 3Mais voilà que sous les coups de cravache,
  /set %txt106 3Et dans le feu de l'action,
  /set %txt107 3Oula, il me semble apercevoir que
  /set %txt108 3Et c'est un coup de théâtre fabuleux !
  /set %txt109 3L'avez-vous seulement vu ?

  /set %txt200 3Il fallait s'y attendre, 
  /set %txt201 3Vu sa vitesse, il est normal que
  /set %txt202 3Mais c'est un véritable tank !
  /set %txt203 3Il ne lachera rien !
  /set %txt204 3Et il n'en démordra pas !
  /set %txt205 3Le croirez vous ?
  /set %txt206 3C'était joué d'avance !
  /set %txt207 3Et cette échappée lui a été favorable, en effet
  /set %txt208 3Que d'émotions, voilà un moment que
  /set %txt209 3C'est IN-CRO-YA-BLE !

  /set %txt110 3cravache sauvagement
  /set %txt111 3passe 
  /set %txt112 3arrive sans soucis
  /set %txt113 3court littéralement 
  /set %txt114 3galope majestueusement
  /set %txt115 3fonce tête baissée
  /set %txt116 3se démène  

  /set %txt120 3 au devant de ses adversaires,
  /set %txt121 3 en tête, 
  /set %txt122 3 devant les autres, 
  /set %txt123 3 en avant,  
  /set %txt124 3 en premiere place, 
  /set %txt125 3 en premiere position,   

  /set %txt130 3 sous l'ovation des spectateurs !
  /set %txt131 3 coutournant les obstacles !
  /set %txt132 3 c'est une performance quasiment inespérée !
  /set %txt133 3 fruit du travail acharné de son jockey !
  /set %txt134 3 et commence à montrer les crocs !
  /set %txt135 3 laissant tout le monde à plusieurs mêtres derrière lui !
  /set %txt136 3 quelle course !
  /set %txt137 3 mais il peut surement faire encore mieux !
  /set %txt138 3 infatigable !
  /set %txt139 3 malgré un terrain particulièrement dangeureux !

  /set %txt210 3reste 
  /set %txt211 3figure toujours 
  /set %txt212 3ne veut aller ailleurs qu'  
  /set %txt213 3s'acharne à rester
  /set %txt214 3persiste 

  /set %txt220 3 en tête, 
  /set %txt221 3 au devant de tout le monde, 
  /set %txt222 3 en place de leader, 

  /set %txt230 3 bien décidé à ne pas en sortir !
  /set %txt231 3 malgré les efforts de ses adversaires !
  /set %txt232 3 infatigable !
  /set %txt233 3 imbattable !
  /set %txt234 3 dans l'ahurissement total de la foule !
  /set %txt235 3 c'est un vrai champion !
  /set %txt236 3 nous avons affaire à un mustang !
  /set %txt237 3 mais gardera t'il ce rythme ?

  /msg $chan 1
  /msg $chan <====================== 3Course de chevaux ======================>
  /msg $chan 1
  /msg $chan 2Départ :4 10 2pts 3// 2Passage en tête :4 8 2pts 3\\ 2Conservation :4 10 2pts
  /msg $chan 2Celui qui a le plus de points passera le premier !
  /msg $chan 1
  /msg $chan 7Pariez sur un canasson (tapez son nom) :
  /msg $chan 7::4 %cheval1
  /msg $chan 7::4 %cheval2
  /msg $chan 7::4 %cheval3
  /msg $chan 7::4 %cheval4
  /msg $chan 7::4 %cheval5
  /msg $chan 7Vous avez4 %temps 7secondes pour choisir.
  /.timer1 1 %temps { /start_ch }
}

alias /start_ch {
  /msg $chan 1
  /msg $chan <====================== Résumé des choix =======================>
  /msg $chan 4 %parieur1 3a misé sur 4 %cheval1
  /msg $chan 4 %parieur2 3a misé sur 4 %cheval2
  /msg $chan 4 %parieur3 3a misé sur 4 %cheval3
  /msg $chan 4 %parieur4 3a misé sur 4 %cheval4
  /msg $chan 4 %parieur5 3a misé sur 4 %cheval5
  /msg $chan 1
  /.timer2 1 6 { /loop_ch }
}

alias /loop_ch {
  if ( %nbr2 == %nbr ) {
    /set %op $rand(1,5)
    /set %op2 %op
    %che_val [ $+ [ %op ] ] = %che_val [ $+ [ %op ] ] + 10
    /msg $chan 7Départ de la course !
    /msg $chan 1
    /msg $chan 3-- 3 Dès les premiers mêtres,4 %cheval [ $+ [ %op ] ] 3prend la tête de la course !
    %nbr = %nbr - 1
    /.timer3 1 4 { /loop_ch }
  }
  if ( %nbr2 > %nbr ) && ( %nbr > 0 ) {
    /set %test $rand(1,1250)
    if ( %test <= 250 ) { %op = 1 }
    if ( %test <= 500 ) && ( %test > 250 ) { %op = 2 }
    if ( %test <= 750 ) && ( %test > 500 ) { %op = 3 }
    if ( %test <= 1000 ) && ( %test > 750 ) { %op = 4 }
    if ( %test <= 1250 ) && ( %test > 1000 ) { %op = 5 }
    if ( %op != %op2 ) {
      /set %txt1 %txt11 [ $+ [ $rand(0,6) ] ]
      /set %txt2 %txt12 [ $+ [ $rand(0,5) ] ]
      /set %txt3 %txt13 [ $+ [ $rand(0,9) ] ]
      /set %txt %txt1 $+ %txt2 $+ %txt3
      /set %pre_txt %txt10 [ $+ [ $rand(0,9) ] ]
      %che_val [ $+ [ %op ] ] = %che_val [ $+ [ %op ] ] + 8
    }
    if ( %op == %op2 ) {
      /set %txt1 %txt21 [ $+ [ $rand(0,4) ] ]
      /set %txt2 %txt22 [ $+ [ $rand(0,2) ] ]
      /set %txt3 %txt23 [ $+ [ $rand(0,7) ] ]
      /set %txt %txt1 $+ %txt2 $+ %txt3
      /set %pre_txt %txt20 [ $+ [ $rand(0,9) ] ]
      %che_val [ $+ [ %op ] ] = %che_val [ $+ [ %op ] ] + 10
    }
    /msg $chan 1
    /msg $chan -- %pre_txt 4 %cheval [ $+ [ %op ] ] %txt
    %nbr = %nbr - 1
    %op2 = %op
    /.timer3 1 4 { /loop_ch }
  }
  if ( %nbr == 0 ) {
    if ( %che_val1 > %che_val2 ) && ( %che_val1 > %che_val3 ) && ( %che_val1 > %che_val4 ) && ( %che_val1 > %che_val5 ) { %op = 1 }
    if ( %che_val2 > %che_val1 ) && ( %che_val2 > %che_val3 ) && ( %che_val2 > %che_val4 ) && ( %che_val2 > %che_val5 ) { %op = 2 }
    if ( %che_val3 > %che_val1 ) && ( %che_val3 > %che_val2 ) && ( %che_val3 > %che_val4 ) && ( %che_val3 > %che_val5 ) { %op = 3 }
    if ( %che_val4 > %che_val1 ) && ( %che_val4 > %che_val2 ) && ( %che_val4 > %che_val3 ) && ( %che_val4 > %che_val5 ) { %op = 4 }
    if ( %che_val5 > %che_val1 ) && ( %che_val5 > %che_val2 ) && ( %che_val5 > %che_val3 ) && ( %che_val5 > %che_val4 ) { %op = 5 }
    /msg $chan 1
    /msg $chan 3-- 2 Et c'est finalement4 %cheval [ $+ [ %op ] ] 2qui remporte cette course ! Cher4 %parieur [ $+ [ %op ] ] 2, vous avez  sû faire le bon choix !
    /msg $chan 1
    /msg $chan 7SCORES =2 %cheval1 7:4 %che_val1 7,2 %cheval2 7:4 %che_val2 7,2 %cheval3 7:4 %che_val3 7,2 %cheval4 7:4 %che_val4 7,2 %cheval5 7:4 %che_val5 7!
    %nbr = %nbr - 1
    halt
  }
}

on 1:TEXT:%cheval1:#: {
  if ( %pari1 == 0 ) && ( %parieur1 != $nick ) {
    /set %parieur1 $nick
    /set %pari1 1
  }
}
on 1:TEXT:%cheval2:#: {
  if ( %pari2 == 0 ) && ( %parieur2 != $nick ) {
    /set %parieur2 $nick
    /set %pari2 1
  }
}
on 1:TEXT:%cheval3:#: {
  if ( %pari3 == 0 ) && ( %parieur3 != $nick ) {
    /set %parieur3 $nick
    /set %pari3 1
  }
}
on 1:TEXT:%cheval4:#: {
  if ( %pari4 == 0 ) && ( %parieur4 != $nick ) {
    /set %parieur4 $nick
    /set %pari4 1
  }
}
on 1:TEXT:%cheval5:#: {
  if ( %pari5 == 0 ) && ( %parieur5 != $nick ) {
    /set %parieur5 $nick
    /set %pari5 1
  }
}

Conclusion :

  • MISE A JOUR : 1/09/2003 à 11h30* ==> grands changements dans les commentaires, une nouvelle partie a été ajoutée avant le nom du cheval (une 20ene de nouvelles situations) et plusieurs commentaires ont été refaits, alors que d'autres ont été ajoutés afin de réduire les répétitions.


Le script est très simple et mal codé par endroits (je debute, ok ><), donc n'hestiez pas à me dire comment raccourcir certains passages (j'aimerai surtout savoir comment raccourcir la partie avec les

if ( %che_val1 > %che_val2 ) && ( %che_val1 > %che_val3 ) && ( %che_val1 > %che_val4 ) && ( %che_val1 > %che_val5 ) { %op = 1 }

car ca doit etre possible, mais je ne vois pas comment....

La prochaine version (demain surement) autorisera les usagers à miser plus ou moins leur argent (fictif), et peut etre à deviner l'ordre d'arrivée des 3 premiers chevaux (facon tiercé), ce qui n'est pas très dur à ajouter (mais à 2h30 du matin, je ne m'en sens plus le courage).

Patience donc ^^

Oblivion, parce que mIRC se doit d'etre distrayant !

PS de derniere seconde : en ce qui concerne l'arrivée des chevaux, il y a équiprobabilité, tous les chevaux sont aussi forts les uns que les autres, je pense donc ajouter des handicaps aléatoires (assez faibles toutefois), sur ce, bonne nuit ^^

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_Oblivion)