Jump to content

Tutorial y_commands [YSI]


keNN.
 Share

Recommended Posts

  • Administrator
  • Username: keNN.
  • Creator: EraSy
  • Tutorial/Ghid:

 

 
Salutare !
Astazi, in urma unor topicuri cu probleme legate de acest include, m-am decis sa fac un tutorial pentru folosirea procesorului de comenzi y_commands.
In ciuda haterilor care folosesc ZCMD, de obicei tot ce face Y_Less e bun.

 

 
Incepem cu ce avem nevoie, eu voi include un 'include' in plus, tot de la YSI, pentru folosirea plusuri ce vi le voi prezenta si voua.
#include < YSI\y_master >
#include < YSI\y_commands >
#include < YSI\y_va >
Odata incluse aceste lucruri, acum puteti folosi procesorul de comenzi y_commands.
Pentru cei care foloseau ZCMD sau orice alt procesor de comenzi diferit, parametrii sunt urmatorii:
YCMD:test(playerid, params[], help) {
      return 1;
}
Eu unul nu folosesc parametrul 'help', dar daca voi il veti folosi, va dau urmatorul exemplu:
YCMD:test(playerid, params[], help) {
        if(help) return SendClientMessage(playerid, -1, "Aceasta comanda este pentru un tutorial");
        return 1;
}
Acum, multi dintre voi va foloseati de return pentru scurtatura unei comenzi, ei bine, aici este diferit.
La public-ul OnGamemodeInit(), va folositi de functia 'Command_AddAltNamed'
Spre exemplu, voi vreti sa creati o scurtatura comenzii '/test'
public OnGamemodeInit() {
       Command_AddAltNamed("test", "tutorial");
       return 1;
}
Acum, comanda /tutorial va face exact acelasi lucru cu comanda /test.
Parametrii acestei functii sunt: 
Command_AddAltNamed("Comanda Actuala", "Scurtatura dorita");
Acum, voi poate doriti sa executati o comanda dintr-un dialog, sau din orice altceva.
Eu voi crea un stock ce imi va usura munca:
stock executaComanda(playerid, const comanda[], help, va_args<>) {
       new string[50]; va_format(string, sizeof string, comanda, va_start<3>);
       Command_ReProcess(playerid, string, help);
       return 1;
}
Cu ajutorul acestui Stock, nu mai aveti nevoie de format pentru folosirea parametrilor.
O sa va dau un exemplu:
// La OnDialogResponse:
case DIALOG_TUTORIAL: {
       if(!response) return 1;
       executaComanda(playerid, "tutorial", true);
}

Pentru comenzile de tip accept sau orice altceva, veti folosi:

executaComanda(playerid, "accept medic %d", true, playerid);
Pentru evitarea formatului, acest stock este perfect.
Probabil unii va mai intrebati, cum schimb textul de la comenzi nedefinite "Unknown Command".
Ei bine, este diferit si de ZCMD, si de versiunile vechi de YSI.
Eu va voi prezenta metoda de schimbare a textului de pe ultima versiune de YSI, 4.0:
public e_COMMAND_ERRORS:OnPlayerCommandReceived(playerid, cmdtext[], e_COMMAND_ERRORS:success) {
         if(success == COMMAND_UNDEFINED) {
                   SendClientMessage(playerid, -1, "Comanda nu exista");
                   return COMMAND_OK;
         }
         return COMMAND_OK;
}

e_COMMAND_ERRORS fiind 'enumul' comenzilor, pe care vi-l las si eu aici:

enum e_COMMAND_ERRORS
{
       COMMAND_ZERO_RET      = 0 , // The command returned 0.
       COMMAND_OK            = 1 , // Called corectly.
       COMMAND_UNDEFINED     = 2 , // Command doesn't exist.
       COMMAND_DENIED        = 3 , // Can't use the command.
       COMMAND_HIDDEN        = 4 , // Can't use the command don't let them know it exists.
       COMMAND_NO_PLAYER     = 6 , // Used by a player who shouldn't exist.
       COMMAND_DISABLED      = 7 , // All commands are disabled for this player.
       COMMAND_BAD_PREFIX    = 8 , // Used "/" instead of "#", or something similar.
       COMMAND_INVALID_INPUT = 10, // Didn't type "/something".
}

 

Link to comment
Share on other sites

Bravo Alexandru.

Edited by K1nG

    _________________________________________________
    |                                                        _________             |
    |    |    /          /|        |\            |      /                   \          |
    |    |  /        /   |          |  \          |      |                              |
    |    |/       /     |           |    \        |      |                              |   
    |    |\              |           |      \      |      |        _____            |
    |    |  \            |           |        \    |      |                 \           |
    |    |    \          |           |          \  |      |                   |          |
    |    |      \        |           |            \|      \_________/           |
    |_______________________________________________|

Link to comment
Share on other sites

Link to comment
Share on other sites

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
 Share

  • Recently Browsing   0 members

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