Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
SIR2100

Undefined variable - как исправить?

Ошибка в скрипте: 

Error in expression <rGreen";
hudWp=0;
};
}
else
{
terminate DZE_SELF_MARKER_SCRIPT_HANDLE;
deleteMar>
  Error position: <DZE_SELF_MARKER_SCRIPT_HANDLE;
deleteMar>
  Error Undefined variable in expression: dze_self_marker_script_handle
File mpmissions\__CUR_MP.Chernarus\scripts\MeHere.sqf, line 19

Пример скрипта: 

waitUntil {alive player};
while {1 == 1} do
{
	if("ItemGPS" in (weapons player) && "ItemMap" in (weapons player)) then
	{
		DZE_SELF_MARKER_SCRIPT_HANDLE = [] spawn {
			private["_marker"];
			deleteMarkerLocal "MarkerPlayer";
			_marker = createMarkerLocal["MarkerPlayer",(position player)];
			_marker setMarkerShapeLocal "ICON";
			_marker setMarkerTypeLocal "hd_flag";
			_marker setMarkerTextLocal "You here";
			_marker setMarkerColorLocal "ColorGreen";
			hudWp=0;
		};
	}
	else
	{
		terminate DZE_SELF_MARKER_SCRIPT_HANDLE;
		deleteMarkerLocal "MarkerPlayer";
	};
    sleep 2;
};

И почему такая же ошибка будет, даже если объявить локальную переменную (С помощью Private) и пользоваться ей только в одном скрипте?

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

даже если объявить локальную переменную

 

Объявить и инициализировать, разные вещи.

Private ["_a"]; // Переменная объявлена

if (_a < 0) then // Ошибка, переменной не существует, хоть и объявлена.

...

 

_a = 10; // переменная явно инициализирована.

...

Другой пример

_a = (_this select 0); // переменная не явно инициализирована. Только вот хз, что пришло в _this, и уж тем более в _this select 0, так что надо на всякий случай, далее -

if (isNil "_a") then или exitWith

{

 ....

};

 

А в твоем скрипте, срабатывает сразу строка -

 

terminate DZE_SELF_MARKER_SCRIPT_HANDLE;

 

в которой DZE_SELF_MARKER_SCRIPT_HANDLE; еще не создано и не существует. Да и если бы существовало, то при утере GPS, уничтожилось бы, а потом посыпались бы ошибки.

private["_marker"];    
waitUntil {alive player};
while {true} do
    {
        if ( ("ItemGPS" in (weapons player)) && ("ItemMap" in (weapons player)) ) then
            {
                if (isNil "_marker") then
                    {
                        _marker = createMarkerLocal["_marker", (position player)];
                        _marker setMarkerShapeLocal "ICON";
                        _marker setMarkerTypeLocal "hd_flag";
                        _marker setMarkerTextLocal "You here";
                        _marker setMarkerColorLocal "ColorGreen";
                        hudWp = 0;
                    };
            }
        else
            {
                if !(isNil "_marker") then
                    {
                        deleteMarkerLocal "_marker";
                        _marker    =    nil;    //    мб, и не нужно
                    };
            };
        sleep 2;
    };
 
Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites



  • 0

P.S. И как то глупо связывать GPS и карту. При наличии GPS народ ячейки освободить старается, чтоб лишнее место под ключи, и инструменты было, а ты их заставляешь и то и другое таскать.

Достаточно одного GPS.

Share this post


Link to post
Share on other sites
  • 0

P.S. И как то глупо связывать GPS и карту. При наличии GPS народ ячейки освободить старается, чтоб лишнее место под ключи, и инструменты было, а ты их заставляешь и то и другое таскать.

Достаточно одного GPS.

Да это уже легко кастомизируется. Это мелочи, к выходу скрипта на основной сервер подредачу))) Спасибо. Прям хорошо очень помог с тем, что отделил в моем восприятии объявление переменной от инициализации. 

Edited by SIR2100 (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Serdce
      Данный скрипт, меняет процесс ремонта вашей техники, делая её более логичней, как было в А2.
      Для замены колеса, на нужно собственно само колесо, и тд. и тп. 
      Подробный список чего и для чего вы найдёте в файлах.
       
      Итак, преступим!
      Я не автор, я всего лишь перевожу.
      Первоисточник - https://github.com/aussie-battler/Exilemod-Super-Advanced-Repair-System-SARS
      По ссылке выше скачиваем архив, распаковываем в удобное место.
      Распаковываем ваше миссию "Exile.ваша карта"
      Из архива копируем папку "Custom" в папку вашей миссии "Exile.ваша карта"
      Открываем ваш description.ext  в нем мы ищем showHUD[] = 
      и полностью меняем на это - 
      Далее открываем ваш - initPLayerLocal.sqf
      В этом файле, сразу после строки - if (!hasInterface || isServer) exitWith {};
      Мы добавляем 
      //Bones Super Advanced Repair System (SARS)
      Bones_fnc_salvageAndRepairMenu = compileFinal preprocessFileLineNumbers "Custom\advancedRepair\Bones_fnc_salvageAndRepairMenu.sqf"; 
      Далее открываем ваш - config.cpp
      В нем мы ищем - class Car
      Внутри этого класса мы ищем
       
      И меняем на 
      Так же далее чуть ниже - class Air
      В нем мы также меняем это
      На это 
       
      Далее для если у вас есть Infistar!
      Распаковываем ваш инфистар и открываем его конфиг.
      В нём ищем     KCM = "true"; /* Just close ALL CommandingMenus */
      И меняем значение на false
      Чуть ниже в строке allowedCommandingMenus
      Мы добавляем  "#USER:ASL_Show_Repair_Options_Menu_Array"
      Ну вот и всё готово, всё сохранили и запаковали как было!
       
    • By fedotovyasha
      Хочу немного изменить сообщения перед отправкой клиенту
    • By fedotovyasha
      Пишу свой лаунчер на c#. Скачал клиент в котором был loader.exe. С ним работает норм, но я хочу без него запускать игру. Как это сделать? (Пиратка)
    • By Miduznya
      Собственно как, как отключить battleye на сервере античит

      параметр BattlEye=0; не работает я так понял 
    • By DrTauren
      На нашем сайте предусмотрена возможность рекламирования вашего игрового сервера/сайта/програмного обеспечения при помощи баннеров и ссылок.
       
      Баннеры под первым сообщением темы ↓
       
      Баннер на главной странице (над чатом) ↓
       
      Ссылки над первым сообщением темы ↓
       
      Ссылка на главной странице (над чатом) ↓
       
       

      Заявку вы можете заполнить в этой же теме, либо написать мне в ЛС.
      Любые сообщения не по теме запрещены.
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.