В данной теме мы с вами научимся создавать простой скрипт, который позволит выводить в чат объявления о количестве игроков.
Нам понадобится:
1. Сервер DayZ 1.0, сделанный по одному из гайдов:
2. Notepad++
3. Немножечко трезвого ума
Приступим:
1. Открываем Mpmissions - dayzOffline.chernarusplus - init.c
2. В самом начале файла добавляем:
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\PlayersMessagesCount.c"
Находим функцию
void main()
и перед ее закрывающей скобкой "}"добавляем:
GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(SendPlayersCount, CountPlayers_TIME_InfoPlayers_Repeat, true);
3. Помещаем в папку файл PlayersMessagesCount.c
Либо создаем вручную этот файл с именем "PlayersMessagesCount.c" и заполняем его следующим текстом:
int CountPlayers_TIME_InfoPlayers_Repeat = 120000; //in ms (120 seconds = 120000)
string Message_Chat = "Online Players: ";
void SendPlayersCount()
{
array<Man> players = new array<Man>;
GetGame().GetPlayers( players );
int numbOfplayers = players.Count();
if( numbOfplayers > 0 )
{
foreach(Man player: players)
{
CountPlayers_SendPersonalMessage(Message_Chat + numbOfplayers.ToString(), player);
}
// GetGame().ChatPlayer(0,Message_Chat + numbOfplayers.ToString());
}
}
void CountPlayers_SendPersonalMessage(string message, Man player)
{
if(( player ) && (message != ""))
{
Param1<string> m_GlobalMessage = new Param1<string>(message);
GetGame().RPCSingleParam(player, ERPCs.RPC_USER_ACTION_MESSAGE, m_GlobalMessage, true, player.GetIdentity());
}
}
4. Настраиваем файл как нам нужно. Т.е. в строке
int CountPlayers_TIME_InfoPlayers_Repeat = 120000; //in ms (120 seconds = 120000)
указываем время повтора вывода сообщений в чат (поумолчанию стоит 2 минуты)
и текст сообщений в переменной
string Message_Chat = "Online Players: ";
P.S. Если сообщения вам не видны, включите их видимость в настройках вашего клиента игры для себя!