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

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

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

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

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

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

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

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

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

 

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


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

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

  • 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,новаяПеременная]

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

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

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


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



  • 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,новаяПеременная]

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

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

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

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

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


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

 

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

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

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

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


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

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

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

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


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

 

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

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

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


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

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

да

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


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

да

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

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


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

 

я смотрю, ты знаешь толк в извращениях

А ты знаешь более правильный способ? Я открыт для предложений   

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


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

 

А ты знаешь более правильный способ? Я открыт для предложений

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

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


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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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 */
		];

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

 

 

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

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

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


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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: 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'
       
      Исходный код, если вдруг кто хочет что-то исправить:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Сообщаю сразу, не я разработчик программы, программа выложена в теме для удобства пользователей форума!
       
       
    • Автор: DrTauren
      Ниже написаны правила добавления новой темы в этом разделе, а также форма, по которой нужно оформлять тему.
      Оформил - тебе +. Не оформил - баллы нарушений 
       
      Для удобства читающих нужно нормально описать мод своими словами, добавить скриншоты, перевести описание из мастерской (написать особенности мода), написать инструкцию по установке мода. Пример правильного оформления темы: http://s-platoon.ru/topic/7498-op_baseitems-novye-obekty-dlya-obustroystva-baz/
       
       
      Форма добавления мода:
      Описание мода своими словами Скриншоты из мастерской Особенности: особенность раз особенность два и так далее Инструкция по установке: 1) пункт один 2) пункт два 3) и так далее Ссылка на мод в мастерской
      Благодарю за внимание 
       
    • Автор: virus160381
      Помогите пожалуйста добавить торговца на 1.0.6.2, искал гайды они все старые, на хх51. 
    • Автор: DAP
      Всем привет,прошу помощи,нужны бекапы базы данных сервера ARMA 3 EXILE,Breaking Point,Desolation Redux,нужны для работы с картами(вывод онлаина игроков,и всего прочего).
      Я не прошу никаких паролей и другой информации от ваших серверов и никакого вреда не принесет.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Если кто не знает как это сделать : 
       
    • Автор: AndrewMoore
      Хочу добавить к торговцу армовскую технику , подскажите пожалуйста как это сделать )
  • Наш выбор

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

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

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