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

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

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

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

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

Всем привет помогите с ошибкой РПТ 

 

 

ОШИБКА

 

switch true do {
case (r_player_bloodpersec <= -50): { _uiNumbe>
  Error position: <r_player_bloodpersec <= -50): { _uiNumbe>
  Error Undefined variable in expression: r_player_bloodpersec
File mpmissions\__CUR_MP.Chernarus\compile\player_updateGui.sqf, line 78
Error in expression <yz_temperatur);

Вот мой player_updateGui.sqf

 

private ["_array","_bloodText","_tempImg","_uiNumber","_blood","_foodLvl","_thirstLvl","_audible","_visual"];
disableSerialization;

_foodVal = 1 - (dayz_hunger / SleepFood);
_thirstVal = 1 - (dayz_thirst / SleepWater);
_tempVal = 1 - ((dayz_temperatur - dayz_temperaturmin)/(dayz_temperaturmax - dayz_temperaturmin));	// Normalise to [0,1]

if (uiNamespace getVariable ['DZ_displayUI', 0] == 1) exitWith {
	_array = [_foodVal,_thirstVal];
	_array
};

_display = uiNamespace getVariable 'DAYZ_GUI_display';

_ctrlBloodOuter = _display displayCtrl 1200;
_ctrlFoodBorder = _display displayCtrl 1201;
_ctrlThirstBorder = _display displayCtrl 1202;
_ctrlTempBorder = _display displayCtrl 1208;

_ctrlBloodOuter ctrlSetTextColor [1,1,1,1];
_ctrlFoodBorder ctrlSetTextColor [1,1,1,1];
_ctrlThirstBorder ctrlSetTextColor [1,1,1,1];
_ctrlTempBorder ctrlSetTextColor [1,1,1,1];

_ctrlBlood = _display displayCtrl 1300;
_ctrlBleed = _display displayCtrl 1303;

_bloodVal = r_player_blood / r_player_bloodTotal;
_ctrlFood = _display displayCtrl 1301;
_ctrlThirst = _display displayCtrl 1302;
_ctrlTemp = _display displayCtrl 1306;

_ctrlEar = _display displayCtrl 1304;
_ctrlEye = _display displayCtrl 1305;

_ctrlFracture = _display displayCtrl 1203;

/*-------------------------------------humanity-----------------------------*/
_humanity = player getVariable["humanity", 0];
_typeHumanity = "";
switch true do
{
    case (_humanity >= 10000)://hero 1
    {
        _typeHumanity = "gui\status_humanity_inside_hero_1.paa";
    };
	case (_humanity <= -10000)://bandit 1
    {
        _typeHumanity = "gui\status_humanity_inside_bandit_1.paa";
    };   	
	default
    {
        _typeHumanity = "gui\st_humanity_survivor.paa";
    };
};
_ctrlHumanity = _display displayCtrl 1311;
_ctrlHumanity ctrlSetText _typeHumanity;

_ctrlTemp ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_tempVal))), (Dayz_GUI_G * _tempVal), _tempVal, 1];	// Color ranges from iceblue (cold) to red (hot) // << Already Done :)
_ctrlBlood ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_bloodVal))),(Dayz_GUI_G * _bloodVal),(Dayz_GUI_B * _bloodVal), 1];
_ctrlFood ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_foodVal))),(Dayz_GUI_G * _foodVal),(Dayz_GUI_B * _foodVal), 1];
_ctrlThirst ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_thirstVal))),(Dayz_GUI_G * _thirstVal),(Dayz_GUI_B * _thirstVal), 1];

_blood = "";
_thirst = "";
_food = "";
_temp = "";
_tempImg = 0;

player setVariable["USEC_BloodQty", r_player_blood, true];

_bloodLvl = round((r_player_blood / 2) / 1000);
_thirstLvl = round(_thirstVal / 0.25);
_foodLvl = round(_foodVal / 0.25);
_tempLvl = round(dayz_temperatur);

switch true do {
	case (r_player_bloodpersec <= -50): { _uiNumber = -3 };										// -3
	case ((r_player_bloodpersec <= -25) and (r_player_bloodpersec > -50)): { _uiNumber = -2 };	// -2
	case ((r_player_bloodpersec < 0) and (r_player_bloodpersec > -25)): { _uiNumber = -1 };		// -1
	case (r_player_bloodpersec == 0): { _uiNumber = 0 };										//  0
	case ((r_player_bloodpersec > 0) and (r_player_bloodpersec < 25)): { _uiNumber = 1 };		//  1
	case ((r_player_bloodpersec >= 25) and (r_player_bloodpersec < 50)): { _uiNumber = 2 };		//  2
	case (r_player_bloodpersec >= 50): { _uiNumber = 3 };										//  3
	default { _uiNumber = 0 };
};

_bloodText = "gui\status_blood_border";

if (r_player_infected) then {
	switch true do {
		case (_uiNumber < 0): { _bloodText = _bloodText + "_down" + str(_uiNumber * -1) + "_sick_ca.paa" };
		case (_uiNumber > 0): { _bloodText = _bloodText + "_up" + str(_uiNumber) + "_sick_ca.paa" };
		default { _bloodText = _bloodText + "_sick_ca.paa" };
	};
} else {
	switch true do {
		case (_uiNumber < 0): { _bloodText = _bloodText + "_down" + str(_uiNumber * -1) + "_ca.paa" };
		case (_uiNumber > 0): { _bloodText = _bloodText + "_up" + str(_uiNumber) + "_ca.paa" };
		default { _bloodText = _bloodText + "_ca.paa" };
	};
};

_ctrlBloodOuter ctrlSetText _bloodText;

if (_bloodLvl <= 0) then {
	_blood = "gui\status_blood_inside_1_ca.paa";
} else {
	_blood = "gui\status_blood_inside_" + str(_bloodLvl) + "_ca.paa";
};

if (_thirstLvl < 0) then { _thirstLvl = 0 };
_thirst = "gui\status_thirst_inside_" + str(_thirstLvl) + "_ca.paa";

if (_foodLvl < 0) then { _foodLvl = 0 };
_food = "gui\status_food_inside_" + str(_foodLvl) + "_ca.paa";

switch true do {
	case (_tempLvl >= 36): { _tempImg = 4 };
	case (_tempLvl > 33 and _tempLvl < 36): { _tempImg = 3 };
	case (_tempLvl >= 30 and _tempLvl <= 33): { _tempImg = 2 };
	case (_tempLvl > 28 and _tempLvl < 30): { _tempImg = 1 };
	default { _tempImg = 0 };
};

_temp = "gui\status_temp_" + str(_tempImg) + "_ca.paa";

_ctrlBlood ctrlSetText _blood;
_ctrlThirst ctrlSetText _thirst;
_ctrlFood ctrlSetText _food;
_ctrlTemp ctrlSetText _temp;

_visual = (dayz_disVisual / 185) min 1;
if (_visual < 0.2) then {_visual = 0.2;};
_ctrlEye  ctrlSetTextColor [1, 1, 1, _visual];

_audible = (dayz_disAudial / 40) min 1;
if (_audible < 0.2) then {_audible = 0.2;};
_ctrlEar ctrlSetTextColor [1, 1, 1, _audible];

if (!(canStand player) and !(ctrlShown _ctrlFracture)) then {
	r_fracture_legs = true;
	_ctrlFracture ctrlShow true;
};

if (_bloodVal < 0.2) then { _ctrlBlood call player_guiControlFlash; };
if (_thirstVal < 0.2) then { _ctrlThirst call player_guiControlFlash; };
if (_foodVal < 0.2) then { _ctrlFood call player_guiControlFlash; };
if (_tempVal > 0.8) then { _ctrlTemp call player_guiControlFlash; } else { _ctrlTemp ctrlShow true; };
if (r_player_injured) then { _ctrlBleed call player_guiControlFlash; };

_targetControl = _display displayCtrl 1199;
_string = "";
_humanityTarget = cursorTarget;
if (!isNull _humanityTarget and isPlayer _humanityTarget and alive _humanityTarget) then {

 _distance = (player distance _humanityTarget);

 if (_distance < DZE_HumanityTargetDistance) then {
  
  _size = (1-(floor(_distance/5)*0.1)) max 0.1;

  _friendlies = player getVariable ["friendlies", []];
  _charID = player getVariable ["CharacterID", "0"];
  _rcharID = _humanityTarget getVariable ["CharacterID", "0"];
  _rfriendlies = _humanityTarget getVariable ["friendlies", []];
  _rfriendlyTo = _humanityTarget getVariable ["friendlyTo", []];
   
  if ((_rcharID in _friendlies) and (_charID in _rfriendlies)) then {

   if (!(_charID in _rfriendlyTo)) then {

    _rfriendlyTo set [count _rfriendlyTo, _charID];
    _humanityTarget setVariable ["friendlyTo", _rfriendlyTo, true];
   };
 
   _color = "color='#339933'";
   _string = format["<t %2 align='center' size='%3'>%1</t>",(name _humanityTarget),_color,_size];
  
  } else {

   _humanity = _humanityTarget getVariable ["humanity",0];

   _color = "color='#ffffff'";
   if(_humanity < -10000) then {
    _color = "color='#ff0000'";
   } else {
    if(_humanity > 10000) then {
     _color = "color='#3333ff'";
    };
   };
   if(_humanityTarget getVariable ["DZE_display_name", false]) then {
    _string = format["<t %2 align='center' size='%3'>%1</t>",(name _humanityTarget),_color,_size];
   };
  };
 };
};

if (dayz_humanitytarget != _string) then {
 _targetControl ctrlSetStructuredText (parseText _string);
 dayz_humanitytarget = _string;
};

_array = [_foodVal,_thirstVal];
_array

 

 

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


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

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

  • 0

 

"Error Undefined variable in expression: r_player_bloodpersec"

Определи r_player_bloodpersec -1; в variables.sqf  в блок кода dayz_resetSelfActions = {

Зачем это туда?

Ну,а куда? в //Initialize Medical Variables? r_player_bloodpersec= -50; ?

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


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





  • 0

 

Всем привет помогите с ошибкой РПТ 

 

 

ОШИБКА

 

switch true do {
case (r_player_bloodpersec <= -50): { _uiNumbe>
  Error position: <r_player_bloodpersec <= -50): { _uiNumbe>
  Error Undefined variable in expression: r_player_bloodpersec
File mpmissions\__CUR_MP.Chernarus\compile\player_updateGui.sqf, line 78
Error in expression <yz_temperatur);

Вот мой player_updateGui.sqf

 

private ["_array","_bloodText","_tempImg","_uiNumber","_blood","_foodLvl","_thirstLvl","_audible","_visual"];
disableSerialization;

_foodVal = 1 - (dayz_hunger / SleepFood);
_thirstVal = 1 - (dayz_thirst / SleepWater);
_tempVal = 1 - ((dayz_temperatur - dayz_temperaturmin)/(dayz_temperaturmax - dayz_temperaturmin));	// Normalise to [0,1]

if (uiNamespace getVariable ['DZ_displayUI', 0] == 1) exitWith {
	_array = [_foodVal,_thirstVal];
	_array
};

_display = uiNamespace getVariable 'DAYZ_GUI_display';

_ctrlBloodOuter = _display displayCtrl 1200;
_ctrlFoodBorder = _display displayCtrl 1201;
_ctrlThirstBorder = _display displayCtrl 1202;
_ctrlTempBorder = _display displayCtrl 1208;

_ctrlBloodOuter ctrlSetTextColor [1,1,1,1];
_ctrlFoodBorder ctrlSetTextColor [1,1,1,1];
_ctrlThirstBorder ctrlSetTextColor [1,1,1,1];
_ctrlTempBorder ctrlSetTextColor [1,1,1,1];

_ctrlBlood = _display displayCtrl 1300;
_ctrlBleed = _display displayCtrl 1303;

_bloodVal = r_player_blood / r_player_bloodTotal;
_ctrlFood = _display displayCtrl 1301;
_ctrlThirst = _display displayCtrl 1302;
_ctrlTemp = _display displayCtrl 1306;

_ctrlEar = _display displayCtrl 1304;
_ctrlEye = _display displayCtrl 1305;

_ctrlFracture = _display displayCtrl 1203;

/*-------------------------------------humanity-----------------------------*/
_humanity = player getVariable["humanity", 0];
_typeHumanity = "";
switch true do
{
    case (_humanity >= 10000)://hero 1
    {
        _typeHumanity = "gui\status_humanity_inside_hero_1.paa";
    };
	case (_humanity <= -10000)://bandit 1
    {
        _typeHumanity = "gui\status_humanity_inside_bandit_1.paa";
    };   	
	default
    {
        _typeHumanity = "gui\st_humanity_survivor.paa";
    };
};
_ctrlHumanity = _display displayCtrl 1311;
_ctrlHumanity ctrlSetText _typeHumanity;

_ctrlTemp ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_tempVal))), (Dayz_GUI_G * _tempVal), _tempVal, 1];	// Color ranges from iceblue (cold) to red (hot) // << Already Done :)
_ctrlBlood ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_bloodVal))),(Dayz_GUI_G * _bloodVal),(Dayz_GUI_B * _bloodVal), 1];
_ctrlFood ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_foodVal))),(Dayz_GUI_G * _foodVal),(Dayz_GUI_B * _foodVal), 1];
_ctrlThirst ctrlSetTextColor [(Dayz_GUI_R + (0.3 * (1-_thirstVal))),(Dayz_GUI_G * _thirstVal),(Dayz_GUI_B * _thirstVal), 1];

_blood = "";
_thirst = "";
_food = "";
_temp = "";
_tempImg = 0;

player setVariable["USEC_BloodQty", r_player_blood, true];

_bloodLvl = round((r_player_blood / 2) / 1000);
_thirstLvl = round(_thirstVal / 0.25);
_foodLvl = round(_foodVal / 0.25);
_tempLvl = round(dayz_temperatur);

switch true do {
	case (r_player_bloodpersec <= -50): { _uiNumber = -3 };										// -3
	case ((r_player_bloodpersec <= -25) and (r_player_bloodpersec > -50)): { _uiNumber = -2 };	// -2
	case ((r_player_bloodpersec < 0) and (r_player_bloodpersec > -25)): { _uiNumber = -1 };		// -1
	case (r_player_bloodpersec == 0): { _uiNumber = 0 };										//  0
	case ((r_player_bloodpersec > 0) and (r_player_bloodpersec < 25)): { _uiNumber = 1 };		//  1
	case ((r_player_bloodpersec >= 25) and (r_player_bloodpersec < 50)): { _uiNumber = 2 };		//  2
	case (r_player_bloodpersec >= 50): { _uiNumber = 3 };										//  3
	default { _uiNumber = 0 };
};

_bloodText = "gui\status_blood_border";

if (r_player_infected) then {
	switch true do {
		case (_uiNumber < 0): { _bloodText = _bloodText + "_down" + str(_uiNumber * -1) + "_sick_ca.paa" };
		case (_uiNumber > 0): { _bloodText = _bloodText + "_up" + str(_uiNumber) + "_sick_ca.paa" };
		default { _bloodText = _bloodText + "_sick_ca.paa" };
	};
} else {
	switch true do {
		case (_uiNumber < 0): { _bloodText = _bloodText + "_down" + str(_uiNumber * -1) + "_ca.paa" };
		case (_uiNumber > 0): { _bloodText = _bloodText + "_up" + str(_uiNumber) + "_ca.paa" };
		default { _bloodText = _bloodText + "_ca.paa" };
	};
};

_ctrlBloodOuter ctrlSetText _bloodText;

if (_bloodLvl <= 0) then {
	_blood = "gui\status_blood_inside_1_ca.paa";
} else {
	_blood = "gui\status_blood_inside_" + str(_bloodLvl) + "_ca.paa";
};

if (_thirstLvl < 0) then { _thirstLvl = 0 };
_thirst = "gui\status_thirst_inside_" + str(_thirstLvl) + "_ca.paa";

if (_foodLvl < 0) then { _foodLvl = 0 };
_food = "gui\status_food_inside_" + str(_foodLvl) + "_ca.paa";

switch true do {
	case (_tempLvl >= 36): { _tempImg = 4 };
	case (_tempLvl > 33 and _tempLvl < 36): { _tempImg = 3 };
	case (_tempLvl >= 30 and _tempLvl <= 33): { _tempImg = 2 };
	case (_tempLvl > 28 and _tempLvl < 30): { _tempImg = 1 };
	default { _tempImg = 0 };
};

_temp = "gui\status_temp_" + str(_tempImg) + "_ca.paa";

_ctrlBlood ctrlSetText _blood;
_ctrlThirst ctrlSetText _thirst;
_ctrlFood ctrlSetText _food;
_ctrlTemp ctrlSetText _temp;

_visual = (dayz_disVisual / 185) min 1;
if (_visual < 0.2) then {_visual = 0.2;};
_ctrlEye  ctrlSetTextColor [1, 1, 1, _visual];

_audible = (dayz_disAudial / 40) min 1;
if (_audible < 0.2) then {_audible = 0.2;};
_ctrlEar ctrlSetTextColor [1, 1, 1, _audible];

if (!(canStand player) and !(ctrlShown _ctrlFracture)) then {
	r_fracture_legs = true;
	_ctrlFracture ctrlShow true;
};

if (_bloodVal < 0.2) then { _ctrlBlood call player_guiControlFlash; };
if (_thirstVal < 0.2) then { _ctrlThirst call player_guiControlFlash; };
if (_foodVal < 0.2) then { _ctrlFood call player_guiControlFlash; };
if (_tempVal > 0.8) then { _ctrlTemp call player_guiControlFlash; } else { _ctrlTemp ctrlShow true; };
if (r_player_injured) then { _ctrlBleed call player_guiControlFlash; };

_targetControl = _display displayCtrl 1199;
_string = "";
_humanityTarget = cursorTarget;
if (!isNull _humanityTarget and isPlayer _humanityTarget and alive _humanityTarget) then {

 _distance = (player distance _humanityTarget);

 if (_distance < DZE_HumanityTargetDistance) then {
  
  _size = (1-(floor(_distance/5)*0.1)) max 0.1;

  _friendlies = player getVariable ["friendlies", []];
  _charID = player getVariable ["CharacterID", "0"];
  _rcharID = _humanityTarget getVariable ["CharacterID", "0"];
  _rfriendlies = _humanityTarget getVariable ["friendlies", []];
  _rfriendlyTo = _humanityTarget getVariable ["friendlyTo", []];
   
  if ((_rcharID in _friendlies) and (_charID in _rfriendlies)) then {

   if (!(_charID in _rfriendlyTo)) then {

    _rfriendlyTo set [count _rfriendlyTo, _charID];
    _humanityTarget setVariable ["friendlyTo", _rfriendlyTo, true];
   };
 
   _color = "color='#339933'";
   _string = format["<t %2 align='center' size='%3'>%1</t>",(name _humanityTarget),_color,_size];
  
  } else {

   _humanity = _humanityTarget getVariable ["humanity",0];

   _color = "color='#ffffff'";
   if(_humanity < -10000) then {
    _color = "color='#ff0000'";
   } else {
    if(_humanity > 10000) then {
     _color = "color='#3333ff'";
    };
   };
   if(_humanityTarget getVariable ["DZE_display_name", false]) then {
    _string = format["<t %2 align='center' size='%3'>%1</t>",(name _humanityTarget),_color,_size];
   };
  };
 };
};

if (dayz_humanitytarget != _string) then {
 _targetControl ctrlSetStructuredText (parseText _string);
 dayz_humanitytarget = _string;
};

_array = [_foodVal,_thirstVal];
_array

 

"Error Undefined variable in expression: r_player_bloodpersec"

Определи r_player_bloodpersec -1; в variables.sqf  в блок кода dayz_resetSelfActions = {

 

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

Подозреваю что все в том же variables.sqf нужно изменить переменные

	//temperature variables
	dayz_temperatur 		= 	36;		//TeeChange
	dayz_temperaturnormal 	        = 	36;		//TeeChange
	dayz_temperaturmax 		= 	42;		//TeeChange
	dayz_temperaturmin 		= 	27;		//TeeChange

Так как в скрипте они у тебя отличаются,попробуй так:

	//temperature variables
	dayz_temperatur 		= 	36;		//TeeChange
	dayz_temperaturnormal 	        =       33;		//TeeChange
	dayz_temperaturmax 		= 	30;		//TeeChange
	dayz_temperaturmin 		= 	28;		//TeeChange

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


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

 

"Error Undefined variable in expression: r_player_bloodpersec"

Определи r_player_bloodpersec -1; в variables.sqf  в блок кода dayz_resetSelfActions = {

 

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

Подозреваю что все в том же variables.sqf нужно изменить переменные

	//temperature variables
	dayz_temperatur 		= 	36;		//TeeChange
	dayz_temperaturnormal 	        = 	36;		//TeeChange
	dayz_temperaturmax 		= 	42;		//TeeChange
	dayz_temperaturmin 		= 	27;		//TeeChange

Так как в скрипте они у тебя отличаются,попробуй так:

	//temperature variables
	dayz_temperatur 		= 	36;		//TeeChange
	dayz_temperaturnormal 	        =       33;		//TeeChange
	dayz_temperaturmax 		= 	30;		//TeeChange
	dayz_temperaturmin 		= 	28;		//TeeChange

"Error Undefined variable in expression: r_player_bloodpersec"

Определи r_player_bloodpersec -1; в variables.sqf  в блок кода dayz_resetSelfActions = {

Зачем это туда?

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


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

Ну,а куда? в //Initialize Medical Variables? r_player_bloodpersec= -50; ?

 //Initialize Medical Variables - это просто комментарий....

После этого можешь писать call dayz_resetSelfActions;

Ну, по крайней мере я так делаю)))

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


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

 //Initialize Medical Variables? r_player_bloodpersec= -50; вот это помогло СПАСИБО __)

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


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

 //Initialize Medical Variables? r_player_bloodpersec= -50; вот это помогло СПАСИБО __)

Не за что,рад был помочь  :smile:

 

 //Initialize Medical Variables - это просто комментарий....

После этого можешь писать call dayz_resetSelfActions;

Ну, по крайней мере я так делаю)))

Я знаю,что это комментарий. Я имел ввиду под него.

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


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

Не за что,рад был помочь  :smile:

 

Я знаю,что это комментарий. Я имел ввиду под него.

ну да)) Можно и под него)

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
    • Автор: 123new
      Вижу крайне много любопытных вопросов по поводу идентификаторов игрока в игре. Что же, разжую для не знающих немного.
       
      В игре есть следующие типы идентификаторов:
      1. Steam64ID идентификатор профиля игрока (на пиратках его UID называют), примерно такой: 765475....65 (17 цифр).
      2. Так называемый мною, BIS ID - uid из окна (консоли) сервера игры и ADM-файлов логов сервера, который пишется самой игрой
      3. Battleye GUID игрока.
       
      Первый идентификатор (Steam64ID) на ПК является прямым идентификатором стим-профиля игрока, уникальным у каждого игрока. Т.е. публичным идентификатором вашего профиля для большинства стим-игр (например, Counter-Strike).
      Второй идентификатор (BIS ID) является определенной хеш-суммой, полученной из Steam64ID посредством конвертации сначала в sha256, а затем в base64. Спасибо за это разъяснение и пример кода-конвертации авторам игры на своем официальном форуме.
      Третий идентификатор (Battleye GUID) является публичным идентификатором Battleye античита, получаемый также из Steam64ID поcредством получения его хеш-суммы MD5. Этот же идентификатор есть в логах сервера от Battleye, в любых RCON-приложениях (DART, BEC и т.п.), также его можно конвертировать самим.
       
      Так вот, как же получить Steam64ID:
      1. Зайти на любой ресурс, предназначенный для сбора таких данных. например на: https://steamid.io/
      2. Ввести ссылку на ваш стим-профиль
      3. Получить результат из кучи данных, одно поле из которых и будет содержать ваш Steam64ID
       
      Как получить BIS ID:
      1. Открыть любой Phyton v2.7 -конвертер в интернете, например: https://onecompiler.com/python2/3ycz55xew
      2. Ввести в него следующий код:
      # Hello World program in Python from hashlib import sha256 from base64 import b64encode def construct_bi_uid(steam_id): hashed = sha256() hashed.update(str(steam_id)) return b64encode(hashed.digest()) print construct_bi_uid(76514925976798981) 3. заменить 76514925976798981 на ваш Steam64ID
      4. Отправить код в исполнение, нажав Execute.
      5. Получить результат
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      [Альтернатива] Метод на основе PHP:
      <?php /** * This is how you get user id (bohemia id) like you see in .ADM files from steam id. */ $steam_id = "76514925976798981"; $user_id = base64url_encode(hash('sha256', $steam_id, true)); function base64url_encode($data) { $b64 = base64_encode($data); if ($b64 === false) { return false; } $url = strtr($b64, '+/', '-_'); return $url; } echo $user_id; [Альтернатива] Метод для javascript - node.js:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result);  
      Как получить Battleye GUID:
      1. Открыть любой ресурс с готовой формой конвертирования, например:
      https://armstalker.com/guid/
      https://dayzrussia.com/f/index.php?pages/dayzguid/
      либо написать свою, на основе данных, предложенных на странице Github
      https://gist.github.com/chris579/53053b6d6438df9a9718c23c0d6bbd69
      Оставлю ниже код для Phyton:
      # Thanks to gunlinux import md5 steamid=76514925976798981 temp = "" for i in range(8): temp += chr((steamid & 0xFF)) steamid >>= 8 m = md5.new("BE"+temp) print m.hexdigest() Код для PHP:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result); '2. Вставить в поле ввода UID(Steam64ID) ваш Steam64ID
      3. Нажать кнопку конвертирования или исполнить код, и получить в готовом виде Battleye GUID
       
      Возможно имеются и другие методы и наработки в получении данных идентификаторов более простыми методами, на других языках, либо автоматически. Я описал лишь известные мне.
      Все желающие могут добавить в комментариях свои способы конвертаций, возможно это поможет кому-либо.
    • Автор: 6agu
      Поставил
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
  • Наш выбор

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

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

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