Altayir Posté(e) le 29 octobre 2013 Share Posté(e) le 29 octobre 2013 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, Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
alex30555 Posté(e) le 29 octobre 2013 Share Posté(e) le 29 octobre 2013 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Altayir Posté(e) le 29 octobre 2013 Auteur Share Posté(e) le 29 octobre 2013 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 !") } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mishou Posté(e) le 29 octobre 2013 Share Posté(e) le 29 octobre 2013 Y'a pas de virgule entre le guillemet et la parenthèse quand y'a rien : ",); = "); Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
alex30555 Posté(e) le 29 octobre 2013 Share Posté(e) le 29 octobre 2013 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 !"); } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Altayir Posté(e) le 30 octobre 2013 Auteur Share Posté(e) le 30 octobre 2013 Merci, il manquait plein de choses alors :P :( Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 30 octobre 2013 Share Posté(e) le 30 octobre 2013 (modifié) // 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é le 30 octobre 2013 par Kriax Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
alex30555 Posté(e) le 30 octobre 2013 Share Posté(e) le 30 octobre 2013 Alors pk tu écris gros, c'est vrai j'avais pas vu ^^ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 30 octobre 2013 Share Posté(e) le 30 octobre 2013 Parce que j'avais envie :o Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Altayir Posté(e) le 30 octobre 2013 Auteur Share Posté(e) le 30 octobre 2013 Je veux pas faire le garçon, chiant mais ton code a des erreurs, qui ne permet pas la compilation xd Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
alex30555 Posté(e) le 30 octobre 2013 Share Posté(e) le 30 octobre 2013 Pas chez moi. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Altayir Posté(e) le 31 octobre 2013 Auteur Share Posté(e) le 31 octobre 2013 surement un bug de chez moi :( Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Altayir Posté(e) le 31 octobre 2013 Auteur Share Posté(e) le 31 octobre 2013 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); } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Marechoux Posté(e) le 31 octobre 2013 Share Posté(e) le 31 octobre 2013 Tu as deux fonctions qui s'appellent "VIP", renomme en une : public bool:VIP(client) public Action:Vip(client, args) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
dertione Posté(e) le 31 octobre 2013 Share Posté(e) le 31 octobre 2013 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 ^^. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Altayir Posté(e) le 31 octobre 2013 Auteur Share Posté(e) le 31 octobre 2013 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); } } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mishou Posté(e) le 31 octobre 2013 Share Posté(e) le 31 octobre 2013 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) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Altayir Posté(e) le 31 octobre 2013 Auteur Share Posté(e) le 31 octobre 2013 Toujours pas, le menu s'ouvre pas & dit que sm_vipmenu n'existe pas :/ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mishou Posté(e) le 31 octobre 2013 Share Posté(e) le 31 octobre 2013 Je cherche xD Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Marechoux Posté(e) le 31 octobre 2013 Share Posté(e) le 31 octobre 2013 if(HandleAction == MenuAction_Select) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mishou Posté(e) le 31 octobre 2013 Share Posté(e) le 31 octobre 2013 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); } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Altayir Posté(e) le 31 octobre 2013 Auteur Share Posté(e) le 31 octobre 2013 (modifié) toujours pas :/ Quand on est non-vip ce-là fonctionne les messages, mais pas pour le vip pour le !vipmenu. Modifié le 31 octobre 2013 par Altayir Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
alex30555 Posté(e) le 31 octobre 2013 Share Posté(e) le 31 octobre 2013 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); } } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Altayir Posté(e) le 31 octobre 2013 Auteur Share Posté(e) le 31 octobre 2013 Toujours pas ptdr x) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Insomniak Posté(e) le 31 octobre 2013 Share Posté(e) le 31 octobre 2013 En ajoutant : DisplayMenu(menu, client, 0); ça ira surement mieux. 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.