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

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

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

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

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

[AuctionHouse] - Аукцион на Вашем сервере (торговля между игроками)

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

Для апдейта старой версии просто заменить файлы или что то переписывать нужно?

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


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





Заменить клиентские файлы - те, что в MPmission.

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


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

Заменить клиентские файлы - те, что в MPmission.

А скинули на epochmod.com фикс?

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


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

Я не имею там регистрации. Если есть возможность-буду благодарен. Второй взял кстати у них-первый сам нашел.

 

claimmoney.sqf

private["_claimLastUsedTime","_claimTime","_money"];

--------------------------------------------------------------------------------------------------------------

player setVariable ["cashMoney",(_money+PVDZE_claimmoneyResult),true];

 

player_buyitem.sqf

 

private["_item","_msg","_config","_configName","_wepType","_isPistol","_secondaryWeapon","_isRifle","_isToolBelt","_isBinocs","_abort","_emptySlots","_free_magazine_slots","_added","_money"];

 

--------------------------------------------------------------------------------------------------------------

        cutText [(localize "STR_DAYZ_CODE_2"), "PLAIN DOWN"];

    };
     _abort = false;
};

 

Про анимацию медика думаю нет смысла писать. 

claimmoney.sqf   player_buyitem.sqf   player_sellitem.sqf

player playActionNow "Medic";
sleep 5;

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


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

Всем привет)

 

Я нашел 1 баг:

 

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

Тем самым дюпается.

 

Это можно исправить?

 

Заранее спасибо.

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


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

Можно по подробнее вот об этом?!

 

В строке: extDB" callExtension "9:DATABASE:Database2 заменяем Database2 на Databaseconfig, который вы укажете в extdb-conf.ini

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


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

extdb-conf.ini 

 

[DatabaseCherno]

Type = MySQL
Name = dayz_epoch
Username = root
Password = 12345
IP = localhost
Port = 3306
 
minSessions = 1
maxSessions = 4
idleTime = 60

и

server_functions.sqf

 

//DB

"extDB" callExtension "9:DATABASE:DatabaseCherno";
"extDB" callExtension format["9:ADD:DB_RAW_V2:%1",1];
"extDB" callExtension "9:LOCK";

 

DatabaseCherno  = и там и там одно должно быть имя!

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


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

Спасибо! Теперь другая проблема: товар на аукцион выставляется, в БД в таблице store появляется,но в игре пишет нет товаров. кто знает в чем может быть проблема? Подскажите пожалуйста! может у кого было такое

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


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

ну он тебе и не покажет твои товары. только те, что выставили другие игроки.

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


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

Ясненько,спасибо за гайд!

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


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

Исправленная, переведённая и дополненная установка аукциона

 

 

Что необходимо для работы скрипта: extDB и архив аукциона (во вложении исправленный).

Оригинал: http://epochmod.com/forum/index.php?/topic/33842-release-auction-house-mmo-style/

 

Итак, начнем установку:

 

dayz_server.pbo

1) в файле: server_functions.sqf (в папке init)

Вставляем этот текст:

//DB
"extDB" callExtension "9:DATABASE:Database2";
"extDB" callExtension format["9:ADD:DB_RAW_V2:%1",1];
"extDB" callExtension "9:LOCK";

После этого:

onPlayerDisconnected {[_uid,_name] call server_onPlayerDisconnect;}; 

 

В этом же файле находим:

server_maintainArea = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_maintainArea.sqf";

Ниже добавляем:

server_buyitem = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\store\server_buyitem.sqf";
server_sellitem = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\store\server_sellitem.sqf";
server_claimprice = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\store\server_claimprice.sqf";
server_queryStoreitems = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\store\server_queryStoreitems.sqf"; 

 

 

2) Из архива копируем: fn_async.sqf в папку compile сервера.

 

3) Также в server_function.sqf:

 

Добавляем:

fn_asyncCall = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fn_async.sqf";

После:

server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf"; 

 

4) Копируем папку "store" из скачанного архива в compiles сервера.

 

 

Mission.pbo

5) В кастомном файле Compiles.sqf:

Добавляем это: 

player_claimmoney = compile preprocessFileLineNumbers "custom\scripts\auctionhouse\claimmoney.sqf";
player_sellitem = compile preprocessFileLineNumbers "custom\scripts\auctionhouse\player_sellitem.sqf";
player_buyitem = compile preprocessFileLineNumbers "custom\scripts\auctionhouse\player_buyitem.sqf"; 

Под этим:

// trader menu code
	if (DZE_ConfigTrader) then {
		call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuConfig.sqf";
	}else{
		call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuHive.sqf";
	}; 

 

6) В кастомном файле  fn_selfactions.sqf:

- Добавляем:

//Auctionhouse
if(_typeOfCursorTarget in serverTraders && (player distance _cursorTarget < 5)) then {
if (s_auction_dialog2 < 0) then {
s_auction_dialog2 = player addAction ["Buy Items from the Auctionhouse", "custom\scripts\auctionhouse\item_dialog.sqf",_cursorTarget, 0, true, false, "", ""];
};
if (s_auction_dialog < 0) then {
s_auction_dialog = player addAction ["Sell Items to the Auctionhouse", "custom\scripts\auctionhouse\item_sell_list.sqf",_cursorTarget, 0, true, false, "", ""];
};
if (s_auction_claim < 0) then {
s_auction_claim = player addAction ["Claim your Money", "custom\scripts\auctionhouse\claimmoney.sqf",_cursorTarget, 0, true, false, "", ""];
};
} else {
player removeAction s_auction_dialog2;
s_auction_dialog2 = -1;
player removeAction s_auction_dialog;
s_auction_dialog = -1;
player removeAction s_auction_claim;
s_auction_claim = -1;
};

После:

	if(_cursorTarget == dayz_hasFire) then {
		if ((s_player_fireout < 0) && !(inflamed _cursorTarget) && (player distance _cursorTarget < 3)) then {
			s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget, 0, false, true, "",""];
		};
	} else {
		player removeAction s_player_fireout;
		s_player_fireout = -1;
	};

 

 

- Добавляем:

player removeAction s_auction_dialog2;
s_auction_dialog2 = -1;
player removeAction s_auction_dialog;
s_auction_dialog = -1;
player removeAction s_auction_claim;
s_auction_claim = -1;

После:

player removeAction s_player_downgrade_build;
s_player_downgrade_build = -1;

 

7) В кастомном файле  variables.sqf:

Добавляем:

s_auction_dialog2 = -1;
s_auction_dialog = -1;
s_auction_claim = -1; 

В самый низ секции

dayz_resetSelfActions = { 

 

8) Если необходимо - создаём папку scripts в папке custom и копируем туда папку "auctionhouse".

 

9) В файле description.ext

Добавляем:

#include "custom\scripts\auctionhouse\common.hpp"
#include "custom\scripts\auctionhouse\itemstore.hpp" 

В самый низ.

 

10) В файле description.ext могут быть вставлены уже ваши .hpp  - тут каждому придется разбираться самостоятельно . 

 

11) В кастомном файле publicEH.sqf

Добавляем:

"PVDZE_getStoreitems" addPublicVariableEventHandler {(_this select 1) spawn server_queryStoreitems};
"PVDZE_sellItem" addPublicVariableEventHandler {(_this select 1) spawn server_sellitem};
"PVDZE_buyItem" addPublicVariableEventHandler {(_this select 1) spawn server_buyitem};
"PVDZE_claimmoney" addPublicVariableEventHandler {(_this select 1) spawn server_claimprice}; 

После:

if(isServer) then { part: (like below "PVDZE_plr_DeathB" addPublicVariableEventHandler {(_this select 1) spawn server_deaths}; 

 

База Данных

12) Заходим в БД, которую вы выбрали в extDB config и экспортируем database.sql из загруженного ранее архива.

 

В Базе данных появятся таблицы:

store

store_user

В которых и будет храниться весь аукцион (store_user-кто продает, store-итемы для продажи и цена).

 

 

Battleye:

13) Открываем: publicvariable.txt

 

Находим (4-я строка) :

5 "PVDZE_" 

Сразу после этого кода добавляем:

!"PVDZE_sellItem" !="PVDZE_sellItem" !"PVDZE_buyItem" !="PVDZE_buyItem" !"PVDZE_claimmoney" !="PVDZE_claimmoney" !"PVDZE_getStoreitems" !="PVDZE_getStoreitems" 

 

 infiSTAR:

В infiSTAR вносим разрешённые диалоги:

"s_auction_dialog2","s_auction_dialog","s_auction_claim" 

 В infiSTAR вносим разрешённые меню:

7800,8800

 

База extDB

 

Копируем папку @extDB в корень Arma II.

Должно получиться:

@DayZ_Epoch

@DayZ_Epoch_Server

@extDB

 

 

Открываем в ней файл extdb-conf.ini и меняем в нём параметры вашей БД. Для примера указал свои.

[Database2]
Type = MySQL
Name = dayz_epoch
Username = root
Password = 12345
IP = localhost
Port = 3306

Database2 :

extdb-conf.ini

 

 

и

server_functions.sqf

 

 

 

Database2 = и там и там одно должно быть имя!  

 

Если у вас не один сервер-то параметры можно указывать не один раз. Просто копируем приведённую секция в extdb-conf.ini и даём другое имя (например, Database_845). 

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

 

после отладки и корректной работы также можно поменять в этом файле Filter = 2 на Filter = 5 - чтобы писались только критические ошибки.

 

Если необходимо привязать аукцион к конкретному торговцу, то в fn_selfactions.sqf вместо

//Auctionhouse
if(_typeOfCursorTarget in serverTraders && (player distance _cursorTarget < 5)) then { 

пишем

//Auctionhouse
if ((_typeOfCursorTarget == "Ins_Woodlander3") && (player distance _cursorTarget < 5)) then {

где "Ins_Woodlander3" - это Ваш торговец.

 

Запуск сервера теперь производится с такими параметрами: -mod=@DayZ_Epoch;@DayZ_Epoch_Server;@extDB;

 

Данный аукцион НЕ будет показывать Вам ваши товары! Только те, что продаёт другой игрок!

 

Скрипт полностью проверен несколькими игроками-работает 100%.   :wink:

Найдена, разобрана и проверена база extDB.

Предыдущий гайд дописан вполовину, потому создан новый. Автору респект.

 

Первое обновление скрипта (фиксы):

-Исправлена ошибка переменной _pice на _price.

-Добавлены необъявленные переменные.

-Русификация полная.  

 

Очередное обновление скрипта от 08.07.2015 (фиксы):

-Добавлена недостающая переменная "_money" в клиентскую часть.

-Добавлена анимация Medic при покупке\продаже\изъятии выручки (кому не нравится-удалите).

-Исправлен сбой в подсчёте денег при изъятии выручки - SC3.0 выдавал SCALAR вместо суммы (была ошибка в скрипте).

-Добавлена недостающая часть кода в файл скрипта покупки - спамило в клиентский лог.

 

На сегодня лог чистый.

 

База не прикреплется-размер большой. Выкладываю её на яндекс.

https://yadi.sk/d/c6GsbESwhPXL3   extDB.7z

 

Прикрепил новые оригинальную и переведённую версии.

НЕ могу нигде скачать ни на этом сайте ни на оригинальном! Залейте пожалуйста хотя бы английскую версию

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


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

https://yadi.sk/d/mPyO6P1uijbtF

https://yadi.sk/d/H9wyIyjnidMwA

https://yadi.sk/d/c6GsbESwhPXL3

Стартовый пост редактировать не могу-прикрепляю ссылки на файлы здесь.

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


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

https://yadi.sk/d/mPyO6P1uijbtF

https://yadi.sk/d/H9wyIyjnidMwA

https://yadi.sk/d/c6GsbESwhPXL3

Стартовый пост редактировать не могу-прикрепляю ссылки на файлы здесь.

cпасибо

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


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

Такая проблема: 
В БД поpназванием store, всё появляется. (вещи которые продаёшь)
А вот в store_user пусто.... не чего не появляется. 
И нет товара....  :sad: 
RPT ошибок нет. 
И вот такая ошибка (скрин)

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

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


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

на скрине пишется, что не всё указано в дескрипшне. проверьте пошагаво все действия.

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


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

У меня чего то  не работает! С инвентаря лут исчезает когда хочу продать а в базе данных не появляется. Можете подробнее расписать как настроить extDB

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


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

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

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


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

Прежде всего хочу сказать большое спасибо за подробный гайд KOMS !

 

 

Такая проблема: 
В БД поpназванием store, всё появляется. (вещи которые продаёшь)
А вот в store_user пусто.... не чего не появляется. 
И нет товара....  :sad: 
RPT ошибок нет. 
И вот такая ошибка (скрин)

 

В таблице store_user появляется товар который уже купили.

 

Верни файлы common и itemstore на те которые скачал отсюда

В них на конфликтующие классы добавь приписку например _auc , например:

 

Было:

Life_RscText

 

Стало:

Life_RscText_auc

 

Я пробовал удалять конфликтующие классы, но решилось только так.

 

Либо вот тебе сами файлы с которыми все работает и не конфликтует:

 

common.hpp:

 

 

class Life_RscText_auc {
	x = 0;
	y = 0;
	h = 0.037;
	w = 0.3;
	type = 0;
	style = 0;
	shadow = 1;
	colorShadow[] = {0, 0, 0, 0.5};
	font = "Zeppelin32";
	SizeEx = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
	text = "";
	colorText[] = {1, 1, 1, 1.0};
	colorBackground[] = {0, 0, 0, 0};
	linespacing = 1;
	tooltipColorText[] = {1,1,1,1};
	tooltipColorBox[] = {1,1,1,1};
	tooltipColorShade[] = {0,0,0,0.65};
};

class Life_RscTitle_auc : Life_RscText_auc {
	style = 0;
	sizeEx = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
	colorText[] = {0.95, 0.95, 0.95, 1};
};

class Life_RscShortcutButton_auc {
	idc = -1;
	style = 0;
	default = 0;
	shadow = 1;
	w = 0.183825;
	h = "(		(		((safezoneW / safezoneH) min 1.2) / 1.2) / 20)";
	color[] = {1,1,1,1.0};
	colorFocused[] = {1,1,1,1.0};
	color2[] = {0.95,0.95,0.95,1};
	colorDisabled[] = {1,1,1,0.25};
	colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1};
	colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1};
	colorBackground2[] = {1,1,1,1};
	animTextureDefault = "gza\scripts\gold\gui\normal_ca.paa";
	animTextureNormal = "gza\scripts\gold\gui\normal_ca.paa";
	animTextureDisabled = "gza\scripts\gold\gui\normal_ca.paa";
	animTextureOver = "gza\scripts\gold\gui\over_ca.paa";
	animTextureFocused = "gza\scripts\gold\gui\focus_ca.paa";
	animTexturePressed = "gza\scripts\gold\gui\down_ca.paa";
	periodFocus = 1.2;
	periodOver = 0.8;
	class HitZone
	{
		left = 0.0;
		top = 0.0;
		right = 0.0;
		bottom = 0.0;
	};
	class ShortcutPos
	{
		left = 0;
		top = "(			(		(		((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - 		(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
		w = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
		h = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
	};
	class TextPos
	{
		left = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
		top = "(			(		(		((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - 		(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
		right = 0.005;
		bottom = 0.0;
	};
	period = 0.4;
	font = "Zeppelin32";
	size = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
	sizeEx = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
	text = "";
	action = "";
	class Attributes
	{
		font = "Zeppelin32";
		color = "#E5E5E5";
		align = "left";
		shadow = "true";
	};
	class AttributesImage
	{
		font = "Zeppelin32";
		color = "#E5E5E5";
		align = "left";
	};
	
	soundPush[] = { "", 0, 1 };
	soundEnter[] =	{ "", 0, 1 };
	soundClick[] ={ "", 0, 1 };
	soundEscape[] ={ "", 0, 1 };
	sound[] ={ "", 0, 1 };
};

class Life_RscButtonMenu_auc : Life_RscShortcutButton_auc {
	idc = -1;
	type = 16;
	style = "0x02 + 0xC0";
	default = 0;
	shadow = 0;
	x = 0;
	y = 0;
	w = 0.095589;
	h = 0.039216;
	animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)";
	animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)";
	animTextureOver = "#(argb,8,8,3)color(1,1,1,1)";
	animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
	animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
	animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
	colorBackground[] = {0,0,0,0.8};
	colorBackgroundFocused[] = {1,1,1,1};
	colorBackground2[] = {0.75,0.75,0.75,1};
	color[] = {1,1,1,1};
	colorFocused[] = {0,0,0,1};
	color2[] = {0,0,0,1};
	colorText[] = {1,1,1,1};
	colorDisabled[] = {1,1,1,0.25};
	period = 1.2;
	periodFocus = 1.2;
	periodOver = 1.2;
	size = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
	sizeEx = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
	tooltipColorText[] = {1,1,1,1};
	tooltipColorBox[] = {1,1,1,1};
	tooltipColorShade[] = {0,0,0,0.65};
	class TextPos
	{
		left = "0.25 * 			(			((safezoneW / safezoneH) min 1.2) / 40)";
		top = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - 		(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
		right = 0.005;
		bottom = 0.0;
	};
	class Attributes
	{
		font = "Zeppelin32";
		color = "#E5E5E5";
		align = "left";
		shadow = "false";
	};
	class ShortcutPos
	{
		left = "(6.25 * 			(			((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005";
		top = 0.005;
		w = 0.0225;
		h = 0.03;
	};
	textureNoShortcut = "";
};

class Life_RscListBox_auc 
{
	style = 16;
	idc = -1;
	type = 5;
	w = 0.275;
	h = 0.04;
	font = "Zeppelin32";
	colorSelect[] = {0.11,0.686,0.831,1};
	colorText[] = {1, 1, 1, 1};
	colorBackground[] = {0.28,0.28,0.28,0.28};
	colorSelect2[] = {1, 1, 1, 1};
	colorSelectBackground[] = {0.95, 0.95, 0.95, 0.5};
	colorSelectBackground2[] = {1, 1, 1, 0.5};
	colorScrollbar[] = {0.2, 0.2, 0.2, 1};
	arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa";
	arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa";
	wholeHeight = 0.45;
	rowHeight = 0.04;
	color[] = {0.7, 0.7, 0.7, 1};
	colorActive[] = {0,0,0,1};
	colorDisabled[] = {0,0,0,0.3};
	sizeEx = 0.023;
	maxHistoryDelay = 1;
	autoScrollSpeed = -1;
	autoScrollDelay = 5;
	autoScrollRewind = 0;
	tooltipColorText[] = {1,1,1,1};
	tooltipColorBox[] = {1,1,1,1};
	tooltipColorShade[] = {0,0,0,0.65};
	class ScrollBar {
		color[] = {1, 1, 1, 0.6};
		colorActive[] = {1, 1, 1, 1};
		colorDisabled[] = {1, 1, 1, 0.3};
		thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa";
		arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa";
		arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa";
		border = "\ca\ui\data\igui_border_scroll_ca.paa";
	};
	soundPush[] = { "", 0, 1 };
	soundEnter[] =	{ "", 0, 1 };
	soundClick[] ={ "", 0, 1 };
	soundEscape[] ={ "", 0, 1 };
	sound[] ={ "", 0, 1 };
	soundSelect[] = { "", 0, 1 };
};

class Life_RscStructuredText_auc {
	type = 13;
	style = 0;
	x = 0;
	y = 0;
	h = 0.035;
	w = 0.1;
	text = "";
	size = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
	colorText[] = {1, 1, 1, 1.0};
	shadow = 1;
	
	class Attributes {
		font = "Zeppelin32";
		color = "#ffffff";
		align = "left";
		shadow = 1;
	};
};

 

 

 

itemstore.hpp:

 

 

class Life_RscEdit_auc {
	type = 2;
	style = 0x00 + 0x40;
	font = "Zeppelin32";
	shadow = 2;
	sizeEx = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
	colorBackground[] = {0, 0, 0, 1};

	colorText[] = {0.95, 0.95, 0.95, 1};
	colorDisabled[] = {1, 1, 1, 0.25};
	autocomplete = false;
	colorSelection[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1};
	canModify = 1;
	soundPush[] = { "", 0, 1 };
	soundEnter[] =	{ "", 0, 1 };
	soundClick[] ={ "", 0, 1 };
	soundEscape[] ={ "", 0, 1 };
	sound[] ={ "", 0, 1 };
};
class itemstore
{
	idd = 7800;
	name="itemstore";
	movingEnabled = 0;
	enableSimulation = 1;
	
	class controlsBackground
	{
		class Life_RscTitleBackground : Life_RscText_auc
		{
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
			idc = -1;
			x = 0.1;
			y = 0.2;
			w = 0.8;
			h = (1 / 25);
		};
		
		class MainBackground : Life_RscText_auc
		{
			colorBackground[] = {0,0,0,0.7};
			idc = -1;
			x = 0.1;
			y = 0.2 + (11 / 250);
			w = 0.8;
			h = 0.7 - (22 / 250);
		};
		
		class Title : Life_RscTitle_auc
		{
			idc = 7801;
			text = "Барахолка";
			x = 0.1;
			y = 0.2;
			w = 0.8;
			h = (1 / 25);
		};
		
		class VehicleTitleBox : Life_RscText_auc
		{
			idc = -1;
			text = "Продается";
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
			x = 0.11; y = 0.26;
			w = 0.3;
			h = (1 / 25);
		};
		
		class VehicleInfoHeader : Life_RscText_auc
		{
			idc = 7830;
			text = "Информация";
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
			x = 0.42; y = 0.26;
			w = 0.46;
			h = (1 / 25);
		};
		
		class CloseBtn : Life_RscButtonMenu_auc
		{
			idc = -1;
			text = "Закрыть";
			onButtonClick = "closeDialog 0;";
			x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
			y = 0.9 - (1 / 25);
			w = (6.25 / 40);
			h = (1 / 25);
		};
		
		class RentCar : Life_RscButtonMenu_auc
		{
			idc = -1;
			text = "Купить";
			onButtonClick = "[] spawn player_buyitem;";
			x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
			y = 0.9 - (1 / 25);
			w = (6.25 / 40);
			h = (1 / 25);
		};
		
	};
	
	class controls
	{
		class VehicleList : Life_RscListBox_auc
		{
			idc = 7802;
			text = "";
			sizeEx = 0.04;
			colorBackground[] = {0.1,0.1,0.1,0.9};
			onLBSelChanged = "";
			
			//Position & height
			x = 0.11; y = 0.302;
			w = 0.7; h = 0.49;
		};
		
		class vehicleInfomationList : Life_RscStructuredText_auc
		{
			idc = 7803;
			text = "";
			sizeEx = 0.035;
			
			x = 0.41; y = 0.3;
			w = 0.85; h = 0.5;
		};
		
		class MainBackgroundHider : Life_RscText_auc
		{
			colorBackground[] = {0,0,0,1};
			idc = 7810;
			x = 0.1;
			y = 0.2 + (11 / 250);
			w = 0.85;
			h = 0.7 - (22 / 250);
		};
		
		class MainHideText : Life_RscText_auc
		{
			idc = 7811;
			text = "Ищу товары  ...";
			sizeEx = 0.06;
			x = 0.24; y = 0.5;
			w = 0.9;
			h = (1 / 15);
		};
	};
};


class item_store_list
{
	idd = 8800;
	name="item_store_list";
	movingEnabled = 0;
	enableSimulation = 1;
	
	class controlsBackground
	{
		class Life_RscTitleBackground : Life_RscText_auc
		{
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
			idc = -1;
			x = 0.1;
			y = 0.2;
			w = 1;
			h = (1 / 25);
		};
		
		class MainBackground : Life_RscText_auc
		{
			colorBackground[] = {0,0,0,0.7};
			idc = -1;
			x = 0.1;
			y = 0.2 + (11 / 250);
			w = 1;
			h = 0.7 - (22 / 250);
		};
		
		class Title : Life_RscTitle_auc
		{
			idc = 8801;
			text = "Список предметов";
			x = 0.1;
			y = 0.2;
			w = 0.8;
			h = (1 / 25);
		};
		
		class VehicleTitleBox : Life_RscText_auc
		{
			idc = -1;
			text = "Ваши инвентарь";
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
			x = 0.11; y = 0.26;
			w = 0.3;
			h = (1 / 25);
		};
		
		class VehicleInfoHeader : Life_RscText_auc
		{
			idc = 8830;
			text = "Информация о товаре";
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
			x = 0.42; y = 0.26;
			w = 0.46;
			h = (1 / 25);
		};
		class CurrencyAmountEdit : Life_RscEdit {
		
			idc = 15003;
			colorText[] = {0.8784,0.8471,0.651,1};
			text = "0";
			sizeEx = 0.030;
			x = 0.42; 
			y = 0.26 + (1 / 25);
			w = 0.46; 
			h = 0.03;
		
		};
		
		class CurrencyTitleText : Life_RscTitle_auc {
			colorBackground[] = {0, 0, 0, 0};
			idc = -1;
			text = "Укажите желаемую цену";
			colorText[] = {1,1,1,1};
			x = 0.42; 
			y = 0.26;
			w = 0.46;
			h = (1 / 25);
		};
		
		class CloseBtn : Life_RscButtonMenu_auc
		{
			idc = -1;
			text = "Закрыть";
			onButtonClick = "closeDialog 0;";
			x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
			y = 0.9 - (1 / 25);
			w = (6.25 / 40);
			h = (1 / 25);
		};
		
		class RentCar : Life_RscButtonMenu_auc
		{
			idc = -1;
			text = "Продать";
			onButtonClick = "[(ctrlText 15003)] spawn player_sellitem;";
			x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
			y = 0.9 - (1 / 25);
			w = (6.25 / 40);
			h = (1 / 25);
		};
	};
	
	class controls
	{
		class VehicleList : Life_RscListBox_auc
		{
			idc = 8802;
			text = "";
			sizeEx = 0.04;
			colorBackground[] = {0.1,0.1,0.1,0.9};
			onLBSelChanged = "_this call vehicle_info;";
			
			//Position & height
			x = 0.11; y = 0.302;
			w = 0.303; h = 0.49;
		};
		
		class vehicleInfomationList : Life_RscStructuredText_auc
		{
			idc = 8803;
			text = "";
			sizeEx = 0.035;
			
			x = 0.41; y = 0.3;
			w = 0.5; h = 0.5;
		};
		
		class MainBackgroundHider : Life_RscText_auc
		{
			colorBackground[] = {0,0,0,1};
			idc = 8810;
			x = 0.1;
			y = 0.2 + (11 / 250);
			w = 0.8;
			h = 0.7 - (22 / 250);
		};
		
		class MainHideText : Life_RscText_auc
		{
			idc = 8811;
			text = "Ищу товары ...";
			sizeEx = 0.06;
			x = 0.24; y = 0.5;
			w = 0.6;
			h = (1 / 15);
		};
	};
}; 

 

 

 

 

Для тех у кого выкладывается товар в продажу, но не удаляется из инвентаря (тем самым дюпается), а именно это замечено с Взрывчаткой (PipeBomb), то в файле player_sellitem.sqf

 

Над строкой:

[_unit,_item] call BIS_fnc_invRemove;

Добавить:

_item =  configFile >> "CfgMagazines" >> _item;

 

 

 

Параллельно хочу рассказать как режить баг с продажей Взрывчатки (PipeBomb) для тех у кого стоит монетная система от ZUPA. Взрывчатка не продавалась.

Надо в кастомном файле (Монетная система 2,0) trade_items.sqf   

 

Найти строку (их 2):

_removed = ([player,_name,1] call BIS_fnc_invRemove);

И вставить над ними:

_name =  configFile >> "CfgMagazines" >> _name;

 

 

Вопрос. А техникой через аукцион торговать можно? 

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

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


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

 

Прежде всего хочу сказать большое спасибо за подробный гайд KOMS !

 

 

Для тех у кого выкладывается товар в продажу, но не удаляется из инвентаря (тем самым дюпается), а именно это замечено с Взрывчаткой (PipeBomb), то в файле player_sellitem.sqf

 

Над строкой:

[_unit,_item] call BIS_fnc_invRemove;

Добавить:

_item =  configFile >> "CfgMagazines" >> _item;

Ошибку выдаёт, как исправить?

Error in expression <UID =     getPlayerUID _player;

if (_item == "") then {

diag_log "Auction House: >
10:23:17  Error position: <== "") then {

diag_log "Auction House: >
10:23:17   Error Generic error in expression
10:23:17 File z\addons\dayz_server\compile\store\server_sellitem.sqf, line 11
Изменено пользователем Sayrex (история изменений)

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


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

 

Ошибку выдаёт, как исправить?

Error in expression <UID =     getPlayerUID _player;

if (_item == "") then {

diag_log "Auction House: >
10:23:17  Error position: <== "") then {

diag_log "Auction House: >
10:23:17   Error Generic error in expression
10:23:17 File z\addons\dayz_server\compile\store\server_sellitem.sqf, line 11

У меня этой ошибки нет, но как альтернатива вместо той строки в sellitem вставить:

 

if (_item in ["PipeBomb","Laserbatteries"]) exitWith {
	cutText ["К сожалению это временно продать нельзя..", "PLAIN DOWN"];
 };

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

 

Кто нибудь знает как сделать так чтобы игрок видел что выложил на продажу и чтобы мог забрать?

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

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


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

У меня этой ошибки нет, но как альтернатива вместо той строки в sellitem вставить:

 

if (_item in ["PipeBomb","Laserbatteries"]) exitWith {
	cutText ["К сожалению это временно продать нельзя..", "PLAIN DOWN"];
 };

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

 

Кто нибудь знает как сделать так чтобы игрок видел что выложил на продажу и чтобы мог забрать?

О, этот вариант отлично работает!  Спасибо дружище, выручил!

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


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

Доброго всем вечера! Небольшая проблемка с установкой Аукциона, у меня отсутствует файл  publicEH.sqf, где его взять и куда положить?

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


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

Доброго всем вечера! Небольшая проблемка с установкой Аукциона, у меня отсутствует файл  publicEH.sqf, где его взять и куда положить?

Из dayz_code.pbo, положить в миссию.

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


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

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

 

Спасибо,это помогло мне и сэкономило время:

 

Для тех у кого выкладывается товар в продажу, но не удаляется из инвентаря (тем самым дюпается), а именно это замечено с Взрывчаткой (PipeBomb), то в файле player_sellitem.sqf


Над строкой:

[_unit,_item] call BIS_fnc_invRemove;
Добавить:

_item = configFile >> "CfgMagazines" >> _item;



Параллельно хочу рассказать как режить баг с продажей Взрывчатки (PipeBomb) для тех у кого стоит монетная система от ZUPA. Взрывчатка не продавалась.
Надо в кастомном файле (Монетная система 2,0) trade_items.sqf

Найти строку (их 2):

_removed = ([player,_name,1] call BIS_fnc_invRemove);
И вставить над ними:

_name = configFile >> "CfgMagazines" >> _name;

 

Но бомба продается только через обычное меню торговца,что нужно сделать,что бы бомба продавалась и через AdvancedTrading-2.1?

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

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


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

Совместимо ли с SC 2.0? А то при покупке ничего не происходит. Ошибок тож нет.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: 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, в противном случае мы будем считать, что вы согласны с этим.