Jump to content

HELP: Commande incorrect


Recommended Posts

  • Moderators

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
  • Moderators

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...