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
Luntik

Включение/Выключение травы с помощью карты у игроков

Здравствуйте, подскажите кто знает, как сделать на карте когда игрок нажимает на неё (пкм) что бы можно было включить и выключить траву на сервере у игрока?

 

Share this post


Link to post
Share on other sites

18 answers to this question

Recommended Posts

  • 0

Блин ты бы мне очень помог ели-бы расписал что да как установить, но тоже вижу что сайт лагает(

У меня статья открывается нормально, установите как там описано, после чего в файле extra_rc - добавьте вместо class itemPlotPole {...};

class ItemMap 
	{
		class Info {
			text = "Качество травы";
			};
		class Ultra {
			text = "Ультра";
			script = "setTerrainGrid = 15";
			};
		class High {
			text = "Высокое";
			script = "setTerrainGrid = 20";
			}
		class Middle {
			text = "Среднее";
			script = "setTerrainGrid = 25";
			}
		class Low {
			text = "Низкое";
			script = "setTerrainGrid = 40";
			}
		class Off {
			text = "Отключить";
			script = "setTerrainGrid = 50";
		};
	};

Качество травы устанавливается командой SetTerrainGrid = (Число от 10 до 50)

 

10 - Высокий уровень детализации травы

 

50 - Отключить траву

Share this post


Link to post
Share on other sites



  • 0

Здравствуйте, подскажите кто знает, как сделать на карте когда игрок нажимает на неё (пкм) что бы можно было включить и выключить траву на сервере у игрока?

http://s-platoon.ru/index.php?/topic/1794-rbm-option-on-objects-pkm-optcii-u-predmeta-maca-rc/  Вот это установить если у вас не установлено 

Share this post


Link to post
Share on other sites
  • 0

http://s-platoon.ru/index.php?/topic/1794-rbm-option-on-objects-pkm-optcii-u-predmeta-maca-rc/  Вот это установить если у вас не установлено 

Да установлено, но я не разобрался как и что прописать для корректной работы, у меня на карте через этот гайд уже стоит поиск авто по ключу, а вот как траву сделать что бы убиралась не как не пойму

Share this post


Link to post
Share on other sites
  • 0

Да установлено, но я не разобрался как и что прописать для корректной работы, у меня на карте через этот гайд уже стоит поиск авто по ключу, а вот как траву сделать что бы убиралась не как не пойму

Два раза пытался расписывал тебе как надо сделать,но чё то сайт плохо сегодня работает пишет сохраняем сообщение и не сохраняет 

Share this post


Link to post
Share on other sites
  • 0

Два раза пытался расписывал тебе как надо сделать,но чё то сайт плохо сегодня работает пишет сохраняем сообщение и не сохраняет 

Блин ты бы мне очень помог ели-бы расписал что да как установить, но тоже вижу что сайт лагает(

Share this post


Link to post
Share on other sites
  • 0

У меня статья открывается нормально, установите как там описано, после чего в файле extra_rc - добавьте вместо class itemPlotPole {...};

class ItemMap 
	{
		class Info {
			text = "Качество травы";
			};
		class Ultra {
			text = "Ультра";
			script = "setTerrainGrid = 15";
			};
		class High {
			text = "Высокое";
			script = "setTerrainGrid = 20";
			}
		class Middle {
			text = "Среднее";
			script = "setTerrainGrid = 25";
			}
		class Low {
			text = "Низкое";
			script = "setTerrainGrid = 40";
			}
		class Off {
			text = "Отключить";
			script = "setTerrainGrid = 50";
		};
	};

Качество травы устанавливается командой SetTerrainGrid = (Число от 10 до 50)

 

10 - Высокий уровень детализации травы

 

50 - Отключить траву

А не подскажет как сделать разрешение на отключение травы?), а то после нажатия отключить кикает, якобы использую изменённые файлы

Share this post


Link to post
Share on other sites
  • 0

А не подскажет как сделать разрешение на отключение травы?), а то после нажатия отключить кикает, якобы использую изменённые файлы

Удали в AH.sqf ВСЕ строки связаны с _FTG

Share this post


Link to post
Share on other sites
  • 0

Ребят, кто может подсказать? Сделал все как надо с травой (как описано выше). Строки с _FTG также из AH.sqf выпилил. Но при попытке отключить траву получаю бан.

 

В логе следующее:

14:54:02 "infiSTAR.de Log: Brat (76561198168707684) | FNCbroken: setTerrainGrid"
14:54:02 "["PVAHR_0_q1o561D18797T110a173j",["Brat","76561198168707684","BAN",[70,78,67,98,114,111,107,101,110,58,32,115,101,116,84,101,114,114,97,105,110,71,114,105,100]]]"
14:54:02 "infiSTAR.de Log: Сервер выкинул Brat(76561198168707684) @034062"
14:54:08 "infiSTAR.de Log: Сервер выкинул Brat(76561198168707684) @034062"
14:54:23 "infiSTAR.de PlayerDisconnected: _uid: 76561198168707684   _name: Brat"
14:54:23 "[LOST-SERVER]: Получено: STRING (76561198168707684), Отправлено: STRING (76561198168707684)"
14:54:23 "[LOST-SERVER]: Disconnect: Brat (76561198168707684) Object: B 1-1-B:1 (Brat) REMOTE, _characterID: 3 Position: [3487.75,9128.89,0.0017395]"
Edited by MeinCain (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Ребят, если кто знает в чем проблема (сообщение выше), то отпишите, пожалуйста, так как очень нужно.

Share this post


Link to post
Share on other sites
  • 0

Ребят, если кто знает в чем проблема (сообщение выше), то отпишите, пожалуйста, так как очень нужно.

Не удалили бан за setTerrainGrid в AH.sqf. Встречается оно около 3 раз.

Share this post


Link to post
Share on other sites
  • 0

 

Не удалили бан за setTerrainGrid в AH.sqf. Встречается оно около 3 раз.

 

Там есть:

{
				if !(isNil _x) then
				{
					[] spawn {sleep 0.5;AntiHack_FNCbroken = 'AntiHack_FNCbroken';publicVariableServer 'AntiHack_FNCbroken';};
					[] spawn "+_randvar2+";
					_log = format['FNCbroken: %1',_x];
					[_name,_puid,'BAN',toArray (_log)] call "+_randvar37+";
				};
				true
			} count ['typeName','lbClear','closedialog','startloadingscreen','endLoadingScreen','findDisplay','setposATL','getPos','to',
			'closeDisplay','getPlayerUID','publicVariableServer','setPos','toArray','setposASL','getPosASL','allowDamage','setTerrainGrid',
			'endMission','str','isNil','diag_log','format','removeMagazines','getPosATL','from','ctrlEnabled','uiNameSpace',
			'removeMagazine','failMission','diag_tickTime','publicvariable','profileNamespace','for','toString','resize','toLower',
			'displayRemoveAllEventHandlers','ctrlRemoveAllEventHandlers','removeWeapon','&&','||','removeAction','in','spawn',
			'do','displayCtrl','player','select','saveProfileNamespace','exitWith','or','and','visibleMap','uiSleep','alive',
			'isNull','typeOf','distance','true','false','isDedicated','unitRecoilCoefficient','call','setunitRecoilCoefficient',
			'waitUntil','speed','while','if','isServer','then','primaryWeapon','unitBackpack','magazines','weapons','getMagazineCargo',
			'getWeaponCargo','isPlayer','dialog','disableSerialization','count','ctrlSetText','ctrlText','systemChat','commandingMenu',
			'showcommandingMenu','disableUserInput','time','local','forEach','nearEntities','round','onEachFrame'];

И вот:

admin_low_terrain = {
		if(isNil 'admin_terrain') then {admin_terrain = true;} else {admin_terrain = !admin_terrain};
		if(admin_terrain) then {
			setTerrainGrid 50;
			hint 'Terrain Low';
			cutText [format['Terrain Low'], 'PLAIN DOWN'];
			_sl = format['%1 Terrain Low',name player];
			PVAH_WriteLogReq = [player,toArray _sl];
			publicVariableServer 'PVAH_WriteLogReq';
		}
		else
		{
			setTerrainGrid 25;
			hint 'Terrain Normal';
			cutText [format['Terrain Normal'], 'PLAIN DOWN'];
			_sl = format['%1 Terrain Normal',name player];
			PVAH_WriteLogReq = [player,toArray _sl];
			publicVariableServer 'PVAH_WriteLogReq';
		};
	};

Попробовал выпилить из первого куска кода, но трава вообще перестала меняться (отключать и так далее).

Share this post


Link to post
Share on other sites
  • 0

 

Только с 1 удалить нужно.

В этом случае менюшка на ПКМ появляется, но не активна. Куда не наживай - ничего не происходит... 

Share this post


Link to post
Share on other sites
  • 0

У меня статья открывается нормально, установите как там описано, после чего в файле extra_rc - добавьте вместо class itemPlotPole {...};

class ItemMap 
	{
		class Info {
			text = "Качество травы";
			};
		class Ultra {
			text = "Ультра";
			script = "setTerrainGrid = 15";
			};
		class High {
			text = "Высокое";
			script = "setTerrainGrid = 20";
			}
		class Middle {
			text = "Среднее";
			script = "setTerrainGrid = 25";
			}
		class Low {
			text = "Низкое";
			script = "setTerrainGrid = 40";
			}
		class Off {
			text = "Отключить";
			script = "setTerrainGrid = 50";
		};
	};

Качество травы устанавливается командой SetTerrainGrid = (Число от 10 до 50)

 

10 - Высокий уровень детализации травы

 

50 - Отключить траву

 

Windows, ты опух? Точки с запятыми кто ставить будет? Мы с парнем 2 часа мозги ломаем почему не работает, а оказывается ; не стоят нигде почти. Исправь!!!)

Share this post


Link to post
Share on other sites
  • 0

удали вот это 'setTerrainGrid', из кода

    {
    				if !(isNil _x) then
    				{
    					[] spawn {sleep 0.5;AntiHack_FNCbroken = 'AntiHack_FNCbroken';publicVariableServer 'AntiHack_FNCbroken';};
    					[] spawn "+_randvar2+";
    					_log = format['FNCbroken: %1',_x];
    					[_name,_puid,'BAN',toArray (_log)] call "+_randvar37+";
    				};
    				true
} count ['typeName','lbClear','closedialog','startloadingscreen','endLoadingScreen','findDisplay','setposATL','getPos','to',
'closeDisplay','getPlayerUID','publicVariableServer','setPos','toArray','setposASL','getPosASL','allowDamage','setTerrainGrid',
'endMission','str','isNil','diag_log','format','removeMagazines','getPosATL','from','ctrlEnabled','uiNameSpace',
'removeMagazine','failMission','diag_tickTime','publicvariable','profileNamespace','for','toString','resize','toLower',
'displayRemoveAllEventHandlers','ctrlRemoveAllEventHandlers','removeWeapon','&&','||','removeAction','in','spawn',
'do','displayCtrl','player','select','saveProfileNamespace','exitWith','or','and','visibleMap','uiSleep','alive',
'isNull','typeOf','distance','true','false','isDedicated','unitRecoilCoefficient','call','setunitRecoilCoefficient',
'waitUntil','speed','while','if','isServer','then','primaryWeapon','unitBackpack','magazines','weapons','getMagazineCargo',
'getWeaponCargo','isPlayer','dialog','disableSerialization','count','ctrlSetText','ctrlText','systemChat','commandingMenu',
'showcommandingMenu','disableUserInput','time','local','forEach','nearEntities','round','onEachFrame'];

Share this post


Link to post
Share on other sites
  • 0

Всё равно не работает, тьфу...



Прикиньте, удалили из инфистара. Перестал банить, но реакции на нажатия ноль.

Перепробовали всё что можно, трава не меняется.

Share this post


Link to post
Share on other sites
  • 0

setTerrainGrid = 40;

 

а зачем тут = ???

убери везде =  и проверь.

Share this post


Link to post
Share on other sites
  • 0

setTerrainGrid = 40;

 

а зачем тут = ???

убери везде =  и проверь.

 

Ой ну 10 из 10. Ночью не заметил, рылся во всей сборке) Благодарю

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 123new
      За основу взята наработка автора скрипта: http://s-platoon.ru/profile/14721-borizzk/
      И немного доработана по своим соображениям.
      Использование мода клиенту игры НЕ ТРЕБУЕТСЯ!!!
       
      И так, установка:
      1. Первым делом нам необходим чистый стандартный сервер DayZ (без модов, поскольку моды могу приводить к неработоспособности частей гайда). Установить его можно по инструкции, например, так:
      2. Добавляем в папку сервера игры мод из архива:
      3. Добавляем в параметры запуска сервера:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      -Filepatching "-servermod=@KillFeed_ServerMod" Если ваш сервер уже имеет серверные моды, просто добавьте папку с модом в список используемых сервером модов.
      ВАЖНО: не добавляйте данный мод в параметр запуска сервера -mod=, иначе это может стать проблемой заходи игроков с параметрами verifysignatures=2; equalmodrequired=1;
      4. В 'config-файле' сервера (там где названием сервера и прочие настройки) добавляем настройки для мода:
      //KillFeed_mod KillFeed_enableSaveKills = 1; // Включение сохранения счетчика убийств по игрокам KillFeed_enableSaveDies = 1; // Включение сохранения счетчика смертей по игрокам KillFeed_enableCustomTimeLog = 1; // Включение записи модом 'Кастомных' логов смертей игроков KillFeed_enableDefaultLog = 1; // Включение записи сервером стандартных логов сервера в scripts.log KillFeed_enableDebugLog = 1; // Включение записи сервером отладочных логов сервера в scripts.log (работает при KillFeed_enableDefaultLog = 1) KillFeed_enableMessages = 1; // Включение отправки сообщений в чат сервера о смертях игроков Пояснения к настройкам, как видите, имеются.
      Напомню, активный профиль сервера обозначается параметром '-profiles={имя папки или путь до папки}'
      Например, при указании:
      -profiles=Instance_1 папка профиля сервера будет выглядеть вот так:
      5. Запускаем сервер, умираем от зомби и радуемся. Сообщения о смертях игроков будут в чате у других игроков (если в настройках игры они не отключены), так и в script.log.

      Где хранятся счетчики убийств и смертей? Ответ:
      Они хранятся в profile сервера игры. Т.е. после 1-го запуска создаются 2 файла (как у клиента игры в документах windows в папку dayz) в файлах с расширениями ".vars.DayZProfile" и ".DayZProfile". При удалении этих файлов счетчики сбросятся!
       
      P.S. Чтобы увидеть сообщения в чате, нужно быть 2-м игрокам на сервере, и умереть одному из двух. тот, кто умирает, сообщения с чата не видит!!!
       
    • By Peresvet
      нипанимайу. как сменить карту на сервере?
    • By AntonivkA
      Что-то не могу найти параметры задержки анимации поднятия травы.
      Например, я пробежал по траве, она примялась, но через 1-2 секунды она выравнивается. Мне нужно изменить время до выравнивания, например 30 сек.
    • By BorizzK
      Вобщем в процессе работы сервера происходят рандомные динамические события и вместе с ними на карте спавнятся некоторые обьекты
      Если время их жизни истекает и настает время нового события и в радиусе видимости нет игроков обьекты удаляются с карты
      Но
      Если выключение корректно (запланированный рестарт например), вызов функции удаления происходит из деструктора класса
      Все отрабатывает
      Ошибок нет
      Но после рестарта некоторые обьекты на месте
      Тогда я замутил функцию-задержку с проверкой
       
      float TimeWait(Object object, float timeW) { float cTick = GetGame().GetTickTime() + timeW; while(object || GetGame().GetTickTime() < cTick ) { if ( GetGame().GetTickTime() >= cTick ) break; } return GetGame().GetTickTime(); } и вызываю ее
       
      if (object) tW = TimeWait(object, timeW); задержка реально происходит - делал ее 60 секунда да же
      НО! обьекты эти после рестарта опять на месте
       
      Пока придумал костыль - сохраняю в профиль сервера при каждом спавне координаты и тайпнеймы заспавленных обьектов и при запуске в конструкторе проверяю это место и грохаю обьекты по тайпнеймам - места безлюдные и открытые, лагерей и тп там быть не может - потому в принципе ничего лишнего туда попасть не может
      к тому же это полезно в случае крашей
       
      и все же
      почему обьекты не удаляются при завершении работы сервера?
       
    • By BorizzK
      Как и обещал выкладываю код и небольшой гайд
       
      Собственно речь о функции загрузки UID и координат из файла в массив m_playersSpawnPoints класса миссии, который в последствии можно исполдьзовать в других функциях в классе миссии
       
      Отступление
      массив m_playersSpawnPoints это массив типа map
      В данном случае <string,string> где и индекс и значение текстовые строки
      индексом выступает записанный UID,  а значением координаты, которые перед использованием преобразуются из текста в vector c помощью функции ToVector()
      Но об этом позже
       
      Раздел 1. Подключение
       
      КОд функции:
      //Players personal spawn points (for new connected players) ref map<string,string> m_playersSpawnPoints = new map<string,string>; void LoadPlayersSpawnPoints() { /* Файл playersSpawnPoints.lst кладем в папку указанную в параметре запуска сервера -profiles= тогда путь будет "$Profile:" или если кладем в файл в mpmissions\dayzOffline.chernarusplus\_CONF путь будет "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_CONF\\" Путь меняется в переменной m_SettingsPath - "$Profile:" или "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_CONF\\" Можете указать свой путь, но он должен быть либо в $Profiles: либо в $CurrentDir:\\mpmissions\\dayzOffline.chernarusplus Формат файла: Steam UID в привычном виде 17 цифр Координаты Комментарий (через пробелы) Помните любая ошибка может привести к крашу сервера Не желательны пустые строки! Пример: 76562298156537008 1300 0 5600 Дима 76561998116927209 3000 0 3000 Вася из Новороссийска Про массив: ref map<string, string> m_playersSpawnPoints = new map<string, string>; m_playersSpawnPoints тут массив типа map, где каждый элемент массива состоит из 2х ячеек. 1. Индекс - тип string 2. Значение - тип string Пример работы с массивом типа map Запись в массив m_playersSpawnPoints.Insert("76562298156537008", "1300 0 5600"); //записываем первый элемент - индекс dayz, значение 10 m_playersSpawnPoints.Insert("76561998116927209", "3000 0 3000"); //записываем второй элемент - индекс dayzf, значение 17 Чтение из массива: Получаем значение 0го элемента string m = m_playersSpawnPoints.GetElement(0); // = "1300 0 5600" Получаем индекс 0го элемента string name = m_playersSpawnPoints.GetKey(0); / /= "76562298156537008" Получаем значение по индексу (в данном случае нас интерисует именно ЭТО) string n = m_playersSpawnPoints.Get("76561998116927209"); // = "3000 0 3000" //затем n переводим в вектор Usage in CreateCharacter function for change default spawn position: string PlayerUID = identity.GetPlainId(); if (PlayerUID) { if (m_playersSpawnPoints.Contains(PlayerUID) { pos = m_playersSpawnPoints.Get(PlayerUID).ToVector(); } } */ string FileName = "playersSpawnPoints.lst"; string m_SettingsPath = "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_CONF\\"; //Folder with config files - .ini or .lst // Or "$Profiles:\\" FileHandle file; string file_line; array<string> read_line; int linecount = 0; //Comments check bool skipline = false; bool skipblock = false; //Comments check file = OpenFile(m_SettingsPath + FileName, FileMode.READ); if (file != 0) { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read File: " + m_SettingsPath + FileName + " :::"); while (FGets(file, file_line) >= 0) { linecount++; //Comments check and skip if (file_line.IndexOfFrom(0,"//") == 0 || file_line.IndexOfFrom(0,"#") == 0 || file_line.IndexOfFrom(0," ") == 0 || file_line.Length() <= 0) { skipline = true; } else { skipline = false; } if (file_line.IndexOfFrom(0,"/*") == 0) { skipblock = true; } else if (file_line.IndexOfFrom(0,"*/") == 0) { skipblock = false; skipline = true; } //Comments check if (!skipline && !skipblock) { read_line = new array<string>; file_line.Split(" ",read_line); if (read_line.Count() >= 4) { if (read_line.Get(0).Length() == 17) { if (read_line.Get(1).ToFloat() > 0 && read_line.Get(3).ToFloat() > 0) { if (!m_playersSpawnPoints.Contains(read_line.Get(0))) { m_playersSpawnPoints.Insert(read_line.Get(0), read_line.Get(1) + " " + read_line.Get(2) + " " + read_line.Get(3)); // UID, Position Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " Add UID " + read_line.Get(0) + " spawnpoint: " + read_line.Get(1) + " " + read_line.Get(2) + " " + read_line.Get(3) + " to m_playersSpawnPoints"); } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " UID " + read_line.Get(0) + " duplicated, check file!"); } } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " Position error: '" + read_line.Get(1) + " " + read_line.Get(2) + " " + read_line.Get(3) + "' :::"); } } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " UID error: " + file_line + " :::"); } } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Read Line c" + linecount + " have errors: " + file_line + " :::"); } } } CloseFile(file); if (m_playersSpawnPoints.Count() > 0) { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Players personal spawn points count: " + m_playersSpawnPoints.Count() + " :::"); } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Players personal spawn points is not loaded! :::"); } } else { Print("::: Init.c ::: LoadPlayersSpawnPoints() ::: Error open file: " + m_SettingsPath + FileName + " :::"); } } Комментарии, а так же диагностические принты в лог не убираю сознательно
       
      ПОдключение и использование.
       
      Функцию размещаем в теле класса миссии в init.c или если она вынесена в другой файл (и файл подключени через #include) в том самом файле в теле класса миссии
       
      Вот как-то так:
       
      class CustomMission : MissionServer { //Тут разные функции и определение переменных класса... //Вот тут переопределенный штатно OnInit override void OnInit () { //тут его код ) //Тут определяем наш массив и функцию //Players personal spawn points (for new connected players) ref map<string,string> m_playersSpawnPoints = new map<string,string>; void LoadPlayersSpawnPoints() { //тут ее код } //Тут разные функции... }  
      Ну Вы поняли...
       
      Далее нам надо при запуске и инициализации сервера эту функцию выполнить
      Но прежде надо создать файл по нужному пути в котором будут UID'ы и координаты
      В данной редакции используется путь "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_CONF\\" и имя файла "playersSpawnPoints.lst"
      те в папке mpmissions\dayzOffline.chernarusplus нужно создать папку _CONF и поместить в нее этот файл
      Но вы можете это переделать как Вам больше нравится
       
      Формат файла:
       
      6561198156925007 2698.36 0 5989.59 USER
      6561198156924007 2698.36 0 5989.59 ВАСЯ
       
      6561198156923007 2698.36 0 5989.59 ПЕТЯ
      //Тут комментарий
      /*
      6561193356923001 3698.36 30 5189.59 ПЕТЯ
      */
       
      //Тут комментарий
      #Тут комментарий
       
      Первое поле - позиция - Это Steam UID (17 цифирь)
      2,3,4 поля позиции числа это координаты X Z Y (Z = высота) - если 0 система поставит перса на землю или ближайшую твердую поверхность под ним
      все что дальше игнорится
       
      Можно каментить строки с помощью // , #
      Можно каментить блоки
      /*
      */
       
      Если первый символ в строке пробел, все остальное то же игнорится
      Пустые строки то же игнорятся
       
      Если в строке с UID и координатами ошибка об этом напишет в лог с указанием номера строки
      Если UID дублируется об этом то же напишет в лог
       
      Ок
      Файл создали
       
      Теперь добавим вызов этой функции в тело функции OnInit в классе миссии (про нее речь шла Выше)
      Функция OnInit ВСЕГДА выполняется при запуске сервера
      Внутрь мы добавим вызов LoadPlayersSpawnPoints()
      В итоге при запуске сервера LoadPlayersSpawnPoints() выполнется и запишет в массив m_playersSpawnPoints UID'ы и координат
       
      Добавляем как-то так:
       
      override void OnInit() { //Тут может быть различный код //Тут вызов нашей функции //Load players personal spawn poins LoadPlayersSpawnPoints(); // => m_playersSpawnPoints // "UID", "Position" //Тут может быть различный код }  
      Запустили  сервер и увидели в логе что файл прочитался и все ок
      .... LoadPlayersSpawnPoints() ::: Players personal spawn points count: итд итп
      Или ошибки
      Если ошибки - читаем все еще раз и/или задаем вопросы в теме (НЕ В ЛИЧКЕ!!!) показывая что куда и как Вы прописали
       
      Отлично
      Тормозим в сервер
       
      Продолжение следует минут через 15
       
       
       
       
  • 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.