Ru/OOP: Difference between revisions
No edit summary |
No edit summary Tag: Manual revert |
||
(One intermediate revision by the same user not shown) | |||
Line 66: | Line 66: | ||
[[Category:OOP]] | [[Category:OOP]] | ||
Latest revision as of 15:50, 21 May 2024
Объектно-ориентированное программирование было введено в MTA:SA 1.4 и поставляется со специальными служебными классами, такими как Vector и Matrix. Эта страница содержит общую информацию о функциях OOP и содержит полезные ссылки.
Включение
По умолчанию ООП отключено (однако векторы и матрицы доступны всегда) - это происходит главным образом потому, что подавляющее большинство серверов предпочитают придерживаться того, что они знают, - процедурного программирования. На самом деле, функции по-прежнему доступны, даже если ООП включено. Включить ООП так же просто, как добавить следующую строку в мета-файл ресурса:
<oop>true</oop>
Векторы и матрицы
Vectors и Matrices так будет проще отказаться от сложной математики и сразу перейти к увлекательной ее части. Как упоминалось выше, для этого необязательно включать OOP в конфигурации сервера.
ДОПОЛНИТЕЛЬНО: Метастабильная структура OOP
Вы поймете это, если хорошо владеете Lua и хорошо разбираетесь в метатаблях. Понимание этого раздела не обязательно для использования OOP.
-- Подвержен воздействию глобальной окружающей среды Element = { Element = createElement, setPosition = setElementPosition, ... } Vehicle = { Vehicle = createVehicle, setColor = setVehicleColor, ... } -- Скрыто в реестре lua, применяется к пользовательским данным ElementMT = { __index = CLuaClassDefs::Index, __newindex = CLuaClassDefs::NewIndex, __class = Element, __call = __class.create, __set = { type = CLuaClassDefs::ReadOnly, health = setElementHealth, ... }, __get = { type = getElementType, health = getElementHealth, ... }, } VehicleMT = { __index = CLuaClassDefs::Index, __newindex = CLuaClassDefs::NewIndex, __class = Vehicle, __parent = ElementMT, __call = __class.create, __set = { damageProof = setVehicleDamageProof ... }, __get = { damageProof = isVehicleDamageProof ... }, }
Полезные ссылки
- OOP Introduction - познакомит вас с основами OOP
- Function list (client) и Function list (server) - список реализованных функций