PHP код:
CMD:chathelp(playerid)
{
SendClientMessage(playerid, -1, !"/chat [текст] - отправить сообщение в чат.");
SendClientMessage(playerid, -1, !"/createchat [название_чата] - создать свой чат.");
SendClientMessage(playerid, -1, !"/chatinvite [ID] - пригласить игрока в свой чат.");
SendClientMessage(playerid, -1, !"/chatmoder [ID] - сделать игрока модератором.");
SendClientMessage(playerid, -1, !"/chatkick [ID] - кикнуть игрока с чата.");
SendClientMessage(playerid, -1, !"/chatignore - скрыть чат.");
SendClientMessage(playerid, -1, !"/chatleave - уйти с чата.");
SendClientMessage(playerid, -1, !"/deletechat - удалить чат.");
return SendClientMessage(playerid, -1, !"/chataccept - принять приглашение в чат");
}
CMD:chat(playerid, params[])
{
if(PlayerChat{playerid} == -1) return SendClientMessage(playerid, 0xFF0000FF, !"Вы не находитесь в чате!");
if(1 > strlen(params) > 100) return SendClientMessage(playerid, 0xFF0000FF, !"Отправленный текст может иметь от 1 до 100 символов");
new string[4 + 37 + 10 + (MAX_PLAYER_NAME+1) + 100 + 2] = "[";
strcat(string, ChatNames[PlayerChat{playerid}]);
strcat(string, !"][");
strcat(string, (PlayerChatModer{playerid} == -1) ? (!"") : ((PlayerChatOwner{playerid} == -1) ? (!"Модератор ") : (!"Создатель ")));
strcat(string, PlayerName[playerid]);
strcat(string, !"]: ");
strcat(string, params);
foreach(new i: Player)
{
if(PlayerChat{i} != PlayerChat{playerid}) return 1;
if(PlayerChatIgnore{i} == 1) return 1;
SendClientMessage(i, 0xEEF743FF, string);
}
return 1;
}
CMD:createchat(playerid, params[])
{
if(PlayerChat{playerid} != -1) return SendClientMessage(playerid, 0xFF0000FF, !"Вы уже находитесь в чате, что-бы его покинуть введите /chatleave");
if(3 > strlen(params) > 20) return SendClientMessage(playerid, 0xFF0000FF, !"Название чата должно иметь в себе от 3 до 20 символов");
for(new i = 0; i < MAX_CHATS; i++)
{
if(ChatNames[i][0] != '\0') return 1;
strcat(ChatNames[i], params);
PlayerChatOwner{playerid} =
PlayerChatModer{playerid} =
PlayerChat{playerid} = i;
return SendClientMessage(playerid, -1, !"Вы создали свой чат, подробнее о его возможностях в /chathelp");
}
return 1;
}
CMD:chatinvite(playerid, params[])
{
if(PlayerChatOwner{playerid} >= 0|| PlayerChatModer{playerid} >= 0)
{
if(isnull(params)) return SendClientMessage(playerid, 0xFF0000FF, !"Введите ID игрока");
if(!IsNums(params)) return SendClientMessage(playerid, 0xFF0000FF, !"ID игрока может состоять только с цифр!");
new targetid = strval(params);
if(PlayerChat{targetid} != -1) return SendClientMessage(playerid, 0xFF0000FF, !"Игрок уже состоит в другом чате!");
if(PlayerChatInvited{targetid} != -1) return SendClientMessage(playerid, 0xFF0000FF, !"Игрок уже приглашен в чат!");
PlayerChatInvited{targetid} = PlayerChat{playerid};
new string[(MAX_PLAYER_NAME+1) +25];
strcat(string, PlayerName[targetid]);
strcat(string, !" был приглашён в ваш чат");
SendClientMessage(playerid, 0x14FF20FF, string);
string = "";
strcat(string, PlayerName[playerid]);
strcat(string, !" пригласил вас в чат");
SendClientMessage(targetid, 0x14FF20FF, string);
SendClientMessage(targetid, 0x14FF20FF, !"Что-бы принят приглашенние введите /chataccept");
}
else return SendClientMessage(playerid, 0xFF0000FF, !"Вы не уполномочены использовать данную команду!");
return 1;
}
CMD:chatmoder(playerid, params[])
{
if(PlayerChatOwner{playerid} == -1) return SendClientMessage(playerid, 0xFF0000FF, !"Вы не создатель чата!");
if(isnull(params)) return SendClientMessage(playerid, 0xFF0000FF, !"Введите ID игрока");
if(!IsNums(params)) return SendClientMessage(playerid, 0xFF0000FF, !"ID игрока может состоять только с цифр!");
new targetid = strval(params);
if(PlayerChat{targetid} != PlayerChatOwner{playerid}) return SendClientMessage(playerid, 0xFF0000FF, !"Игрок не состоит в вашем чате!");
PlayerChatModer{targetid} = PlayerChatOwner{playerid};
new string[(MAX_PLAYER_NAME+1) +28];
strcat(string, PlayerName[targetid]);
strcat(string, !" теперь модератор чата");
SendClientMessage(playerid, 0x14FF20FF, string);
string = "";
strcat(string, PlayerName[playerid]);
strcat(string, !" сделал вас модератором чата");
return SendClientMessage(targetid, 0x14FF20FF, string);
}
CMD:chatkick(playerid, params[])
{
if(PlayerChatOwner{playerid} >= 0 || PlayerChatModer{playerid} >= 0)
{
if(isnull(params)) return SendClientMessage(playerid, 0xFF0000FF, !"Введите ID игрока");
if(!IsNums(params)) return SendClientMessage(playerid, 0xFF0000FF, !"ID игрока может состоять только с цифр!");
new targetid = strval(params);
if(PlayerChat{targetid} != PlayerChat{playerid}) return SendClientMessage(playerid, 0xFF0000FF, !"Игрок не в вашем чате!");
PlayerChat{targetid} =
PlayerChatModer{targetid} = -1;
new string[(MAX_PLAYER_NAME+1) + 18];
strcat(string, PlayerName[targetid]);
strcat(string, !" был кикнут с чата");
SendClientMessage(playerid, 0x14FF20FF, string);
string = "";
strcat(string, PlayerName[playerid]);
strcat(string, !" кикнул вас с чата");
SendClientMessage(playerid, 0xFF0000FF, string);
}
else return SendClientMessage(playerid, 0xFF0000FF, !"Вы не уполномочены использовать данную команду!");
return 1;
}
CMD:chatignore(playerid, params[])
{
if(PlayerChat{playerid} != -1) return PlayerChatIgnore{playerid} = !PlayerChatIgnore{playerid};
return SendClientMessage(playerid, -1, (PlayerChatIgnore{playerid} == -1) ? (!"Теперь вы видите чат") : (!"Теперь вы не видите чат"));
}
CMD:chatleave(playerid, params[])
{
if(PlayerChat{playerid} == -1) return SendClientMessage(playerid, 0xFF0000FF, !"Вы не находитесь в чате!");
if(PlayerChatOwner{playerid} != -1) return SendClientMessage(playerid, 0xFF0000FF, !"Вы не можете выйти с чата, потому-что вы создатель! Удалите чат с помощю команды /deletechat");
PlayerChat{playerid} =
PlayerChatModer{playerid} = -1;
return SendClientMessage(playerid, -1, !"Вы покинули чат");
}
CMD:deletechat(playerid, params[])
{
if(PlayerChat{playerid} == -1) return SendClientMessage(playerid, 0xFF0000FF, !"Вы не находитесь в чате!");
if(PlayerChatOwner{playerid} != PlayerChat{playerid}) return SendClientMessage(playerid, 0xFF0000FF, !"Вы не можете удалить чат! Вы не его создатель!");
ChatNames[PlayerChat{playerid}] = !"";
PlayerChatOwner{playerid} =
PlayerChatModer{playerid} =
PlayerChat{playerid} = -1;
return SendClientMessage(playerid, 0x14FF20FF, !"Чат удалён!");
}
CMD:chataccept(playerid, params[])
{
if(PlayerChatInvited{playerid} == -1) return SendClientMessage(playerid, 0xFF0000FF, !"Вы не были приглашенны в чат!");
if(ChatNames[PlayerChatInvited{playerid}][0] == '\0') return SendClientMessage(playerid, 0xFF0000FF, !"Чат был удалён создателем или несуществует!");
PlayerChat{playerid} = PlayerChatInvited{playerid};
PlayerChatInvited{playerid} = -1;
return SendClientMessage(playerid, -1, !"Вы приняли приглашение в чат!");
}
Для тех кто не может нормально скопировать(ошибки и т.п) есть тема этой же системы в виде FS: