Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
svyatoslav35

Добавление нового торговца

Нужно добавить нового торговца на карту. Гайд на этом сайте я так и не нашёл  :sad:. Вообще мне нужно:
1. Ссылку на гайд.
2. Как узнать координаты в DayZ что бы этого торгаша поставить.
3. Как добавить товар ему на продажу. И как создать категорию товара - машины\оружие\строматериалы\вещи\еда.

У меня стоит денежная система SC 3.0
Поможете? С меня + в репу.

 

Share this post


Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 0

1. В гайды и в помощь сложно посмотреть? Все отписывалось.
2. Коорды через дебаг инфи смотрите
3. Создаете NPC с не используемым скином, далее в CfgTrader создаете hpp файл и туда пихаем новую ID категорию. Например 5000. Далее пихаем в него товары
Категория 5000
Предмет, цена покупки, цена продажи. Все примеры легко можно взять с других hpp файлов.
4. Привязываете категорию/ии в server_traders.sqf (который лежит в корне MPMissions)
Скин торгаша
[название раздела, ID категории]

Share this post


Link to post
Share on other sites



  • 0

Ты к чему вообще?

Программа DZEU, тоже работает с торговцами и т.п. Так что в тему ответ.

Share this post


Link to post
Share on other sites
  • 0

Программа DZEU, тоже работает с торговцами и т.п. Так что в тему ответ.

это платная программа. А мне нужно просто одного торгаша добавить. И мне нужен образец уже готового торгаша.

Share this post


Link to post
Share on other sites
  • 0

Я вам выше все сказал. Все примеры уже есть у вас прямо в ZSC и в Server_traders.sqf.
Ничего сложного не вижу + все примеры есть в гайдах и в некоторых разделах помощи, поиск вам в помощь...

Если лень вас одолевает, то это ваши проблемы.

 

 

 

 

 


1. Создаем торгаша. Открываем @DayZ_Epoch_Server/addons/dayz_server/Missions/Ваша карта/Mission.sqf
Там будут пару построек в торговых зонах + сами торговцы.

_unit_31 = objNull;
if (true) then
{
  _this = createAgent ["Soldier_MG_PKM_PMC", [8264.5371, 15495.855, 3.7374172], [], 0, "CAN_COLLIDE"];
  _unit_31 = _this;
  _this setDir 56.102802;
  _this setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0;";
  _this setUnitAbility 0.60000002;
_this allowDammage false; _this disableAI 'FSM'; _this disableAI 'MOVE'; _this disableAI 'AUTOTARGET'; _this disableAI 'TARGET'; _this setBehaviour 'CARELESS'; _this forceSpeed 0;_this enableSimulation false;};

Тут пояснять нечего особо.
У каждого торговца свой ID, скин (скин не может повторяться!) и позиция XYZ.

Тут указан _unit_31, скин Soldier_MG_PKM_PMC и позиция [8264.5371, 15495.855, 3.7374172].

Для нового торгоша собственно нужно указать любой неиспользуемый ID например _unit_500, свой скин, который нельзя найти на карте путем обычного спавна, и естественно свои позиции.
Ах да параметр _this setDir 56.102802; указывает угол поворота для торгоша.

2. После того как создали торгоша, перепаковываем dayz_server.pbo
3. В ZSC/config/CfgServerTrader.hpp подключаем будущее содержимое торговца, по примерам поймете.

 

 #include ваш файл.hpp
 

4. В ZSC/config/Category создаем наш подключенный файл.
В него нам надо подключить новый ID категории и вписываем само содержимое.
Пример:

 

Категория_5000
{
     Предмет, категория, цена покупки, цена продажи
};
 

 

class Category_577 //Аммуниция (Бандит)
{
	class 30Rnd_556x45_StanagSD 	        {type = "trade_items";		buy[] = {400,"Coins"};		sell[] = {200,"Coins"};};
	class 5Rnd_86x70_L115A1 		{type = "trade_items";		buy[] = {4000,"Coins"};		sell[] = {2000,"Coins"};};
	class 100Rnd_762x51_M240 		{type = "trade_items";		buy[] = {2000,"Coins"};		sell[] = {1000,"Coins"};};
	class 20Rnd_762x51_FNFAL 		{type = "trade_items";		buy[] = {400,"Coins"};		sell[] = {200,"Coins"};};
	class 20Rnd_762x51_SB_SCAR 		{type = "trade_items";		buy[] = {1000,"Coins"};		sell[] = {500,"Coins"};};
	class 100Rnd_127x99_M2 			{type = "trade_items";		buy[] = {100000,"Coins"};	sell[] = {50000,"Coins"};}; 
	class 2000Rnd_762x51_L94A1 		{type = "trade_items";		buy[] = {100000,"Coins"};	sell[] = {50000,"Coins"};}; 
	class 32Rnd_40mm_GMG 			{type = "trade_items";		buy[] = {100000,"Coins"};	sell[] = {50000,"Coins"};}; 
	class 48Rnd_40mm_MK19 			{type = "trade_items";		buy[] = {100000,"Coins"};	sell[] = {50000,"Coins"};};
	class 2000Rnd_762x51_M134 		{type = "trade_items";		buy[] = {100000,"Coins"};	sell[] = {50000,"Coins"};}; 	
};

5. Подключаем к торговцу категорию.
Открываем файл server_traders.sqf и подключаем так

 

Скин торгоша
[
   ["название категории", номер категории],
   [] //Тут ничего не пишем, просто скобки!
   'требование репутации' //Герой, нейтрально, бандит
];
 
Soldier_MG_PKM_PMC = 
[
	[["Аммуниция",577],["тут можно подключить еще одну категорию",тут ее номер]],
	[],
	"hostile"
];

6. Профит.

 

 

Share this post


Link to post
Share on other sites
  • 0
 2:12:37 Error in expression < ",1333],["Боеприпасы",1334]]
[],
"neutral"
];>
 2:12:37   Error position: <[],
"neutral"
];>
 2:12:37   Error Missing ]
 2:12:37 File mpmissions\DayZ_Epoch_11.Chernarus\server_traders_cherno_11.sqf, line 149
 2:12:37 Error in expression < ",1333],["Боеприпасы",1334]]
[],
"neutral"
];>
 2:12:37   Error position: <[],
"neutral"
];>
 2:12:37   Error Missing
 2:12:37 File mpmissions\DayZ_Epoch_11.Chernarus\server_traders_cherno_11.sqf, line 149

При добавлении своего торгаша вот что пишет. Я знаю то что ошибка в строке 149 "neutral" но как её поправить?

Share this post


Link to post
Share on other sites
  • 0

Сказано же: Error Missing ] Утерян ]. Либо ты на закрыл скобку, либо открыл лишнюю.

Спасибо, исправил, заработало.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By BorizzK
      Автор скрипта сообщения всем пользователям: Мизев
       
      Код функции отправки сообщения всем игрокам
      вставляется в OnInit () в init.c или в missionserver.c из scripts.pbo
      Становится глобальной серверной функцией и можно использовать где угодно на сервере (вроде бы)
      Что делает? Отправляет сообщение переданное в функцию всем игрокам на сервере
      Использование: MessageAllPlayers ("ТЕКСТ");
      void MessageAllPlayers(string message) { ref array<Man> players = new array<Man>; GetGame().GetPlayers( players ); if ( players.Count() > 0 ) { for ( int i = 0; i < players.Count(); i++ ) { PlayerBase player; Class.CastTo(player, players.Get(i)); Param1<string> m_MessageParam = new Param1<string>(message); GetGame().RPCSingleParam(player, ERPCs.RPC_USER_ACTION_MESSAGE, m_MessageParam, true, player.GetIdentity()); } } }  
      Код сообщения всем игрокам на сервере о входе НОВОГО игрока
      вставляется в код создания персонажа, обработки его подключения или экипировки при входе - где Вам больше нравится
      но после того как персонаж создастся и будет помещен в переменную к которой можно обратиться
      В данном примере m_player

      исполняется в контексте конкретного персонажа
       
      Например init.c
       
      override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName) { //...... //тут еще разный код playerEnt = GetGame().CreatePlayer(identity, characterName, pos, 0, "NONE");//Creates random player Class.CastTo(m_player, playerEnt); GetGame().SelectPlayer(identity, m_player); //inform all players about new player connected ref array<Man> players = new array<Man>; //define array for all players GetGame().GetPlayers( players ); //put all players in to array players if ( players.Count() > 0 ) // if players count > 0 { string Message = "NEW Player " + m_player.GetIdentity().GetName() + " connected!"; //message text MessageAllPlayers(Message); // call MessageAllPlayers function with Message param } return m_player; }  
       
    • By Sovest2
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Подготовка
      Для начала нам понадобится подключить кастомный player_death.sqf в compiles.sqf
      Делается это следующим образом:
      В compiles.sqf заменить строку 
      player_death = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_death.sqf"; на
      player_death = compile preprocessFileLineNumbers "*ВАШ ПУТЬ*\player_death.sqf";  
      Если у вас стоит инфистар,то необходимо заменить строку в AH.sqf
      _death = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\player_death.sqf'; на
      _death = compile preprocessFileLineNumbers '*ВАШ ПУТЬ*\player_death.sqf';  
      В вашем кастомном player_death.sqf необходимо заменить 
      _array = _this; if (count _array > 0) then { _source = _array select 0; _method = _array select 1; if ((!isNull _source) && (_source != player)) then { _canHitFree = player getVariable ["freeTarget",false]; _isBandit = (player getVariable["humanity",0]) <= -2000; _punishment = _canHitFree || _isBandit; //if u are bandit || start first - player will not recieve humanity drop _humanityHit = 0; if (!_punishment) then { //i'm "not guilty" - kill me && be punished _myKills = ((player getVariable ["humanKills",0]) / 30) * 1000; _humanityHit = -(2000 - _myKills); _kills = _source getVariable ["humanKills",0]; _source setVariable ["humanKills",(_kills + 1),true]; PVDZE_send = [_source,"Humanity",[_source,_humanityHit,300]]; publicVariableServer "PVDZE_send"; } else { //i'm "guilty" - kill me as bandit _killsV = _source getVariable ["banditKills",0]; _source setVariable ["banditKills",(_killsV + 1),true]; }; }; _body setVariable ["deathType",_method,true]; }; на
      _array = _this; if (count _array > 0) then { _source = _array select 0; _method = _array select 1; if ((!isNull _source) && (_source != player)) then { [player,_source]execVM "*ВАШ ПУТЬ*\humanityChange.sqf"; [player,_source]execVM "*ВАШ ПУТЬ*\kill_msg_send.sqf"; }; _body setVariable ["deathType",_method,true]; }; Отображение ника убийцы(Kill message)
       
      Создаем файл и закидываем в миссию файл kill_msg_send.sqf
      С содержанием
      private ["_victim","_killer","_vehicle","_weapon","_pic"]; _victim = _this select 0; _killer = _this select 1; _killerName = name _killer; _victimName = name _victim; _vehicle = typeOf (vehicle _killer); _weapon = currentWeapon _killer; if ((getText (configFile >> "CfgVehicles" >> _vehicle >> "vehicleClass")) in ["CarW","Car","CarD","Armored","Ship","Support","Air","ArmouredW","ArmouredD","SupportWoodland_ACR","AllVehicles"]) then { _pic = gettext(configFile >> 'CfgVehicles' >> _vehicle >> 'picture'); } else { _pic = gettext(configFile >> 'cfgWeapons' >> _weapon >> 'picture'); }; _kill_txt = format ["<t align='left' size='0.5'>%1 </t>",_victimName]; _kill_txt = _kill_txt + format ["<img size='1.0' align='left' image='%1'/>",_pic]; _kill_txt = _kill_txt + format ["<t align='left' size='0.5'> %1 </t>",_killerName]; PVDZE_send = [player,"kill_message",[_kill_txt]]; publicVariableServer "PVDZE_send";  
      Далее,нам необходимо отредактировать файл server_sendToClient.sqf ,которой находится в директории сервера
      И добавить после
      case "tagFriendly": { PVDZE_plr_FriendRQ = _arraytosend; _owner publicVariableClient "PVDZE_plr_FriendRQ"; }; Это
      case "kill_message": { custom_kill_message_show = _arraytosend; publicVariable "custom_kill_message_show"; }; Теперь необходимо создать файл kill_msg_show.sqf в папке с вашей миссией
      с содержимым
      private ["_pos","_i"]; arr_kill = ["","","","","",""]; fnc_kill_message = { private ["_finaltxt"]; _finaltxt = _this select 0; for[{_i = 0},{(_i<6)},{_i = _i +1}] do { if((arr_kill select _i) == "") then { arr_kill set [_i,_finaltxt]; [_i] execVM "*ВАШ ПУТЬ*\kill_msg_delete.sqf"; _i = count(arr_kill); }; }; }; "custom_kill_message_show" addPublicVariableEventHandler {(_this select 1) call fnc_kill_message;}; while {true} do { _pos = 0.01; _layout = 1001; { [_x,[safezoneX + 0.01 * safezoneW,2.0],[safezoneY + _pos * safezoneH,0.3],5,0.5,0,_layout] spawn BIS_fnc_dynamicText; _pos = _pos + 0.021; _layout = _layout + 1; } ForEach arr_kill; sleep 1; }; Создать файл kill_msg_delete.sqf с 
      private["_pos"]; _pos = _this select 0; sleep 10; arr_kill set [_pos,""];  
      И вставить в init.sqf после строки
      _playerMonitor = [] execVM "custom\player_monitor.sqf"; строку
      execVM "*ВАШ ПУТЬ*\kill_msg_show.sqf"; Осталось только добавить
      custom_kill_message_show В первую строку файла publicvariable.txt
       
      Все,отображение ника убийцы готово!
       
       
      Изменение человечности за убийство Бандита\Героя
      создать файл humanityChange.sqf с содержимым
      private ["_victim","_killer","_myKills","_humanity","_killerHumanity","_isKillerBandit","_isBandit","_humanityHit","_kills","_killerGunner"]; _victim = _this select 0; _killer = _this select 1; _humanity = _victim getVariable["humanity",0]; _killerHumanity = _killer getVariable["humanity",0]; _isKillerBandit = (_killerHumanity) < 0 ; _isBandit = (_humanity) < 0; _humanityHit = 0; _myKills = 0; _killerVehicle = vehicle _killer; if(((!_isBandit) && _isKillerBandit) || (_isBandit && (!_isKillerBandit))) then { _myKills = round((_humanity) / 10); }; if(!_isBandit) then { _myKills = (_myKills + 200); _kills = _killer getVariable ["humanKills",0]; _killer setVariable ["humanKills",(_kills + 1),true]; } else { _myKills = (_myKills - 200); _kills = _killer getVariable ["banditKills",0]; _killer setVariable ["banditKills",(_kills + 1),true]; }; _killerGunner = gunner _killerVehicle; if(!isNil"_sourceGunner") then { _killer = _killerGunner; }; _humanityHit = _myKills * (-1); PVDZE_send = [_killer,"Humanity",[_killer,_humanityHit,300]]; publicVariableServer "PVDZE_send"; Изменение Человечности готово!
       
      Плюсы Всего этого:
      Отображение ника убийцы теперь работает всегда и корректно.(Если убивают с техники или с одного выстрела).
    • By virus160381
      Помогите пожалуйста добавить торговца на 1.0.6.2, искал гайды они все старые, на хх51. 
    • By Slonik
      Помогите пожалуйста. На сервере установлен скрипт R3F_Logistics. Помогите сделать так что бы можно  было продавать ящики на трейде не доставая их из машины или продать машину сразу с ящиком. Что то у меня не получается.
    • By misha123
      Здравствуйте хотел добавить крафты на сервер. Но не знаю как это сделать. Кто знает как добавить крафты подскажите пожалуйста скрипт. Хочется разнообразить сервер.
      Спасибо за внимание
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.