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


Фотография

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


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

#1 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 01 June 2015 - 12:15

Как в МП задействовать команду cursortarget на определённом игроке? 

И как вообще задействовать cursortarget?

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

А в МП коквсигда...

 

p.s. как вообще активировать некоторые команды, только на определённом игроке?

Как например 

addCamShake

_target = cursorTarget player; // _target = cursorTarget;
if (_target isKindOf "Man") then {
_target attachto [TheThing,[0,3,0]];
 detach _target;
} 
else {
_target setdamage 0.5
};  

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

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 01 June 2015 - 13:14

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


  • 0

#3 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 01 June 2015 - 13:40

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

я бы даже тогда не создавал подобные темы) 


  • 1

#4 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 01 June 2015 - 13:45

Подробный план действий:
1. Создаете функцию у подопытных, которая буду делать 2 вещи:
1.1. Получать цель (cursorTarget)
1.2. Отсылать серверу (вам) переменную с этим объектом (publicVariableServer)
2. На сервере создаете 'событие' с этой переменной (addPublicVariableEventHandler), которое и будет делать с полученным объектом то, что вам и нужно
Примерно так (работа не гарантируется)
//клиент
MyFunction = {if ((name player) == (_this select 0)) then {
MyVar = cursorTarget;
PublicVariableServer "MyVar";
}}
//сервер
MyVar addPublicVariableEventHandler {hint str (_this select 1)};
//вызов
[["nagibator9000"],"myFunction"] call BIS_fnc_MP;


  • 0

#5 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 01 June 2015 - 14:13

Пошёл гуглить, как создавать функцию. 

Скрытый текст


  • 0

#6 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 01 June 2015 - 14:25

TankiSD, с JIP - нет
Почему? ответ: cfgFunctions и Description.ext сработают у всех, а BIS_fnc_MP по дефолту запускается только единожды (JIP'ы, вошедшие после вызова, идут лесом)
Попозже, если нужно могу реализовать это, но нужен подопотный
  • 0

#7 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 01 June 2015 - 14:31

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

 

Нашёл конечно, как функция создаётся

 

fnc_функция = {

код

};

 

Про основы для МП я прочитал.

Вроде бы как понятны.

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

 

p.s. нужно будет что-то запилить в МП, зови, я частенько онлайн ближайший месяц. 


Сообщение отредактировал TankiSD: 01 June 2015 - 14:33

  • 0

#8 OFFLINE   vlad333000

vlad333000

    Полковник

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

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

TankiSD, variable - самый простой способ "общения" сервера и клиента. Там все просто: addPublicVariableEventHandler - принимаем; publicVariable - отправляем
  • 0

#9 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 01 June 2015 - 15:10

...

я наконец-то понял, почему у бисов мп изначально убог и нет нормальных мп миссий от бисов... потому что он очень заморочен. 


  • 0

#10 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 01 June 2015 - 15:27

В общем ладно.

 

Я правильно мыслю?

 

 

Создать отдельный файл fncCuursor.sqf

 

в этом файле 


MyFunction = {if ((name player) == (_this select 0)) then {
MyVar = cursorTarget;
PublicVariableServer "MyVar";

сюда свой код?

}};

И запустить его сразу через init.sqf

 

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

 

Это через что запускать?

MyVar addPublicVariableEventHandler {hint str (_this select 1)};

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

 

[["nagibator9000"],"myFunction"] call BIS_fnc_MP;

 

А это собственно уже активировать через addaction, кнопку или какой-либо другой способ?

nagibator9000- это то значит? 

имя какое?


  • 0

#11 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 01 June 2015 - 15:46

TankiSD, 1. Это функция, которая будет вызываться у ваших жертв, если вам кроме курсортаргета ничего не нужно, то и не нужен лишний код
2. Через, что угодно. Самое главное что бы было иначе нечего не произойдет
3. Никнейм жертвы

Сообщение отредактировал vlad333000: 01 June 2015 - 15:47

  • 0

#12 OFFLINE   TankiSD

TankiSD

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

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

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

Так зачем мне никнейм, если игроков несколько?

 

Есть несколько игроков. 

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

 

Как я понял, эта функция, даёт "имя" жертве, на которую смотрит курсор?

 

А как она определяет, кто на кого смотрит и т.д. и т.п.?

 

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

 

Как я понял, после того, как функция обработает себя *при запуске функции*, в скрипте, уже следует делать не 

 

cursortarget setdamage 1;

 

а

 

MyVar setdamage 1;

 

Я правильно понял?

Функция даёт имя?


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

  • 0

#13 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

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

Отправлено 01 June 2015 - 16:39

cursor target


  • 0

#14 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 01 June 2015 - 17:39

?

 

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

 

И ещё вопрос.

 

Вот у одного игрока, будет очень много всяких разных действий.
Как при респе, вновь придать этому игроку действия?

И как придать эти действия, если игрок ушёл и на его место пришёл новый? 


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

  • 0

#15 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 June 2015 - 18:48

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

 

Про джип всмысле

Example 3:
[[[],"playerConnected.sqf"],"BIS_fnc_execVM",false,true] call BIS_fnc_MP;

//Executes playerConnected.sqf script on server every time a player joins the game.

isPersistent:

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

- true for persistent call (will be called now and for every JIP client) [default: false]


ЗЫ

 

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

[
	[ player,"AmovPercMstpSrasWrflDnon_AadjPpneMstpSrasWrflDleft"],
	"switchMove"
] call BIS_fnc_MP;

  • 0

#16 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 01 June 2015 - 18:49

...


  • 0

#17 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 June 2015 - 18:56

Так зачем мне никнейм, если игроков несколько?

 

Есть несколько игроков. 

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

 

Как я понял, эта функция, даёт "имя" жертве, на которую смотрит курсор?

 

А как она определяет, кто на кого смотрит и т.д. и т.п.?

 

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

 

Как я понял, после того, как функция обработает себя *при запуске функции*, в скрипте, уже следует делать не 

 

cursortarget setdamage 1;

 

а

 

MyVar setdamage 1;

 

Я правильно понял?

Функция даёт имя?

Команда cursorTarget возвращает не имя а объект.


ЗЫ

Если вы в редакторе определили имя объекту, то команда, по моему вернёт именно это имя. По сути это имя есть переменная представляющая ссылку на объект.


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

  • 0

#18 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 June 2015 - 19:02

...

я наконец-то понял, почему у бисов мп изначально убог и нет нормальных мп миссий от бисов... потому что он очень заморочен. 

Любой мультик, и не только от БИСов заморочен, сами подумайте сколько всего и вся нужно синхронизировать между клиентами, тем более в такой теме как Арма.


  • 0

#19 OFFLINE   TankiSD

TankiSD

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

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

Отправлено 01 June 2015 - 19:11

 

...

я наконец-то понял, почему у бисов мп изначально убог и нет нормальных мп миссий от бисов... потому что он очень заморочен. 

Любой мультик, и не только от БИСов заморочен, сами подумайте сколько всего и вся нужно синхронизировать между клиентами, тем более в такой теме как Арма.

 

 

согласен.

 

Да английский блин не знаю. 

Так бы намного меньше вопросов было бы. 


  • 0

#20 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 June 2015 - 19:18

 

 

...

я наконец-то понял, почему у бисов мп изначально убог и нет нормальных мп миссий от бисов... потому что он очень заморочен. 

Любой мультик, и не только от БИСов заморочен, сами подумайте сколько всего и вся нужно синхронизировать между клиентами, тем более в такой теме как Арма.

 

 

согласен.

 

Да английский блин не знаю. 

Так бы намного меньше вопросов было бы. 

 

Собственно на этом форуме таких как вы не мало), и всем приходится разгадывать шарады транслятора.

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


  • 0




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