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


Фотография

Вызывание выполнения на сервере с клиента.


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

#1 OFFLINE   Ilias

Ilias

    Прапорщик

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

Отправлено 13 June 2016 - 18:13

initserver.sqf

/*ini_s=[_la,{u_a111b globalChat str _this}];
publicVariableServer"ini_s";*/

ini_s={};
"ini_s"addPublicVariableEventHandler{_this select 1 select 0 call(_this select 1 select 1)};

on client

_this=[|curator module ('s variable name)|,player];
ini_s=[[_this select 0,driver(_this select 1)],{
	_cm=_this select 0;
	unassigncurator _cm;
	_this select 1 assigncurator _cm;
}];
publicVariableServer"ini_s";

почему клиент зевсом не становиться? (при выполнении на сервере (компьютере, локально) работает)


Сообщение отредактировал Ilias: 14 June 2016 - 16:33

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 13 June 2016 - 18:22

Ilias, а) вы хоть понимаете, что написали во втором коде? И точно уверены что он вообще правильно написан?
б) о

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

ничего не слышали?
  • 0

#3 OFFLINE   Ilias

Ilias

    Прапорщик

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

Отправлено 13 June 2016 - 20:53

Ilias, а) вы хоть понимаете, что написали во втором коде? И точно уверены что он вообще правильно написан?
б) о

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

ничего не слышали?

спасибо за ссылку, не слышал ) , вполне уверен что всё верно, нашли ошибку ? (хочется понять почему это не работает)


Сообщение отредактировал Ilias: 13 June 2016 - 20:53

  • 0

#4 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 13 June 2016 - 21:09

Ilias, ну в том виде, в котором вы тут запостили, второй кусок кода Арма ни в одной версии, ни в одной форме принимать не хочет, ошибку пишет на первом же символе |. И мне так и не удалось расшифровать первую строчку, что бы самому это пофиксить

Сообщение отредактировал vlad333000: 13 June 2016 - 21:13

  • 0

#5 OFFLINE   Ilias

Ilias

    Прапорщик

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

Отправлено 13 June 2016 - 22:26

Ilias, ну в том виде, в котором вы тут запостили, второй кусок кода Арма ни в одной версии, ни в одной форме принимать не хочет, ошибку пишет на первом же символе |. И мне так и не удалось расшифровать первую строчку, что бы самому это пофиксить

благодарен что хотите помочь, но пожалуйста не тупите )

example

_this=[cmTest,player];
ini_s=[[_this select 0,driver(_this select 1)],{
	_cm=_this select 0;
	unassigncurator _cm;
	_this select 1 assigncurator _cm;
}];
publicVariableServer"ini_s";

Сообщение отредактировал Ilias: 14 June 2016 - 16:33

  • 0

#6 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 13 June 2016 - 23:05

Ilias, и как я по вашему должен был догадаться что вы под:

_this=[|curator module ('s variable name)|,player];
вы имели ввиду:
_this=[cmTest,player];
?

Ну ладно, идем по порядку:
а) Где конкретно вызывается отправка переменной на сервер? (Какой файл/скрипт)
б) Зачем вам водитель техники, в которой сидит игрок, для этого?
в) Вы тестируете в каком MP? Выделенный сервер или через главное меню/редактор запускаете сервер?

Сообщение отредактировал vlad333000: 13 June 2016 - 23:05

  • 0

#7 OFFLINE   Ilias

Ilias

    Прапорщик

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

Отправлено 14 June 2016 - 16:25

Ilias, и как я по вашему должен был догадаться что вы под:
 

_this=[|curator module ('s variable name)|,player];
вы имели ввиду:
_this=[cmTest,player];
?

Ну ладно, идем по порядку:
а) Где конкретно вызывается отправка переменной на сервер? (Какой файл/скрипт)
б) Зачем вам водитель техники, в которой сидит игрок, для этого?
в) Вы тестируете в каком MP? Выделенный сервер или через главное меню/редактор запускаете сервер?

 

прочитав написанное в | | и зная что | не присутствует в sqf .

отдельный файл (вызывается локально через execvm).

если unit не в технике driver unit==unit

Не выделенный.


Сообщение отредактировал Ilias: 14 June 2016 - 17:12

  • 0

#8 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 14 June 2016 - 17:10

Использование системных переменных типа

_this

 не по назначению, очень плохая практика!


  • 0

#9 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 14 June 2016 - 17:45

initserver.sqf

ini_s = [];
"ini_s" addPublicVariableEventHandler {_this select 1 select 0 call (_this select 1 select 1);};

on client

_td = [
	curator module ('s variable name'), // интересный синтаксис и команды, это о чём вообще и из какого скиптового языка?
	player
];

ini_s = [
	[
		_td select 0,
		
		// как по вашему? кто может быть водителем плаера? полюбуйтесь на результат исполнив это в редакторе миссий -> hint format ["%1", (driver player)];
		driver (_td select 1)
	],
	
	// в целях оптимизации производительности сети рекомендуется передавать скомпилированный код, то есть -> compile "ваш код"
	compile "_cm = _this select 0; unassigncurator _cm; _this select 1 assigncurator _cm;"
];

publicVariableServer "ini_s";

Сообщение отредактировал SteelRat: 14 June 2016 - 17:46

  • 0

#10 OFFLINE   Ilias

Ilias

    Прапорщик

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

Отправлено 14 June 2016 - 19:12

 vlad333000
  • 0

#11 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 14 June 2016 - 19:43

Ilias, 1) Вы удивитесь но символ | входит в синтаксис языка и более того два подряд таких символа это целый оператор!!
2) Ну так а execVM откуда вызывается (Если вы не поняли то я сейчас пытаюсь отсчечь ситуацию когда код для переменной просто не будет определен на сервере к моменту вызова
3) В этом-то и беда что публичные переменные не вызывают код на той же машине где и были опубликованы, да и отправка сервером данных на сервер может непонятно как происходитть :) (remoteExec решает эту проблему хорошо)

Сообщение отредактировал vlad333000: 14 June 2016 - 19:43

  • 0

#12 OFFLINE   Ilias

Ilias

    Прапорщик

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

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

Ilias, 1) Вы удивитесь но символ | входит в синтаксис языка и более того два подряд таких символа это целый оператор!!
2) Ну так а execVM откуда вызывается (Если вы не поняли то я сейчас пытаюсь отсчечь ситуацию когда код для переменной просто не будет определен на сервере к моменту вызова
3) В этом-то и беда что публичные переменные не вызывают код на той же машине где и были опубликованы, да и отправка сервером данных на сервер может непонятно как происходитть :) (remoteExec решает эту проблему хорошо)

) , условия написания очевидно не те )

гарантированно будет

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


Сообщение отредактировал Ilias: 14 June 2016 - 20:46

  • 0

#13 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 15 June 2016 - 17:13

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

 

Когда вы хостите сервер, то есть создаёте НЕ выделенный сервер, такой сервер представляет из себя и сервер и клиент в одном флаконе, такой клиент исполняет всё что для клиента, и всё что для сервера.

 

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

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


Сообщение отредактировал SteelRat: 15 June 2016 - 17:14

  • 0

#14 OFFLINE   Ilias

Ilias

    Прапорщик

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

Отправлено 15 June 2016 - 22:14

и ещё вопрос:как использовать bis_fnc_loadinventory имея array от bis_fnc_saveinventory ?


Сообщение отредактировал Ilias: 15 June 2016 - 22:14

  • 0

#15 OFFLINE   Ilias

Ilias

    Прапорщик

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

Отправлено 16 June 2016 - 16:41

 

кстати remoteexec работает, ещё не пробовал с клиентом, но уверен что будет, спасибо


  • 0

#16 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 16 June 2016 - 16:42

Ilias, remoteExec очень хорошая вещь еще ниразу меня не подводила
  • 0

#17 OFFLINE   Ilias

Ilias

    Прапорщик

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

Отправлено 16 June 2016 - 18:11

Ilias, remoteExec очень хорошая вещь еще ниразу меня не подводила

)

помогите пожалуйста, не могу понять как в bis_fnc_loadinventory вставить array из bis_fnc_saveinventory

(сохраняю в переменную, потом copytoclipboard или profilenamespace setv.. , и после нужно как нибудь в bis_fnc_loadinventory)


Сообщение отредактировал Ilias: 16 June 2016 - 18:13

  • 0

#18 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 16 June 2016 - 18:37

Ilias, коментарии в начале функции читать не хотим?

Сообщение отредактировал vlad333000: 16 June 2016 - 18:38

  • 0

#19 OFFLINE   Ilias

Ilias

    Прапорщик

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

Отправлено 16 June 2016 - 19:52

Ilias, коментарии в начале функции читать не хотим?

нашёл её в functions viewer , нормально выглядит так: "

ARRAY in format [NAMESPACE or GROUP or OBJECT,STRING] - inventory saved using BIS_fnc_saveInventory

" (если есть доступ к редактированию wiki пожалуйста исправьте это "

"),

какие именно?,

я понимаю как загружать через some namespace, можно ли обойтись без? (..saveinventory возвращает array, у меня для загрузки ~300 units, не хочется в алгоритм добавлять

missionnamespace setvariable["l",_x select 1,false];
[_x select 0,[missionnamespace,"l"]call bis_fnc_loadinventory;

)

и есть ли подобное для cargo inventory?


Сообщение отредактировал Ilias: 16 June 2016 - 23:09

  • 0

#20 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 17 June 2016 - 01:44

Ilias, вы не заметили сходства параметров функции сохранения и загрузки? Может нужно просто повторить их (Фактические параметры) или это сложно? :)
Вам даже не нужны те данные, которые функция сохраняет, т к она автоматически сохраняет снаряжение в то место, которое вы указали во втором параметре
  • 0




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