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


Фотография

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


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

#161 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 18 July 2015 - 13:00

ожидать АрмА от товарища SteelRat???


  • 0

#162 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 18 July 2015 - 13:50

в другом движке


outerra anterworld?
  • 0

#163 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 18 July 2015 - 17:47

ожидать АрмА от товарища SteelRat???

Вряд ли). Конкуренты БИСам объявились по серьёзнее), посмотрим что наваяют, если наваяют до юзабельного состояния, и если найдутся те, кто отслюнявит нормально бабла на дальнейшее серьёзное развитие проекта.

 

А SteelRat, просто энтузиаст цифровых технологий).


 

в другом движке


outerra anterworld?

 

 

Да, пока там, и ждём

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


ЗЫ

 

ожидать АрмА от товарища SteelRat???

Многие должны были обратить внимание на то, что я не фанат армейского уклада жизни).

Мои извращённые фантазии тяготеют к другим геймплеям).

Арма меня привлекла только своей песочницей, и какие бы мнения не высказывались, эта часть армы реализована ИЗЮМИТЕЛЬНО! Мне нравится.


  • 0

#164 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 19 July 2015 - 14:26

А что за конкуренты?
Я пока не видел что-то такое, что могло бы соревноваться с АрмА

 

=================

 

Выбираю рандомно игрока и начинаю им манипулировать

В init.sqf

if (isserver) then {
          _thing = PlayableUnits select (floor random (count PlayableUnits)); 
};

а как теперь к нему манипуляции применить? т.е. именно на нём скрипт активировать?
[_thing] и _thing = _this select 0; 

Не работает. 

 

 

==============

 

 

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

а-а-а-а, это от разрабов проджект реалити, в которую я играю уже более семи лет.

 

Ну я бы не сказал, что это заменя ArmA. 

 

К слову - 

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


А тут 

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

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


Сообщение отредактировал TankiSD: 19 July 2015 - 17:25

  • 0

#165 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 19 July 2015 - 16:31

TankiSD, он имеет в виду squad, из всех игр она всех ближе подобралась к геймплею армы
  • 0

#166 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 19 July 2015 - 16:52

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

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


  • 0

#167 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 19 July 2015 - 19:55

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

Я имел ввиду вот это

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

 

Но как такового этого кроме презентации и обещания в этом году предоставить общественности какую то там версию, ни чего нет.

Как уже писал, в таких делах решает крупная сумма бабла.

 

Армы без VBS, тоже уже бы давно не было, на выручку от лояльных юзеров далеко не уедешь, законы рынка.


  • 0

#168 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 19 July 2015 - 20:11

 

а как теперь к нему манипуляции применить? т.е. именно на нём скрипт активировать?

// script.sqf
_thing = _this select 0;
// Если инициализируемый для юнита скрипт будет крутиться на сервере
if (isserver) then {
	_thing = PlayableUnits select (floor random (count PlayableUnits));
	_handler = [_thing] execVM "script.sqf";
	
	// Юниту даётся переменная ссылающаяся на исполняемы код, 
	// может понадобиться если вызываемый код зациклен
	// и в какой то момент может возникнуть необходимость прекратить исполнение вызванного кода.
	// Опционально, не обязательно к применению.
	_thing setVariable ["scriptName", _handler];
};

// Если инициализируемый для юнита скрипт будет крутиться на клиенте
if (isserver) then {
	_thing = PlayableUnits select (floor random (count PlayableUnits));
	[[[_thing], "script.sqf"], "BIS_fnc_execVM", _thing] call BIS_fnc_MP;
};

  • 0

#169 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 19 July 2015 - 20:16

PS

Скорее всего, в последнем обновлении БИСы ввели прямые команды для мультика, вместо этого

BIS_fnc_MP

поюзайте кладезь мудрости.


  • 0

#170 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 19 July 2015 - 20:25

PS_2

Не, они ещё dev

 

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

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


  • 0

#171 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 19 July 2015 - 20:37

 

squad

Очередная пустыня с графоном Армы 2, они серьёзно надеются продавать это по озвученным ценам !?


  • 0

#172 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 20 July 2015 - 01:10


а как теперь к нему манипуляции применить? т.е. именно на нём скрипт активировать?

// script.sqf_thing = _this select 0;
// Если инициализируемый для юнита скрипт будет крутиться на сервереif (isserver) then {	_thing = PlayableUnits select (floor random (count PlayableUnits));	_handler = [_thing] execVM "script.sqf";		// Юниту даётся переменная ссылающаяся на исполняемы код, 	// может понадобиться если вызываемый код зациклен	// и в какой то момент может возникнуть необходимость прекратить исполнение вызванного кода.	// Опционально, не обязательно к применению.	_thing setVariable ["scriptName", _handler];};// Если инициализируемый для юнита скрипт будет крутиться на клиентеif (isserver) then {	_thing = PlayableUnits select (floor random (count PlayableUnits));	[[[_thing], "script.sqf"], "BIS_fnc_execVM", _thing] call BIS_fnc_MP;};

А может ему вообще глобальную переменную дать?
И в случае дисконекта, или гибели, выбирать новое существо.

в SP через PlayableUnits не проверить.
Придётся тестить через allplayers, а потом в итоге обратно на PlayableUnits заменить

Сообщение отредактировал TankiSD: 20 July 2015 - 13:49

  • 0

#173 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 20 July 2015 - 18:53

Вообще не во всяком геймплее можно, просто и безболезненно совместить SP и MP.

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


 

А может ему вообще глобальную переменную дать?

Попрошу не кидаться ... , камнями в смысле!

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

А так, как говорится, как умеете!)


  • 0

#174 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 20 July 2015 - 19:07

я вот просто не знаю.

 

Лучше обрабатывать на сервере, или клиенте. 
Я всё же думаю на сервере.

Т.к. игра планируется как на паблике, так и с друзьями между собой. 

Тем более, будут присутствовать локальные команды, которые через variable надо будет передавать.

 

Плюсом, все равно придётся игрока с переменной _thing обрабатывать на дисконект и на JIP.

К слову. насчёт дисконекта, игрок считается убитым ведь?

 

т.е. можно просто повесить _thing addEventHandler ["Killed","execVM 'respawnTHING.sqf'"];

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

 

Или я вообще не прав и стоит идти и почитать?

 

P.S. И почему я насчёт глобальной переменной спросил.

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

//
script1.sqf
_thing = _this select 0;

//
script2.sqf
_thing = _this select 0;

//
script3.sqf
_thing = _this select 0;

============================

Активируя их так


if (isserver) then {
	
        _handler1 = [_thing] execVM "script1.sqf";
        _handler2 = [_thing] execVM "script2.sqf";
        _handler3 = [_thing] execVM "script3.sqf";

        _thing setVariable ["script1", _handler1];
	_thing setVariable ["script2", _handler2];
            и т.д.
};     

 


  • 0

#175 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 20 July 2015 - 19:16

 

Лучше обрабатывать на сервере, или клиенте. 

Тут трудно давать советы, случаи разные, многое зависит от того как вы строите вообще сам функционал игры.

Вообще, нормальное явление, когда код обслуживающий персонажа крутится на клиентке персонажа.


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


  • 0

#176 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 20 July 2015 - 19:28

 

Плюсом, все равно придётся игрока с переменной _thing обрабатывать на дисконект и на JIP.

Тут может получиться не очень красивая ситуация. когда некто не желающий быть демоном будет уходить в дисконект. В этот момент будет выбран новый.

И на сервер возвращается хитрец! И если пользоваться ДЖИПОМ, получится так, то тело которое только что выбрали демоном, должно откатиться к исходной, а вернувшийся хитрец снова стать демоном. Но ведь ему это не понравилось! Он опять вышел! Дорисуете дальше, сами, всю эту весёлую картину!)


  • 0

#177 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 20 July 2015 - 20:48

К слову. насчёт дисконекта, игрок считается убитым ведь?

Зависит от настроек миссии, по-умолчанию ИИ берет контроль над юнитов вышедшего игрока
  • 0

#178 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 20 July 2015 - 21:30

буду обрабатывать на стороне клиента. 

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

Или даже без addaction обойдусь, пусть всё рандомно будет.

Будет затемнение, молния + удаления тела и selectplayer в новое тело, созданное далеко. 

Или прямо там.

 

=================

 

Так ведь можно запускать так

if (isserver) then {
	_thing = PlayableUnits select (floor random (count PlayableUnits));
	[[[_thing], "script.sqf"], "BIS_fnc_execVM", _thing] call BIS_fnc_MP;
};

а в скриптах всё оставить по старому, удалив только проверку на сторону.

 

Потому что если прописать

 

_thing=_this select 0;

то обращаясь через _thing вместо player, скрипты не работают. 

 

P.S. 

Но тогда есть другой вопрос.

Как сделать проверку на то, какому игроку присвоили переменную? 

 

======

 

АААА!!!

 

Так таким образом, мы передаём переменную "_thingиз скрипта в скрипт?!

[_thing] execVM "script1.sqf";
_thing = _this select 0;

Сообщение отредактировал TankiSD: 21 July 2015 - 00:20

  • 0

#179 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 21 July 2015 - 02:09

 

К слову. насчёт дисконекта, игрок считается убитым ведь?

Зависит от настроек миссии, по-умолчанию ИИ берет контроль над юнитов вышедшего игрока

 

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


 

Так таким образом, мы передаём переменную "_thingиз скрипта в скрипт?!

Вы гений! Однозначно!)


  • 0

#180 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 22 July 2015 - 14:21

Вы гений! Однозначно!)

 

ой да ладно)))

 

 

Но ведь не слишком обязательно _thing потом прописывать в каждом скрипте?

т.е. после выбора игрока, у меня скрипт запускается так

[_Thing] execvm "sposobnost\SPOSOBNOSTI.sqf";

А в самом скрипте только player, потому что переменную он не хочет воспринимать, т.е. скрипт не понимает, кто есть _thing\_thingPL

Один из скриптов.
И я не могу понять, почему C_scientist_F всё же имеет сторону гражданского, а не west.

_Thing= _this select 0;
_side = createCenter west;
_groupThingPL = createGroup west;
_ThingPL = _groupThingPL createUnit ["C_scientist_F", [0, 0, 0], [], 0, "NONE"];
_ThingPL setpos getPos player;
selectplayer _ThingPL;
deletevehicle _Thing;

_ThingPL addEventHandler ["Killed","execVM 'respawnTHING.sqf'"];

[_ThingPL] execvm "sposobnost\SPOSOBNOSTI.sqf";
[_ThingPL] execvm "sposobnost\godmodeSTART.sqf";
[_ThingPL] execvm "sposobnost\zrenie.sqf";
[_ThingPL] execvm "sposobnost\Conc.sqf";
[_ThingPL] execvm "sposobnost\netoryzieTMSQ.sqf";
[_ThingPL] execvm "sposobnost\netformaTMSQ.sqf";
[_ThingPL] execvm "sposobnost\zapretCAR.sqf";


Сообщение отредактировал TankiSD: 22 July 2015 - 14:37

  • 0




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