Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

Ребят.
Отключил возможность освободиться от наручников самостоятельно, но так и не получилось отключить смерть игрока при перезаходе (если он в наручниках),  может кто подсказать решение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

scripts\5_Mission\mission\missionServer.c

modded class MissionServer extends MissionBase
{
	override void HandleBody(PlayerBase player)
	{
		if (player.IsAlive() && !player.IsRestrained() && !player.IsUnconscious())
		{
			// remove the body
			player.Delete();	
		} else 
		{
			if (player.IsUnconscious() || player.IsRestrained())
			{
				// kill character
				player.SetHealth("", "", 0.0);
			}
		}
	}
}

осталось функцию переписать по своим нуждам

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах



  • 0

Кто-нибудь может подсказать, что именно тут заменять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@123new Не совсем помогло. Если удалить переменные player.IsRestrained() из кода, то если персонаж был связан, и вышел из игры, при перезаходе его откатывает не секунд 15 назад. т.е. он появляется в метрах 10-15 до места связывания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
30 минут назад, Verum сказал:

@123new Не совсем помогло. Если удалить переменные player.IsRestrained() из кода, то если персонаж был связан, и вышел из игры, при перезаходе его откатывает не секунд 15 назад. т.е. он появляется в метрах 10-15 до места связывания.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вопрос открыт, на самом деле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Все просто

Игрок погибает при выходе если он закован или без сознания

Обработка эта происходит в missionServer

2099025120_.png.4308f03cfd7908a6ba067176820776d7.png

 

Отмоддите функцию на свой вкус и получите нужный результат

 

Не знаю, работает ли эта функция, раньше не работала

 

466483798_.png.3e288be0a1993e8cd30f0e901e7ce018.png

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
29 минут назад, BorizzK сказал:

Отмоддите функцию на свой вкус и получите нужный результат

эх, научится бы всему, да времени не хватает. Может кто готовую пбо скинет? Буду весьма благодарен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
26 минут назад, FreddyCruger сказал:

эх, научится бы всему, да времени не хватает. Может кто готовую пбо скинет? Буду весьма благодарен!

придется учиться

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@BorizzK Пробовал. Удалял проверку на "связан ли персонаж". Получилось вот что, персонаж перестал умирать.. При перезаходе он тупо появляется со своим лутом, условно в 10 метрах от места релога, и без наручников на руках. Вот в чём вопрос, не поддающийся объяснению.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

что откуда удалял - где

ни хре на не понятно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@BorizzK Вот если указанный вами участок изменяю на такое
 

void HandleBody(PlayerBase player)
	{
		if (player.IsAlive() && !player.IsUnconscious())
		{
			// remove the body
			player.Delete();	
		}
		else if (player.IsUnconscious())
		{
			// kill character
			player.SetHealth("", "", 0.0);
		}
	}

Персонаж связан, уходит в релог, заходит живой, но в метрах 10 от места связывания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@BorizzK А если оставляю такой код:
 

modded class MissionServer extends MissionBase
{
	override void HandleBody(PlayerBase player)
	{
		if (player.IsAlive() && !player.IsRestrained() && !player.IsUnconscious())
		{
			// remove the body
			player.Delete();	
		} else 
		{
			if (player.IsUnconscious())
			{
				// kill character
				player.SetHealth("", "", 0.0);
			}
		}
	}
}

То вообще картина века:
Появился и вижу себя )

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Кароче

Там же еще сохранка должны быть правильной

Если он рестрайн или ванкунси - его тупо не сохраняет в бд сервера

потому так

 

MissionSerever

	override void HandleBody(PlayerBase player)
	{
		if (player.IsAlive())
		{
			GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).Call(player.Delete);
		}
	}

 

PlayerBase

 

modded class PlayerBase extends ManBase
{
	ref TStringArray restrain_Items = {"HandcuffsLocked","RopeLocked","DuctTapeLocked","MetalWireLocked","BarbedWireLocked"};
	
	override void OnConnect()
	{
		super.OnConnect();
		if (GetItemInHands())
		{
			if (restrain_Items.Find(GetItemInHands().GetType()) >= 0)
			{
				BzRestrtainOnConnect();
			}
		}
	}

	override void OnReconnect()
	{
		super.OnReconnect();
		if (GetItemInHands())
		{
			if (restrain_Items.Find(GetItemInHands().GetType()) >= 0)
			{
				BzRestrtainOnConnect();
			}
		}
	}
	
	override bool Save()
	{
		if (GetPlayerState() == EPlayerStates.ALIVE )
		{
			GetHive().CharacterSave(this);
			Debug.Log("Restrained player " + this.ToString() + " saved as alive!"); //типа дебаг
			return true;
		}
		return super.Save();
	}

	void BzRestrtainOnConnect()
	{
		EntityAI item_in_hands = GetItemInHands(); //Это не обязательно но пусть будет
		if(item_in_hands)
		{
			SetRestrained(true);
			OnItemInHandsChanged();
			SetSynchDirty();
		}
	}
}

если вышел в наручниках

то войдя снова будет в наручниках

с ванкунси аналогично

 

Работает чисто серверно

 

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@BorizzK Попробую сегодня, спасибо большое.

Т е. Из миссии убрать строку про установку персонажу здоровья на 0?

Изменено пользователем Verum (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
03.03.2021 в 22:48, BorizzK сказал:

Кароче

Там же еще сохранка должны быть правильной

Если он рестрайн или ванкунси - его тупо не сохраняет в бд сервера

потому так

 

MissionSerever

override void HandleBody(PlayerBase player) { if (player.IsAlive()) { GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).Call(player.Delete); } }


	override void HandleBody(PlayerBase player)
	{
		if (player.IsAlive())
		{
			GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).Call(player.Delete);
		}
	}

 

PlayerBase

 

modded class PlayerBase extends ManBase { ref TStringArray restrain_Items = {"HandcuffsLocked","RopeLocked","DuctTapeLocked","MetalWireLocked","BarbedWireLocked"}; override void OnConnect() { super.OnConnect(); if (GetItemInHands()) { if (restrain_Items.Find(GetItemInHands().GetType()) >= 0) { BzRestrtainOnConnect(); } } } override void OnReconnect() { super.OnReconnect(); if (GetItemInHands()) { if (restrain_Items.Find(GetItemInHands().GetType()) >= 0) { BzRestrtainOnConnect(); } } } override bool Save() { if (GetPlayerState() == EPlayerStates.ALIVE ) { GetHive().CharacterSave(this); Debug.Log("Restrained player " + this.ToString() + " saved as alive!"); //типа дебаг return true; } return super.Save(); } void BzRestrtainOnConnect() { EntityAI item_in_hands = GetItemInHands(); //Это не обязательно но пусть будет if(item_in_hands) { SetRestrained(true); OnItemInHandsChanged(); SetSynchDirty(); } } }


modded class PlayerBase extends ManBase
{
	ref TStringArray restrain_Items = {"HandcuffsLocked","RopeLocked","DuctTapeLocked","MetalWireLocked","BarbedWireLocked"};
	
	override void OnConnect()
	{
		super.OnConnect();
		if (GetItemInHands())
		{
			if (restrain_Items.Find(GetItemInHands().GetType()) >= 0)
			{
				BzRestrtainOnConnect();
			}
		}
	}

	override void OnReconnect()
	{
		super.OnReconnect();
		if (GetItemInHands())
		{
			if (restrain_Items.Find(GetItemInHands().GetType()) >= 0)
			{
				BzRestrtainOnConnect();
			}
		}
	}
	
	override bool Save()
	{
		if (GetPlayerState() == EPlayerStates.ALIVE )
		{
			GetHive().CharacterSave(this);
			Debug.Log("Restrained player " + this.ToString() + " saved as alive!"); //типа дебаг
			return true;
		}
		return super.Save();
	}

	void BzRestrtainOnConnect()
	{
		EntityAI item_in_hands = GetItemInHands(); //Это не обязательно но пусть будет
		if(item_in_hands)
		{
			SetRestrained(true);
			OnItemInHandsChanged();
			SetSynchDirty();
		}
	}
}

если вышел в наручниках

то войдя снова будет в наручниках

с ванкунси аналогично

 

Работает чисто серверно

 

НЕ РАБОТАЕТ, КАК ЭТО ИСПРАВИТЬ ЧТОБ РАБОТАЛО?

03.03.2021 в 22:48, BorizzK сказал:

2021-04-21_17-04-46.png.0c77d0bc0af1daf6b5bc4d91fde68632.png2021-04-21_17-05-32.png.b64a513c9c2a1e7515be70b1cb0de70a.png

 

Изменено пользователем Balcoz (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, Balcoz сказал:

 

НЕ РАБОТАЕТ, КАК ЭТО ИСПРАВИТЬ ЧТОБ РАБОТАЛО?

 

а я почем знаю что именно не работает где и как

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, BorizzK сказал:

а я почем знаю что именно не работает где и как

я скриншоты скинул вот так нужно?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
5 минут назад, Balcoz сказал:

я скриншоты скинул вот так нужно?

 

разумеется нет, в папке мода должна быть папка Addons, и уже в ней должен быть pbo файл

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
3 минуты назад, 123new сказал:

разумеется нет, в папке мода должна быть папка Addons, и уже в ней должен быть pbo файл

Addons и все или там должны быть папки mission ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, Balcoz сказал:

Addons и все или там должны быть папки mission ?

 

🤬

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 часа назад, Balcoz сказал:

Addons и все или там должны быть папки mission ?

 

открой любые 5 модов скачанных и сравни структуру, дмаю найдешь что общее у всех 😉

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
10 минут назад, 123new сказал:

открой любые 5 модов скачанных и сравни структуру, дмаю найдешь что общее у всех 😉

Бляха муха, туплю точняк, спасибо)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

всем привет! вопрос встал) как добавить к этому скрипту функцию, чтобы персонаж не мог сам освободиться? где найти, если есть пример, буду признателен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.