Lite Plugins

Статус
В этой теме нельзя размещать новые ответы.

CTe6eJIeK_vRn

Участник
Сообщения
2,114
Реакции
1,867
Re: Simple game events messages v1.1

Сервер на сколько слотов? 20?
да

UPD При подключении ботов, также возникает ошибка, причем сколько ботов добавляешь, столько в лог и происходит записей:
C-подобный:
L 02/25/2013 - 19:19:39: SourceMod error session started
L 02/25/2013 - 19:19:39: Info (map "de_dust2") (file "errors_20130225.log")
L 02/25/2013 - 19:19:39: [SM] Native "IsClientConnected" reported: Client index 22 is invalid
L 02/25/2013 - 19:19:39: [SM] Displaying call stack trace for plugin "gameevents.smx":
L 02/25/2013 - 19:19:39: [SM]   [0]  Line 63, gameevents.sp::event_PlayerConn()
L 02/25/2013 - 19:19:39: [SM] Native "IsClientConnected" reported: Client index 22 is invalid
L 02/25/2013 - 19:19:39: [SM] Displaying call stack trace for plugin "gameevents.smx":
L 02/25/2013 - 19:19:39: [SM]   [0]  Line 63, gameevents.sp::event_PlayerConn()
L 02/25/2013 - 19:19:39: [SM] Native "IsClientConnected" reported: Client index 22 is invalid
L 02/25/2013 - 19:19:39: [SM] Displaying call stack trace for plugin "gameevents.smx":
L 02/25/2013 - 19:19:39: [SM]   [0]  Line 63, gameevents.sp::event_PlayerConn()
L 02/25/2013 - 19:19:39: [SM] Native "IsClientConnected" reported: Client index 22 is invalid
L 02/25/2013 - 19:19:39: [SM] Displaying call stack trace for plugin "gameevents.smx":
L 02/25/2013 - 19:19:39: [SM]   [0]  Line 63, gameevents.sp::event_PlayerConn()

UPD2
Продолжает сорить...
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Re: Simple game events messages v1.1

KorDen
Попробуй в цикле
i <= MAXCLIENTS+1
Либо
i < MAXCLIENTS+2

Да причем тут это.. Тут вопрос не о количестве клиентов, а о отправке сообщения ботам.. Надо добавлять проверку на ботов (IsFakeClient) и проверять на своем сервере со всеми прибабаххами в виде реплеев/ств/ботов/....
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Re: Simple game events messages v1.1

KorDen
...
..
.
не зря же [MAXPLAYERS+1] делают, почему же +1? ответь мне

Потому что индексы массивов начинаются с нуля

Все любят делать вроде
for (new i = 1; i < MAXPLAYERS; i++)
PrintToChat(i,.....)
И так же куча с i.. Если бы ты объявлял массив без +1, то тебе бы везде надо было бы писать i-1 (А это часто доабвляет путанницы в конструкциях, да и элементарно без этого гораздо красивее), потому что когда Maxplayers=64 (для ксс), то это массив 0..63, и у обоим нам известных серверов начинаются проблемы. Мне уже приходилось изменять многие плагины для своего сервера, у которых указано [MAXPLAYERS], и при заходе 64го игрока начинался спам в логи.
 
Последнее редактирование:

Пыхарь

Участник
Сообщения
145
Реакции
18
Re: Simple game events messages v1.1

Работает прекрасно. И ошибки не выдает. Спасибо за плагин.
Но на всякий случай жду последнюю версию с фиксами :)
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Re: Simple game events messages v1.1

Работает прекрасно. И ошибки не выдает. Спасибо за плагин.
Но на всякий случай жду последнюю версию с фиксами :)

Ошибок не будет, если на сервере нет ботов, SourceTV и Replay. Пока я вижу проблему так, протестировать на различные вариации еще времени не было.
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Re: Simple game events messages v1.1

KorDen
Допустим у нас есть сервер на 20 слотов
т.к. i = 1, а MAXPLAYERS это 0..19, причем i < MAXPLAYERS, то получается, что сообщение будет выведено только игрокам с индексом 1..18, вроде понятно так?
да и цикл делай обычным способом, не нужно изобретать велосипед..
http://docs.sourcemod.net/api/index.php?fastload=show&id=397&

Ты путаешь понятия и переменные...
MAXPLAYERS - это максимально возможное значение игроков в контексте, для ксс это 64.
MaxClients, или ранее GetMaxClients() - это реальное количество слотов сервера, то, которое указываешь при запуске +maxplayers 32
Тут ничего не минусуется и в принципе все правильно.
А вот объявляя массив, например A[MAXPLAYERS], ты получишь массив из 64 элементов, но нумерация массивов начинается с нуля, и получается что A это массив элементов с индексами 0 .. 63 - то есть если ты будешь делать скажем так
for(new i=1;i<=MaxClients;i++)
PrintToChat(i,"%d",A)
(я не пишу проверки, предполагаем что сервер забит)
То когда у тебя сервер на 64 слота, плагин будет ругаться Array index out of bounds, так как в массиве A нет элемента с индексом 64. Собственно поэтому и прописывают +1. Другой выход - писать вроде, PrintToChat(i-1,"%d",A[i-1]) но это элементарно ухудшает восприятие кода.
Та ошибка, что возникает в моем плагине, заключается в том, что я ошибочно поставил MAXPLAYERS вместо MaxClients в цикле, и когда сервер скажем на 32 слота (то есть не 64), то функция IsClientCoonected ругается на не существующие слоты 33-64. В данном случае никаких +1 не надо (кроме как при объявлении массива), главное сранвние "<=MaxClients".
Фикс еще не выкладывал, потому что хочу проверить на еще некоторые ошибки с ботами и STV/Replay, про которых забыл, так как не использую.
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Re: Simple game events messages v1.1

Да, точно...
PHP:
#include <sourcemod>

public OnPluginStart()
{
	RegServerCmd("tt", tt);
}

public Action:tt(args)
{
	PrintToServer("MAXPLAYERS = %d", MAXPLAYERS);
	PrintToServer("MAXCLIENTS = %d", MaxClients);
}
Ответ
PHP:
MAXPLAYERS = 65
MAXCLIENTS = 40
 

GOld2Fox

Участник
Сообщения
47
Реакции
72
Re: Simple game events messages v1.1

Подскажите какой код надо добавить в плагин, чтобы показывало город и страну игрока.(как в Connect Announce)
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Re: Simple game events messages v1.1

Подскажите какой код надо добавить в плагин, чтобы показывало город и страну игрока.(как в Connect Announce)

Берешь и ставишь Connect Announce. Это как раз и рассчитывалась сильно облегченная версия CA, без GeoIP и прочих прибабахов.
 

GOld2Fox

Участник
Сообщения
47
Реакции
72
Re: Simple game events messages v1.1

Connect Announce мне не нужен, так как в нём много лишнего. А вот GeoIP как раз нужен...
Если нетрудно напиши плиз код...
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Re: Simple game events messages v1.1

Connect Announce мне не нужен, так как в нём много лишнего. А вот GeoIP как раз нужен...
Если нетрудно напиши плиз код...

А чот в нем лишнего? Там как раз "много лишнего" и составляет код GeoIP. Ну да, еще индивидуальные сообщения, которые меня тоже бесили... С GeoIP я особо не ковырялся досконально, потому что он мне не особо нужен, поэтому написать поддержку GeoIP пока не могу. Поэтому я пока останусь при своей тчке зрения - нужен показ региона - юзай CA, сюда пока прикручивать не буду
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Re: Light Plugins

Вспомнил про эту тему...
Решил тему переформировать, теперь тут буду выкладывать свои переделки популярных плагинов.
Пофиксил найденные баги в GameEvents, добавил переделанные High Ping Kicker и AFK Manager для CSS.

Вроде ошибок быть не должно, хотя возможно все.

UPD: обновил kdlp-ping, спасибо The End Is Near... за свежий взгляд :)
 
Последнее редактирование:

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Дохардкодился....
Наверное уже окончательно доделан kdlp-ping (хотя я думал об этом еще в 1.2...), думаю код будет интересен, традиции кодинга отсутствуют напрочь...
У меня работает стабильно.
 
Последнее редактирование:
Сообщения
14
Реакции
0
продолжай в том же духе!я давно твоими плагинами пользуюсь.Нравится минимализм и в то же время функциональность!
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
продолжай в том же духе!я давно твоими плагинами пользуюсь.Нравится минимализм и в то же время функциональность!

Самое смешное, что с твоего акка ни один из прикрепленных файлов не был скачан. Напрашивается два вывода - мультирега или мультибред
 
Сообщения
14
Реакции
0
не знаю что такое - мультирега или мультибред !я ====КоТ==== в стиме с тобой созванивались по поводу лагов на сервере вип москоу чат !ТЫ давал пору плагинов !
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Дмитрий Айцев 286513862, А, ну тогда все понятно, тебе то я скидывал напрямую... А то получается в списке загрузок нету тебя, однако каким-то образом ты пользуешься :D
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Добавил упрощенную версию AdminSentinel. Предположительно могут быть баги со стороны обработки текстового чата (дублирование сообщений - одновременно от плагина и стандартное), не все варианты обработал.
 

Leckter Hannibal

Участник
Сообщения
538
Реакции
182
KorDen Здравствуйте
kdlp-adminsentinel можно сделать чтоб работал только админам с флагом Z ,чтоб всегда было слышно всех игроков мертвых живых,своих ,чужих даже если сервер настроен чтоб живые не слышали мертвых.
Сделайте если это возможно,ведь это ваш плагин.И если бы убрать все менюшки и сообщения в чате ,то вообще было бы круто
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
lecktercss
Вообще можно попробовать так..
PHP:
#include <sourcemod>
#include <sdktools_voice>

public OnClientPutInServer(client)
{
	if (client > 0 && GetUserFlagBits(client) & ADMFLAG_ROOT)
	{
		SetClientListeningFlags(client, VOICE_LISTENALL);
	}
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу