Category:Ru/Interfaces: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Created page with "{{otherlang2 |title=Категория:Интерфейсы |en=Category:Interfaces |de=Category:Interfaces:de }} [https://ru.wikipedia.org/wiki/Интерфейс Интер...")
 
m (obsolete language category)
 
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|Category:Interfaces|title=Категория: Интерфейсы}}
|title=Категория:Интерфейсы
'''[[w:ru:Интерфейс|Интерфейсы]]''' — это C++ классы, к которым другие части движка получают доступ, пока ваш мод запущен.
|en=Category:Interfaces
|de=Category:Interfaces:de
}}
[https://ru.wikipedia.org/wiki/Интерфейс Интерфейсы] - это C++ классы, к которым другие части движка получают доступ, пока ваш мод запущен.
Некоторые объекты интерфейса очень важны и необходимы для функционирования игровых DLL. Чтобы использовать их, наследуйте их для реализации, затем вернитесь к интерфейсу в глобальном [[pointer|указателе]] с предопределенным именем.


{{note:ru|Если вы попытаетесь создать интерфейс напрямую, ваш мод будет крашнут осознанно}}
Некоторые объекты интерфейса очень важны и необходимы для функционирования игровых DLL файлов. Для их использования, наследуйте их для реализации, затем вернитесь к интерфейсу в глобальном {{L|pointer|указателе}} с предопределённым именем.
{{warning:ru|It is important to create all objects listed when exposing a vital interface, even if your mod can be compiled and run without one or another of them. If you try to cut corners you are likely to encounter weird, almost impossible to debug errors either today or after a future engine update!}}
{{warning:ru|'''Никогда, никогда''' не изменяйте сам класс интерфейса. Вы всегда должны наследовать, а затем возвратить.}}


== Пример ==
{{Note|Если вы попытаетесь создать интерфейс напрямую, ваш мод крашнется. Это происходит намеренно.}}
{{warning|Важно создать все объекты, перечисленные при предоставлении интерфейса, даже если ваш мод может быть скомпилирован и запущен без одного или другого. Если вы попытаетесь убрать что-то, вы, вероятней всего, столкнётесь со странными, почти невозможными для отладки ошибками нынешних или будущих обновлений движка!}}
{{warning|Ни в коем случае не изменяйте сам класс интерфейса. Вы всегда должны наследовать его, а затем возвращать.}}


==Пример==
<source lang=cpp>static CInput g_Input;
<source lang=cpp>static CInput g_Input;
IInput* input = (IInput*)&g_Input;</source>
IInput* input = (IInput*)&g_Input;</source>


Тут создаются объекты <code>[[IInput]]* input</code> и <code>g_Input</code>, которые ждёт движок, помещая за ними базовый код Valve от CInput.
Тут создаются объекты <code>{{L|IInput}}* input</code> и <code>g_Input</code>, которые ждёт движок, помещая за ними базовый код {{L|Valve}} от {{L|CInput}}.


Вы можете изменить <code>CInput</code> или создать свой собственный унаследованный класс и использовать его вместо него. Просто помните, что только члены <code>IInput</code> будут доступны движку.
Вы можете изменить <code>CInput</code> или создать свой собственный унаследованный класс и использовать его. Но помните только члены <code>IInput</code> будут доступны движку.


[[Category:Programming]]
{{ACategory|Programming}}

Latest revision as of 04:31, 22 August 2024

English (en)Deutsch (de)Русский (ru)Translate (Translate)

Интерфейсы — это C++ классы, к которым другие части движка получают доступ, пока ваш мод запущен.

Некоторые объекты интерфейса очень важны и необходимы для функционирования игровых DLL файлов. Для их использования, наследуйте их для реализации, затем вернитесь к интерфейсу в глобальном указателе(en) с предопределённым именем.

Note.pngПримечание:Если вы попытаетесь создать интерфейс напрямую, ваш мод крашнется. Это происходит намеренно.
Warning.pngПредупреждение:Важно создать все объекты, перечисленные при предоставлении интерфейса, даже если ваш мод может быть скомпилирован и запущен без одного или другого. Если вы попытаетесь убрать что-то, вы, вероятней всего, столкнётесь со странными, почти невозможными для отладки ошибками нынешних или будущих обновлений движка!
Warning.pngПредупреждение:Ни в коем случае не изменяйте сам класс интерфейса. Вы всегда должны наследовать его, а затем возвращать.

Пример

static CInput g_Input;
IInput* input = (IInput*)&g_Input;

Тут создаются объекты IInput(en)* input и g_Input, которые ждёт движок, помещая за ними базовый код Valve(en) от CInput(en).

Вы можете изменить CInput или создать свой собственный унаследованный класс и использовать его. Но помните — только члены IInput будут доступны движку.

This category currently contains no pages or media.