Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
NickPS

DZMS проблема добавления драгоценных камней в ящики.

Доброго времени суток. Я пытаюсь добавить в ящики с лутом в миссиях DZMS 100% драгоценные камни в качестве "денежной" награды.

 

Возникли некоторые вопросы:
 
1) Правильно ли я делаю? И если нет, то как нужно сделать?
2) Как задавать координаты и что они значат? 
3) Может следует создать новый ящик? И если да, то как задать координаты рядом с текущим ящиком.
 
Пытался сделать указанным ниже способом, по образу и подобию, но камни так и не появляются.
Алгоритм в моей сборке уже был следующий. 
 
Шаг первый.
В файле миссии SM5.sqf создается ящик:
 
_crate = createVehicle ["RULaunchersBox",[(_coords select 0) - 14, _coords select 1,0],[], 0, "CAN_COLLIDE"];
[_crate,"weapons","money"] ExecVM DZMSBoxSetup;

Шаг второй.

Для этого идет обращение к файлу DZMSFunctions.sqf, в котором:

DZMSBoxSetup = "\z\addons\dayz_server\DZMS\Scripts\DZMSBox.sqf";

Шаг третий.

Из файла DZMSBox.sqf берется массив предметов:

 

//И тут тоже вопрос, что добавляется в массив private? Массивы, которые будут спавнится в ящиках?

private ["_crate","_type","_bpackList","_gshellList","_medical","_money","_moneyLarge","_scount","_sSelect","_item","_x","_ammo"];
_crate	=	_this select 0;
_type	=	_this select 1;
clearWeaponCargoGlobal _crate;
clearMagazineCargoGlobal _crate;

_money		    =	["ItemEmerald","ItemSapphire","ItemAmethyst"];
_moneyLarge	    =	["ItemSapphire","ItemAmethyst","ItemObsidian"];

if (_type == "money") then
	{
	  _scount	=	count _money;
	  for "_x" from 3 to 3 do
	      {
		_sSelect	=	floor(random _sCount);
		_item		=	_money select _sSelect;
		_crate addMagazineCargoGlobal [_item,1];
	      };
	};

if (_type == "moneyLarge") then
	{
	  _scount	=	count _money;
	  for "_x" from 3 to 3 do
	      {
		_sSelect	=	floor(random _sCount);
		_item		=	_money select _sSelect;
		_crate addMagazineCargoGlobal [_item,1];
	      };
	};

Спасибо заранее, за ваше внимание. =)

Изменено пользователем NickPS (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

Идешь в dayz_server\DZMS\Scripts\, открываешь файл "DZMSBox.sqf", вставляешь туда где-нить вверху:

_moneyLarge = ["ItemEmerald","ItemRuby","ItemSapphire","ItemTopaz","ItemAmethyst","ItemCitrine","ItemObsidian"];

Ну, или, отредактируешь под себя.

Внизу этого файла находишь

///////////////////////////////////////////////////////////////////
// Epoch Money Crates
if (_type == "money") then {
	// load money
	_scount = count _money;
	for "_x" from 0 to 3 do {
		_sSelect = floor(random _sCount);
		_item = _money select _sSelect;
		_crate addMagazineCargoGlobal [_item,1];
	};
};

И ниже добавляешь:

if (_type == "moneyLarge") then {
	_sSelect = 0;
	{
		_item = _moneyLarge select _sSelect;
		_crate addMagazineCargoGlobal [_item,1];
		_sSelect = _sSelect + 1;
	} forEach _moneyLarge;
};

Сохраняешь, закрываешь.

Теперь в скриптах нужных тебе миссий ищешь где в ящики добавляется лут, что-то типа:

[_crate,"weapons"] ExecVM DZMSBoxSetup;

И прям под ним дописываешь:

[_crate,"moneyLarge"] ExecVM DZMSBoxSetup;

Всё.

Сохраняешь, перепаковываешь dayz_server.pbo, запускаешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





  • 0

Нашел небольшую ошибку.

Здесь:

if (_type == "moneyLarge") then
	{
	  _scount	=	count _money;

Должно быть:

if (_type == "moneyLarge") then
	{
	  _scount	=	count _moneyLarge;

Но не это главное. Я понял :good: , что ТАК не работает:

_crate = createVehicle ["RULaunchersBox",[(_coords select 0) - 14, _coords select 1,0],[], 0, "CAN_COLLIDE"];
[_crate,"weapons","money"] ExecVM DZMSBoxSetup;

Нужно для "weapons" и "money" создавать разные ящики.

Следовательно должно быть так:

_crate = createVehicle ["RULaunchersBox",[(_coords select 0) - 14, _coords select 1,0],[], 0, "CAN_COLLIDE"];
[_crate,"weapons"] ExecVM DZMSBoxSetup;
[_crate] call DZMSProtectObj;

_crate2 = createVehicle ["USBasicAmmunitionBox",[(_coords select 0) - 12, _coords select 1,0],[], 0, "CAN_COLLIDE"];
[_crate2,"weapons"] ExecVM DZMSBoxSetup;
[_crate2] call DZMSProtectObj;

//Где "RULaunchersBox" и "USBasicAmmunitionBox" - это типы ящиков.
//Так же, копируя, не забываем править с "_crate" на "_crate2".
//То же и с координатами. Например было "- 14", стало "- 12".

Но почему-то из массива:

_money		    =	["ItemEmerald","ItemSapphire","ItemAmethyst"];

Система берет только "ItemEmerald".

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

if (_type == "money") then
	{
	  _scount	=	count _money;
	  for "_x" from 3 to 3 do
	      {
		_sSelect	=	floor(random _sCount);
		_item		=	_money select _sSelect;
		_crate addMagazineCargoGlobal [_item,1];
	      };
	};

Дальше эксперимент встал. Не знаю что делать.  :crying:

  1.  
Изменено пользователем NickPS (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

у тебя какая версия DZMS?

Просто у меня в версии 1.1FIN нет "moneyLarge", да и вместо камней там массив из железок:

_money = ["ItemSilverBar","ItemSilverBar10oz","ItemGoldBar","ItemGoldBar10oz"];

Да и вообще не понимаю, зачем такие сложности.

_money = ["ItemEmerald","ItemRuby","ItemSapphire","ItemTopaz","ItemAmethyst","ItemCitrine","ItemObsidian"];

...

if (_type == "money") then {
   _scount = count _money;
   _sSelect = floor(random _sCount);
   _item  = _money select _sSelect;
   _crate addMagazineCargoGlobal [_item,1];
};

 

Изменено пользователем W0LF (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

 

у тебя какая версия DZMS?

Просто у меня в версии 1.1FIN нет "moneyLarge", да и вместо камней там массив из железок:

Да и вообще не понимаю, зачем такие сложности.

_money = ["ItemEmerald","ItemRuby","ItemSapphire","ItemTopaz","ItemAmethyst","ItemCitrine","ItemObsidian"];

...

if (_type == "money") then {
   _scount = count _money;
   _sSelect = floor(random _sCount);
   _item  = _money select _sSelect;
   _crate addMagazineCargoGlobal [_item,1];
};

Я железки убрал оттуда, т.к. у меня система единой валюты. Подобные металлы выпадают иногда у ботов в качесте награды за убийство и стоят недорого. А в массивах money и moneyLarge лежат драгоценные камни (обычная и большая награды соответственно), которые игрок получит в миссии в качестве вознаграждения. Их поедет и продаст за валюту в любом торговом городе. Что он везет деньги, что драгоценные камни. Но так поинтереснее, так же есть некоторые тонкости игрового процесса завязанного на камнях.

П.С.: moneyLarge я добавлял сам.

П.С.: Т.е. в твоем варианте награда всегда будет фиксированая, правильно?

Изменено пользователем NickPS (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Да, всегда добавляется 1 случайный камень.

В твоем случае придется в КАЖДОМ файле миссии создавать отдельные ящики для "_money" и отдельно для "_moneyLarge".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Да, всегда добавляется 1 случайный камень.

 

А как тогда сделать, что бы весь массив появлялся. Замучался уже что-то добавлять или убирать, потом запускать сервер, присоединятся. Ждать миссию, и если она не работает, то все по новой. Как должен выглядить код, чтобы спавн был не одного рандомного камня, а всех вещей указанных в массиве. ЛИБО -money ЛИБО _moneyLarge. 

 

 

 

В твоем случае придется в КАЖДОМ файле миссии создавать отдельные ящики для "_money" и отдельно для "_moneyLarge".

 
Поэтому я и добавил массив _moneyLarge (большие деньги, большая награда) для сложных миссий. И конечно в ящике будет уже не _money, а  _moneyLarge. И два ящика для каждого массива мне не нужно. Но речь не об этом сейчас.
Изменено пользователем NickPS (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Так, давай ещё раз.

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

Эти камни должны быть в общем ящике с миссии, или в отдельном?

В этом ящике должны быть только камни или там может быть ещё и оружие/патроны/дальномеры и т.д.?

Камень в этом ящике должен быть только один или все, перечисленные в массиве?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Так, давай ещё раз.

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

Эти камни должны быть в общем ящике с миссии, или в отдельном?

В этом ящике должны быть только камни или там может быть ещё и оружие/патроны/дальномеры и т.д.?

Камень в этом ящике должен быть только один или все, перечисленные в массиве?

1) В легкой миссии спавнится отдельный ящик я массивом _money. (это я уже умею=)

2) В сложной миссии спавнится отдельный ящик я массивом _moneyLarge. (это я уже умею=)

3) Из массива _money спавнится ВЕСЬ список указанных там вещей.

4) Из массива _moneyLarge спавнится ВЕСЬ список указанных там вещей.

5) Если не сложно, то хотелось бы узнать как указать рандомное количество вещей из массива.

Спасибо большое, Wolf, что помогаешь.  :good:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Опять не понял:

 

5) Если не сложно, то хотелось бы узнать как указать рандомное количество вещей из массива.

Что ты имеешь ввиду?

Я правильно понимаю, что если в массиве 10 итемов, то тебе надо отспавнить рандомно от 1 до 10 итемов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Опять не понял:

 

5) Если не сложно, то хотелось бы узнать как указать рандомное количество вещей из массива.

Что ты имеешь ввиду?

Я правильно понимаю, что если в массиве 10 итемов, то тебе надо отспавнить рандомно от 1 до 10 итемов?

Забей на пятый пункт. Забудь просто про него, я его для общего развития добавил. Нужно выполнить 1, 2, 3, 4 пункты. Я не знаю как.

 

Нужен код, который будет спавнить ВСЕ итемы из массива со 100% вероятностью.

Изменено пользователем NickPS (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: fedotovyasha
      не подключается к серверу и пишет что на сервере нету такого мода, хотя он там есть. Названия менял, другие моды все отключил, ничего не помогает. В батниках все прописано
    • Автор: JustBullet
      Всем привет! :) Как я рад всех видеть снова, дошли руки до ковыряния станделона (если уже его можно так назвать).
       
      Что пытаюсь сделать:
      1. Создать Рюкзак.
      2. Создать Радио.
          - Положить Батарейку в Радио.
      3. Положить Радио(с Батареей) в Персональный слот Рюкзака.
      4. Дополнительно поместить Радио в слот быстрого доступа (на панель).
       
      EntityAI itemEnt_Bag = player.GetInventory().CreateInInventory("FurCourierBag"); // Создаем РЮКЗАК. EntityAI itemEnt_Radio = player.GetInventory().CreateInInventory("PersonalRadio"); // Создаем РАДИО. itemEnt_Radio.GetInventory().CreateAttachment("Battery9V"); // Помещаем в Радио Батарейку. itemEnt_Bag.GetInventory().CreateAttachment(itemEnt_Radio); // Помещаем в РЮКЗАК РАДИО. player.SetQuickBarEntityShortcut(itemEnt_Radio, 0, true); // Помещаем РАДИО на первый слот. тут возникает проблема, в четвертой строке, поскольку я помещаю Элемент Радио+Батарея в Рюкзак, а команда ожидает Строковый параметр (String). Проблема больше в незнании мной синтаксиса. Возможно и в логике построения. Вообщем прошу помощи разобраться с этой строчкой :)))
       
      п.с. так разумеется срабатывает но без батарейки:
      itemEnt_Bag.GetInventory().CreateAttachment("PersonalRadio"); // Помещаем в РЮКЗАК РАДИО. Каким параметром/командой я могу загнать Радио с батареей в персональный слот Рюкзака?
    • Автор: Gromillla
      Доброго времени суток дамы и господа, и сразу к вопросу, в миссиях 2.2.5 версии, если боты "бандиты", то они скин игрока видят и реагируют на него, а если миссии с ботами "героями", то они скин игрока не видят. Скин  "RUS_Soldier_Marksman". Как соответственно решить эту проблему? Ошибок в РПТ нет.
    • Автор: petpoleoo
      Ребят ваша помощь нужна,суть проблема такая,мент кидает гражданского в тюрьму а вместо той тюрьмы где он должен быть игрок в поле скачет в редакторе была в этом месте только одна метка sky drive но ее перенести пробывали 0 эмоций,кто сталкивался может какую мысль подкините идею как решить;)
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • Автор: SPIRT
      В общем после недавнего обновления BattleEye стало выкидывать из игры с ошибкой BattleEye типа вам нужно перезагрузить игру. Хочу поделиться тем что помогло мне . Сразу говорю винда у меня пиратская .Итак начнем .
      1.Отключаемся от интернета.
      2.Вырубаем антивирус полностью.
      3.Заходим в Панель управления -- Администрирование -- Службы -- ищем Защита программного обеспечения --- останавливаем ее.
      4.Дальше идем по адресу диск С Windows -- System32  там надо найти два файла C7483456-A289-439d-8115-601632D005A0  перед этими цифрами могут стоять еще цифры но это не важно , удаляем их.
      5. Обратно запускаем Защита программного обеспечения. В правом нижнем углу появится надпись  что ваша Windows не является лицензионной.
      6. Перезагружаем комп - и активируем нашу винду, я активировал программой Windows 7 Loader . 
       
      У меня процесс сошел с мертвой точки со второй активации  , но согласитесь это лучше чем переустанавливать Windows 7 или переходить с любимой системы на 10 винду . Кому поможет ставим +  врепу. 
       
      PS в параметрах папок и поиска не забываем выставить  показывать скрытые файлы и папки !
       
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.