else if(strcmp(cmd, "/givegun", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(PlayerInfo[playerid][pAdmin] > 0)
{
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "???????????: /givegun [id] [id ??????] [???????]");}
new playa;
new gun;
new ammo;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
gun = strval(tmp);
if(gun <1||gun > 46) return SendClientMessage(playerid, COLOR_GRAD1, "????? ?????? ?? ?????? ???? ?????? 1 ? ?????? 46");
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "???????????: /givegun [id] [id ??????] [???????]");
tmp = strtok(cmdtext, idx);
ammo = strval(tmp);
if(ammo <1||ammo > 5000) return SendClientMessage(playerid, COLOR_GRAD1, "?????? ?????? 1 ??? ?????? 5000 ????????!");
if(PlayerInfo[playerid][pAdmin] >= 6)
{
if(IsPlayerConnected(playa))
{
new iname[MAX_PLAYER_NAME], dname[MAX_PLAYER_NAME];
GetPlayerName(playerid, iname, sizeof(iname));
GetPlayerName(playa, dname, sizeof(dname));
GiveWeapon(playa, gun, ammo);
SendClientMessage(playerid, COLOR_GRAD1, "?????? ??????");
static const Frmt[] = "[A] %s[%d] выдал оружие (ID: %d, патронов: %d) игроку %s[%d];
new String_Frmt[sizeof(Frmt) + MAX_PLAYER_NAME + 3 + 2 + 4 + MAX_PLAYER_NAME + 3 - 12];
format(String_Frmt, sizeof(String_Frmt), Frmt, iname, playerid, gun, ammo, dname, playa);
SendAdminMessage(-1, String_Frmt);
}
}
}
else return SendClientMessage(playerid, COLOR_GRAD1, "?? ?? ???????????? ???????????? ??? ???????!");
}
Кажется люди в 2к16 (скоро 2к17) не слышали про sscanf |
CMD:gun(playerid,params[]){
if(p_info[playerid][p_admin] < 1) return true;
if(sscanf(params,"udd",params[0],params[1],params[2])) return SendClientMessage(playerid,-1, "[Справка]: Используйте /gun [ID игрока] [ID оружия] [количество патронов]");
GivePlayerWeapon(params[0],params[1],params[2]);
new mes[88];
format(mes, sizeof(mes),"[A] %s[%d] выдал оружие %s",Name(playerid),playerid,params[0]);
Message_ToAdmins(0xA7CB44AA, mes);
return true;
}
stock Message_ToAdmins(color, const fmat[], va_args<>)
{
foreach(new i : Player)
if (p_info[i][p_admin] >= 1)
SendClientMessage(i, color, va_return(fmat, va_start<2>));
}
if(!strcmp(cmdtext, "/ip", true))
{
if(PI[playerid][Admin] < 1)//заменяйте на свою переменную админки
return true;
extract params -> new plid; else
return SendClientMessage(playerid, -1, !"- Подсказка: /ip [ID]");
if(!IsPlayerConnected(plid))
return SendClientMessage(playerid, -1, !"Такого игрока нет");
new
ip[16], name[MAX_PLAYER_NAME];
GetPlayerIp(plid, ip, sizeof ip);
GetPlayerName(plid, name, sizeof name);
static const
fmt_str[] = "Ник: [%s] IP: [%s]";
new
string[sizeof fmt_str + (-2+MAX_PLAYER_NAME) + (-2+16)];
format(string, sizeof(string), fmt_str, name, ip);
SendClientMessage(playerid, -1, string);
return true;
}
Была одна тема на форуме, парень просил какую-то команду...
На что я сделал замечаниЕ: И дал ему такой код: PHP Code:
PHP Code:
На что мне сделали указание мол в 2к17 уже пишут примерно такой код: PHP Code:
На сколько ли это актуально? Есть-ли какая-то разница между ними? (скорость, память и т.п) Стоит ли придержоваться второго варианта? |
sscanf(params,"udd",[b]params[0][/b],[b]params[1][/b],[b]params[2][/b])
if(!strcmp(cmdtext, "/ip", true))
extract params -> new plid;
Это что такое?
PHP Code:
|