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

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

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

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

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

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

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

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

 

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

 

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

 

Что необходимо для работы скрипта: 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
 

[Database2]
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:Database2";
"extDB" callExtension format["9:ADD:DB_RAW_V2:%1",1];
"extDB" callExtension "9:LOCK";



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
 

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

Auction_House_fixed eng.zip

Auction_House_fixed rus.zip

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

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


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





Вопрос к знатокам скриптописания:

Как сгруппировать пункты "продать", "купить", "забрать деньги" (то, что добавили в fn_selfaction) в подменю? Например, "Барахолка", а там уже эти три пункта. Будет более удобно.

Как сделать данный аукцион только одному торговцу?

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


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

Вопрос к знатокам скриптописания:

Как сгруппировать пункты "продать", "купить", "забрать деньги" (то, что добавили в fn_selfaction) в подменю? Например, "Барахолка", а там уже эти три пункта. Будет более удобно.

Как сделать данный аукцион только одному торговцу?

1.) В смысле "сгруппировать"? Они и так находятся рядом.

 

2.) Вот так сделайте:

//Auctionhouse
TraderAuction = ["Ваш торговец"];
_isAuctionItem = (typeOf cursorTarget) in Auction;

if(_isAuctionItem  && (player distance _cursorTarget < 5)) then {
if (s_auction_dialog2 < 0) then {
s_auction_dialog2 = player addAction ["Купить предметы на Аукционе", "custom\scripts\auctionhouse\item_dialog.sqf",_cursorTarget, 0, true, false, "", ""];
};
if (s_auction_dialog < 0) then {
s_auction_dialog = player addAction ["Продать предметы на Аукционе", "custom\scripts\auctionhouse\item_sell_list.sqf",_cursorTarget, 0, true, false, "", ""];
};
if (s_auction_claim < 0) then {
s_auction_claim = player addAction ["Забрать свои деньги", "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;
};

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


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

Сгруппировать-сделать подменю. Как в починке транспорта, например.

По второму попробую.

  1. TraderAuction = ["Ваш торговец"];

Что за торговец? TraderAuction = ["Woodlander3"]; - вписав так - пропадает меню аукциона у всех

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

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


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

Сгруппировать-сделать подменю. Как в починке транспорта, например.

По второму попробую.

  1. TraderAuction = ["Ваш торговец"];
  2.  
  3.  
  4.  

Что за торговец? TraderAuction = ["Woodlander3"]; - вписав так - пропадает меню аукциона у всех

так привязывается действие только к 1 торговцу, по сути должно работать. Попробуйте прописать аукцион отдельно от меню с торговцами,например в самом низу fn_selfActions, если поставите объект и привяжете к нему аукцион - все будет работать, сейчас у себя проверю

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

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


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

грозилсе поставить это чудо на сервер-игроки сразу сказали-там будет свалка оружия, которая будет использоваться как хранение.

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


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

грозилсе поставить это чудо на сервер-игроки сразу сказали-там будет свалка оружия, которая будет использоваться как хранение.

ну можете сделать очистку "завалявшегося" товара, или просто пригрозить этим :D

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


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

# Удаляем товар, лежащий более недели на аукционе
DELETE FROM `store` WHERE `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 7 DAY);

Кто мешает так делать при старте?

 

Только ведь владелец товара не может его забрать обратно - смысл делать там свалку?

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


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

 

# Удаляем товар, лежащий более недели на аукционе
DELETE FROM `store` WHERE `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 7 DAY);

Кто мешает так делать при старте?

 

Только ведь владелец товара не может его забрать обратно - смысл делать там свалку?

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

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


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

Это работает с системой денег от зупа?

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


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

Так сам себе продать не можешь)) Видится только товар, который продаете НЕ вы. Хотя поковырявшись можно это исправить. 

С денежными системами работает, но товар хранится в базе, а не в файлах, как остальное. 

 

Еще бы анимацию медика прикрутить сюда при продаже-покупке, как оригинальная торговля-будет вообще комильфо. Потому как мгновенная покупка\продажа как то не по мне.

 

Linux, не получилось привязать к одному торгашу аукцион?

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


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

Так сам себе продать не можешь)) Видится только товар, который продаете НЕ вы. Хотя поковырявшись можно это исправить. 

С денежными системами работает, но товар хранится в базе, а не в файлах, как остальное. 

 

Еще бы анимацию медика прикрутить сюда при продаже-покупке, как оригинальная торговля-будет вообще комильфо. Потому как мгновенная покупка\продажа как то не по мне.

 

Linux, не получилось привязать к одному торгашу аукцион?

Привязать это иззи 

if ((_typeOfCursorTarget == "MAP_Misc_PostBox") && (player distance _cursorTarget < 5)) then {

MAP_Misc_PostBox замени на что тебе понравится))

 

А вот у меня трабл, товар выставляю, а вот купить никто не может просто висит ищу товары и на этом все! С чем трабл? РПТ сервера и клиента молчит! 

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


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

Так сам себе продать не можешь)) Видится только товар, который продаете НЕ вы. Хотя поковырявшись можно это исправить. 

С денежными системами работает, но товар хранится в базе, а не в файлах, как остальное. 

 

Еще бы анимацию медика прикрутить сюда при продаже-покупке, как оригинальная торговля-будет вообще комильфо. Потому как мгновенная покупка\продажа как то не по мне.

 

Linux, не получилось привязать к одному торгашу аукцион?

я привязал к табличке аукцион

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


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

товар выставляю, а вот купить никто не может просто висит ищу товары и на этом все! С чем трабл? РПТ сервера и клиента молчит! 

 

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

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

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


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

 

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

В базе товар не появился, коннект к БД вроде есть, ошибок никаких не выявил. Ставил и по этому гайду и по оригиналу, эффект тот же

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


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

В базе товар не появился, коннект к БД вроде есть, ошибок никаких не выявил. Ставил и по этому гайду и по оригиналу, эффект тот же

точно есть коннект к бд?

установите extdb debug в папке с ней у вас буду логи работы с бд, посмотрите или выкиньте на форум, посмотрим поможем

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


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

Проверяем пошагово все действия, ставим полный лог в настройках extDB (кстати она подключается при старте сервера?) Такое было, когда в батнике старта не был указан параметр @DayZ_Epoch;@DayZ_Epoch_Server;@extDB;

extdb-conf.ini

[Main]
;Threads = 0 
; Default Value is number of CPU Cores Detected

[Logging]
; If u are going to disable Logging for performance reasons, grab the No-Logging Version of extdb
Filter = 2
; 2 = Default Setting, this doesn't take effect till after Config File has been loaded.
;         0 = more cpu intensive, 5 = barely anything except exception handling 
;
; 0 trace
; 1 debug
; 2 info
; 3 warning
; 4 error
; 5 fatal

[Database]
Type = SQLite
Name = sqlite.db

minSessions = 1
; minSession Default Value = 1

;maxSessions = 4
; maxSession Default Value = number of Main->Threads
;     u really should leave this value alone
idleTime = 60
; idleTime no Default Value yet, needs to be defined.
;     idleTime is the time before a database session is stopped if not used. 
;    If Database Sessions are greater than minSessions

[Database2]
Type = MySQL
Name = dayz_epoch_test

Username = root
Password = 12345
IP = localhost
Port = 3306

minSessions = 1
maxSessions = 4
idleTime = 60

параметры подключения HiveEXT.ini к БД самого мода (они обязательно должны совпадать!):

REM Your MySQL connection details - you need this to generate vehicles directly into the DB
set dbhost=localhost
set dbport=3306
set dbuser=root
set dbpass=12345
set dbname=dayz_epoch_test

Проверьте у себя это, и также:

 

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;}; 
 
В строке: extDB" callExtension "9:DATABASE:Database2 заменяем Database2 на Databaseconfig, который вы укажете в extdb-conf.ini

 

Потому как у меня и других работает.

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

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

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

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


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

Проверяем пошагово все действия, ставим полный лог в настройках extDB (кстати она подключается при старте сервера?) Такое было, когда в батнике старта не был указан параметр @DayZ_Epoch;@DayZ_Epoch_Server;@extDB;

extdb-conf.ini



[Main]
;Threads = 0 
; Default Value is number of CPU Cores Detected

[Logging]
; If u are going to disable Logging for performance reasons, grab the No-Logging Version of extdb
Filter = 2
; 2 = Default Setting, this doesn't take effect till after Config File has been loaded.
;         0 = more cpu intensive, 5 = barely anything except exception handling 
;
; 0 trace
; 1 debug
; 2 info
; 3 warning
; 4 error
; 5 fatal

[Database]
Type = SQLite
Name = sqlite.db

minSessions = 1
; minSession Default Value = 1

;maxSessions = 4
; maxSession Default Value = number of Main->Threads
;     u really should leave this value alone
idleTime = 60
; idleTime no Default Value yet, needs to be defined.
;     idleTime is the time before a database session is stopped if not used. 
;    If Database Sessions are greater than minSessions

[Database2]
Type = MySQL
Name = dayz_epoch_test

Username = root
Password = 12345
IP = localhost
Port = 3306

minSessions = 1
maxSessions = 4
idleTime = 60

параметры подключения к БД самого мода (они обязательно должны совпадать!):



REM Your MySQL connection details - you need this to generate vehicles directly into the DB
set dbhost=localhost
set dbport=3306
set dbuser=root
set dbpass=12345
set dbname=dayz_epoch_test

Проверьте у себя это, и также:

 

Потому как у меня и других работает.

лицензия или пиратка?

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


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

У меня лицензия. Только разницы нет-подключение должно быть указано и в конфиге запуска Эпохи, и в конфиге extDB одинаковое-этим мы указываем с какой базой работать. 

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


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

У меня лицензия. Только разницы нет-подключение должно быть указано и в конфиге запуска Эпохи, и в конфиге extDB одинаковое-этим мы указываем с какой базой работать. 

всеправильно, со всеми файлами идет файлик sql вы его загрузили в dayz_epoch_test таблицу? Разница есть, первый релиз данного скрипта не работал с NOCD серверами

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


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

Я то загрузил конечно. Всё проверил и потом написал этот гайд, когда убедился в работоспособности на 100%. Не продавал\покупал когда не было коннекта. Потом все заработало, когда скорректировал коннект к БД.

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


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

точно есть коннект к бд?

установите extdb debug в папке с ней у вас буду логи работы с бд, посмотрите или выкиньте на форум, посмотрим поможем

Вот что написано в логах

 

 

[17:54:58 +00:-1] [Thread 1131620634] extDB: Version: 35
[17:54:58 +00:-1] [Thread 1131620634] extDB: Windows Version
[17:54:58 +00:-1] [Thread 1131620634] Message: Arma Linux Servers are using Older Physic Library (than Windows Servers), due to Debian 7 using old version of Glibc
[17:54:58 +00:-1] [Thread 1131620634] Message: If you like extDB consider donating or bug BIS to drop support for Debian 7 thanks, so Linux Servers get same Physic Library Version as Windows
[17:54:58 +00:-1] [Thread 1131620634] Message: Note currently most/all development for extDB is done on a Linux Server
[17:54:58 +00:-1] [Thread 1131620634] Message: Torndeco: 24/01/15
[17:54:58 +00:-1] [Thread 1131620634] 
[17:54:58 +00:-1] [Thread 1131620634] extDB: Found extdb-conf.ini
[17:54:58 +00:-1] [Thread 1131620634] extDB: Detected 2 Cores, Setting up 2 Worker Threads
[17:54:58 +00:-1] [Thread 1131620634] extDB: Database Type: MySQL
[17:54:58 +00:-1] [Thread 1131620634] extDB: Database Session Pool Started
[17:54:59 +00:-1] [Thread 1131620634] extDB: DB_RAW_V3: Initialized: ADD_QUOTES True
[18:03:05 +00:-1] [Thread 1131620634] extDB: Stopping ...

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


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

 

Вот что написано в логах

 

 



[17:54:58 +00:-1] [Thread 1131620634] extDB: Version: 35
[17:54:58 +00:-1] [Thread 1131620634] extDB: Windows Version
[17:54:58 +00:-1] [Thread 1131620634] Message: Arma Linux Servers are using Older Physic Library (than Windows Servers), due to Debian 7 using old version of Glibc
[17:54:58 +00:-1] [Thread 1131620634] Message: If you like extDB consider donating or bug BIS to drop support for Debian 7 thanks, so Linux Servers get same Physic Library Version as Windows
[17:54:58 +00:-1] [Thread 1131620634] Message: Note currently most/all development for extDB is done on a Linux Server
[17:54:58 +00:-1] [Thread 1131620634] Message: Torndeco: 24/01/15
[17:54:58 +00:-1] [Thread 1131620634] 
[17:54:58 +00:-1] [Thread 1131620634] extDB: Found extdb-conf.ini
[17:54:58 +00:-1] [Thread 1131620634] extDB: Detected 2 Cores, Setting up 2 Worker Threads
[17:54:58 +00:-1] [Thread 1131620634] extDB: Database Type: MySQL
[17:54:58 +00:-1] [Thread 1131620634] extDB: Database Session Pool Started
[17:54:59 +00:-1] [Thread 1131620634] extDB: DB_RAW_V3: Initialized: ADD_QUOTES True
[18:03:05 +00:-1] [Thread 1131620634] extDB: Stopping ...

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

смотрите траблы в коде, лучше все файлы берите из первоисточника

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


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

Коннект есть. Значит проверяем все действия пошагово. Что-то где-то пошло не так...

 

if ((_typeOfCursorTarget == "Woodlander3") && (player distance _cursorTarget < 5)) then {

Всё отлично привязалось к определенному торговцу.

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


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

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

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

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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