Урок по созданию сообщений в чат или на экран в SA:MP
SendClientMessage, SendClientMessageToAll., SendPlayerMessageToPlayer, SendPlayerMessageToAll, GameTextForPlayer, GameTextForAll и SendDeathMessage
SendClientMessage отправляет сообщение одному из игроков в чат (например ввёл команду, и текст отправился только тебе)
SendClientMessageToAll отправляет сообщение в чат так, что все его могут видеть.
Сейчас объясню, что где используется:
SClM (SendClientMessage), обзову его так – у меня эта функция стоит в OnPlayerConnect – расставляется большое количество пропуска (очищает чат) и пишется текст (какой – не важно), так же использую при командах, или в ПМках (личных сообщениях).
Смысл данной функции прост:
playerid – узнаёт ID игрока.
color – вписываем цвет (можно так же обратится к define’ам, в прошлом уроке я рассказывал про установку цвета, приводя пример COLOR_RED).
“Текст” – думаю понятно, что в кавычки можно вставить текст.
SClMTA (SendClientMessageToAll) – отправление текстового сообщения в чат всем игрокам. Я использую эту функцию только для показа действия (например: «%s перешел в аэропорт Лос-Сантоса», где %s обычно обозначается как playername, или что-то вроде того) и ещё для отправки в чат автоматических сообщений (при этом привязываю таймер, и как говорили мне – таймер нагружает сервер).
Примеры использования каждой функции
SendClientMessage с движением объекта:
if (strcmp(«/move», cmdtext, true, 10) == 0)
<
MoveObject(obj,0, 0, 9, 4);
SendClientMessage(playerid,COLOR_RED,»Объект передвинут»);
return 1;
И закончу его движение:
if (strcmp(«/moveback», cmdtext, true, 10) == 0)
<
MoveObject(obj,0, 0, 0, 4);
SendClientMessage(playerid,COLOR_RED,»Объект передвинут обратно»);
return 1;
>
SPMTP (SendPlayerMessageToPlayer) – отправление текстового сообщения в чат определённому игроку от другого игрока.
Playerid – указан выше – ID (идентификатор) игрока.
Senderid – ID игрока-отправителя.
«Текст» – думаю вам уже понятно, что здесь можно что-то написать.
cmd = strtok(cmdtext, idx);
if(strcmp(«/pm», cmd, true) == 0)
<
tmp = strtok(cmdtext,idx);
if(!strlen(tmp) || strlen(tmp) > 5) <
SendClientMessage(playerid,COLOR_RED, «/pm pID текст»);
return 1;
>
new/> gMessage = strrest(cmdtext,idx);
if(!strlen(gMessage)) <
SendClientMessage(playerid,COLOR_RED, «/pm pID текст»);
return 1;
>
if(!IsPlayerConnected(id)) <
SendClientMessage(playerid,COLOR_RED, «Такого игрока нет на сервере»);
return 1;
>
SPMTA (SendPlayerMessageToAll) – отправление текстового сообщения в общий чат, отправив имя игрока и сообщение (тоже самое, что и sendclientmessagetoall, только при этом в чате присутствует ник игрока).
format(output, sizeof(output), «(%d) %s», playerid, text);
SendPlayerMessageToAll(playerid, output);
return 0;
>
SendClientMessageToAll с отправлением действия игрока в чат всем игрокам:
Например, если игрок выбрал в меню телепортов «Аэропорт Лос-Сантоса», то в чат отправляется:
И переносит на специальную координату:
Простенькая функция – выводит на экран игроку определённый текст.
Некоторые русские переводы плохие, и я перечислю вам их символы:
Эти символы я взял из собственного опыта и знания.
Всего я знаю 7 типов:
Следующее – это тот же самый текст, только для всех игроков – GameTextForAll
Тоже самое что и GameTextForPlayer – справедливы все его функции, кроме PlayerID – его не будет, так как этот текст будет показан для всех. Следите за набором текста, указано выше – какие буквы русские будут показаны на экране.
Как обычно пример использования:
if (strcmp(«/move», cmdtext, true, 10) == 0)
<
MoveObject(obj,0, 0, 9, 4);
GameTextForPlayer(playerid, «O6JEKT ZEPEDBNHYT», 5000, 1); //Написано: Объект передвинут
return 1;
ну и закончу его движение
if (strcmp(«/moveback», cmdtext, true, 10) == 0)
<
MoveObject(obj,0, 0, 0, 4);
GameTextForAll(«O6JEKT BEPHYLCR HA CBOE MECTO», 5000, 3 ); //Написано: Объект вернулся на своё место
return 1;
>
Ну и в конце урока SendDeathMessage – отправляет сообщение о смерти игрока, отображенное под худом (HUD). Я обычно использую эту функцию в public OnPlayerDeath(playerid, killerid, reason).
Как написать в общий чат в сампе
Расскажу некоторую Информацию на счет Чата в игре.
Читайте те кто знает и не знает.
Я призываю вас к тому, что давайте начнем соблюдать эти правила метагейминга и /b, для начала хотя бы попытаться.
И так для начала я напишу вам какие есть разновидности Чата:
Обычный Чат: Когда вы просто нажимаете F6 и вводите Текст, который хотите написать. Этот Чат IC.
Цвет Чата:[цвет]
Теперь расскажу немного о /b и скобках (()).
Samp_Player Играешь в Samp-Rp долго? (()).
Вот так в Чат писать нельзя, потому что это Ошибка. Это тоже самое, что вы напишите без скобок (()), поэтому для этого должа использоватсятолько команды /b [текст]. Назовем это нонРп чат, сюда вы можете писать все, что не касается игрового процесса.
Теперь объесню как писать в R/D/Gov Чаты в Скобках, нонРП Чат:
Тоже самое и /sms Чат:
В Смс чат допускаются Смайлы, так-как в реальности на телефоне вы же можете написать Смайл и на клавишах телефона.
Пример из разговора игроков:
1. (( Samp_Player У меня сломался компьютер можешь помочь ))
2. Samp_Player Да я помогу тебе, объесни какая проблема в компьютере
1. (( Samp_Player У меня отказал видеокарта ))
2. Samp_Player Попробуй установи свежие Драйвера для своей видеокарты.
Вот так вот в Чат писать нельзя, если человек пишет в /b Чат, то в обычном Чате по РП вы его не должны слышать, а поэтому вы должны тоже писать в /b Чат.
Давайте начнем соблюдать эти правила и тем самым мы будем делать более строгое RP в Чате на сервере
Урок по созданию сообщений в чат или на экран в SA:MP
SendClientMessage, SendClientMessageToAll., SendPlayerMessageToPlayer, SendPlayerMessageToAll, GameTextForPlayer, GameTextForAll и SendDeathMessage
SendClientMessage отправляет сообщение одному из игроков в чат (например ввёл команду, и текст отправился только тебе)
SendClientMessageToAll отправляет сообщение в чат так, что все его могут видеть.
Сейчас объясню, что где используется:
SClM (SendClientMessage), обзову его так – у меня эта функция стоит в OnPlayerConnect – расставляется большое количество пропуска (очищает чат) и пишется текст (какой – не важно), так же использую при командах, или в ПМках (личных сообщениях).
Смысл данной функции прост:
playerid – узнаёт ID игрока.
color – вписываем цвет (можно так же обратится к define’ам, в прошлом уроке я рассказывал про установку цвета, приводя пример COLOR_RED).
“Текст” – думаю понятно, что в кавычки можно вставить текст.
SClMTA (SendClientMessageToAll) – отправление текстового сообщения в чат всем игрокам. Я использую эту функцию только для показа действия (например: «%s перешел в аэропорт Лос-Сантоса», где %s обычно обозначается как playername, или что-то вроде того) и ещё для отправки в чат автоматических сообщений (при этом привязываю таймер, и как говорили мне – таймер нагружает сервер).
Примеры использования каждой функции
SendClientMessage с движением объекта:
if (strcmp(«/move», cmdtext, true, 10) == 0)
<
MoveObject(obj,0, 0, 9, 4);
SendClientMessage(playerid,COLOR_RED,»Объект передвинут»);
return 1;
И закончу его движение:
if (strcmp(«/moveback», cmdtext, true, 10) == 0)
<
MoveObject(obj,0, 0, 0, 4);
SendClientMessage(playerid,COLOR_RED,»Объект передвинут обратно»);
return 1;
>
SPMTP (SendPlayerMessageToPlayer) – отправление текстового сообщения в чат определённому игроку от другого игрока.
Playerid – указан выше – ID (идентификатор) игрока.
Senderid – ID игрока-отправителя.
«Текст» – думаю вам уже понятно, что здесь можно что-то написать.
cmd = strtok(cmdtext, idx);
if(strcmp(«/pm», cmd, true) == 0)
<
tmp = strtok(cmdtext,idx);
if(!strlen(tmp) || strlen(tmp) > 5) <
SendClientMessage(playerid,COLOR_RED, «/pm pID текст»);
return 1;
>
new/> gMessage = strrest(cmdtext,idx);
if(!strlen(gMessage)) <
SendClientMessage(playerid,COLOR_RED, «/pm pID текст»);
return 1;
>
if(!IsPlayerConnected(id)) <
SendClientMessage(playerid,COLOR_RED, «Такого игрока нет на сервере»);
return 1;
>
SPMTA (SendPlayerMessageToAll) – отправление текстового сообщения в общий чат, отправив имя игрока и сообщение (тоже самое, что и sendclientmessagetoall, только при этом в чате присутствует ник игрока).
format(output, sizeof(output), «(%d) %s», playerid, text);
SendPlayerMessageToAll(playerid, output);
return 0;
>
SendClientMessageToAll с отправлением действия игрока в чат всем игрокам:
Например, если игрок выбрал в меню телепортов «Аэропорт Лос-Сантоса», то в чат отправляется:
И переносит на специальную координату:
Простенькая функция – выводит на экран игроку определённый текст.
Некоторые русские переводы плохие, и я перечислю вам их символы:
Эти символы я взял из собственного опыта и знания.
Всего я знаю 7 типов:
Следующее – это тот же самый текст, только для всех игроков – GameTextForAll
Тоже самое что и GameTextForPlayer – справедливы все его функции, кроме PlayerID – его не будет, так как этот текст будет показан для всех. Следите за набором текста, указано выше – какие буквы русские будут показаны на экране.
Как обычно пример использования:
if (strcmp(«/move», cmdtext, true, 10) == 0)
<
MoveObject(obj,0, 0, 9, 4);
GameTextForPlayer(playerid, «O6JEKT ZEPEDBNHYT», 5000, 1); //Написано: Объект передвинут
return 1;
ну и закончу его движение
if (strcmp(«/moveback», cmdtext, true, 10) == 0)
<
MoveObject(obj,0, 0, 0, 4);
GameTextForAll(«O6JEKT BEPHYLCR HA CBOE MECTO», 5000, 3 ); //Написано: Объект вернулся на своё место
return 1;
>
Ну и в конце урока SendDeathMessage – отправляет сообщение о смерти игрока, отображенное под худом (HUD). Я обычно использую эту функцию в public OnPlayerDeath(playerid, killerid, reason).
Как написать в общий чат в сампе
Расскажу некоторую Информацию на счет Чата в игре.
Читайте те кто знает и не знает.
Я призываю вас к тому, что давайте начнем соблюдать эти правила метагейминга и /b, для начала хотя бы попытаться.
И так для начала я напишу вам какие есть разновидности Чата:
Обычный Чат: Когда вы просто нажимаете F6 и вводите Текст, который хотите написать. Этот Чат IC.
Цвет Чата:[цвет]
Теперь расскажу немного о /b и скобках (()).
Samp_Player Играешь в Samp-Rp долго? (()).
Вот так в Чат писать нельзя, потому что это Ошибка. Это тоже самое, что вы напишите без скобок (()), поэтому для этого должа использоватсятолько команды /b [текст]. Назовем это нонРп чат, сюда вы можете писать все, что не касается игрового процесса.
Теперь объесню как писать в R/D/Gov Чаты в Скобках, нонРП Чат:
Тоже самое и /sms Чат:
В Смс чат допускаются Смайлы, так-как в реальности на телефоне вы же можете написать Смайл и на клавишах телефона.
Пример из разговора игроков:
1. (( Samp_Player У меня сломался компьютер можешь помочь ))
2. Samp_Player Да я помогу тебе, объесни какая проблема в компьютере
1. (( Samp_Player У меня отказал видеокарта ))
2. Samp_Player Попробуй установи свежие Драйвера для своей видеокарты.
Вот так вот в Чат писать нельзя, если человек пишет в /b Чат, то в обычном Чате по РП вы его не должны слышать, а поэтому вы должны тоже писать в /b Чат.
Давайте начнем соблюдать эти правила и тем самым мы будем делать более строгое RP в Чате на сервере