Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Ошибки в консоле
Ошибки в консоле
Scarface_slv Дата: Воскресенье, 17.06.2012, 22:34:59 | Сообщение # 1
Сообщений: 738
Репутация: 61 [ +/- ]
WS помоги разобраться незнаю в чем ошибка
Code

17/2012 - 00:46:08: [SM]   [0]  Line 52, D:\Сервер CW\cstrike\addons\sourcemod\scripting\AFK_control.sp::PlayerTeam()
L 06/17/2012 - 00:46:37: [SM] Native "IsFakeClient" reported: Client index 0 is invalid
L 06/17/2012 - 00:46:37: [SM] Displaying call stack trace for plugin "AFK.smx":

суть плагина если сервер полный то тех кто сидят в спекторах кикает через 2 минуты
ошибка вылазит вроде при выходе игрока, плагин работает вроде как..

Прикрепления: AFK_control.sp(1.5 Kb)
 
_wS_ Дата: Воскресенье, 17.06.2012, 23:09:28 | Сообщение # 2
Давай для начала рассмотрим OnClientPutInServer, ибо я не хочу каждую строку исправлять.

1. Первый цикл for там просто лишний.
2. Ты создаешь таймер и не убиваешь прошлый (если он есть).
3. Если игрок с индексом MaxClients в игре, ты почему-то думаешь, что это значит, что сервер полон.

Надо по такому принципу делать:

Зашел игрок
Получаем кол-во игроков онлайн
Если оно равно MaxClients, то запускаем таймер для спектаторов, если он еще не запущен
Начинаем ловить player_team (team 1) - тут тоже создаем таймеры для тех, кто в спек заходит
Если игрок вышел, убиваем все таймеры и перестаем ловить player_team

Client index ... is invalid - игрока нет на сервере, а ты что-то с ним хочешь сделать.
 
Scarface_slv Дата: Понедельник, 18.06.2012, 01:33:46 | Сообщение # 3
Сообщений: 738
Репутация: 61 [ +/- ]
Пожалуйста дай пример как проверить полный сервер или нет я запутался(

Добавлено (18.06.2012, 01:33:46)
---------------------------------------------
я не понимаю предположим я прошелся с for по всем игрокам X которые на сервере, дальше условие x = maxclient но это условие пройдет только 1 игрок X(у которого индекс равен макс слоту сервера), а мне ведь нужно еще проверить есть ли кто в спекторе.. а это уже не сделать без второго for моя логика меня убивает.=(

 
_wS_ Дата: Понедельник, 18.06.2012, 10:26:53 | Сообщение # 4
Даю пример. А проверить полный сервер или нет совсем просто (и есть функция GetClientCount) :

Code
new client = 0;
for (new i = 1; i <= MaxClients; i++)
{
     if (IsClientInGame(i)) client = i;
     else break;
}
if (client >= MaxClients) // сервер полон


Ниже, в .sp что я дал, наверно лучше сделать не GetClientCount(false), а GetClientCount().

Прикрепления: 0470364.sp(1.5 Kb)
 
Scarface_slv Дата: Понедельник, 18.06.2012, 10:37:30 | Сообщение # 5
Сообщений: 738
Репутация: 61 [ +/- ]
О_о ты сделал всю работу за меня, БОЛЬШОЕ ПРИ БОЛЬШОЕ ТЕБЕ СПАСИБО WS=)
 
_wS_ Дата: Понедельник, 18.06.2012, 10:48:21 | Сообщение # 6
Проверь пжалст выдачу скинов в плагине AdMiN, а то есть жалоба о падении сервера, хотя у меня он не падает.
 
Scarface_slv Дата: Понедельник, 18.06.2012, 11:32:38 | Сообщение # 7
Сообщений: 738
Репутация: 61 [ +/- ]
Хорошо проверю, не имеет надеюсь смысла 34 версия у меня или нет)
 
_wS_ Дата: Понедельник, 18.06.2012, 11:47:22 | Сообщение # 8
Думаю плагин должен на всех версиях работать, хотя, если сервер не OB, может некоторые функции и не будут раб, как запрет покупки и др. После проверки, отпишись в этой теме.
 
Scarface_slv Дата: Понедельник, 18.06.2012, 11:55:43 | Сообщение # 9
Сообщений: 738
Репутация: 61 [ +/- ]
У меня все норм, тока вместо скинов Error(кроме ворона), а еще 2 раза вылетел когда я выбрал "всем террористам"> "чувак с кейсом" но 3-4-n раз уже было все норм странно, я еще с игроками проверю отпишусь.
 
_wS_ Дата: Понедельник, 18.06.2012, 12:24:00 | Сообщение # 10
Ок, спс
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Ошибки в консоле
  • Страница 1 из 1
  • 1
Поиск: