Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

Блокировка disconnect сообщений в чате

, [HALF-LIFE]
Статус пользователя ssx
сообщение 3.5.2015, 13:51
Сообщение #1


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Всем привет!

Помогите написать плагин что бы блокировал сообщения в чат о том что игрок отключился от сервера.


Прикрепленные файлы:
Прикрепленное изображение


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Radius
сообщение 3.5.2015, 14:03
Сообщение #2
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

ssx, нужно редактировать плагин, который это пишет, потому что по стандарту при отключении игрока информация выводится только в консоль.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fullserver
сообщение 3.5.2015, 14:08
Сообщение #3


Иконка группы

Стаж: 11 лет

Сообщений: 5122
Благодарностей: 2100
Полезность: 1394

Radius, я так понял это half life.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Radius
сообщение 3.5.2015, 14:17
Сообщение #4
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Название темы было другим.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fullserver
сообщение 3.5.2015, 14:21
Сообщение #5


Иконка группы

Стаж: 11 лет

Сообщений: 5122
Благодарностей: 2100
Полезность: 1394

Radius, я лично по скрину заметил. Название вроде только что изменили.

Отредактировал: Fullserver, - 3.5.2015, 14:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
voed
сообщение 3.5.2015, 14:28
Сообщение #6
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Может есть более оптимальный способ, но можно попробовать так:
Код:
sayText = get_user_msgid("SayText")
register_message(sayText, "check_say")
public check_say(msgId, msgDest, receiver)
{
new text[190]
get_msg_arg_string(2, text, charsmax(text))
if(equal(text[0], "-") && contain(text, "has left the game"))
return plugin_handled

}

Если, конечно, has left это не predefined выражение

upd нет, выражение не predefined, так что все должно получиться

Отредактировал: voed, - 3.5.2015, 14:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 3.5.2015, 14:40
Сообщение #7


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(Radius @ 3.5.2015, 15:17) *
Название темы было другим.

Название темы не менял .


Щас попробую вариант выше.

П.С.
В инете нашел вот такое
register_message( get_user_msgid( "TextMsg" ) , "fw_MsgTextMsg" );

Или все же SayText ?


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 3.5.2015, 14:48
Сообщение #8


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Код:
#include <amxmodx>
#include <amxmisc>

public plugin_init()
{
register_plugin( "Disconnect MSG Block" , "0.1" , "thx Voed" )
sayText = get_user_msgid("SayText")
register_message(sayText, "check_say")
}

public check_say(msgId, msgDest, receiver)
{
new text[190]
get_msg_arg_string(2, text, charsmax(text))
if(equal(text[0], "-") && contain(text, "has left the game"))
return plugin_handled
}


Код
//// disconnect_msg_block.sma
// D:\user0\Server_HL_NEW\valve\addons\amxmodx\scripting\disconnect_msg_block.sma(7) : error 017: undefined symbol "sayText"
// D:\user0\Server_HL_NEW\valve\addons\amxmodx\scripting\disconnect_msg_block.sma(8) : error 017: undefined symbol "sayText"
// D:\user0\Server_HL_NEW\valve\addons\amxmodx\scripting\disconnect_msg_block.sma(8) : warning 215: expression has no effect
// D:\user0\Server_HL_NEW\valve\addons\amxmodx\scripting\disconnect_msg_block.sma(8) : error 001: expected token: ";", but found ")"
// D:\user0\Server_HL_NEW\valve\addons\amxmodx\scripting\disconnect_msg_block.sma(8) : error 029: invalid expression, assumed zero
// D:\user0\Server_HL_NEW\valve\addons\amxmodx\scripting\disconnect_msg_block.sma(8) : fatal error 107: too many error messages on one line
//
// Compilation aborted.
// 5 Errors.
// Could not locate output file D:\user0\Server_HL_NEW\valve\addons\amxmodx\scri
pting\compiled\disconnect_msg_block.amx (compile failed).
//
// Compilation Time: 0.06 sec
// ----------------------------------------

Press enter to exit ...


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 3.5.2015, 14:52
Сообщение #9
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(ssx @ 3.5.2015, 15:40) *
Название темы не менял .


Щас попробую вариант выше.

П.С.
В инете нашел вот такое
register_message( get_user_msgid( "TextMsg" ) , "fw_MsgTextMsg" );

Или все же SayText ?

хм, может и textmsg, проверь

ssx, ты забыл sayText = get_user_msgid("SayText")
ну и обьявить sayText в глобале
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 3.5.2015, 15:02
Сообщение #10


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Объявить в глобале это как?

Пробую
Код:
#include <amxmodx>
#include <amxmisc>

public plugin_init()
{
register_plugin( "Disconnect MSG Block" , "0.1" , "thx Voed" )
register_message( get_user_msgid( "TextMsg" ) , "fw_MsgTextMsg" )
}

public fw_MsgTextMsg(msgId, msgDest, receiver)
{
new text[190]
get_msg_arg_string(2, text, charsmax(text))
if(equal(text[0], "-") && contain(text, "has left the game"))
return PLUGIN_HANDLED
}


Кидает варнинг
Код
// D:\user0\Server_HL_NEW\valve\addons\amxmodx\scripting\disconnect_msg_block.sm
a(16) : warning 209: function "fw_MsgTextMsg" should return a value


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 3.5.2015, 15:05
Сообщение #11
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Код:
#include <amxmodx>

new msgid

public plugin_init()
{
msgid = get_user_msgid("SayText")
register_plugin( "Disconnect MSG Block" , "0.1" , "thx Voed" )
register_message( msgid , "fw_MsgTextMsg" )
}

public fw_MsgTextMsg(msgId, msgDest, receiver)
{
new text[190]
get_msg_arg_string(2, text, charsmax(text))
if(equal(text[0], "-") && contain(text, "has left the game"))
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 3.5.2015, 15:12
Сообщение #12


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

я в hlds убирал в движке чтобы не писало "Игрок такой-то dropped" в консоли клиента
Может тут так же подойдет? ну если вдруг плагином не получится :)


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 3.5.2015, 15:16
Сообщение #13


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(voed @ 3.5.2015, 16:05) *
Скрытый текст
Код:
#include <amxmodx>

new msgid

public plugin_init()
{
msgid = get_user_msgid("SayText")
register_plugin( "Disconnect MSG Block" , "0.1" , "thx Voed" )
register_message( msgid , "fw_MsgTextMsg" )
}

public fw_MsgTextMsg(msgId, msgDest, receiver)
{
new text[190]
get_msg_arg_string(2, text, charsmax(text))
if(equal(text[0], "-") && contain(text, "has left the game"))
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

не заработал этот вариант. Сообщения все же есть.

Цитата(mazdan @ 3.5.2015, 16:12) *
я в hlds убирал в движке чтобы не писало "Игрок такой-то dropped" в консоли клиента
Может тут так же подойдет? ну если вдруг плагином не получится :)

Каким методом ?


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 3.5.2015, 15:17
Сообщение #14
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

ssx, попробуй TextMsg вместо SayText
upd там все же saytext
сейчас попробую перекомпилить дллку без этого сообщения

Отредактировал: voed, - 3.5.2015, 15:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 3.5.2015, 15:58
Сообщение #15
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Нет, под 2015 студией не компилится)
Если у кого-то есть возможность скомпилить hl.dll( mp.dll), то сообщение убирается в multiplayer/dlls/client.cpp, 104-109 строки закомментировать
Код
    char text[256];
    sprintf( text, "- %s has left the game\n", STRING(pEntity->v.netname) );
    MESSAGE_BEGIN( MSG_ALL, gmsgSayText, NULL );
        WRITE_BYTE( ENTINDEX(pEntity) );
        WRITE_STRING( text );
    MESSAGE_END();


Отредактировал: voed, - 3.5.2015, 16:07
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 3.5.2015, 16:08
Сообщение #16


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

а дайте dll, пожалуйста, посмотреть - никогда hl не смотрел, играл только :)


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 3.5.2015, 16:44
Сообщение #17


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(mazdan @ 3.5.2015, 17:08) *
а дайте dll, пожалуйста, посмотреть - никогда hl не смотрел, играл только :)


Прикрепленные файлы:
Прикрепленный файл  hl.7z ( 297,88 килобайт ) Кол-во скачиваний: 6


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 3.5.2015, 16:46
Сообщение #18
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

ssx, это вроде из сингла, мультиплеерная mp.dll
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 3.5.2015, 17:13
Сообщение #19


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(voed @ 3.5.2015, 17:46) *
ssx, это вроде из сингла, мультиплеерная mp.dll

Нету mp.dll на сервере.

Без hl.dll падает при старте сервер - значит юзает.

Цитата(voed @ 3.5.2015, 16:17) *
ssx, попробуй TextMsg вместо SayText
upd там все же saytext
сейчас попробую перекомпилить дллку без этого сообщения

Попробовал - не помогло.


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 3.5.2015, 17:19
Сообщение #20
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(ssx @ 3.5.2015, 18:13) *
Нету mp.dll на сервере.

Без hl.dll падает при старте сервер - значит юзает.


Попробовал - не помогло.

Код:
#include <amxmodx>

new msgid

public plugin_init()
{
msgid = get_user_msgid("SayText")
register_plugin( "Disconnect MSG Block" , "0.1" , "thx Voed" )
register_message( msgid , "fw_MsgTextMsg" )
}

public fw_MsgTextMsg(msgId, msgDest, receiver)
{
new text[190]
get_msg_arg_string(2, text, charsmax(text))
log_to_file("addons/amxmodx/logs/voed.txt", text)
if(equal(text[0], "-") && contain(text, "has left the game"))
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

Скинь лог addons/amxmodx/logs/voed.txt после нескольких дисконнектов
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: