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


Фотография

vehicle player != player


Лучший Ответ HarryWorner , 08 April 2016 - 16:15

dos130,

if !(vehicle _killer isKindOf "Man") then {123} //_killer в технике
Перейти к сообщению


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

#1 OFFLINE   dos130

dos130

    Рядовой

  • Пользователи
  • 17 сообщений
  • Откуда:Murmansk

Отправлено 08 April 2016 - 02:08

Доброй ночи скриптеры. Требуется помощь не знаю уже че поделать.

У меня есть триггер который выдается всем игрокам.

 

player addEventHandler ["Killed", {[_this] call onKilled;}];

 

с переменными _player и _killer

 

В скрипте onKilled я сделал условие:

 

If ((vehicle _killer) == _killer) then {123};

 

Но у меня почему то всегда выпадает true; В машине убийца или нет, всегда true.

Помогите как исправить это?


Сообщение отредактировал dos130: 08 April 2016 - 02:09

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 08 April 2016 - 12:16

Если "выстрелила" техника (Пушка, пулемет, но не оружие игрока в режиме стрельбы собственным оружием), то убийца = техника, а не стрелок
  • 1

#3 OFFLINE   HarryWorner

HarryWorner

    Лейтенант

  • Модераторы
  • 1035 сообщений

Отправлено 08 April 2016 - 16:15   Лучший Ответ

dos130,

if !(vehicle _killer isKindOf "Man") then {123} //_killer в технике

  • 2

#4 OFFLINE   dos130

dos130

    Рядовой

  • Пользователи
  • 17 сообщений
  • Откуда:Murmansk

Отправлено 08 April 2016 - 17:03

 

dos130,

if !(vehicle _killer isKindOf "Man") then {123} //_killer в технике

Спасибо огромное все работает :)


  • 0

#5 OFFLINE   GlaM4X

GlaM4X

    Рядовой

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

Отправлено 23 April 2016 - 16:33

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

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

Код функции вызываемой при активации триггера:

//[thisList] - получаем список активаторов

if (isServer) then {							//СКРИПТ ТОЛЬКО ДЛЯ СЕРВЕРА!

	_objectsArray = _this select 0;					//массив объектов внутри триггера

	//получаем массив игроков внутри триггера
	{
		if (isPlayer _x) then {								//если объект игрок

			if (vehicle _x != _x) then {					//если игрок в технике

				_str = format["Игрок в технике! Damage = %1", getDammage (vehicle _x)];
				[_str,"systemChat",true,false] call BIS_fnc_MP;

				(vehicle _x) setDamage 0;
			};
		};
	} forEach _objectsArray;
};

Так вот if (vehicle _x != _x) дает все время ложь, то есть vehicle возвращает не технику а  сам проверяемый аргумент _x.

Вот я не пойму vehicle работает только есть техника и игрок локальны на компьютере или как?

Как с сервера определить сидит ли игрок в технике???


  • 0

#6 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 23 April 2016 - 16:46

GlaM4X, vehicle, как я выяснил, возвратит самого игрока, если он сидит с возможностью поднимать оружие
Используйте objectParent - он вроде по точнее работает
  • 0




Яндекс.Метрика