Здравствуйте! Предлагаю вашему вниманию скрипт ролевой системы распределения оружия. Скрипт специально для серверных миссий. Суть: у каждого игрока на карте создается локальный ящик с тем вооружением, которое должно быть у бойца его профессии, т.е. у снайпера будет только снайперское оружие, а у спецназовца только специальное оружие и т.д. На данный момент сделано четыре класса: танкист, боец, спецназовец, снайпер. В дальнейшем можно легко редактировать и создавать бесконечное количество вариаций классов: пулеметчики, разведчики, саперы и т.п.
Достоинства этой системы:
Минимальная нагрузка на сервер
Простота редактирования
Система не требует от игрока каких-либо действий
Весь скрипт лежит в init.sqf с подробными пояснениями.
За основу взят скрипт Slon'а из war3front.
Выбираем из четырех юнитов игрока
Запустить миссию
Вуаля!
//--- Настройки классов оружия (Переменная WepnBox) WepnBox = [ ["AKS_74_U","Makarov"], /* Номер 0; Оружие танкистов/пилотов, т.е. Wepn = 0 */ ["AK_74","AKS_74","AKS_74_pso","AK_47_M","FN_FAL"], /* Номер 1; Оружие солдата, т.е. Wepn = 1 */ ["AKS_74_GOSHAWK","M16A2","Binocular_Vector","SCAR_L_CQC"], /* Номер 2; Оружие спецов, т.е. Wepn = 2 */ ["SVD","M24_des_EP1"] /* Номер 3; Оружие снайпера, т.е. Wepn = 3 */ ];
//--- Настройки боеприпасов к оружию (Переменная WepnMagBox) WepnMagBox = [ ["30Rnd_545x39_AK","8Rnd_9x18_Makarov"], /* Номер 0 */ ["30Rnd_545x39_AK","HandGrenade_East","30Rnd_762x39_AK47","20Rnd_762x51_FNFAL"], /* Номер 1 */ ["30Rnd_545x39_AK","HandGrenade_East","30Rnd_556x45_Stanag"], /* Номер 2 */ ["10Rnd_762x54_SVD","5Rnd_762x51_M24"] /* Номер 3 */ ];
//--- Настройки гранатометов (Переменная RPGBox) RPGBox = [ [], /* У танкистов и снайперов нет гранатометов (RPG = 0) */ ["RPG18","RPG7V"], /* Гранатометы солдата, т.е. RPG = 1 */ ["MetisLauncher"] /* Гранатометы спецов, т.е. RPG = 2 */ ];
clearWeaponCargo Play_Box; //--- Очищаем ящик от боеприпасов clearMagazineCargo Play_Box;
if (player == crewman) then {Wepn = 0;RPG = 0;}; //--- Танкист получает всё оружие под номером 0 из переменной WepnBox if (player == soldier) then {Wepn = 1;RPG = 1;}; //--- Солдат получает всё оружие под номером 1 из переменной WepnBox и все гранатометы под номером 1 из переменной RPGBox if (player == spetsnaz) then {Wepn = 2;RPG = 2;}; //--- Cпец получает всё оружие под номером 2 из переменной WepnBox и все гранатометы под номером 2 из переменной RPGBox if (player == sniper) then {Wepn = 3;RPG = 0;}; //--- Снайпер получает всё оружие под номером 3 из переменной WepnBox и все гранатометы под номером 3 из переменной RPGBox