Перейти к содержимому


Фотография

Помощь с плагином


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 Angerfist

Angerfist

    Новичок

  • Пользователь
  • Pip
  • 11 сообщений

Отправлено 09 Июнь 2020 - 18:27

Добрый вечер, прошу скриптеров помочь с исправлением ошибки плагина, сам не в силах к сожалению(

L 06/09/2020 - 17:49:49: [SM] Call stack trace:
L 06/09/2020 - 17:49:49: [SM]   [0] SetEntPropFloat
L 06/09/2020 - 17:49:49: [SM]   [1] Line 520, \addons\sourcemod\scripting\lockdown_system-l4d2_b.sp::CheckLockdown

Прикрепленные файлы



#2 PawnLomaster

PawnLomaster

    Участник

  • Пользователь
  • PipPip
  • 116 сообщений

Отправлено 10 Июнь 2020 - 16:05

 

Добрый вечер, прошу скриптеров помочь с исправлением ошибки плагина, сам не в силах к сожалению(

L 06/09/2020 - 17:49:49: [SM] Call stack trace:
L 06/09/2020 - 17:49:49: [SM]   [0] SetEntPropFloat
L 06/09/2020 - 17:49:49: [SM]   [1] Line 520, \addons\sourcemod\scripting\lockdown_system-l4d2_b.sp::CheckLockdown

 

Лог не полный. Это только трейс до ошибки. А до какой, видимо, останется загадкой. Да и сам трейс маловат, ибо эта функция вызывается из другой функции.
Предполагаю, что там ошибка связана с неправильным индексом.
Дело в том, что на некоторых картах нужную дверь не так просто распознать. Вроде вот она дверь. Но на Похоронном звоне в церкви у двери нестандартная модель, из-за чего часто она неправильно распознаётся. А на последний картах её вообще нет. 
Нахождение двери через (iCheckpointEnt = FindEntityByClassname(iCheckpointEnt, "prop_door_rotating_checkpoint") дело неблагодарное. Бывают осечки, которые дорого могут стоить.
Мои костыли всегда как от сердца отрываю
 

GetEntitySafeRoomDoor()
{
	for (int i = 0; i <= 1024; i++)
	{
		if (IsValidEntity(i))
		{
			static String:modelname[128];
			GetEntPropString(i, Prop_Data, "m_ModelName", modelname, 128);
			if (StrContains(modelname, "checkpoint_door_02", false) != -1 || StrContains(modelname, "checkpoint_door_-02", false) != -1)
			{
				new flags = GetEntProp(i, Prop_Send, "m_spawnflags");
				if (flags == 8192 || flags == 8193 || flags == 10240)
				{
					return i;
				}
			}
		}
	}
	return -1;
}

Код древний, на старом синтаксисе и кривой до боли, но работает без осечек. Так что не бейте палками.
Что сейчас могу по нему плохого сказать. static бесполезный, есть объявления в цикле, ну и синтаксис старый


Сообщение отредактировал PawnLomaster: 10 Июнь 2020 - 16:08


#3 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 17 Июнь 2020 - 13:22

static не бесполезный. Он используется для ускорения, чтобы не выделять память под переменную каждый раз при заходе в процедуру.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных