Jump to content

/hostname


IosifR

Recommended Posts

Salut sa-mp.ro! Astazi am sa va arat cum sa faceti comanda /hostname ( pentru incepatori.. astept hate de la aia 'avansati'). Cu aceasta comanda puteti schimba numele serverului.

Pentru aceasta comanda ma voi folosi de sscanf si zcmd. (https://www103.zippyshare.com/v/Lxj6JFGI/file.html)

Citat

CMD:hostname(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >=6) // Daca nu aveti sistem de admin, in loc de asta puneti 'if(IsPlayerAdmin(playerid))'
    {
        new string[128], name[64]; // Aici creem un string pentru a trimite textele si 'name', adica numele care il scrie playerul care foloseste comanda.
        if(sscanf(params, "s[64]", name)) return SCM(playerid,COLOR_GREY, "Folosire: {FFFFFF}/hostname <Nume>"); // Aici ne folosim de sscanf. Daca adminul scrie doar /hostname i va trimite un mesaj cum se foloseste comanda
        {
            format(string, sizeof(string), "hostname %s", name);   In loc de '%s' va fii numele care a scris adminul.
            SendRconCommand(string); Aceasta linie trimite comanda catre consola serverului
            format(string, sizeof(string), "Ai schimbat numele serverului in %s", name);
            SendClientMessage(playerid,# COLOR_RED1, string);  // Trimite mesajul de mai sus ca a schimbat numele serverului
        }
    }
    else return SCM(playerid, COLOR_YELLOW2, AdminOnly);
    return 1;
}

La inceput de gamemode puneti
 

Citat

#define AdminOnly "{FFFFCC}Eroare: Nu ai acces la aceasta comanda!"

#define COLOR_YELLOW2       0xFFFABAFF

#define COLOR_RED1          0x80404000

#define COLOR_GREY             0xAFAFAFAA

#define SCM SendClientMessage

Si

Citat

#include <zcmd>
#include <sscanf>

pa
<click>

Edited by IosifR
Link to comment
Share on other sites

In primul rand, nu sunt hater, comanda ta este perfect corecta, dar, desi este o comanda asa de simpla, nu stiu de ce te-ai lungit asa de mult cu ea. Este o comanda ce poate fii facuta in 10 randuri, iar string-urile alea de ce sunt asa de mari? Nu cred ca o sa pui tu nume de 64 de caractere la server, si totusi, si daca il pui, de ce string-ul este de 128? I mean, de ce nu ai pus new string[9 + sizeof(name)]? Consumi mult mai putin si in plus, hostname + un spatiu dintre el si numele ocupa 9 caractere, exact de cate ai nevoie.

Parerea mea este ca asa este mult mai bine, ocupa si mai putin spatiu si este si  mai economic din punct de vedere al procesorului. Corectati-ma daca gresesc.

YCMD:hostname(playerid, params[], help)
{
    new serverName[32], string[9+sizeof(serverName)];
    if(PlayerInfo[playerid][pAdmin] < 6) return SendClientMessage(playerid, COLOR_YELLOW, AdminOnly);
    if(sscanf(params, "s[32]", serverName)) return SendClientMessage(playerid, -1, "Syntax: /hostname <Server Name>");
    format(string, 9+sizeof(serverName), "hostname %s", serverName);
    SendRconCommand(string);
    format(string, 9+sizeof(serverName), "Ai schimbat numele serverului in %s", serverName);
    SendClientMessage(playerid, -1, string);
    return 1;
}

 

apropo, folosesc YSI Cmd, recomand.

 

(Edit: Nu sunt eu mare scripter, dar lucrurile astea cu marimea string-urilor, cu string-urile locale, globale, etc. tin de optimizare, si daca faci un gamemode de la 0, mai bine te gandesti la lucrurile astea de acum, decat sa ajungi cu gm-ul la 20k linii+ si sa stai cu orele sa cauti prin gm, sa modifici string-uri, etc) Inca un lucru, recomand folosirea mai desa a string-urilor si in general a variabilelor globale. Adica, de ce sa declari inca 2 variabile (string si serverName) cand ai putea sa folosesti alte 2 variabile care sunt deja definite global.

Edited by Trippie
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.