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.