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


Фотография

Вопросы по МП.


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

#41 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 02 June 2015 - 00:43

_target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3];

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


  • 2

#42 OFFLINE   TankiSD

TankiSD

    Ст. Прапорщик

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

Отправлено 02 June 2015 - 04:35

Спасибо огромное!

 

Буду изучать!

 

Ну и с порядком у меня всегда беда( 

 

 

 

_target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3];

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

 

 

не, тело выживает, правда есть повреждения.

 

Я вот тоже думаю, либо аттач, либо велосити, но велосити как то более реалистичен


Сообщение отредактировал TankiSD: 02 June 2015 - 13:41

  • 0

#43 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 02 June 2015 - 18:21

 

Спасибо огромное!

 

Буду изучать!

 

Ну и с порядком у меня всегда беда( 

 

 

 

_target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3];

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

 

 

не, тело выживает, правда есть повреждения.

 

Я вот тоже думаю, либо аттач, либо велосити, но велосити как то более реалистичен

 

Сначала велосайт к спайдермену, после подлёта на некую дистанцию, атачь к спайдермену, после, опять же через экшен, или через некий таймер, хороший такой велосайт об стену от спайдермена).


  • 1

#44 OFFLINE   TankiSD

TankiSD

    Ст. Прапорщик

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

Отправлено 03 June 2015 - 06:03

 

Ещё одна правка)

// Скрипт инициализации фишек, нужно вызвать при инициализации игрока, а также после респавна

_distAction = 15;	// Дистанция доступности экшена
_spyderMan = "C_Man_1"; // Сюда нужно вписать класс нейм гражданского

player addAction [
	"Come to me my sweet sugar",
	{
		[_this select 0, _this select 1] spawn {
			// код исполняемый при астивации экшена
			_target = _this select 0; // тело на котором висит этот экшен
			_caller = _this select 1; // тело которое активировало этот экшен
		
			_target setdir getDir _caller;
			_target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3];
			sleep 1;
			addCamShake [8, 5, 8];
			[[_target, "GetOutPara"], "switchMove"] call BIS_fnc_MP;
			_target setdamage 0;
			[[_caller, "AinvPknlMstpSnonWnonDnon_medicUp0"], "switchMove"] call BIS_fnc_MP;	// к кому притянули
		};
	},
	"",
	1,
	true,
	true,
	"",
	format["(_this distance _target <= %1) && (typeOf _this == '%2')", _distAction, _spyderMan]
];

 

просто есть вопрос, будет ли addaction виден союзным игрокам, помимо гражданского.


  • 0

#45 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 03 June 2015 - 12:05

TankiSD, addAction локален и будет "существовать" только там где его создали


  • 0

#46 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 03 June 2015 - 19:29

 

 

Ещё одна правка)

// Скрипт инициализации фишек, нужно вызвать при инициализации игрока, а также после респавна

_distAction = 15;	// Дистанция доступности экшена
_spyderMan = "C_Man_1"; // Сюда нужно вписать класс нейм гражданского

player addAction [
	"Come to me my sweet sugar",
	{
		[_this select 0, _this select 1] spawn {
			// код исполняемый при астивации экшена
			_target = _this select 0; // тело на котором висит этот экшен
			_caller = _this select 1; // тело которое активировало этот экшен
		
			_target setdir getDir _caller;
			_target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3];
			sleep 1;
			addCamShake [8, 5, 8];
			[[_target, "GetOutPara"], "switchMove"] call BIS_fnc_MP;
			_target setdamage 0;
			[[_caller, "AinvPknlMstpSnonWnonDnon_medicUp0"], "switchMove"] call BIS_fnc_MP;	// к кому притянули
		};
	},
	"",
	1,
	true,
	true,
	"",
	format["(_this distance _target <= %1) && (typeOf _this == '%2')", _distAction, _spyderMan]
];

 

просто есть вопрос, будет ли addaction виден союзным игрокам, помимо гражданского.

 

Вот эта часть кода

format["(_this distance _target <= %1) && (typeOf _this == '%2')", _distAction, _spyderMan]

делает проверку, типа

Если дистанция доступности экшена _distAction подходящая, И, класс юнита которым управляет тот кто видит этот экшен равен _spyderMan, то экшен будет доступен для использования, то есть, при такой проверке условия доступности экшена ни кто кроме гражданина _spyderMan не сможет увидеть у себя этот экшен. 

 

Мутно! Понимаю). Но уж попытайтесь это переварить), и попытайтесь переварить это

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


Сообщение отредактировал SteelRat: 03 June 2015 - 19:31

  • 0

#47 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 03 June 2015 - 19:35

TankiSD, addAction локален и будет "существовать" только там где его создали

Нет Коллега, экшен будет доступен всем, согласно ограничениям описанным в проверочном условии.


  • 0

#48 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 03 June 2015 - 19:48

SteelRat, но эффект команды локален? А это значит, что только там где его вызвали и будет доступен, или БИС'ы что то уже изменили?


  • 0

#49 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 03 June 2015 - 19:54

SteelRat, но эффект команды локален? А это значит, что только там где его вызвали и будет доступен, или БИС'ы что то уже изменили?

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


Сам код, если вы вписали код в экшен, так же будет доступен всем.


ЗЫ

Кстати БИСы в экшены целые, не маленькие такие по весу функции загоняют)


  • 0

#50 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 03 June 2015 - 19:57

SteelRat, как тогда это понимать:

This command has local effect. Created action is only available on the computer where command was executed. To make action available to all players, command must be executed on all connected clients.


  • 0

#51 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 03 June 2015 - 20:04

Вот и я хочу это понять, только что сам полез почитать)


Прикол в том, что мои знакомые частенько желали задействовать мой девелоперский волшебный экшен, которого согласно описанию на бике у них быть не должно)


Сообщение отредактировал SteelRat: 03 June 2015 - 20:01

  • 0

#52 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 03 June 2015 - 20:59

Так и есть, экшен локален, я про что то не то похоже, ну да ладно.

Собственно господину Танкисту, нужно всего лишь раздать нужные экшены оппонентам на стороне спайдермена, и оставить проверку только дистанции.


ЗЫ

Доделываю функционал аномалий до рабочего стандарта и каникулы от Армы на месяц, или два, уже совсем кукушку сносит).


  • 0

#53 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 03 June 2015 - 21:22

ЗЫ_2

Танкисту.

 

Я тут не много по развлекался с вашим велосайтом, и знаете, экшены тут не айс, в плане комфорта.

Я бы предложил вам такой вариант, клавишами выбирать тип эффекта, а само действие забиндить на левую или правую, по вкусу, кнопку мыши.

И производить поиск потенциального терпилы, не много по другому, в смысле не курсортаргетом, это уж точно.

Я не много разберусь со своим, и запилю шаблон-вариантик для примера.


  • 0

#54 OFFLINE   TankiSD

TankiSD

    Ст. Прапорщик

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

Отправлено 15 June 2015 - 16:19

Тут делал скрипт ближней атаки, забинденный на ЛКМ.

 

И вот что получил.

if (side player == west) exitwith {};
if !(side player == civilian) exitwith {};

EH_MouseButtonDown = (findDisplay 46) displayAddEventHandler ["MouseButtonDown", "
if (cursortarget isKindOf 'Man' 
and
(cursortarget distance player < 15))
 then
{cursortarget setdir getDir player; cursortarget setvelocity [sin(getdir player)*-20,cos(getdir player)*-20,3]; 
}; 
"];
 

В МП такой вариант будет работать?
 

 

 

И никак не могу выставить задержку на нажатие клавиши мыши.

waituntil {time > 1};

EH_MouseButtonDown = (findDisplay 46) displayAddEventHandler ["MouseButtonDown","
if (time - lasttime < 1) exitWith {};
lasttime = time;
player switchmove 'AwopPercMstpSgthWnonDnon_end';
if (isServer) then {
_pul9= createVehicle ['B_127x99_Ball_Tracer_Yellow', getPos player, [], 0, 'none'];
_pul9 setpos [getpos _pul9 select 0, getpos _pul9 select 1, (getpos _pul9 select 2) + 1.9]; 
_pul9 setvelocity [sin(getdir player)*500,cos(getdir player)*500, -250];
};
"];

в чём ошибка?


Сообщение отредактировал TankiSD: 15 June 2015 - 17:06

  • 0

#55 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 15 June 2015 - 19:32

Если тайминги не велики, около 1 сек, то лучше использовать

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


  • 0

#56 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 15 June 2015 - 19:43

 

В МП такой вариант будет работать?

 

Если это игрок которого надо отвелосайтить, то и исполнить эту команду надо на компе того игрока.

По моему так, если мне память не изменяет.

 

Примерное направление

// для спайдермена
_vel = [0, 20, 0];
[[cursortarget, _vel], "ptm_fnc_velociteUnitMP"] spawn BIS_fnc_MP;

// Определить функцию ptm_fnc_velociteUnitMP на всех клиентах
ptm_fnc_velociteUnitMP = {
	_unit = _this select 0;
	if (local _unit) then {
		_vel = _this select 1;
		
		// ваш дальнейший код применительно к терпиле
	};
};

Сообщение отредактировал SteelRat: 15 June 2015 - 19:59

  • 1

#57 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 15 June 2015 - 19:59

ЗЫ

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


  • 0

#58 OFFLINE   TankiSD

TankiSD

    Ст. Прапорщик

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

Отправлено 15 June 2015 - 20:07

Да я не знаю как)


  • 0

#59 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 15 June 2015 - 23:07

Да я не знаю как)

http://arma3.ru/foru...aiusch/?p=24300


Сообщение отредактировал SteelRat: 15 June 2015 - 23:08

  • 1

#60 OFFLINE   TankiSD

TankiSD

    Ст. Прапорщик

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

Отправлено 20 June 2015 - 14:41

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

нужно что-то вроде foreach allunits.


  • 0




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