Здравствуйте, умельцы в области скриптинга.
Как мне реализовать свой предмет и привязать к нему скрипт при юзании (при кликании на него 2 раза)
Пролазил все англ. форумы, просмотрел всё, но ничего не нашел. Сделал только вот такое
class CfgMagazines {
class CA_Magazine;
class life_water: CA_Magazine
{
mass = 5;
scope = 2;
count = 1;
author = "Nono";
displayName = "123";
picture = "\A3\Signs_F\SignSpecial\FlagSmall_F.p3d";
model = "\A3\structures_f_epa\Items\medical\antibiotic_F";
descriptionShort = "123";
};
};
Это я всё добавил в config.cpp и закомпилировал в Аддон билдере. Добавил в клиент и пытался выдать редактором вещь, но ничего не происходило. Что я не так делаю? Можете привести пример как добавлять кастомные вещи и привязки к ним действия? Заранее спасибо
Ого!
А этот конфиг должен вызывать какие то действия?
mass масса объекта.
scope доступ к объекту. (ток не пинайте сильно)
count количество (например патрон в магазине)
author автор предмета
displayName имя предмета, показываемое игроку в инвентаре.
picture картинка предмета, показываемая в инвентаре. (кстати почему у вас 3D объект вместо картинки?)
model 3D модель объекта.
descriptionShort Один или два абзаца, описывающее предмет во всплывающем окошке в игре.
Вообще, чтобы работали какие либо действия по клику, нужно
1. присвоить объекту в его конфиге например это действие.
Если рассматривать, как пример этого действия мод дейз, то, имеем следущее:
class ItemActions {
class Use {
text = $STR_ACTIONS_LIGHTFIRE; //название действия
script = "spawn player_makeFire;"; //вызов функции действия
use[] = {"PartWoodPile"};// условие, при писутствиии дров, резвести огонь
};
};
2. В дисплее инвентаря например, указать, в каких окнах перехватывать и слушать действия игрока, например даблклик мышой.
class CA_Gear_slot_primary: RscActiveText {
idc = 107;
x = 0.138;
y = 0.181;
w = 0.309;
h = 0.174;
style = "0x30 + 0x800";
onMouseButtonDown = "_this call player_selectSlot;";
soundDoubleClick[] = {"",0.1,1};
color[] = {1,1,1,1};
colorBackground[] = {0.84,0.8,0.72,0.2};
colorBackgroundSelected[] = {0.84,0.8,0.72,0.8};
colorFocused[] = {0,0,0,0};
canDrag = 1;
};
3. создать скрипт выполнения самого действия.
_conf = configFile >> "cfgMagazines" >> _item;
if (!isClass _conf) then {
_conf = configFile >> "cfgWeapons" >> _item;
};
_name = getText(_conf >> "displayName");
_cfgActions = _conf >> "ItemActions";