Advertisement
Jeaniscrazzy

[FilterScript] Système de réputation (+1/-1)

Jan 4th, 2013
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.60 KB | None | 0 0
  1. /*-----------------------------------------------------------------------------*
  2. Petit filterscript pour ajouter des points aux utilisateur qui le méritent, un
  3. grand merci à vous pour avoir chosi ce filterscript (by DarkyTheAngel)! Ok commençons à l'utiliser.
  4. Je ferrais de mon mieux, pour que vous puissez comprendre ce script êtes vous
  5. prêt, cela n'est pas très difficile avec un peu de volonter vous pourrez enfin,
  6. comprendre l'utiliter de ce script! -- J E A N I S C R A Z Y vous remerci!
  7. *------------------------------------------------------------------------------*/
  8.  
  9. /*==========================================================================*
  10. Vous devez définir les includes que vous utilisez par #include <nom>,       *
  11. n'oublier surtout pas d'ajouter les créateurs des includes comme ça les,    *
  12. vos scriptes n'aurons pas de mauvaise réputation! Donc ajoutez-les, même    *
  13. si vous devrez perdre une journée à trouver le topic/créateur de l'include! *
  14. *===========================================================================*/
  15.            // On peut commencer, n'oublier pas #include <a_samp>
  16.            
  17. /*=================================================================================================================================*
  18. LE NOM DE L'INCLUDE   // LE TEXTE DE REMERCIMENT OU PLUTOT LE NOM DU CREATEUR // LIEN OU VOUS AURREZ DES MISE-À-JOUR  DES INCLUDES *
  19. *==================================================================================================================================*/
  20. #include <a_samp>   // Un grand merci à l'équipe de San-Andreas:Multiplayer. // Visitez le site officiel : http://sa-mp.com       //
  21. #include <zcmd>    // Un grand merci à notre camarades de sa:mp Zeex.       // http://forum.sa-mp.com/showthread.php?t=91354     //
  22. #include <dini>   // Un grand merci à ce chers DarcoBlue, peace bro.       // http://forum.sa-mp.com/showthread.php?t=50        //
  23. //*****************************************************************************************************************************//
  24.  
  25. /*============================================================================*
  26. Cela définis les couleurs que je vais utiliser sur ce filterscript,           *
  27. je ne compte pas les utiliser mais vous pouvez en ajouter pour personaliser,  *
  28. à votre style.                                                                *
  29. *=============================================================================*/
  30. //                  La couleurs             Sa:Mp Format
  31. #define                GRIS                   0xD8D8D8FF
  32. #define                ROUGE                  0xFF0000FF
  33. #define                BLEU                   0x8080FFFF
  34. #define                BLANC                  0xFFFFFFFF
  35. #define                VERT                   0x00FF00FF
  36. //****************************************************************************//
  37.  
  38. /*=============================================================================*
  39. Bien, ici nous allons définir/localiser les dossier où serront sauvegarde      *
  40. les données des utilisateur un dossier où il y auras le nombre de respect      *
  41. du joueurs en question. Vous pourrez le modifier en créant un nouveaux,        *
  42. dossier dans Scriptfiles (si vous avez un dossier pour votre serveur           *
  43. vous, pourrez aussi créer un dossier dans le dossier de votre serveur          *
  44. où les comptes, sont enregistrer. Donc à vous de voir que ce vous faites...    *
  45. *==============================================================================*/
  46.            //N'oublier pas de définir le dossier où les points seront save.
  47.            
  48. /*================================================================*
  49. LE NOM DU DEFINE    // LOCALISATION DU DOSSIER D'ENREGISTREMENT   *
  50. *=================================================================*/
  51. #define RespectFile     /*Skinner*/     "Comptes/Points/%s.ini"  //
  52. //**************************************************************//
  53.  
  54. /*======================================================================================*
  55. Voilà, là je vous montre une astuce pour aller plus vite dans vos script, vous pourrez  *
  56. definir les OnPlayerConnect, ShowPlayerDialog par leurs abréviation très simple cela ce *
  57. fait vraiment vite, on les définis dès maintenant commencçons, c'est très simple !!!    *
  58. *=======================================================================================*/
  59.             // Vous pouvez ajoutez où modifier les abréviations.
  60.            
  61. /*===============================================*
  62. LES ABREVIATIONS       //   VONT REMPLACER LES   *
  63. *================================================*/
  64. #define SPD         /*<=*/         ShowPlayerDialog
  65. #define SCM         /*<=*/         SendClientMessage
  66. #define OPC         /*<=*/         OnPlayerConnect
  67. #define OPD         /*<=*/         OnPlayerDisconnect
  68. //************************************************//
  69.  
  70. /*====================================================================================*
  71.  
  72. *======================================================================================*/
  73. enum PLAYER_MAIN
  74. {
  75.    GRespect,
  76.    BRespect
  77. }
  78. new pInfo       [MAX_PLAYERS][PLAYER_MAIN];
  79. new ChosenPlayer[MAX_PLAYERS];
  80. new timer       [MAX_PLAYERS];
  81. //************************************************************************************//
  82.  
  83.                              // Voilà, camarades il est temps de commencer ou plutôt d'entrer dans le vif de notre sujet!
  84.                              // Merci d'avoir lu jusqu'ici, bien on s'appraîte à utiliser tous ce qu'on à définis en haut.
  85.  
  86.  
  87. /*Vous vous posez sûrement la question suivante, que signifie le OPC? Visitez la ligne numéro 42 à 44 et 51 à 54 vous allez,
  88. toute suite comprendre la définition de OPC ou plutôt OnPlayerConnect.*/
  89.  
  90. /*Définition de la ligne : lorsqu'un utilisateur se connecte au serveur; ses points de respect
  91. seront charger "LoadPlayerRespect".*/
  92. public OPC ( playerid )         { LoadPlayerRespect( playerid ) ; return 1 ; }
  93.  
  94. /*Définition de la ligne : lorsqu'un utilisateur se déconnectera du serveur; ses point de respect
  95. seront enregistré dans le dossier et fichier de sont comptes.*/
  96. public OPD ( playerid , reason) { SavePlayerRespect( playerid ) ; return 1 ; }
  97.  
  98. //========================================================================================//
  99.  
  100. /*Définition de la ligne, si un utilisateur clique sur un autre, l'utilisateur le système
  101. demanderas au script si l'utilisateur à déjà attribuer un respect à un utilisateur,
  102. si oui on l'envoie un message d'érreur pour lui dire qu'il doit attendre une heure pour,
  103. lui en donner c'est ça l'utilier du "new timer" ligne 67.*/
  104.  
  105.     public OnPlayerClickPlayer ( playerid, clickedplayerid, source ) {
  106.     if(timer[playerid] > 0) return SCM( playerid , ROUGE , // La couleurs du message!
  107.                            "Vous ne pouvez donnez qu'un seul point de réputation en une heure.");// Le message d'érreur!
  108.     new drespect[ 128 ];
  109.     strcat ( drespect , "Vous avez cliquez sur %s pour lui\nattribuer des point de réputation. " ) ;
  110.     strcat ( drespect , "Choisiez quel type de point vous\n lui attribuer " ) ;
  111.     SPD ( playerid , 1 , DIALOG_STYLE_MSGBOX , " " , drespect , "(Plus)+" , "(Moins)-" ) ;
  112.     ChosenPlayer[playerid] = clickedplayerid;
  113.     return 1; }
  114.    
  115. //========================================================================================//
  116.  
  117. /*Si l'utilisateur à d'attribuer un plus ou un moins sont vote sera enregistré, donc les
  118. cela va envoyer le vote de l'utilisateur qui sera enregistrer dans le dossier l'utilisateur,
  119. ayant reçu un "plus ou un moins".*/
  120.  
  121.     public OnDialogResponse (playerid, dialogid, response, listitem, inputtext[] ) {
  122.     if(dialogid == 1) {
  123.         if(response) {
  124.           pInfo[ChosenPlayer[playerid]][GRespect] += 1;   //GRespect = Good respect qui sera considérer comme Bon Respect+1.
  125.           timer[playerid] = SetTimerEx("timer1",86400000,true,"i",playerid);
  126.         } else {
  127.           pInfo[ChosenPlayer[playerid]][BRespect] -= 1;  //BRespect = Bad respect qui sera considérer comme Mauvais Respect-1.
  128.           timer[playerid] = SetTimerEx("timer1",86400000,true,"i",playerid);
  129.         }
  130.         return 1;
  131.     }
  132.     return 0; }
  133.    
  134. //========================================================================================//
  135.  
  136. /*Voilà, il est temps pour que le script enregistre les respect de l'utilisateur dans un fichier,
  137. en format .ini (provenant de l'include Dini de DarkoBlue.*/
  138.  
  139. stock SavePlayerRespect ( playerid ) {                                          
  140.     new file [ 128 ] , name [ MAX_PLAYER_NAME ] ;                              
  141.     GetPlayerName ( playerid , name , sizeof(name)) ;                          
  142.     format ( file , sizeof(file) , RespectFile,name) ;
  143.     if(!dini_Exists(file)) {                                                    
  144.     dini_Create(file) ;
  145.     dini_IntSet(file,"GRespect", pInfo[playerid][GRespect]) ;
  146.     dini_IntSet(file,"BRespect", pInfo[playerid][BRespect]) ; }
  147.     pInfo[playerid][GRespect] = dini_Int(file,"GRespect") ;
  148.     pInfo[playerid][BRespect] = dini_Int(file,"BRespect") ;
  149.     return 1 ; }
  150.    
  151.    
  152. stock LoadPlayerRespect ( playerid ) {
  153.     new file [ 128 ] , name[ MAX_PLAYER_NAME ] ;
  154.     GetPlayerName ( playerid , name , sizeof(name)) ;
  155.     format ( file , sizeof(file) , RespectFile,name) ;
  156.     dini_IntSet(file,"GRespect", pInfo[playerid][GRespect]) ;
  157.     dini_IntSet(file,"BRespect", pInfo[playerid][BRespect]) ;
  158.     return 1 ; }
  159.    
  160. //========================================================================================//
  161.  
  162. /*Biensûr, l'utilisateur pourras voir les nombres de bon respect (+1) ou mauvais respect (-1),
  163. en tapant la commandes suivante /mesrespect..*/
  164.  
  165.     CMD:mesrespect( playerid , params[] ) {
  166.     new mrespect[126];
  167.     format ( mrespect , sizeof(mrespect) , "Vous poccedez actuelement: (Plus)+%d/(Moins)-%d" ,
  168.                                                      pInfo[playerid][GRespect] ,
  169.                                                      pInfo[playerid][BRespect]);
  170.     SCM(playerid, VERT, mrespect);
  171.     return 1 ; }
  172.    
  173.    forward timer1 ( playerid ) ;
  174.    public timer1( playerid ) {
  175.         timer[playerid] = 0;
  176.         return 1; }
  177.        
  178. //================================================================================================//
  179. // Voilà, ceci à été fait par Skinner/Jeaniscrazzy, il remerci éventuelement le créateur du script!
  180. // Un grand merci à DarkyTheAngel & Hardwell pour ce magnifique script que j'appécie vraiment!
  181. //  Je n'est fait qu'expliquez ce script et l'avoir traduit. Et les crédits du créateurs sont présent.
  182. //=============BRITANIA.WS=============FORUM.SA-MP.COM===============TEAMFUN.FORUMACTIF.FR========//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement