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

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

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

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

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

[FIX] Error Undefined variable in expression: bis_fnc_init

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

Привет!
Думаю много кто сталкивался с ошибкой такого рода: 

16:07:17 Error in expression <;
_recompile = (count _this) > 0;


if (BIS_fnc_init && !_recompile) exitwith {t>
16:07:17   Error position: <BIS_fnc_init && !_recompile) exitwith {t>
16:07:17   Error Undefined variable in expression: bis_fnc_init
16:07:17 File ca\Modules\Functions\init.sqf, line 28

Начнем с того что данная ошибка может вызываться по разному.

1. Если у вас на чистой сборки данной ошибки не было, а после каких-то ваших махинации она появилась, то проблема в ваших ручках и данный фикс вам скорее всего не поможет и топайте фиксить вашу сборку.
2. Если на чистой версии Epoch от 1.0.6+ уже имеется такая ошибка:

  • Пожалуйста убедитесь что все файлы нужной вам версии были скачены до конца и нет такой ситуации что вы обновляли мод путем замены или еще чего. Старую версию надо полностью удалять и ставить новую. Если все равно ошибка остается, то идем ниже.

3. Если п.2 нам не помог, то скорее всего проблема очевидна. У вас имеются устаревшие файлы старого патча. Это случается когда вы покупаете только Arma 2 Operation Arrowhead, но не покупаете Arma 2 обычную. В итоге вам приходиться где-то искать папку Addons в интернете от Arma 2 или Arma 2 Free. Проблема в том, что файлы найденные в интернете могут быть от патча аля так 112555 или еще ниже. Поэтому и случается подобная проблема когда сервер с патчем 131129+ запрашивает некоторые файлы и получает ошибку потому что файл старый и код требуется немного иной.

Ниже я приложил modules.pbo где и есть наш проблемный bis_fnc_init с последнего официального патча.
Скачайте, и замените его в вашей папке Addons, что лежит в Корне игры со всеми ключами!
Ключи ваши не собьются и у вас не будет ошибки аля "файл не подписан" или "не совпадает подпись".
Все прекрасно работает на других серверах Epoch и так же проверенно на другом проекте (WOG).

P.S. К решению такой проблемы я пришел совершенно из разряда "А го попробуем?" ибо меня тоже напрягала данная ошибка и капал вообще в разные стороны. В итоге пришел реально к тупому решению, который работает.
Спасибо @NoNameUltima за предоставленные pbo.

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

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

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

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


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





было такое если не ставить арму 2 а юзать аддоны от нее

а щас пришлось для 1.0.6.2 ставить арму 2 и ошибки как не бывало

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


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

TheFirstNoob закинул и ошибка осталась(, что мне надо сделать,чтобы убрать ошибку? Можно ли попробовать заменить всю папку addons ??

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

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


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

Golf777 На чистой точно проверяли?

В 05.01.2018 в 08:59, TheFirstNoob сказал:

1. Если у вас на чистой сборки данной ошибки не было, а после каких-то ваших махинации она появилась, то проблема в ваших ручках и данный фикс вам скорее всего не поможет и топайте фиксить вашу сборку.

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


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

TheFirstNoob Нет не проверял, подскажите как можно исправить ?

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

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


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

Golf777 Поставь чистую сборку epoch и посмотри данную ошибку. Не будет - значит косяк в сборке. Будет - Создавай тему в "Помощь" с полными RPT.

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


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

TheFirstNoob поставил чистую сборку и понял где я накосячил) всё норм все ошибки в рпт исчезли.

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

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


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

Golf777 мог бы всем сказать, чтобы и у других с этим проблем не возникало 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: danulo95
      в чем ошибка?
      Error in expression <Pos;
              while {1 == 1} do
              {
                  if (str dayz_spawnPos != str _spawnPos) then
                  >
        Error position: <dayz_spawnPos != str _spawnPos) then
                  >
        Error Undefined variable in expression: dayz_spawnpos
    • Автор: Francis
      Всем доброго времени суток. Установил сервер DayZ Mod 1.8.9 сначала от Pwnoz0r, позже по файлам и гайду из DeadReturn. В обоих случая выбрасывает из сервера с сообщением: Kicked off by BattlEye: PublicVariable Restriction #1.
      В publicvariable.log: #1 "PVDZ_fserr" = "Extension" Клиент и сервер чистые. Steam_AppID пробовал оба. Фильтры стоят последние. 
      И, как я понял из файла (dayz_code/system/filesign/verify_mission.sqf), где выбрасывается ошибка в лог со значением Extension, в исключения данное выражение добавлять нельзя.
      Единственная надежда на экспертов из этого форума.
    • Автор: Sovest2
      Никак не могу избавиться от снятия с трупа бота бесконечного количества денег(Если спрятать его и дождаться пока он пропадет),которое отображается как "any".
      Проблему пытаюсь исправить в check_wallet.sqf
      Вот такой вот текст у меня в check_wallet.sqf
      private ["_body", "_hisMoney", "_myMoney"]; _body = _this select 3; _PlayerNear = _body call dze_isnearest_player; if (_PlayerNear ) exitWith {cutText [localize "str_pickup_limit_4", "PLAIN DOWN"]}; _name = _body getVariable ["bodyName","Неизвестный"]; _hisMoney = _body getVariable ["cashMoney",0]; diag_log format["_name = %1 , _hisMoney = %2 , _body = %3",_name,_hisMoney,_body]; if( (isNull _body) || (_name == "<NULL-object>") || (_name == "<null>")) exitWith {cutText ["Вы не можете снять деньги с этого трупа,попробуйте еще раз", "PLAIN DOWN"]}; _myMoney = player getVariable ["cashMoney",0]; _myMoney = _myMoney + _hisMoney; _body setVariable ["cashMoney", 0 , true]; player setVariable ["cashMoney", _myMoney , true]; systemChat format ['Вы забрали %1 монет с %2 !',_hisMoney,_name]; Условие  
      _name = "<null>" Пропускает значение  _name = <null>
       
      Код в fn_selfActions.sqf
      // Study Body if (_player_studybody && !_clothesTaken) then { if (s_player_studybody < 0) then { // --------ZUPA - Check Wallet -------- s_player_studybody = player addAction [("<t color=""#FF0000"">"+("Проверить кошелек") + "</t>"), "custom\singlecurrency\actions\check_wallet.sqf",_cursorTarget, 0, false, true, "",""]; // ---- ZUPA END --- }; if((s_player_clothes < 0)) then { s_player_clothes = player addAction [("<t color='#0096ff'>")+("Снять одежду")+("</t>"), "custom\take_clothes\take_clothes.sqf",cursorTarget, -10, false, true]; }; } else { player removeAction s_player_studybody; s_player_studybody = -1; player removeAction s_player_clothes; s_player_clothes = -1; };  
    • Автор: GhostDZ
      Бывают такие случаи когда после перезагрузки сервера игроки получают большой минус в банке, хотя до рестарта имели солидные бабки в банке. Фиксим это дело:
       
      server_PlayerSync.sqf
       
      private ["_empty","_name","_playerwasNearby","_character","_magazines","_force","_characterID","_charPos","_isInVehicle","_timeSince","_humanity","_debug","_distance","_isNewMed","_isNewPos","_isNewGear","_playerPos","_playerGear","_playerBackp","_medical","_distanceFoot","_lastPos","_backpack","_kills","_killsB","_killsH","_headShots","_cashMoney","_cashMoneyStr","_lastTime","_timeGross","_timeLeft","_currentWpn","_currentAnim","_config","_onLadder","_isTerminal","_currentModel","_modelChk","_muzzles","_temp","_currentState","_array","_key","_pos","_forceGear","_friendlies"]; _character = _this select 0; _magazines = _this select 1; //_force = _this select 2; _forceGear = _this select 3; _force = true; _playerwasNearby = false; if ((count _this) > 4) then { _playerwasNearby = _this select 4; }; if (isNull _character) exitWith { diag_log ("Player is Null FAILED: Exiting, player sync: " + str(_character)); }; _characterID = _character getVariable ["CharacterID","0"]; _charPos = getPosATL _character; _isInVehicle = vehicle _character != _character; _timeSince = 0; _humanity = 0; //diag_log ("DW_DEBUG: (isnil _characterID): " + str(isnil "_characterID")); _name = if (alive _character) then { name _character; } else { "Dead Player"; }; if (_character isKindOf "Animal") exitWith { diag_log ("ERROR: Cannot Sync Character " + (_name) + " is an Animal class"); }; if (isnil "_characterID") exitWith { diag_log ("ERROR: Cannot Sync Character " + (_name) + " has nil characterID"); }; if (_characterID == "0") exitWith { diag_log ("ERROR: Cannot Sync Character " + (_name) + " as no characterID"); }; private["_debug","_distance"]; _debug = getMarkerpos "respawn_west"; _distance = _debug distance _charPos; if (_distance < 2000) exitWith { diag_log format["ERROR: server_playerSync: Cannot Sync Player %1 [%2]. Position in debug! %3",_name,_characterID,_charPos]; }; //Check for server initiated updates _isNewMed = _character getVariable["medForceUpdate",false]; //Med Update is forced when a player receives some kind of med incident _isNewPos = _character getVariable["posForceUpdate",false]; //Med Update is forced when a player receives some kind of med incident _isNewGear = (count _magazines) > 0; //Check for player initiated updates if (_characterID != "0") then { _playerPos = []; _playerGear = []; _playerBackp = []; _medical = []; _distanceFoot = 0; //diag_log ("Found Character..."); //Check if update is requested if (_isNewPos || _force) then { //diag_log ("position..." + str(_isNewPos) + " / " + str(_force)); sleep 0.05; if (((_charPos select 0) == 0) && ((_charPos select 1) == 0)) then { //Zero Position } else { //diag_log ("getting position..."); sleep 0.05; _playerPos = [round(direction _character),_charPos]; _lastPos = _character getVariable["lastPos",_charPos]; if (count _lastPos > 2 && count _charPos > 2) then { if (!_isInVehicle) then { _distanceFoot = round(_charPos distance _lastPos); }; _character setVariable["lastPos",_charPos]; }; if (count _charPos < 3) then { _playerPos = []; }; //diag_log ("position = " + str(_playerPos)); sleep 0.05; }; _character setVariable ["posForceUpdate",false,true]; }; if (_isNewGear || _forceGear) then { //diag_log ("gear..."); sleep 0.05; _playerGear = [weapons _character,_magazines]; //diag_log ("playerGear: " +str(_playerGear)); _backpack = unitBackpack _character; if(_playerwasNearby) then { _empty = [[],[]]; _playerBackp = [typeOf _backpack,_empty,_empty]; } else { _playerBackp = [typeOf _backpack,getWeaponCargo _backpack,getMagazineCargo _backpack]; }; }; if (_isNewMed || _force) then { //diag_log ("medical..."); sleep 0.05; if (!(_character getVariable["USEC_isDead",false])) then { //diag_log ("medical check..."); sleep 0.05; _medical = _character call player_sumMedical; //diag_log ("medical result..." + str(_medical)); sleep 0.05; }; _character setVariable ["medForceUpdate",false,true]; }; //Process update if (_characterID != "0") then { //Record stats while we're here /* Check previous stats against what client had when they logged in this helps prevent JIP issues, where a new player wouldn't have received the old players updates. Only valid for stats where clients could have be recording results from their local objects (such as agent zombies) */ _kills = ["zombieKills",_character] call server_getDiff; _killsB = ["banditKills",_character] call server_getDiff; _killsH = ["humanKills",_character] call server_getDiff; _headShots = ["headShots",_character] call server_getDiff; _humanity = ["humanity",_character] call server_getDiff2; //_humanity = _character getVariable ["humanity",0]; //Soul start: SC Edit >>> collecting players cashmoney _cashMoney = ["cashMoney",_character] call server_getDiff2; _cashMoneyStr = _cashMoney call MDC_fnc_numberToString; //Soul end: SC Edit _character addScore _kills; /* Assess how much time has passed, for recording total time on server */ _lastTime = _character getVariable["lastTime",time]; _timeGross = (time - _lastTime); _timeSince = floor(_timeGross / 60); _timeLeft = (_timeGross - (_timeSince * 60)); /* Get character state details */ _currentWpn = currentMuzzle _character; _currentAnim = animationState _character; _config = configFile >> "CfgMovesMaleSdr" >> "States" >> _currentAnim; _onLadder = (getNumber (_config >> "onLadder")) == 1; _isTerminal = (getNumber (_config >> "terminal")) == 1; //_wpnDisabled = (getNumber (_config >> "disableWeapons")) == 1; _currentModel = typeOf _character; _modelChk = _character getVariable ["model_CHK",""]; if (_currentModel == _modelChk) then { _currentModel = ""; } else { _currentModel = _currentModel; _character setVariable ["model_CHK",typeOf _character]; }; if (_onLadder || _isInVehicle || _isTerminal) then { _currentAnim = ""; //If position to be updated, make sure it is at ground level! if ((count _playerPos > 0) && !_isTerminal) then { _charPos set [2,0]; _playerPos set[1,_charPos]; }; }; if (_isInVehicle) then { _currentWpn = ""; } else { if ( typeName(_currentWpn) == "STRING" ) then { _muzzles = getArray(configFile >> "cfgWeapons" >> _currentWpn >> "muzzles"); if (count _muzzles > 1) then { _currentWpn = currentMuzzle _character; }; } else { //diag_log ("DW_DEBUG: _currentWpn: " + str(_currentWpn)); _currentWpn = ""; }; }; _temp = round(_character getVariable ["temperature",100]); _currentState = [_currentWpn,_currentAnim,_temp]; if(DZE_FriendlySaving) then { // save only last/most recent 5 entrys as we only have 200 chars in db field && weapon + animation names are sometimes really long 60-70 chars. _friendlies = [(_character getVariable ["friendlies",[]]),5] call array_reduceSizeReverse; _currentState set [(count _currentState),_friendlies]; }; /* Everything is ready, now publish to HIVE */ if (count _playerPos > 0) then { _array = []; { if (_x > dayz_minpos && _x < dayz_maxpos) then { _array set [count _array,_x]; }; } count (_playerPos select 1); _playerPos set [1,_array]; }; if (!isNull _character) then { if (alive _character) then { //Wait for HIVE to be free //Send request _key = format["CHILD:201:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:",_characterID,_playerPos,_playerGear,_playerBackp,_medical,false,false,_kills,_headShots,_distanceFoot,_timeSince,_currentState,_killsH,_killsB,_currentModel,_humanity,_cashMoneyStr]; //diag_log ("HIVE: WRITE: "+ str(_key) + " / " + _characterID); _key call server_hiveWrite; }; }; // If player is in a vehicle, keep its position updated if (vehicle _character != _character) then { //[vehicle _character, "position"] call server_updateObject; if (!(vehicle _character in needUpdate_objects)) then { //diag_log format["DEBUG: Added to NeedUpdate=%1",vehicle _character]; needUpdate_objects set [count needUpdate_objects, vehicle _character]; }; }; // Force gear updates for nearby vehicles/tents _pos = _this select 0; { [_x, "gear"] call server_updateObject; } count nearestObjects [_pos, dayz_updateObjects, 10]; //[_charPos] call server_updateNearbyObjects; //Reset timer if (_timeSince > 0) then { _character setVariable ["lastTime",(time - _timeLeft)]; }; }; }; а в самый верх compiles.sqf
      MDC_fnc_numberToString = { _number = _this; _str = ""; if (_number == 0) then { _str = "0"; } else { _negative = false; if (_number < 0) then { _number = abs _number; _negative = true; }; if (_number % 1 == 0) then { while { _number > 0 } do { _digit = floor (_number % 10); _str = (str _digit) + _str; _number = floor (_number / 10); }; } else { _decimals = _number % 1; _decimals = _decimals * 1000000; _number = floor _number; _str = _number call MDC_fnc_numberToString; _str = _str + "." + str _decimals; }; if (_negative) then { _str = "-" + _str; }; }; _str; }; Понравилось, поставьте мне +
  • Наш выбор

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

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

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