Как сделать время сбоку чата в самп

Урок по созданию сообщений в чат или на экран в 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).

Источник

Оцените статью
Как сделать своими руками
Adblock
detector