kofty Posted November 7, 2013 Share Posted November 7, 2013 Bonsoir, étant nouveau dans la prog lua, j'aimerais mettre une phrase d'erreur quand le joueur éxécute une commande incorrect, comment faire sachant que le lua est totalement différent du pawn. Merci d'avance ++ Link to comment
Moderators Citizen Posted November 8, 2013 Moderators Share Posted November 8, 2013 Bonsoir kofty, Qu'entends tu par "commande incorrecte" ? Une commande qui n’existe pas ou une commande qui existe mais dont les arguments n'ont pas été renseignés (du genre: "SYNTAXE: /tppos [x] [y] [z]"). Si tu veux afficher un message d'erreur lorsque le joueur tape une commande qui n’existe pas (), ça risque d'être un peu compliqué voir impossible, je n'est pas encore regarder de comment on pourrait faire ça, mais on a aucun contrôle sur l'exécution d'une commande, on peut juste ajouter des commandes au serveur. Je regarderai voir si c'est possible en trouvant une astuce. Mais je ne promet rien. Link to comment
kofty Posted November 9, 2013 Author Share Posted November 9, 2013 Salut, je parle d'une commande qui n'existe pas. J'attends ta réponse, je te remercie d'avance pour ta recherche qu'elle soit positive ou négative. ++ Link to comment
Moderators Citizen Posted November 10, 2013 Moderators Share Posted November 10, 2013 Bonjour kofty, Après plusieurs heures de recherches et de tests, j'ai réussi (avec l'aide de Cadu12, une personne que j'ai rencontré sur l'irc de MTA qui à trouvé une alternative moins compliqué que ce que je tentais) à faire le système que tu désirais. Cette version ne fonctionnera que pour une seule ressource, c'est-à-dire que si tu as une autre ressource qui tourne en même temps et qu'elle fournit des commandes pour les joueurs, elles ne seront pas détectées par le système. Ces commandes seront fonctionnelles, mais le système dira que la commande n’existe pas alors qu'elle a pourtant fonctionnée. Crée un fichier cmd.lua: -------------------------------------------------- --- Custom commands system by Cadu12 & Citizen --- --- Error message if the cmd doesn't exists --- -------------------------------------------------- _addCommandHandler = addCommandHandler _removeCommandHandler = removeCommandHandler MTACommands = {"help","exit","quit","ver","time","showhud","binds","serial","vid","window","load","unload","connect","reconnect","bind","unbind","copygtacontrols","screenshot","saveconfig","cleardebug","chatscrollup","chatscrolldown","debugscrollup","debugscrolldown","test","showmemstat","showframegraph","fakelag","aclrequest","sfakelag","debugjoinflood","debugdb","reloadmodule","loadmodule","unloadmodule","whowas","debugscript","reloadbans","whois","sudo","aexec","shutdown","chgpass","delaccount","addaccount","chgmypass","logout","login","nick","me","msg","asay","teamsay","say","check","upgrade","stopall","stop","info","refreshall","info","restart","refresh","start"} _commands = {} function cmdExists(command) for k, cmd in ipairs(_commands)do local name, case = cmd.name, cmd.isCaseSensitive if case and name==command then return true end if not case and name:lower() == command:lower() then return true end end return false end function addCommand(command, func, case) if case == nil then case = false end table.insert(_commands, {name=command, func=func, isCaseSensitive=case}) end for k, cmd in ipairs(MTACommands)do addCommand(cmd, nil) end function addCommandHandler(command, func, restricted, case) if restricted == nil then restricted = false end if case == nil then case = true end if _addCommandHandler(command, func, restricted, case) then addCommand(command, func, case) return true end return false end function removeCommandHandler(command, func) if _removeCommandHandler(command, func) and cmdExists(command) then for k, cmd in ipairs(_commands) do if func == nil or cmd.func == func then table.remove(_commands, k) end end end end addEventHandler("onPlayerCommand", root, function(command) if not cmdExists(command) then outputChatBox("[ERROR] Command not found.") end end) Et rajoute le en premier script dans ta meta.xml: <meta> .... <script src="cmd.lua" type="server" /> <script src="autrescript.lua" type="X" /> .... </meta> J'ai testé et c'est fonctionnel. Cordialement, Citizen Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now