Jump to content

Recommended Posts

[Мод] Очистка чатов

 

screenshot_01.png

 

Мод позволяет администраторам игрового сервера удалять все сообщения в чатах у игроков (местный, мир, торг, отряд, гильдия, ЛС, лагерь). Для этого на стороне сервера для GameServer реализована LUA-функция ClearChat(role), в которую передается дескриптор персонажа, которым управляет администратор. Таким образом, можно, к примеру, реализовать GM-команду, которая будет очищать чаты (при наличии функций HandleChat() и GetGmLv() в GameServer.exe).

 

function HandleChat(role, msg)

	if (msg == "&clearchat") then
		
		if (GetGmLv(role) == 99) then
		
			ClearChat(role)
		
		else
		
			SystemNotice(role, "Not enough access!")
		
		end
		
		return 0
		
	end
		
	return 1

end

 

Недостатком мода является то, что он удаляет сразу все чаты без возможности указания конкретных каналов. Т.е. вместе с общими каналами (мир, торг, местный) будут так же очищены и каналы с сообщениями в гильдию, отряд, лагерь и ЛС.

 

Так же следует помнить, что игрок может удалить .dll библиотеку мода из клиента и чаты перестанут очищаться по команде от сервера.

 

 

Требования

 

Установленный Загрузчик модов для сервера и клиента (PKOdev.NET mod loader).

 

 

Информация о моде

 

Название: pkodev.mod.clearchat;

Версия: 1.0;

Автор: V3ct0r;

Тип: для клиента (Game.exe);

Поддерживаемые исполняемые .exe файлы: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4, GAME_13X_5.

 

 

Установка

 

Клиент:

Поместите файл DLL-библиотеки мода "pkodev.mod.clearchat.client.13x_<ID>.dll" для Вашей версии Game.exe в папку "mods" игрового клиента.

 

Сервер:

1) Создайте файл с названием "pkodev.mod.clearchat.lua" в следующей директории сервера:

\GameServer\resource\script\calculate\mods

2) Запишите в него следующий код:

-- Print a log
print("Loading pkodev.mod.clearchat.lua")

-- Clear all chats
function ClearChat(role)
	
	-- Get moderator's name
	local name = GetChaDefaultName(TurnToCha(role))
	
	-- Send system command
	Notice("{system:clearchat}")
	
	-- Send message to all players
	Notice(string.format("Chats have been cleared by moderator [%s]!", name))

end

3) Подключите файл "pkodev.mod.clearchat.lua" в начале файла SkillEffect.lua (\GameServer\resource\script\calculate) :

dofile(GetResPath("script\\calculate\\mods\\pkodev.mod.clearchat.lua"))

4) Реализуйте сценарий работы функции ClearChat() для очистки чатов по Вашему усмотрению.

 

 

Скачать

 

1) Бинарные файлы мода (.dll);

2) Исходный код мода для Visual Studio 2019 Community (C++).

 

 

Если Вы столкнулись с какой-либо проблемой, багом или у Вас возникли вопросы, то пишите в данной теме.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...