PDA

Просмотр полной версии : [Вопрос] Админ-команда /msg [id] [text]



xalk1
21.10.2014, 18:13
Подскажите как сделать чтобы админы моги отправлять игрокам сообщение

типо: /msg id text

и игроку напишет: Администратор Ник написал вам: текст

DeimoS
21.10.2014, 18:28
Открываем Pawno (или любой другой редактор) и пишем такую команду, не?

Вот пример с wiki.sa-mp.com

if(!strcmp("/pm", cmdtext, true))
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)) return SendClientMessage(playerid,0xFF0000FF,"USAGE: /PM (id) (message)");
new id = strval(tmp);
gMessage = strrest(cmdtext,idx);
if(!strlen(gMessage)) return SendClientMessage(playerid,0xFF0000FF,"Usage: /pm (id) (message)");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,0xFF0000FF,"/pm :Invalid ID");
GetPlayerName(id,iName,sizeof(iName));
GetPlayerName(playerid,pName,sizeof(pName));
format(Message,sizeof(Message),">> %s(%i): %s",iName,id,gMessage);
SendClientMessage(playerid,0xFFD720FF,Message);
format(Message,sizeof(Message),"** %s(%i): %s",pName,playerid,gMessage);
SendClientMessage(id,0xFFD720FF,Message);
PlayerPlaySound(id,1085,0.0,0.0,0.0);
return 1;
}
Код ужасен, но принцип тут виден

Valera_Trefilov
21.10.2014, 21:57
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], params[128], cmd_string[144];
sscanf(cmdtext, "s[128]s[128]", cmd, params);
if(!strcmp(cmdtext, "/help", true))
{
new id, message[144];
if(sscanf(params, "is[144]",id,message)) return SendClientMessage(playerid, -1, "> /ans [id] [name]");
format(cmd_string, sizeof(cmd_string), "> You to player %s[%d]: %s",NamePlayer[id],id,message);
SendClientMessage(playerid,-1,cmd_string);
format(cmd_string, sizeof(cmd_string), "> Admin %s[%d] send you: %s",NamePlayer[playerid],playerid,message);
SendClientMessage(id,-1,cmd_string);
return 1;
}
return 0;
}

- - - Добавлено - - -

Если ты не знаешь что такое NamePlayer :

То узнать просто.


new NamePlayer[MAX_PLAYERS][MAX_PLAYER_NAME];
// к переменным

GetPlayerName(playerid, NamePlayer[playerid], MAX_PLAYER_NAME);
// В OnPlayerConnect

- - - Добавлено - - -

Вместо /help, поставь /ans (перепутал) :don-t_mention:

DeimoS
21.10.2014, 21:58
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], params[128], cmd_string[144];
sscanf(cmdtext, "s[128]s[128]", cmd, params);
if(!strcmp(cmdtext, "/help", true))
{
new id, message[144];
if(sscanf(params, "is[144]",id,message)) return SendClientMessage(playerid, -1, "> /ans [id] [name]");
format(cmd_string, sizeof(cmd_string), "> You to player %s[%d]: %s",NamePlayer[id],id,message);
SendClientMessage(playerid,-1,cmd_string);
format(cmd_string, sizeof(cmd_string), "> Admin %s[%d] send you: %s",NamePlayer[playerid],playerid,message);
SendClientMessage(id,-1,cmd_string);
return 1;
}
return 0;
}

- - - Добавлено - - -

Если ты не знаешь что такое NamePlayer :

То узнать просто.


new NamePlayer[MAX_PLAYERS][MAX_PLAYER_NAME];
// к переменным

GetPlayerName(playerid, NamePlayer[playerid], MAX_PLAYER_NAME);
// В OnPlayerConnect



sscanf(cmdtext, "s[128]s[128]", cmd, params);

if(!strcmp(cmdtext, "/help", true))


sscanf(cmdtext, "s[128]s[128]", cmd, params);

if(!strcmp(cmdtext, "/help", true))


https://ps.vk.me/c6236/u89977606/docs/a3d199490f72/kmp.gif?extra=YCDMHZDy8Gee6cpxwDYToWbrslTFwqr3QBF_wxOOnspia0wqeSyMbBLpBepvCgu9tR-u9YI9eNUvVIpxl6ge4nUdhpfeHZw

Valera_Trefilov
21.10.2014, 22:00
https://ps.vk.me/c6236/u89977606/docs/a3d199490f72/kmp.gif?extra=YCDMHZDy8Gee6cpxwDYToWbrslTFwqr3QBF_wxOOnspia0wqeSyMbBLpBepvCgu9tR-u9YI9eNUvVIpxl6ge4nUdhpfeHZw
Ну я то знаю.
Ну я че-то не могу редактировать сообщение.
Баги какие-то
И не нужно так угарать :D

Salvacore
21.10.2014, 22:47
Ну я то знаю.
Ну я че-то не могу редактировать сообщение.
Баги какие-то
И не нужно так угарать :D
Это не баг, так и нужно.