NeoXw Posté(e) le 24 août 2017 Share Posté(e) le 24 août 2017 (modifié) 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 Modifié le 24 août 2017 par NeoXw Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CM_Delachambre Posté(e) le 25 août 2017 Share Posté(e) le 25 août 2017 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 26 août 2017 Share Posté(e) le 26 août 2017 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 ^^ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
NeoXw Posté(e) le 26 août 2017 Auteur Share Posté(e) le 26 août 2017 Merci Delachambre mais expliquer serait encore mieux ^^ Merci beaucoup Kriax <3 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CM_Delachambre Posté(e) le 26 août 2017 Share Posté(e) le 26 août 2017 Merci Delachambre mais expliquer serait encore mieux ^^ Merci beaucoup Kriax <3 Je te l'ai expliqué sur steam il me semble :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
NeoXw Posté(e) le 29 août 2017 Auteur Share Posté(e) le 29 août 2017 Je te l'ai expliqué sur steam il me semble :) Tu dois te tromper de personne je crois, fin bref ^^ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.