Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
News ticker
  • Bienvenue sur le nouveau forum VeryGames
  • Welcome to the new VeryGames forum
  • VeryNews

    [SourcePawn 1.7 Help] - Fuc**** tag mismatch


    NeoXw
     Share

    Recommended Posts

    Bonjour,

     

    J'ai un petit projet en cours de création, pour se faire j'ai besoin de prendre un joueur ct aléatoirement et le mettre en couleur (Tout est fait ça fonctionne bien), or, dans la compilation du plugin j'ai trois "tag mismatch" qui s'affichent et un rien peut me déranger, j'aimerai savoir ce que j'ai zappé, oublié :

    #pragma semicolon 1
    #pragma tabsize 0
    #pragma newdecls required
    
    
    #include <sourcemod>
    
    
    public void OnPluginStart()
    {
       RegConsoleCmd("sm_tryr", Cmd_Tryr);
    }
    
    
    int colorplayer = -1;
    
    
    public Action Cmd_Tryr(int client, int args)
    {
        colorplayer = GetRandomPlayer(); //Ligne 16
        if(colorplayer > 0 && colorplayer <= GetMaxClients())
           SetEntityRenderColor(colorplayer, 0, 0, 255, 255);
    }
    
    
    stock void GetRandomPlayer()
    {
       int PlayerList[MAXPLAYERS+1];
       int PlayerCount;
    
       for(int i=1; i <= GetMaxClients(); i++)
       {
           if(IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 3)
               PlayerList[PlayerCount++] = i;
       }
    
       if(PlayerCount == 0)
           return -1; //Ligne 33
    
       return PlayerList[GetRandomInt(0, PlayerCount-1)]; //Ligne 35
    }

     

    Test.sp(16) : warning 213: tag mismatch
    Test.sp(33) : warning 213: tag mismatch
    Test.sp(35) : warning 213: tag mismatch

    Quelqu'un peut me dire pourquoi j'ai ces trois petites lignes qui s'affichent ? Merci d'avance

    Edited by NeoXw
    Link to comment
    Share on other sites

    Hey,

     

    Pas besoin de mettre des trucs inutiles dans ton code^^

     

    [color=#7e7e7e]#pragma[/color] semicolon [color=#979797]1[/color]
    
    [color=#7e7e7e]#include[/color][color=#f46b6c] <sourcemod>[/color]
    
    [color=#569cd5]public[/color] [color=#2890b0]void[/color] [color=#569cd5]OnPluginStart[/color][color=#8f8f8f]()[/color]
    [color=#8f8f8f]{[/color]
       [color=#569cd5]RegConsoleCmd[/color][color=#8f8f8f]([/color][color=#f46b6c]"[/color][color=#f46b6c]sm_tryr[/color][color=#f46b6c]"[/color], Cmd_Tryr[color=#8f8f8f]);[/color]
    [color=#8f8f8f]}[/color]
    
    [color=#2890b0]int[/color] colorplayer = [color=#979797]-1[/color][color=#8f8f8f];[/color]
    
    [color=#569cd5]public[/color] [color=#2890b0]Action[/color] [color=#4585c5]Cmd_Tryr[/color][color=#8f8f8f]([/color][color=#2890b0]int[/color] client, [color=#2890b0]int[/color] args[color=#8f8f8f])[/color]
    [color=#8f8f8f]{[/color]
        colorplayer = [color=#4585c5]GetRandomPlayer[/color][color=#8f8f8f]();[/color]
    
        [color=#569cd5]if[/color][color=#8f8f8f]([/color]colorplayer [color=#8f8f8f]>[/color] [color=#979797]0[/color] [color=#8f8f8f]&&[/color] colorplayer [color=#8f8f8f]<[/color]= [color=#569cd5]GetMaxClients[/color][color=#8f8f8f]())[/color]
           [color=#569cd5]SetEntityRenderColor[/color][color=#8f8f8f]([/color]colorplayer, [color=#979797]0[/color], [color=#979797]0[/color], [color=#979797]255[/color], [color=#979797]255[/color][color=#8f8f8f]);[/color]
    [color=#8f8f8f]}[/color]
    
    [color=#4585c5]GetRandomPlayer[/color][color=#8f8f8f]()[/color]
    [color=#8f8f8f]{[/color]
       [color=#2890b0]int[/color] PlayerList[color=#8f8f8f][[/color][color=#bc62c5]MAXPLAYERS[/color][color=#979797]+1[/color][color=#8f8f8f]];[/color]
       [color=#2890b0]int[/color] PlayerCount[color=#8f8f8f];[/color]
    
       [color=#569cd5]for[/color][color=#8f8f8f]([/color][color=#2890b0]int[/color] i=[color=#979797]1[/color][color=#8f8f8f];[/color] i [color=#8f8f8f]<[/color]= [color=#bc62c5]MaxClients[/color][color=#8f8f8f];[/color] i[color=#8f8f8f]++)[/color]
       [color=#8f8f8f]{[/color]
           [color=#569cd5]if[/color][color=#8f8f8f]([/color][color=#569cd5]IsClientConnected[/color][color=#8f8f8f]([/color]i[color=#8f8f8f])[/color] [color=#8f8f8f]&&[/color] [color=#569cd5]IsClientInGame[/color][color=#8f8f8f]([/color]i[color=#8f8f8f])[/color] [color=#8f8f8f]&&[/color] [color=#569cd5]IsPlayerAlive[/color][color=#8f8f8f]([/color]i[color=#8f8f8f])[/color] [color=#8f8f8f]&&[/color] [color=#569cd5]GetClientTeam[/color][color=#8f8f8f]([/color]i[color=#8f8f8f])[/color] == [color=#979797]3[/color][color=#8f8f8f])[/color]
               PlayerList[color=#8f8f8f][[/color]PlayerCount[color=#8f8f8f]++][/color] = i[color=#8f8f8f];[/color]
       [color=#8f8f8f]}[/color]
    
       [color=#569cd5]return[/color] [color=#8f8f8f]([/color]PlayerCount == [color=#979797]0[/color][color=#8f8f8f])[/color] [color=#8f8f8f]?[/color] [color=#979797]-1[/color] : PlayerList[color=#8f8f8f][[/color][color=#569cd5]GetRandomInt[/color][color=#8f8f8f]([/color][color=#979797]0[/color], PlayerCount[color=#979797]-1[/color][color=#8f8f8f])];[/color]
    [color=#8f8f8f]}[/color]
    

     

    de rien.

     

    Delachambre.

    Link to comment
    Share on other sites

    J'en viens à compléter les dires de Delachambre.

    Même si je t'ai aider sur steam x) peut être que ça en aideras d'autre.

     

    Comme il la si bien dit en haut, ton code contiens des lignes inutiles ...

    Ta condition qui vas retourner un -1 dans ton GetRandomPlayer n'est pas "utile" en soit.

     

    Tu vas auto-incrémenter PlayerCount, qui de base est de 0.

    Si tu n'as aucun client repris dans ta boucle, PlayerCount resteras de 0. Du coup ton GetRandomInt seras un random entre 0 et 0 .. se qui te retourneras forcément 0.

    Dans tout les cas, -1 ou 0 te retourne un client "invalid".

     

    Si jamais .. GetMaxClient devrais disparaitre au fil des release de Sourcemod.

     

    Ton code ici utilise la variable global "colorplayer", qui ne te sers autre part dans ton code que dans le random.

    Faire une global ne te sers donc à rien ^^ En soit ça change pas grand chose, juste de la logique ^^

     

    Je te conseil aussi de mettre des paramètres dans ta condition GetRandomPlayer et de la mettre dans une include perso de ton côté.

    Ma petite include me sers TOUT LE TEMPS, je n'ai pas à refaire les fonctions à chaque fois.

    Bien que tu en as des toutes faites, les re-faires à ta manière t'aideras pour plus tard, étant donner que tu commences tout juste à dev' ^^

     

    Ton erreur est causé par le fait que GetRandomInt est un void .. du coup il ne peu rien retourner.

    Ici tu as besoin de reprendre une variable integer pour l'index du client, du coup .. remplace le void par un int, et tu verras que tout fonctionneras mieux !

     

    C'est comme retourner du float dans une fonction qui devrais te retourner une integer, tu auras un tag miss match ^^

    Link to comment
    Share on other sites

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Reply to this topic...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

     Share

    ×
    ×
    • Create New...