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

Вопросы по МП.
#161
OFFLINE
Отправлено 18 July 2015 - 13:00
#162
OFFLINE
Отправлено 18 July 2015 - 13:50
в другом движке
outerra anterworld?
#163
OFFLINE
Отправлено 18 July 2015 - 17:47
ожидать АрмА от товарища SteelRat???
Вряд ли). Конкуренты БИСам объявились по серьёзнее), посмотрим что наваяют, если наваяют до юзабельного состояния, и если найдутся те, кто отслюнявит нормально бабла на дальнейшее серьёзное развитие проекта.
А SteelRat, просто энтузиаст цифровых технологий).
в другом движке
outerra anterworld?
Да, пока там, и ждём
ЗЫ
ожидать АрмА от товарища SteelRat???
Многие должны были обратить внимание на то, что я не фанат армейского уклада жизни).
Мои извращённые фантазии тяготеют к другим геймплеям).
Арма меня привлекла только своей песочницей, и какие бы мнения не высказывались, эта часть армы реализована ИЗЮМИТЕЛЬНО! Мне нравится.
#164
OFFLINE
Отправлено 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
#166
OFFLINE
Отправлено 19 July 2015 - 16:52
Как определить всех игроков онлайн?
#167
OFFLINE
Отправлено 19 July 2015 - 19:55
TankiSD, он имеет в виду squad, из всех игр она всех ближе подобралась к геймплею армы
Я имел ввиду вот это
Но как такового этого кроме презентации и обещания в этом году предоставить общественности какую то там версию, ни чего нет.
Как уже писал, в таких делах решает крупная сумма бабла.
Армы без VBS, тоже уже бы давно не было, на выручку от лояльных юзеров далеко не уедешь, законы рынка.
#168
OFFLINE
Отправлено 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; };
#169
OFFLINE
Отправлено 19 July 2015 - 20:16
PS
Скорее всего, в последнем обновлении БИСы ввели прямые команды для мультика, вместо этого
BIS_fnc_MP
поюзайте кладезь мудрости.
#170
OFFLINE
Отправлено 19 July 2015 - 20:25
PS_2
Не, они ещё dev
#171
OFFLINE
Отправлено 19 July 2015 - 20:37
squad
Очередная пустыня с графоном Армы 2, они серьёзно надеются продавать это по озвученным ценам !?
#172
OFFLINE
Отправлено 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
#173
OFFLINE
Отправлено 20 July 2015 - 18:53
Вообще не во всяком геймплее можно, просто и безболезненно совместить SP и MP.
Обращаю внимание! Я сказал не невозможно! А порой проблематично, приходится творить больше писанины, которая отслеживает режим, и применяет соответствующий режиму функционал.
А может ему вообще глобальную переменную дать?
Попрошу не кидаться ... , камнями в смысле!
Но применять глобальные переменные, желательно там, где без этого ни как не обойтись. тем более в мультиплеере.
А так, как говорится, как умеете!)
#174
OFFLINE
Отправлено 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]; и т.д. };
#175
OFFLINE
Отправлено 20 July 2015 - 19:16
Лучше обрабатывать на сервере, или клиенте.
Тут трудно давать советы, случаи разные, многое зависит от того как вы строите вообще сам функционал игры.
Вообще, нормальное явление, когда код обслуживающий персонажа крутится на клиентке персонажа.
Если демон ушёл в дисконект, на серверной стороне инициализируется код, который выбирает нового, и самое ответственное, код должен телепортнуть, при необходимости, выбраное тело, на некую дистанцию от игроков, иначе временами буде выглядеть дибиловато! Когда ваш корешь рядом, начнёт вести себя, ни с того ни с сего, не много не адекватно).
#176
OFFLINE
Отправлено 20 July 2015 - 19:28
Плюсом, все равно придётся игрока с переменной _thing обрабатывать на дисконект и на JIP.
Тут может получиться не очень красивая ситуация. когда некто не желающий быть демоном будет уходить в дисконект. В этот момент будет выбран новый.
И на сервер возвращается хитрец! И если пользоваться ДЖИПОМ, получится так, то тело которое только что выбрали демоном, должно откатиться к исходной, а вернувшийся хитрец снова стать демоном. Но ведь ему это не понравилось! Он опять вышел! Дорисуете дальше, сами, всю эту весёлую картину!)
#177
OFFLINE
Отправлено 20 July 2015 - 20:48
Зависит от настроек миссии, по-умолчанию ИИ берет контроль над юнитов вышедшего игрокаК слову. насчёт дисконекта, игрок считается убитым ведь?
#178
OFFLINE
Отправлено 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
#179
OFFLINE
Отправлено 21 July 2015 - 02:09
Зависит от настроек миссии, по-умолчанию ИИ берет контроль над юнитов вышедшего игрокаК слову. насчёт дисконекта, игрок считается убитым ведь?
Если я не ошибаюсь, если в миссии активирован AI, то контроль над юнитом вышедшего игрока возьмёт сервер, в противном случае тело просто сдохнет.
Так таким образом, мы передаём переменную "_thing" из скрипта в скрипт?!
Вы гений! Однозначно!)
#180
OFFLINE
Отправлено 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