Ru/OOP: Difference between revisions
(Created page with "Объектно-ориентированное программирование было введено в MTA:SA 1.4 и поставляется со специальными служебными классами, такими как Vector и Matrix. Эта страница содержит общую информацию о функциях OOP и содержит полезные ссылки. == Включение == По умолчанию ООП откл...") |
No edit summary Tag: Manual revert |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 63: | Line 63: | ||
* '''[[OOP_client|Function list (client)]]''' и '''[[OOP_server|Function list (server)]]''' - список реализованных функций | * '''[[OOP_client|Function list (client)]]''' и '''[[OOP_server|Function list (server)]]''' - список реализованных функций | ||
== | == Выше предоставлены страницы с полезными ссылками на английском языке. == | ||
[[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) - список реализованных функций