Aller au contenu
News ticker
  • Bienvenue sur le nouveau forum VeryGames
  • Welcome to the new VeryGames forum
  • VeryNews

    Error sourcepawn


    Altayir

    Messages recommandés

    Salut à vous,

     

    Voici mon plugin :

    #include sourcemod
    #include morecolors
    
    
    #define HP "105" // Nombre d'HP 
    #define ARMURES "100" // Nombre d'armures
    #define VITESSE "0.1" // Vitesse de déplacement
    #define SERVEUR "AWP" // Mode du serveur
    
    
    public Plugin:myinfo =
    {
    name = "VIP"
    author = "Max"
    description = "Permet de visualiser les bonus VIP"
    version = "1.0"
    url = "http://balkanstar.fr"
    }
    
    
    public OnPluginStart ()
    {
    RegConsoleCMD("sm_vip", Command_Vip, ADMFLAG_CUSTOM1); // Menu qui affiche les bonus VIP pour le flag o.
    
    
    HookEvent ("player_spawn", PlayerSpawn); // Action qui se passe quand le joueur spawn.
    }
    // Début du menu VIP
    public Action: Vip(client, args)
    {
    new Handle:menu = CreateMenu(Vip);
    SetMenuTitle(menu, "Liste des avantages VIP");
    AddMenuItem(menu, "1" "Vous disposez de %s hp", HP);
    AddMenuItem(menu, "2" "Vous disposez de %s armures", ARMURES);
    AddMenuItem(menu, "3" "Vous vous déplacer plus rapidement (%s plus vite)", VITESSE);
    SetMenuExitButton (menu, "Quitter", true);
    }
    // Fin du menu VIP
    public OnPlayerSpawn (Handle:event, const String:name[], bool:dontBroadcast)
    {
    CPrintToChat(client, '{white}[ViP]: Vous êtes ViP de ce serveur. Taper !vip pour voir vos différents avantages !")
    }
    
    
    
    
    
    
    
    
    

     

    Je vous accord, que quand vous allez voir ce code c'est le bordel, et donc forcement j'ai des erreurs a la compilitation.

    Voici les erreurs :

     

    Si on pouvais m'expliquer les erreurs, et éventuelle me corriger le code comme il devrait être :P

     

    Cordialement,

    Lien vers le commentaire
    Partager sur d’autres sites

    Déjà plusieurs erreur à vue de nez

     

     

    [color=#ff0000][b]#include sourcemod[/b][/color]
    [color=#ff0000][b]#include morecolors[/b][/color]
    

     

    Manque les <>

     

    #include <sourcemod>
    #include <morecolors>
    

     

    Puis,

     

    public Plugin:myinfo =
    {
       name = "VIP"[size=5][color=#ff0000][b],[/b][/color][/size]
       author = "Max"[b],[/b]
       description = "Permet de visualiser les bonus VIP[b],[/b]
       version = "1.0"[b],[/b]
       url = "http://balkanstar.fr"[b],[/b]
    }
    

     

    Manquait des virgules

     

    On écrit RegConsoleCmd et non RegConsoleCMD, ouaip les maj sont importantes :) (Et les argument d'une commande publique avec des flags ? Fail)

     

    Ton events est nommé

    PlayerSpawn
    

     

    Mais en bas on se retrouve avec

     

    OnPlayerSpawn
    

    CPrintToChat avec un ' ? c'est pas du PHP sa ne marche qu'avec des "

     

    En plus tu crées un menu mais tu ne le relies à rien, en plus tu ne peut pas mettre des variables comme ARMURES directement dans un menu passe par un Format ^^

     

    Et pour moi je te conseillerais de faire un panel et non un menu vu que sa sert à rien que les gens cliquent dessus.

     

    Et puis je le dit gentille ment essayes de faire un tour sur sourcemod api (Tu as toutes les fonctions de sourcemod et tu te goureras plus dessus)

     

    => mais c'est bien au moins tu essayes :D

     

    ==> Au pire si tu as d'autres questions Kriax vas sans doute passer et te lacher un paté donc ^^

     

    Bon Courage :D

     

     

    Lien vers le commentaire
    Partager sur d’autres sites

    Salut,

     

    Un premier echec et pas le dernier je pense.

    Des erreurs bêtes qui se reproduiront pas!

    Néanmoins, quand je corrige les erreurs fournis j'ai toujours des erreurs :/

     

    #include <sourcemod>
    #include <morecolors>
    
    
    public Plugin:myinfo =
    {
       name = "VIP",
       author = "Max",
       description = "Permet de visualiser les bonus VIP",
       version = "1.0",
       url = "http://balkanstar.fr",
    }
    
    
    public OnPluginStart ()
    {
    RegConsoleCmd("sm_vip", Command_Vip, ADMFLAG_CUSTOM1); // Menu qui affiche les bonus VIP pour le flag o.
    
    
    HookEvent ("player_spawn", PlayerSpawn); // Action qui se passe quand le joueur spawn.
    }
    // Début du menu VIP
    public Action: Vip(client, args)
    {
    new Handle:menu = CreateMenu(Vip);
    SetMenuTitle(menu, "Liste des avantages du serveur AWP",);
    AddMenuItem(menu, "1" "Vous disposez de 105 hp",);
    AddMenuItem(menu, "2" "Vous disposez de 105 armures",);
    AddMenuItem(menu, "3" "Vous vous déplacer plus rapidement (0.1 plus vite)",);
    SetMenuExitButton (menu, "Quitter", true);
    }
    // Fin du menu VIP
    public PlayerSpawn (Handle:event, const String:name[], bool:dontBroadcast)
    {
       CPrintToChat(client, "{white}[ViP]: Vous êtes ViP de ce serveur. Taper !vip pour voir vos différents avantages !")
    }
    
    
    

     

    Lien vers le commentaire
    Partager sur d’autres sites

    Bon je vais te faire la correction 2 (Finale :)) tu es quelqu'un de sympatrique je trouve bref :

     

    Erreur #1

     

    RegConsoleCmd = Commande publique donc tu ne peut pas pas foutre un flag dessus !, Tu devras utiliser RegAdminCmd pour mettre un flag dessus.

    Mais je te conseille de créer une commande publique et de limiter ta phrase de non accès par exemple.

     

    Donc on crée une fonction qui vérifie si on à le flag

     

    public bool:VIP(client)
    {
    if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)
    {
    	// Retourne oui
    	return true;
    }
    else
    {
    	// Retourne non 
    	return false;
    }
    }
    

     

    Erreur #2

     

    SetMenuExitButton (menu, "Quitter", true);
    

     

    Sa n'existe pas sa c'est soit

     

    SetMenuExitButton(menu, true);
    

     

    ==> Bouton fermer actif

     

     

    Soit

     

    SetMenuExitButton(menu, false);
    

     

    ==> Bouton fermer inactif

     

    Erreur #3

     

    AddMenuItem(menu, "1" "Vous disposez de 105 hp",);
    

     

    Tu as mis des virgules inutiles après les guillemets sans doute une erreur d’inattention

    Et tu as oublié de mettre des virgules ici :

     

    AddMenuItem(menu, "1"[b][color=#ff0000][size=5], [/size][/color][/b]"Vous disposez de 105 hp");
    

     

    La dernière erreur ?

     

    Tu as juste oublié de définir ton client au spawn, C'est comme si tu envoyait une phrase à un fantôme :p

     

    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    

     

    Et voila au final avec un code tout propre :

     

    #include <sourcemod>
    #include <morecolors>
    
    
    public Plugin:myinfo =
    {
       name = "VIP",
       author = "Max",
       description = "Permet de visualiser les bonus VIP",
       version = "1.0",
       url = "http://balkanstar.fr",
    }
    
    
    public OnPluginStart ()
    {
    RegConsoleCmd("sm_vip", Vip); // Menu qui affiche les bonus VIP pour le flag o.
    HookEvent("player_spawn", Event_PlayerSpawn); // Action qui se passe quand le joueur spawn.
    }
    
    
    public bool:VIP(client)
    {
    if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)
    {
    	// Retourne oui
    	return true;
    }
    else
    {
    	// Retourne non 
    	return false;
    }
    }
    
    
    // Début du menu VIP
    
    
    public Action:Vip(client, args)
    {
    if (VIP(client))
    {
    	// Si Vip on lui ouvre ce menu
    	new Handle:menu = CreateMenu(ACTION_DU_MENU_Vip);
    	SetMenuTitle(menu, "Liste des avantages du serveur AWP");
    	AddMenuItem(menu, "1", "Vous disposez de 105 hp");
    	AddMenuItem(menu, "2", "Vous disposez de 105 armures");
    	AddMenuItem(menu, "3", "Vous vous déplacer plus rapidement (0.1 plus vite)");
    	SetMenuExitButton(menu, true);
    }
    else
    {
    	// Sinon on lui envoit un message de non accès : 
    	  CPrintToChat(client, "{white}[ViP] {red}Vous n'avez pas accès à cette commande !")
    }
    }
    
    
    
    
    public ACTION_DU_MENU_Vip(Handle:Menu, MenuAction:HandleAction, client, Parameter)
    {
    CloseHandle(Menu);
    
    // On ferme le menu vu que quand on clique il ne se passe rien mais on doit déclarer la fonction de réponse même si elle ne sert a rien :p
    }
    
    
    // Fin du menu VIP
    public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
    {
    new UserId = GetEventInt(event, "userid");
    new client = GetClientOfUserId(UserId);
    
    if(client)
    	CPrintToChat(client, "{white}[ViP]: Vous êtes ViP de ce serveur. Taper !vip pour voir vos différents avantages !");
    }
    

    Lien vers le commentaire
    Partager sur d’autres sites

    // Fin du menu VIP
    public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
    {
       new UserId = GetEventInt(event, "userid");
       new client = GetClientOfUserId(UserId);
    
       //if(client)
       [size=1][b][color=#ff0000]if (VIP(client))[/color][/b][/size]
           CPrintToChat(client, "{white}[ViP]: Vous êtes ViP de ce serveur. Taper !vip pour voir vos différents avantages !");
    }
    

     

    C'est pas mieux ? oO

    Enfin ma logique me dit que ci ^^"

    Modifié par Kriax
    Lien vers le commentaire
    Partager sur d’autres sites

    bizarrement j'arrive pas à ouvrir le menu en tapant !vipmenu ou /vipmenu :

     

    #include <sourcemod>
    #include <morecolors>
    
    
    
    
    public Plugin:myinfo =
    {
       name = "VIP",
       author = "Max",
       description = "Permet de visualiser les bonus VIP",
       version = "1.0",
       url = "http://balkanstar.fr",
    }
    
    
    
    
    public OnPluginStart ()
    {
    RegConsoleCmd("sm_vipmenu", Vip); // Menu qui affiche les bonus VIP pour le flag o.
    }
    
    
    
    
    public bool:VIP(client)
    {
    if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)
    {
    	// Retourne oui
    	return true;
    }
    else
    {
    	// Retourne non 
    	return false;
    }
    }
    
    
    
    
    // Début du menu VIP
    
    
    
    
    public Action:Vip(client, args)
    {
    if (VIP(client))
    {
    	// Si le joueur est ViP, on lui ouvre le menu !
    	new Handle:menu = CreateMenu(ACTION_DU_MENU_Vip);
    	SetMenuTitle(menu, "Liste des avantages du serveur AWP");
    	AddMenuItem(menu, "1", "Vous disposez de 105 hp");
    	AddMenuItem(menu, "2", "Vous disposez de 105 armures");
    	AddMenuItem(menu, "3", "Vous vous déplacer plus rapidement (0.1 plus vite)");
    	SetMenuExitButton(menu, true);
    }
    else
    {
    	// Si le joueur n'est pas ViP, on lui envoie un message !
    	  CPrintToChat(client, "{white}[ViP] {red}Vous n'avez pas accès à cette commande !")
    	  CPrintToChat(client, "{white}[ViP] {orange}Rendez-vous sur notre site pour visualiser les avantages !")
    	  CPrintToChat(client, "{white}[ViP] {orange}Notre site est: {green}balkanstar.fr/vip{orange} !")
    }
    }
    
    
    
    
    
    
    
    
    public ACTION_DU_MENU_Vip(Handle:Menu, MenuAction:HandleAction, client, Parameter)
    {
    CloseHandle(Menu);
    }
    

    Lien vers le commentaire
    Partager sur d’autres sites

    normal xD :

    mets ca a la place de ton ACTION_DU_MENU_Vip :

    [color=#3E3E3E][font=Verdana]public ACTION_DU_MENU_Vip(Handle:Menu, MenuAction:HandleAction, client, Parameter)[/font][/color]
    [font=Verdana]{ [/font]
    [color=#0000FF][font=Verdana][font=monospace]     if[/font][/font][/color][color=#000000][font=Verdana][font=monospace] (action == MenuAction_Select)[/font][/font][/color][font=Verdana] [/font]
    [font=Verdana]        {     [/font]
    [font=Verdana]               CloseHandle(Menu); [/font]
    [font=Verdana]         }[/font]
    [font=Verdana]}[/font]

    Tu fermes ton menu alors que tu viens de l'ouvrir ^^.

    Lien vers le commentaire
    Partager sur d’autres sites

    en corrigeant les erreurs, il découvre l'erreur "undefined symbol "action"".

     

     

    il ne détecte pas la commande non plus : Unknown command: sm_vipmenu

     

    #include <sourcemod>
    #include <morecolors>
    
    
    
    
    public Plugin:myinfo =
    {
       name = "VIP",
       author = "Max",
       description = "Permet de visualiser les bonus VIP",
       version = "1.0",
       url = "http://balkanstar.fr",
    }
    
    
    
    
    public OnPluginStart ()
    {
    RegConsoleCmd("sm_vipmenu", Vip); // Menu qui affiche les bonus VIP pour le flag o.
    }
    
    
    
    
    public bool:VIPCustom(client)
    {
    if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)
    {
    	// Retourne oui
    	return true;
    }
    else
    {
    	// Retourne non 
    	return false;
    }
    }
    
    
    
    
    // Début du menu VIP
    
    
    
    
    public Action:Vip(client, args)
    {
    if (VIPCustom(client))
    {
    	// Si le joueur est ViP, on lui ouvre le menu !
    	new Handle:menu = CreateMenu(ACTION_DU_MENU_Vip);
    	SetMenuTitle(menu, "Liste des avantages du serveur AWP");
    	AddMenuItem(menu, "1", "Vous disposez de 105 hp");
    	AddMenuItem(menu, "2", "Vous disposez de 105 armures");
    	AddMenuItem(menu, "3", "Vous vous déplacer plus rapidement (0.1 plus vite)");
    	SetMenuExitButton(menu, true);
    }
    else
    {
    	// Si le joueur n'est pas ViP, on lui envoie un message !
    	  CPrintToChat(client, "{white}[ViP] {red}Vous n'avez pas accès à cette commande !")
    	  CPrintToChat(client, "{white}[ViP] {orange}Rendez-vous sur notre site pour visualiser les avantages !")
    	  CPrintToChat(client, "{white}[ViP] {orange}Notre site est: {green}balkanstar.fr/vip{orange} !")
    }
    }
    public ACTION_DU_MENU_Vip(Handle:Menu, MenuAction:HandleAction, client, Parameter)
    { 
        if (Action == MenuAction_Select)
           {     
                  CloseHandle(Menu); 
            }
    }
    

    Lien vers le commentaire
    Partager sur d’autres sites

    Essaye ça :

    #include <sourcemod>
    #include <morecolors>
    
    
    
    
    public Plugin:myinfo =
    {
       name = "VIP",
       author = "Max",
       description = "Permet de visualiser les bonus VIP",
       version = "1.0",
       url = "http://balkanstar.fr",
    }
    
    public OnPluginStart ()
    {
       RegConsoleCmd("sm_vipmenu", Command_Vip); // Menu qui affiche les bonus VIP pour le flag o.
    }
    
    public Action:Command_Vip(client, args)
    
    {
       if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)
       {
           // Si le joueur est ViP, on lui ouvre le menu !
           new Handle:menu = CreateMenu(ACTION_DU_MENU_Vip);
           SetMenuTitle(menu, "Liste des avantages du serveur AWP");
           AddMenuItem(menu, "1", "Vous disposez de 105 hp");
           AddMenuItem(menu, "2", "Vous disposez de 105 armures");
           AddMenuItem(menu, "3", "Vous vous déplacer plus rapidement (0.1 plus vite)");
           SetMenuExitButton(menu, true);
       }
       else
       {
       if (GetUserFlagBits(client))
           {
           // Si le joueur n'est pas ViP, on lui envoie un message !
             CPrintToChat(client, "{white}[ViP] {red}Vous n'avez pas accès à cette commande !")
             CPrintToChat(client, "{white}[ViP] {orange}Rendez-vous sur notre site pour visualiser les avantages !")
             CPrintToChat(client, "{white}[ViP] {orange}Notre site est: {green}balkanstar.fr/vip{orange} !")
           }
       }
    }
    
    public ACTION_DU_MENU_Vip(Handle:Menu, MenuAction:HandleAction, client, Param2)
    { 
       if (Action == MenuAction_Select)
       {     
           CloseHandle(Menu); 
       }
    }

    j'debute aussi hein :p

     

    Perso sa me sort une erreur de tag mismatch et de constant expression is zero à cette ligne

    "if (Action == MenuAction_Select)"

    & je sais pas c'est quoi les bools et je pense que c'est pas très utile pour cette fonction x)

    Lien vers le commentaire
    Partager sur d’autres sites

    On m'a corriger, essaye ça:

    #include <sourcemod>
    #include <morecolors>
    
    
    
    
    public Plugin:myinfo =
    {
       name = "VIP",
       author = "Max",
       description = "Permet de visualiser les bonus VIP",
       version = "1.0",
       url = "http://balkanstar.fr",
    }
    
    public OnPluginStart ()
    {
       RegConsoleCmd("sm_vipmenu", Command_Vip); // Menu qui affiche les bonus VIP pour le flag o.
    }
    
    public Action:Command_Vip(client, args)
    
    {
       if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)
       {
           // Si le joueur est ViP, on lui ouvre le menu !
           new Handle:menu = CreateMenu(ACTION_DU_MENU_Vip);
           SetMenuTitle(menu, "Liste des avantages du serveur AWP");
           AddMenuItem(menu, "1", "Vous disposez de 105 hp");
           AddMenuItem(menu, "2", "Vous disposez de 105 armures");
           AddMenuItem(menu, "3", "Vous vous déplacer plus rapidement (0.1 plus vite)");
           SetMenuExitButton(menu, true);
       }
       else
       {
           //Si le joueur n'est pas ViP, on lui envoie un message !
           CPrintToChat(client, "{white}[ViP] {red}Vous n'avez pas accès à cette commande !")
           CPrintToChat(client, "{white}[ViP] {orange}Rendez-vous sur notre site pour visualiser les avantages !")
           CPrintToChat(client, "{white}[ViP] {orange}Notre site est: {green}balkanstar.fr/vip{orange} !")
       }
    }
    
    public ACTION_DU_MENU_Vip(Handle:Menu, MenuAction:HandleAction, client, Param2)
    {
       CloseHandle(Menu);
    }

    Lien vers le commentaire
    Partager sur d’autres sites

    normal xD :

    mets ca a la place de ton ACTION_DU_MENU_Vip :

    [color=#3E3E3E][font=Verdana]public ACTION_DU_MENU_Vip(Handle:Menu, MenuAction:HandleAction, client, Parameter)[/font][/color]
    [font=Verdana]{ [/font]
    [color=#0000FF][font=Verdana][font=monospace]     if[/font][/font][/color][color=#000000][font=Verdana][font=monospace] (action == MenuAction_Select)[/font][/font][/color]
    [font=Verdana]        {     [/font]
    [font=Verdana]               CloseHandle(Menu); [/font]
    [font=Verdana]         }[/font]
    [font=Verdana]}[/font]

    Tu fermes ton menu alors que tu viens de l'ouvrir ^^.

     

    Erreur effectivement sauf que

     

    [color=#0000FF][font=Verdana][font=monospace]    if[/font][/font][/color][color=#000000][font=Verdana][font=monospace] (action == MenuAction_Select)[/font][/font][/color]
    [font=Verdana]       {     [/font]
    [font=Verdana]              CloseHandle(Menu); [/font]
    [font=Verdana]        }[/font]
    

     

    D'ou tu le sors le action ?

     

    Ce serait pas plutôt ?

     

        if ([size=4][b]HandleAction [/b][/size]== MenuAction_Select)
        {     
    	CloseHandle(Menu); 
        }
    

     

    Bref le code final :

     

    #include <sourcemod>
    #include <morecolors>
    public Plugin:myinfo =
    {
       name = "VIP",
       author = "Max",
       description = "Permet de visualiser les bonus VIP",
       version = "1.0",
       url = "http://balkanstar.fr",
    }
    
    
    public OnPluginStart ()
    {
       RegConsoleCmd("sm_vipmenu", Command_Vip); // Menu qui affiche les bonus VIP pour le flag o.
    }
    
    
    public Action:Command_Vip(client, args)
    {
       if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)
       {
           // Si le joueur est ViP, on lui ouvre le menu !
           new Handle:menu = CreateMenu(ACTION_DU_MENU_Vip);
           SetMenuTitle(menu, "Liste des avantages du serveur AWP");
           AddMenuItem(menu, "1", "Vous disposez de 105 hp");
           AddMenuItem(menu, "2", "Vous disposez de 105 armures");
           AddMenuItem(menu, "3", "Vous vous déplacer plus rapidement (0.1 plus vite)");
           SetMenuExitButton(menu, true);
       }
       else
       {
    	if (client)
    	{
    		CPrintToChat(client, "{white}[ViP] {red}Vous n'avez pas accès à cette commande !");
    		CPrintToChat(client, "{white}[ViP] {orange}Rendez-vous sur notre site pour visualiser les avantages !");
    		CPrintToChat(client, "{white}[ViP] {orange}Notre site est: {green}balkanstar.fr/vip{orange} !");
    	}
       }
    }
    
    
    public ACTION_DU_MENU_Vip(Handle:Menu, MenuAction:HandleAction, client, Param2)
    { 
       if (HandleAction == MenuAction_Select)
       {     
           CloseHandle(Menu); 
       }
    }  
    

    Lien vers le commentaire
    Partager sur d’autres sites

    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.

    Invité
    Répondre à ce sujet…

    ×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

      Seulement 75 émoticônes maximum sont autorisées.

    ×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

    ×   Votre contenu précédent a été rétabli.   Vider l’éditeur

    ×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

    ×
    ×
    • Créer...