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

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

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

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

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

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

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

 

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


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

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

  • 0

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

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


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

 

 

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

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


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

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

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

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


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

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

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

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


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

 

 

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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" но как её поправить?

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


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

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

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


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

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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: 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; }  
       
    • Автор: 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"; Изменение Человечности готово!
       
      Плюсы Всего этого:
      Отображение ника убийцы теперь работает всегда и корректно.(Если убивают с техники или с одного выстрела).
    • Автор: virus160381
      Помогите пожалуйста добавить торговца на 1.0.6.2, искал гайды они все старые, на хх51. 
    • Автор: Slonik
      Помогите пожалуйста. На сервере установлен скрипт R3F_Logistics. Помогите сделать так что бы можно  было продавать ящики на трейде не доставая их из машины или продать машину сразу с ящиком. Что то у меня не получается.
    • Автор: misha123
      Здравствуйте хотел добавить крафты на сервер. Но не знаю как это сделать. Кто знает как добавить крафты подскажите пожалуйста скрипт. Хочется разнообразить сервер.
      Спасибо за внимание
  • Наш выбор

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

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

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

Поддержка