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
kinonin

добавить переменную к обьекту в mysql

подредактировал скрипт  который пишет в setVariable,но вот я не понимаю процесс записи переменных в бд, я понял что есть два основных места это Worldspace   и Inventory, но если я начну писать я сдвину порядок значений в парсере, и тогда я что-то сломаю например zsc.

Подправить парсер не сложно,но я поставлю еще какой-нибудь скрипт к примеру paint и всё опять сломается     

Я хотел узнать есть ли нормальный и безопасный способ  сохранять и загружать данные из бд чтобы не мешать другим ?

 

Share this post


Link to post
Share on other sites

16 answers to this question

Recommended Posts

  • 0

просто нужно с умом это делать. все переменные идут по порядку.

пример, кусок кода из sever_monitor:

if( count (_inventory) > 3)then{
	_object setVariable ["bankMoney", _inventory select 3, true];
}else{
	_object setVariable ["bankMoney", 0, true];
};
if (_type in DZE_LockedStorage) then {
	// Fill variables with loot
	_object setVariable ["WeaponCargo", (_inventory select 0),true];
	_object setVariable ["MagazineCargo", (_inventory select 1),true];
	_object setVariable ["BackpackCargo", (_inventory select 2),true];
}

а вот так это лежит в бд:

[[WeaponCargo],[MagazineCargo],[BackpackCargo],bankMoney]

если надо добавить ещё одну переменную, прописываешь необходимые условия, будь то класснейм или что то ещу и берёшь её из бд уже через _inventory  select 4.

в бд она будет:

[[WeaponCargo],[MagazineCargo],[BackpackCargo],bankMoney,новаяПеременная]

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

Edited by dimquea (see edit history)

Share this post


Link to post
Share on other sites



  • 0

просто нужно с умом это делать. все переменные идут по порядку.

пример, кусок кода из sever_monitor:

if( count (_inventory) > 3)then{
	_object setVariable ["bankMoney", _inventory select 3, true];
}else{
	_object setVariable ["bankMoney", 0, true];
};
if (_type in DZE_LockedStorage) then {
	// Fill variables with loot
	_object setVariable ["WeaponCargo", (_inventory select 0),true];
	_object setVariable ["MagazineCargo", (_inventory select 1),true];
	_object setVariable ["BackpackCargo", (_inventory select 2),true];
}

а вот так это лежит в бд:

[[WeaponCargo],[MagazineCargo],[BackpackCargo],bankMoney]

если надо добавить ещё одну переменную, прописываешь необходимые условия, будь то класснейм или что то ещу и берёшь её из бд уже через _inventory  select 4.

в бд она будет:

[[WeaponCargo],[MagazineCargo],[BackpackCargo],bankMoney,новаяПеременная]

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

это как раз о чем я говорил 

Подправить парсер

,и подскажите как корректно сохранять данные.

Share this post


Link to post
Share on other sites
  • 0

 

это как раз о чем я говорил 

,и подскажите как корректно сохранять данные.

более конкретно, что именно тебе нужно делать?

Share this post


Link to post
Share on other sites
  • 0

более конкретно, что именно тебе нужно делать?

мне нужно записать в бд из _vehicle getVariable ("string")
потом читать из бд и ставить _vehicle setVariable ("string")
А хочу чтобы в базе было кто купил транспорт чтобы не искать в логах в базе у кого ключ

Share this post


Link to post
Share on other sites
  • 0

 

мне нужно записать в бд из _vehicle getVariable ("string")
потом читать из бд и ставить _vehicle setVariable ("string")
А хочу чтобы в базе было кто купил транспорт чтобы не искать в логах в базе у кого ключ

я смотрю, ты знаешь толк в извращениях. плеерайди хочешь записывать?

Share this post


Link to post
Share on other sites
  • 0

я смотрю, ты знаешь толк в извращениях. плеерайди хочешь записывать?

да

Share this post


Link to post
Share on other sites
  • 0

да

server_updateObject, server_publishVehicle2(покупка) и server_monitor(спавн при старте). смотри как вешаются и сохраняются переменные и делай так же. там ничего сложного.

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

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

Для личных целей

Share this post


Link to post
Share on other sites
  • 0

я запутался в синтаксисе
RPT:

 

12:00:28 File z\addons\dayz_server\init\AH.sqf, line 8237
12:00:28 Error in expression ['
12:00:28 Error position: <,"undefine")];
['
12:00:28 Error Missing )

12:00:28 File z\addons\dayz_server\init\AH.sqf, line 8237

12:00:29 Error in expression <",0],
 
 
 
_object getVariable ("vehowner",0);
 
 
];
_previous = str(_object getVar>
12:00:29   Error position: <,0);
 
 
];
_previous = str(_object getVar>
12:00:29   Error Missing )
12:00:29 File z\addons\dayz_server\compile\server_updateObject.sqf, line 85
12:00:29 Error in expression <",0],
 
 
 
_object getVariable ("vehowner",0);
 
 
];
_previous = str(_object getVar>
12:00:29   Error position: <,0);
 
 
];
_previous = str(_object getVar>
12:00:29   Error Missing )
12:00:29 File z\addons\dayz_server\compile\server_updateObject.sqf, line 85
 

 

 

 z\addons\dayz_server\init\AH.sqf

 

 

adminspec = {
		private ['_unit'];
		spectatename = _this select 0;
		cutText [format['Spectating %1 - Press F10 to exit. F9 to show Gear!',spectatename], 'PLAIN DOWN'];
		if (isNil 'SpecateLoopActive') then
		{
			SpecateLoopActive = true;
			while {!isNil 'SpecateLoopActive'} do
			{
				uiSleep 0.2;
				{
					if (name _x == spectatename) then
					{
						_unit = _x;
						_veh = (vehicle _unit);
						if (cameraOn != _veh) then {_veh switchCamera cameraView;};
					};
				} forEach playableUnits;
				if (isNull cameraOn) then {player switchCamera cameraView;};
				_log = format['%1 (%2) @%3',name _unit,getPlayerUID _unit,mapGridPosition position _unit];
				['<t align=''left'' size=''0.5'' color=''#1270ee''>'+_log+'</t>',safezoneX+0.2,safezoneY+0.4,1.5,0,0,3033] spawn bis_fnc_dynamicText;
				_log2 = format['Кровь: %1 | Хуманити: %2 | Наличка: %3',(_unit getVariable['USEC_BloodQty',12000]),(_unit getVariable['humanity',0]),(_unit getVariable["CashMoney",0])];
				['<t align=''left'' size=''0.5'' color=''#1270ee''>'+_log2+'</t>',safezoneX+0.2,safezoneY+0.44,1.5,0,0,3034] spawn bis_fnc_dynamicText;
				
				_cwep = '';
				_cammo = '';
				if (!isNull _unit) then
				{
					_wpnstate = weaponState _unit;
					_cwep = _wpnstate select 0;
					_cammo = _wpnstate select 4;
					if (_cwep == '') then
					{
						_log3 = 'unarmed';
						['<t align=''left'' size=''0.5'' color=''#1270ee''>'+_log3+'</t>',safezoneX+0.2,safezoneY+0.48,1.5,0,0,3035] spawn bis_fnc_dynamicText;
					}
					else
					{
						_log3 = format['Оружие: %1 (Аммуниция: %2)',_cwep,_cammo];
						['<t align=''left'' size=''0.5'' color=''#1270ee''>'+_log3+'</t>',safezoneX+0.2,safezoneY+0.48,1.5,0,0,3035] spawn bis_fnc_dynamicText;
					};
				};
				
				_ct = cursorTarget;
				if (!isNull _ct) then
				{
					if (getPlayerUID _ct != '') then
					{
						_wpnstate_ct = weaponState _ct;
						_cwep_ct = _wpnstate_ct select 0;
						_cammo_ct = _wpnstate_ct select 4;
						_log4 = format['%5 | Кровь: %1 | Оружие: %2 (Аммуниция: %3) | Дистанция: %4',(_ct getVariable['USEC_BloodQty',12000]),_cwep_ct,_cammo_ct,round(vehicle _unit distance _ct),name _ct];
						['<t align=''left'' size=''0.5'' color=''#1270ee''>'+_log4+'</t>',safezoneX+0.2,safezoneY+0.54,1.5,0,0,3036] spawn bis_fnc_dynamicText;
					}
					else
					{
						_log4 = format['Тип: %1 | Целостность: %2 | Дистанция: %3|владелец: %4',typeOf _ct,(1-(damage _ct))*100,round(vehicle _unit distance _ct),_ct getVariable ("vehowner","undefine")];
						['<t align=''left'' size=''0.5'' color=''#1270ee''>'+_log4+'</t>',safezoneX+0.2,safezoneY+0.54,1.5,0,0,3036] spawn bis_fnc_dynamicText;
					};
				};
			};
			[] spawn remove_spec_000;
		};
	}; 

 

 

 

 z\addons\dayz_server\compile\server_updateObject.sqf

 

 

_object_inventory = {
	private["_inventory","_previous","_key"];
		_inventory = [
			getWeaponCargo _object,
			getMagazineCargo _object,
			getBackpackCargo _object
			/*ZSC*/
			, _object getVariable["bankMoney",0],
			/*ZSC*/
			/* vehicle owner*/
				
				_object getVariable ("vehowner",0);
				
				/* vehicle owner end */
		];

там ; не нужна в конце, во время публикации обратил внимание 

 

 

помогите пожалуйста 

Edited by kinonin (see edit history)

Share this post


Link to post
Share on other sites
  • 0

ругается не на твою переменную. а на скобку. где то ты что то пропустил

Edited by dimquea (see edit history)

Share this post


Link to post
Share on other sites
  • 0

ругается не на твою переменную. а на скобку. где то ты что то пропустил

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

У меня, это занимает минут 10 каждая проверка 

Share this post


Link to post
Share on other sites
  • 0

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

У меня, это занимает минут 10 каждая проверка 

notepad++ - синтаксис - C++. подсвечивает скобки.

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

в скайп пиши, помогу.

Share this post


Link to post
Share on other sites
  • 0

notepad++ - синтаксис - C++. подсвечивает скобки.

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

в скайп пиши, помогу.

1) да не только в скобках дело ив аргументах так как иногда не понятно где использовать [] а где такие (), где функции в середине пишутся и т.п.

2) я использую git, и мне не удобно редактировать файлы в pbo я могу забыть где что поменял

3)  спасибо учту

Share this post


Link to post
Share on other sites
  • 0

1) да не только в скобках дело ив аргументах так как иногда не понятно где использовать [] а где такие (), где функции в середине пишутся и т.п.

2) я использую git, и мне не удобно редактировать файлы в pbo я могу забыть где что поменял

3)  спасибо учту

[] - всегда массив. надеюсь не нужно объяснять что это. про функции в середине не понял.

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
      Небольшое пояснение:
      Я думаю многие из вас помнят старый добрый Whitelister v3 с армы. Так вот, в данной теме я выложу слегка переработанную версию этого вайтлистера с исходным кодом, которая смогла запуститься и работать на моем сервере.Выкладываю программу вместе с полученным из сети интернет исходным кодом, мало ли, может еще кому-то потребуется исправить что-то.
      Программа работает в связке с MySQL сервером, не требует перезагрузки сервера и программы для обновления данных и практически не нагружает сервер.
       
      Для использования вам понадобится:
      1. Настроенный и готовый к работе сервер игры DayZ с рабочим Rcon-соединением и настроенным паролем Battleye.
      Гайд по установке можете увидеть тут:
      2. Любой MySQL сервер для хранения таблички с данными для программы. Я использовал XAMPP.
      3. Любой клиент для соединения с MySQL сервером (я использовал navicat pro v11)
       
      И так, начинаем устанавливать:
      1. Для начала распаковываем архив с программой в папку сервера и получаем папку 'Whitelister'. Ссылка:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      2. Запускаем наш 'MySQL' клиент для соединения и соединяемся с 'MySQL' сервером.
      3. Создаем базу данных с именем 'whitelist' и типом 'utf8 -- UTF-8 Unicode'

      4. Открываем нашу созданную базу данных двойным кликом по ней

      5. Выделяем базу данных, жмем правой кнопкой мышки и выполняем 'Execute SQL File'. Указываем из папки 'Whitelister' файл 'whitelist.sql' и жмем 'OK'

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

      7. Теперь обновляем список таблиц в базе данных, либо подключаемся заного к базе данных

      8. Открываем таблицу 'whitelist' которая создалась

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      9. Заполняем в открывшейся табличке лишь 2 поля: 'name' и 'guid', где:
      name - никнейм игрока (задается параметром запуска игры '-name= ' у игрока),
      guid - Battleye GUID игрока, который можно увидеть в консоли сервера во время его входа, в любом RCON-клиенте (например, DART, либо в самом окне Whitelister)
      ВАЖНО: Не путайте 'Battleye GUID' с 'BIS ID' игрока при соединении к серверу в консоли сервера игры, они похожи, но это разные данные!
      Для завершения заполнения жмем галочку снизу!

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      10. Открываем в папке 'Whitelister' файлик 'config.txt' и заполняем его информацией о вашем сервере, где:
      host - IP адрес игрового сервера, к которому программа будет соединяться
      port - порт  игрового сервера, к которому программа будет соединяться
      password - battleye  пароль игрового сервера для соединения по RCON, который у вас должен быть заранее задан!
      reason - причина, с которой будет кикать игроков, не состоящих в вайт-листе
      interval - интервал проверки игроков в милисекундах, где 1 секунда = 1000 милисекунд
      sqlHost - IP адрес MYSQL сервера, к которому программа будет соединяться
      sqlPort -  порт MYSQL сервера, к которому программа будет соединяться
      sqlUser -  имя пользователя MYSQL сервера, он же логин MySQL
      sqlPassword - пароль пользователя MYSQL сервера
      sqlDatabase - имя базы данных MYSQL сервера
      sqlTable - имя таблицы в базе данных MYSQL сервера, в которой содержатся данные
      11. Запускаем ваш игровой сервер и Whitelister с файла Whitelister.exe
      12. Входим на сервер и проверяем. Если у вас не соответствует игровой никнейм или Battleye GUID, программа кикнет вас с сервера!
       
      Способ определения Battleye GUID:
      1. Ввести на сайте https://steamid.io/ ссылку на 'Steam-профиль' игрока и нажать 'lookup'
      2. Узнать и записать значение 'steamID64'
      3. Открыть ресурс https://armstalker.com/guid/
      4. Ввести в верхнее поле полученный steamID64 и нажать значек лупы
      5. В нижнем поле получить искомый 'Battleye GUID'
       
      Исходный код, если вдруг кто хочет что-то исправить:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Сообщаю сразу, не я разработчик программы, программа выложена в теме для удобства пользователей форума!
       
       
    • By DrTauren
      Ниже написаны правила добавления новой темы в этом разделе, а также форма, по которой нужно оформлять тему.
      Оформил - тебе +. Не оформил - баллы нарушений 
       
      Для удобства читающих нужно нормально описать мод своими словами, добавить скриншоты, перевести описание из мастерской (написать особенности мода), написать инструкцию по установке мода. Пример правильного оформления темы: http://s-platoon.ru/topic/7498-op_baseitems-novye-obekty-dlya-obustroystva-baz/
       
       
      Форма добавления мода:
      Описание мода своими словами Скриншоты из мастерской Особенности: особенность раз особенность два и так далее Инструкция по установке: 1) пункт один 2) пункт два 3) и так далее Ссылка на мод в мастерской
      Благодарю за внимание 
       
    • By virus160381
      Помогите пожалуйста добавить торговца на 1.0.6.2, искал гайды они все старые, на хх51. 
    • By DAP
      Всем привет,прошу помощи,нужны бекапы базы данных сервера ARMA 3 EXILE,Breaking Point,Desolation Redux,нужны для работы с картами(вывод онлаина игроков,и всего прочего).
      Я не прошу никаких паролей и другой информации от ваших серверов и никакого вреда не принесет.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Если кто не знает как это сделать : 
       
    • By AndrewMoore
      Хочу добавить к торговцу армовскую технику , подскажите пожалуйста как это сделать )
  • 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.