exploadead

Проверенные
  • Публикации

    153
  • Зарегистрирован

  • Посещение

О exploadead

  • Звание
    Завсегдатай
  • День рождения

Информация

  • Пол
    Мужчина
  1. У меня вот так, и всё работает (кроме этих боксов): class civ_air { side = "civ"; vehicles[] = { { "B_Heli_Light_01_F", 253000, { "pilot" }, { "", "", -1 } }, { "O_Heli_Light_02_unarmed_F", 750000, { "pilot" }, { "", "", -1 } }, ... Если ставить просто { "B_Heli_Light_01_F", 253000, { "" }, { "", "", -1 } }, то для покупки не нужна будет лицензия и всё. А вот для копов: class cop_air { side = "cop"; vehicles[] = { { "B_Heli_Light_01_F", 75000, { "cAir" }, { "", "", -1 } }, { "B_Heli_Transport_01_F", 200000, { "cAir" }, { "life_coplevel", "SCALAR", 2 } }, ... Как тут видно, можно указывать уровень, а можно только лицензию, ну а можно даже без неё. Всё это работает отлично. Возможно проблема связана с тем, что я создал отдельный класс для боксов: class ag_civ_box { side = "civ"; vehicles[] = { { "Land_Pod_Heli_Transport_04_bench_F", 145000, { "pilot" }, { "", "", -1 } }, { "Land_Pod_Heli_Transport_04_box_F", 175000, { "pilot" }, { "", "", -1 } }, Емкость для них прописана: class Land_Pod_Heli_Transport_04_bench_F { vItemSpace = 600; storageFee[] = { 20000, 0, 0, 0 }; garageSell[] = { 100000, 0, 0, 0 }; insurance = 2500; chopShop = 80000; textures[] = {}; }; И как я уже говорил они успешно покупаются у торговцев и там отображается их емкость... НО по факту в них ничего не кладётся... и в гараж обратно они не убираются.
  2. Могу продать... меня все равно уже забанили)))
  3. Собственно оттуда я и скопировал эти строки. Контейнеры там прописаны и ёмкость для них прописана. В игре их можно покупать и при покупке показывается ёмкость. Проблема в том, что положить в них ничего нельзя... и в гараж их обратно поставить нельзя.
  4. Неужели никто не знает как их добавить на лайф? { "Land_Pod_Heli_Transport_04_bench_F", 145000, { "pilot" }, { "", "", -1 } }, { "Land_Pod_Heli_Transport_04_box_F", 175000, { "pilot" }, { "", "", -1 } }, { "Land_Pod_Heli_Transport_04_covered_F", 175000 , { "pilot" }, { "", "", -1 } }, { "Land_Pod_Heli_Transport_04_fuel_F", 195000, { "pilot" }, { "", "", -1 } }, { "Land_Pod_Heli_Transport_04_medevac_F", 225000, { "pilot" }, { "", "", -1 } }, { "Land_Pod_Heli_Transport_04_repair_F", 255000, { "pilot" }, { "", "", -1 } }, { "Land_Pod_Heli_Transport_04_ammo_F", 285000, { "pilot" }, { "", "", -1 } }, {"B_Slingload_01_Cargo_F",450000, { "pilot" }, { "", "", -1 } }, {"B_Slingload_01_Fuel_F",455000, { "pilot" }, { "", "", -1 } }, {"B_Slingload_01_Medevac_F",470000, { "pilot" }, { "", "", -1 } }, {"B_Slingload_01_Repair_F",490000, { "pilot" }, { "", "", -1 } }, {"B_Slingload_01_Ammo_F",530000, { "pilot" }, { "", "", -1 } }
  5. Проблема решена: Теперь во всех сторонних системах миссий (или своих скриптах и тд.) необходимо при создании техники дописывать ей токен: _vehicle = createVehicle [........и тд. //создание техники _vehicle call EPOCH_server_setVToken; //токен
  6. Подскажите плиз или укажите, где найти как добавить грузовые модули и контейнеры в Life, чтобы можно было хранить в них виртуальные предметы и помещать в гараж. Спасибо!
  7. А3 1.62 Эпоч 0390. Техника НЕ из спавна на карте или НЕ купленная у торговцев, то есть поставленная скриптом или миссией, пропадает при приближении игрока к ней. Например можно на 800м видеть что она стоит.... но стоит приблизиться примерно метров на 300 - как она исчезнет... если внутри боты - они останутся стоять на земле... Раньше в epochconfig.hpp был параметр simulationHandler который можно было выставить в false и эта проблема исчезала. А теперь там параметр simulationHandlerOld и не важно false или true.... всё равно проблема есть.
  8. Максимальная дальность прорисовки травы настраивается на сервере... и уж точно не может быть больше 1км... Чаще всего это около 100м... клиенты могут настраивать свою прорисовку в пределах значений заданных сервером. Глюк же о котором тут речь проявляется при расстояниях 1-2-3км... трава тут совсем не причем.
  9. Мда.. форум умирает походу...
  10. Неужели никто помочь не может? Вознаграждение материальное гарантирую!
  11. Так на Win собирается только руками. Ресурсы которые требуют кирку не собираются на Win. Можно было бы сделать и на Win но как?))
  12. Собственно вот эти файлы на текущей версии 4.4 : #include "..\..\script_macros.hpp" /* * File: fn_keyHandler.sqf * Author: Bryan "Tonic" Boardwine * * Description: * Main key handler for event 'keyDown' */ private ["_handled","_shift","_alt","_code","_ctrl","_alt","_ctrlKey","_veh","_locked","_interactionKey","_mapKey","_interruptionKeys"]; _ctrl = SEL(_this,0); _code = SEL(_this,1); _shift = SEL(_this,2); _ctrlKey = SEL(_this,3); _alt = SEL(_this,4); _speed = speed cursorTarget; _handled = false; _interactionKey = if((EQUAL(count (actionKeys "User10"),0))) then {219} else {(actionKeys "User10") select 0}; _mapKey = SEL(actionKeys "ShowMap",0); //hint str _code; _interruptionKeys = [17,30,31,32]; //A,S,W,D //Vault handling... if((_code in (actionKeys "GetOver") || _code in (actionKeys "salute") || _code in (actionKeys "SitDown") || _code in (actionKeys "Throw") || _code in (actionKeys "GetIn") || _code in (actionKeys "GetOut") || _code in (actionKeys "Fire") || _code in (actionKeys "ReloadMagazine") || _code in [16,18]) && ((player GVAR ["restrained",false]) || (player GVAR ["playerSurrender",false]) || life_isknocked || life_istazed)) exitWith { true; }; if(life_action_inUse) exitWith { if(!life_interrupted && _code in _interruptionKeys) then {life_interrupted = true;}; _handled; }; //Hotfix for Interaction key not being able to be bound on some operation systems. if(!(EQUAL(count (actionKeys "User10"),0)) && {(inputAction "User10" > 0)}) exitWith { //Interaction key (default is Left Windows, can be mapped via Controls -> Custom -> User Action 10) if(!life_action_inUse) then { [] spawn { private "_handle"; _handle = [] spawn life_fnc_actionKeyHandler; waitUntil {scriptDone _handle}; life_action_inUse = false; }; }; true; }; if (life_container_active) then { switch (_code) do { //space key case 57: { [life_container_activeObj] spawn life_fnc_placedefinestorage; }; }; true; }; switch (_code) do { //Space key for Jumping case 57: { if(isNil "jumpActionTime") then {jumpActionTime = 0;}; if(_shift && {!(EQUAL(animationState player,"AovrPercMrunSrasWrflDf"))} && {isTouchingGround player} && {EQUAL(stance player,"STAND")} && {speed player > 2} && {!life_is_arrested} && {SEL((velocity player),2) < 2.5} && {time - jumpActionTime > 1.5}) then { jumpActionTime = time; //Update the time. [player,true] spawn life_fnc_jumpFnc; //Local execution [player,false] remoteExec ["life_fnc_jumpFnc",RANY]; //Global execution _handled = true; }; }; //Surrender (Shift + B) case 48: { if(_shift) then { if(player GVAR ["playerSurrender",false]) then { player SVAR ["playerSurrender",false,true]; } else { [] spawn life_fnc_surrender; }; _handled = true; }; }; //Map Key case _mapKey: { switch (playerSide) do { case west: {if(!visibleMap) then {[] spawn life_fnc_copMarkers;}}; case independent: {if(!visibleMap) then {[] spawn life_fnc_medicMarkers;}}; case civilian: {if(!visibleMap) then {[] spawn life_fnc_civMarkers;}}; }; }; //Holster / recall weapon. (Shift + H) case 35: { if(_shift && !_ctrlKey && !(EQUAL(currentWeapon player,""))) then { life_curWep_h = currentWeapon player; player action ["SwitchWeapon", player, player, 100]; player switchCamera cameraView; }; if(!_shift && _ctrlKey && !isNil "life_curWep_h" && {!(EQUAL(life_curWep_h,""))}) then { if(life_curWep_h in [RIFLE,LAUNCHER,PISTOL]) then { player selectWeapon life_curWep_h; }; }; }; //Interaction key (default is Left Windows, can be mapped via Controls -> Custom -> User Action 10) case _interactionKey: { if(!life_action_inUse) then { [] spawn { private "_handle"; _handle = [] spawn life_fnc_actionKeyHandler; waitUntil {scriptDone _handle}; life_action_inUse = false; }; }; }; //Restraining (Shift + R) case 19: { if(_shift) then {_handled = true;}; if(_shift && playerSide == west && {!isNull cursorTarget} && {cursorTarget isKindOf "Man"} && {(isPlayer cursorTarget)} && {(side cursorTarget in [civilian,independent])} && {alive cursorTarget} && {cursorTarget distance player < 3.5} && {!(cursorTarget GVAR "Escorting")} && {!(cursorTarget GVAR "restrained")} && {speed cursorTarget < 1}) then { [] call life_fnc_restrainAction; }; }; //Knock out, this is experimental and yeah... (Shift + G) case 34: { if(_shift) then {_handled = true;}; if(_shift && playerSide == civilian && !isNull cursorTarget && cursorTarget isKindOf "Man" && isPlayer cursorTarget && alive cursorTarget && cursorTarget distance player < 4 && speed cursorTarget < 1) then { if((animationState cursorTarget) != "Incapacitated" && (currentWeapon player == primaryWeapon player OR currentWeapon player == handgunWeapon player) && currentWeapon player != "" && !life_knockout && !(player GVAR ["restrained",false]) && !life_istazed && !life_isknocked) then { [cursorTarget] spawn life_fnc_knockoutAction; }; }; }; //T Key (Trunk) case 20: { if(!_alt && !_ctrlKey && !dialog && {!life_action_inUse}) then { if(vehicle player != player && alive vehicle player) then { if((vehicle player) in life_vehicles) then { [vehicle player] call life_fnc_openInventory; }; } else { private "_list"; _containers = [getPosATL player, ["Box_IND_Grenades_F","B_supplyCrate_F"], 2.5] call life_fnc_nearestObjects; if (count _containers > 0) then { _container = _containers select 0; [_container] call life_fnc_openInventory; } else { _list = ["landVehicle","Air","Ship"]; if(KINDOF_ARRAY(cursorTarget,_list) && {player distance cursorTarget < 7} && {vehicle player == player} && {alive cursorTarget} && {!life_action_inUse}) then { if(cursorTarget in life_vehicles) then { [cursorTarget] call life_fnc_openInventory; }; }; }; }; }; }; //L Key? case 38: { //If cop run checks for turning lights on. if(_shift && playerSide in [west,independent]) then { if(vehicle player != player && (typeOf vehicle player) in ["C_Offroad_01_F","B_MRAP_01_F","C_SUV_01_F","C_Hatchback_01_sport_F","B_Heli_Light_01_F","B_Heli_Transport_01_F"]) then { if(!isNil {vehicle player GVAR "lights"}) then { if(playerSide == west) then { [vehicle player] call life_fnc_sirenLights; } else { [vehicle player] call life_fnc_medicSirenLights; }; _handled = true; }; }; }; if(!_alt && !_ctrlKey) then { [] call life_fnc_radar; }; }; //Y Player Menu case 21: { if(!_alt && !_ctrlKey && !dialog && !(player GVAR ["restrained",false]) && {!life_action_inUse}) then { [] call life_fnc_p_openMenu; }; }; //F Key case 33: { if(playerSide in [west,independent] && {vehicle player != player} && {!life_siren_active} && {((driver vehicle player) == player)}) then { [] spawn { life_siren_active = true; sleep 4.7; life_siren_active = false; }; _veh = vehicle player; if(isNil {_veh GVAR "siren"}) then {_veh SVAR ["siren",false,true];}; if((_veh GVAR "siren")) then { titleText [localize "STR_MISC_SirensOFF","PLAIN"]; _veh SVAR ["siren",false,true]; } else { titleText [localize "STR_MISC_SirensON","PLAIN"]; _veh SVAR ["siren",true,true]; if(playerSide == west) then { [_veh] remoteExec ["life_fnc_copSiren",RCLIENT]; } else { [_veh] remoteExec ["life_fnc_medicSiren",RCLIENT]; }; }; }; }; //O Key case 24: { if(_shift) then { if (soundVolume != 1) then { 1 fadeSound 1; systemChat localize "STR_MISC_soundnormal"; } else { 1 fadeSound 0.1; systemChat localize "STR_MISC_soundfade"; }; }; }; //U Key case 22: { if(!_alt && !_ctrlKey) then { if(vehicle player == player) then { _veh = cursorTarget; } else { _veh = vehicle player; }; if(_veh isKindOf "House_F" && {playerSide == civilian}) then { if(_veh in life_vehicles && player distance _veh < 8) then { _door = [_veh] call life_fnc_nearestDoor; if(EQUAL(_door,0)) exitWith {hint localize "STR_House_Door_NotNear"}; _locked = _veh GVAR [format["bis_disabled_Door_%1",_door],0]; if(EQUAL(_locked,0)) then { _veh SVAR [format["bis_disabled_Door_%1",_door],1,true]; _veh animate [format["door_%1_rot",_door],0]; systemChat localize "STR_House_Door_Lock"; } else { _veh SVAR [format["bis_disabled_Door_%1",_door],0,true]; _veh animate [format["door_%1_rot",_door],1]; systemChat localize "STR_House_Door_Unlock"; }; }; } else { _locked = locked _veh; if(_veh in life_vehicles && player distance _veh < 8) then { if(EQUAL(_locked,2)) then { if(local _veh) then { _veh lock 0; } else { [_veh,0] remoteExecCall ["life_fnc_lockVehicle",_veh]; }; systemChat localize "STR_MISC_VehUnlock"; } else { if(local _veh) then { _veh lock 2; } else { [_veh,2] remoteExecCall ["life_fnc_lockVehicle",_veh]; }; systemChat localize "STR_MISC_VehLock"; }; }; }; }; }; }; _handled; и #include "..\..\script_macros.hpp"/* File: fn_actionKeyHandler.sqf Author: Bryan "Tonic" Boardwine Description: Master action key handler, handles requests for picking up various items and interacting with other players (Cops = Cop Menu for unrestrain,escort,stop escort, arrest (if near cop hq), etc). */ private["_curTarget","_isWater","_CrateModelNames","_crate"]; _curTarget = cursorTarget; if(life_action_inUse) exitWith {}; //Action is in use, exit to prevent spamming. if(life_interrupted) exitWith {life_interrupted = false;}; _isWater = surfaceIsWater (visiblePositionASL player); if(EQUAL(LIFE_SETTINGS(getNumber,"global_ATM"),1)) then{ //Check if the player is near an ATM. if((call life_fnc_nearATM) && {!dialog}) exitWith { [] call life_fnc_atmMenu; }; }; if(isNull _curTarget) exitWith { if(_isWater) then { private "_fish"; _fish = (nearestObjects[visiblePosition player,["Fish_Base_F"],3]) select 0; if(!isNil "_fish") then { [_fish] call life_fnc_catchFish; }; } else { _animals = [position player, ["Sheep_random_F","Goat_random_F","Hen_random_F","Cock_random_F","Rabbit_F"], 3.5] call life_fnc_nearestObjects; if (count _animals > 0) then { _animal = _animals select 0; if (!alive _animal) then { [_animal] call life_fnc_gutAnimal; }; } else { if(playerSide == civilian && !life_action_gathering) then { if(life_action_gathering) exitWith {}; //Action is in use, exit to prevent spamming. life_action_gathering = true; _handle = [] spawn life_fnc_gather; waitUntil {scriptDone _handle}; life_action_gathering = false; }; }; }; }; if((_curTarget isKindOf "B_supplyCrate_F" OR _curTarget isKindOf "Box_IND_Grenades_F") && {player distance _curTarget < 3} ) exitWith { if(alive _curTarget) then { [_curTarget] call life_fnc_containerMenu; }; }; if(_curTarget isKindOf "House_F" && {player distance _curTarget < 12} OR ((nearestObject [[16019.5,16952.9,0],"Land_Dome_Big_F"]) == _curTarget OR (nearestObject [[16019.5,16952.9,0],"Land_Research_house_V1_F"]) == _curTarget)) exitWith { [_curTarget] call life_fnc_houseMenu; }; if(dialog) exitWith {}; //Don't bother when a dialog is open. if(vehicle player != player) exitWith {}; //He's in a vehicle, cancel! life_action_inUse = true; //Temp fail safe. [] spawn { sleep 60; life_action_inUse = false; }; //Check if it's a dead body. if(_curTarget isKindOf "Man" && {!alive _curTarget} && !(_curTarget GVAR["Revive",false]) && {playerSide in [west,independent]}) exitWith { //Hotfix code by ins0 if(((playerSide == west && {(EQUAL(LIFE_SETTINGS(getNumber,"revive_cops"),1))}) || playerSide == independent) && {"Medikit" in (items player)}) then { [_curTarget] call life_fnc_revivePlayer; }; }; //If target is a player then check if we can use the cop menu. if(isPlayer _curTarget && _curTarget isKindOf "Man") then { if((_curTarget GVAR ["restrained",false]) && !dialog && playerSide == west) then { [_curTarget] call life_fnc_copInteractionMenu; }; } else { //OK, it wasn't a player so what is it? private["_isVehicle","_miscItems","_money","_list"]; _list = ["landVehicle","Ship","Air"]; _isVehicle = if(KINDOF_ARRAY(_curTarget,_list)) then {true} else {false}; _miscItems = ["Land_BottlePlastic_V1_F","Land_TacticalBacon_F","Land_Can_V3_F","Land_CanisterFuel_F","Land_Suitcase_F"]; _animalTypes = ["Salema_F","Ornate_random_F","Mackerel_F","Tuna_F","Mullet_F","CatShark_F","Turtle_F"]; _money = "Land_Money_F"; //It's a vehicle! open the vehicle interaction key! if(_isVehicle) then { if(!dialog) then { if(player distance _curTarget < SEL(SEL(boundingBox _curTarget,1),0)+2) then { [_curTarget] call life_fnc_vInteractionMenu; }; }; } else { //Is it a animal type? if((typeOf _curTarget) in _animalTypes) then { if(EQUAL((typeOf _curTarget),"Turtle_F") && !alive _curTarget) then { private "_handle"; _handle = [_curTarget] spawn life_fnc_catchTurtle; waitUntil {scriptDone _handle}; } else { private "_handle"; _handle = [_curTarget] spawn life_fnc_catchFish; waitUntil {scriptDone _handle}; }; } else { //OK, it wasn't a vehicle so let's see what else it could be? if((typeOf _curTarget) in _miscItems) then { [_curTarget,player,false] remoteExecCall ["TON_fnc_pickupAction",RSERV]; } else { //It wasn't a misc item so is it money? if(EQUAL((typeOf _curTarget),_money) && {!(_curTarget GVAR ["inUse",false])}) then { [_curTarget,player,true] remoteExecCall ["TON_fnc_pickupAction",RSERV]; }; }; }; }; }; Как сделать чтобы на Q бралась именно кирка и добывала ресурс... не понимаю((
  13. Это понятно... но где взять само "действие киркой" ? Пытался сделать по примеру как в 4.0... не сработало...
  14. Привет всем! На версии 4.0 лайфа имело место выполнение действия по добыче ископаемых с помощью кирки и тд. на клавишу Q Однако на версии 4.4 такого нет и приходится каждый раз заходить в инвентарь и нажимать на кирке Использовать чтобы совершить лишь одну попытку добычи. Подскажите как можно добавить горячую клавишу Q для этого действия? Можно за вознаграждение!
  15. Привет всем! Арма 1.58 Эпоч 0380 Пытаюсь перенести триггеры с 1.56 армы на 1.58.... Вот например такая конструкция по удалению ботов из зоны успешно работала на 1.56: class Sensors { items=1; class Item0 { position[]={13325,0,14515}; a=200; b=200; activationBy="GUER"; repeating=1; interruptable=1; age="UNKNOWN"; expActiv="{deleteVehicle _x} forEach thisList;"; class Effects { }; }; }; Но в 1.58 появился новый общий для всего класс class Entities. Уже пробовал вот так: class Entities { items=1; class Item1 { dataType="Trigger"; position[]={13325,0,14515}; class Attributes { name="delbot"; onActivation="{deleteVehicle _x} forEach thisList;"; sizeA=200; sizeB=200; repeatable=1; interruptable=1; activationBy="GUER"; }; id=210; type="EmptyDetector"; }; }; Но не сработало((... пробовал то же самое прямо в редакторе сделать... на 1.56 получалось... на 1.58 не пашет((