ka3ant1p

упрощение системы switch-case

Вопрос

В общем суть вот в чем, есть заранее прописаные позиции _position_1 , _position_2, ..., _position_10
И есть считалка _pos_count которая считает от 1 до 10, получается для вывода позиции я использую:
switch (_pos_count) do {

case 1: {_obj setPos _position_1;};

case 2: {_obj setPos _position_2;};

case ...: {_obj setPos _position_...;};

case 10: {_obj setPos _position_10;};

};

 

В общем структура не самая удобная, видел где то среди скриптов но не могу найти что вроде такого: _obj setPos _position_ +str(_pos_count); То есть выбирается локальная переменная с добавлением так сказать индекса, вот как это правильно пишется никак не могу найти

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


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

1 ответ на этот вопрос

 

в server_playerSetup.sqf есть,  к примеру

 

_mkr = "spawn" + str(_spawnSelection);

 

только str это  привидение содержания к тексту так что название переменной получить ядумаю не получится. там же есть getMarkerPos _mkr, думаю поможет больше.

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


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


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

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

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

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


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

Войти

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


Войти сейчас

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

    • Автор: Gromillla
      Проблема такова:
       
      1) открыл сейф - поменял пароль (не отходя) - закрыл сейф - в БД деньги превращаются в 0;
       
      2) открыл сейф - поменял пароль (не отходя) - закрыл сейф - открыл сейф - взял/положил любую сумму - закрыл сейф - в БД деньги превращаются в 0 - открыл сейф - деньги появились - закрыл сейф - в БД деньги превращаются в 0 (после рестарта деньги полностью обнуляются);

      1) открыл сейф - поменял пароль - отбежал/отошёл на пару метров и вернулся - закрыл сейф - деньги в БД все на месте;
       
      Если отбегать после смены пароля, то деньги все сохраняются.
       
      Вот код ckc_updSafe.sqf :
       
      DZE_ActionInProgress = true; _object = cursorTarget; _weapon = getWeaponCargo _object; _magazine = getMagazineCargo _object ; _backpack = getBackpackCargo _object; _objMoney = _object getVariable["bankMoney",0]; _newCombo = dayz_combination; _object setVariable ["CharacterID",_newCombo,true]; _actual = _object getVariable ["CharacterID", "0"]; cutText [format["Ваш новый код: %1", _actual], "PLAIN DOWN"]; _location = _object getVariable["OEMPos",(getposATL _object)]; _vector = [(vectorDir _object), (vectorUp _object)]; _classname = "VaultStorageLocked"; _location = _object getVariable["OEMPos",(getposATL _object)]; _dir = getDir _object; // Create new object _newobject = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"]; // Set direction _newobject setDir _dir; _newobject setVectorDirAndUp _vector; // Set location _newobject setPosATL _location; _newobject setVariable ["WeaponCargo", _weapon ,true]; _newobject setVariable ["MagazineCargo", _magazine ,true]; _newobject setVariable ["BackpackCargo", _backpack,true]; _newobject setVariable ["bankMoney", _objMoney, true]; _newobject setVariable["packing",0]; player reveal _newobject; PVDZE_obj_Swap = [_actual,_newobject,[_dir,_location],_classname,_object,player]; publicVariableServer "PVDZE_obj_Swap"; sleep 1; _newobject spawn player_unlockVault; DZE_ActionInProgress = false;
    • Автор: DrTauren
      Ну из названия всё ясно думаю.  


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


      Информация:
      Медицинские миссии обозначаются чёрным кругом и жёлтой точкой в центре. Спавнится медицинский лут и иногда машины. Тяжёлые миссии обозначаются чёрным кругом и оранжевой точкой в центре. Спавнится много хорошего лута и машины.
      Миссии класса "эксперт" обозначаются белым кругом и красной точкой в центре. Спавнится отличный лут и сильные боты.
      Миссия The Bunny Ranch обозначается белым кругом и розовой точкой в центре. Миссия, как говорит автор, для фана. Спавнится несколько ботов и ещё несколько безоружных. Лут - брифкейсы, золото, рубины.

      Что нам понадобится:
      Архив
      Скачать подходящую версию WAI можно тут
       
      Подробнее об изменениях при новой версии WAI тут
      Инструкция:
      1) Открываем вашу папку с WAI, затем файл AIconfig.sqf и находим эти строки:
      /// 4 /// ai_gear4 = [ ["ItemBandage","ItemBandage","ItemPainkiller"], ["ItemKnife","ItemRadio","ItemFlashlight"] ]; и ниже добавляем это:
      /// 5 /// ai_gear5 = [ ["ItemBandage","ItemBandage","ItemPainkiller"], ["ItemKnife","ItemRadio","ItemFlashlight"] ]; /// 6 /// ai_gear6 = []; and below this /// 4 /// ai_wep4 = [ ["RPK_74","75Rnd_545x39_RPK"],  ["MK_48_DZ","100Rnd_762x51_M240"],  ["M249_DZ","200Rnd_556x45_M249"],  ["Pecheneg_DZ","100Rnd_762x54_PK"],  ["M240_DZ","100Rnd_762x51_M240"] ]; add this /// 5 /// ai_wep5 = [ ["AKS_GOLD","30Rnd_762x39_AK47"] ]; /// 6 /// ai_wep6 = []; 2) Открываем файл WAI\missions\missionini.sqf и ниже этой строки:
      Small_Gun_Box = compile preprocessFileLineNumbers "\z\addons\dayz_server\WAI\missions\compile\SmallGunBox.sqf"; добавляем эту:
      Bunny_Safe = compile preprocessFileLineNumbers "\z\addons\dayz_server\WAI\missions\compile\Bunny_Safe.sqf"; 3) Открываем файл WAI\missions\missionCfg.sqf и в список миссий добавляем нашу:
      "Bunny_Ranch" 4) Открываем файл SpawnGroup.sqf, ищем этот код:
      case 4 : {_aiweapon = ai_wep4;}; И ниже добавляем:
      case 5 : {_aiweapon = ai_wep5;}; ищем этот:
      case 4 : {_aigear = ai_gear4;}; и добавляем этот ниже:
      case 5 : {_aigear = ai_gear5;}; 5) Файлы markers2.sqf и Bunny_Safe.sqf из архива копируем суда: WAI\missions\compile
      А файл Bunny_Ranch.sqf суда: WAI\missions\missions