|
|
| Line 1: |
Line 1: |
| {{Server client function}}
| |
| Эта функция создаёт трубку столкновений. Это форма, которая имеет позицию, двумерный (по X/Y) радиус и высоту. См. [http://en.wikipedia.org/wiki/Cylinder_(geometry) цилиндр] для определения трубки. Трубка похожа на colcircle, но имеет ограниченную высоту, что позволяет ограничивать расстояние над позицией, заданной (fX, fY, fZ), на котором обнаруживается столкновение.
| |
| {{VisualizeColshape}}
| |
| ==Синтаксис==
| |
| <syntaxhighlight lang="lua">
| |
| colshape createColTube ( float fX, float fY, float fZ, float fRadius, float fHeight )
| |
| </syntaxhighlight>
| |
| {{OOP| |ColShape.Tube||}}
| |
| ===Обязательные аргументы===
| |
| *'''fX:''' Позиция центра основания трубки по оси X.
| |
| *'''fY:''' Позиция центра основания трубки по оси Y.
| |
| *'''fZ:''' Позиция центра основания трубки по оси Z.
| |
| *'''fRadius:''' Радиус трубки столкновений.
| |
| *'''fHeight:''' Высота трубки столкновений.
| |
|
| |
|
| ===Возвращаемое значение===
| |
| Возвращает элемент [[colshape]] в случае успеха, ''false'' в случае передачи неверных аргументов.
| |
|
| |
| ==Пример==
| |
|
| |
| <section name="Сервер" class="server" show="true"> Этот пример выводит сообщение в чат, когда игрок входит в колшейп, и позволяет создать колшейп с помощью консольной команды ''set_zone''. <syntaxhighlight lang="lua"> local theZone
| |
| function shapeHit(thePlayer)
| |
| outputChatBox(getPlayerName(thePlayer).." вошёл в зону!")
| |
| end
| |
|
| |
| function setZone(playerSource, commandName, fX, fY, fZ, fRadius, fHeight)
| |
| local fX, fY, fZ, fRadius, fHeight = tonumber(fX), tonumber(fY), tonumber(fZ), tonumber(fRadius), tonumber(fHeight)
| |
| if (not fX) or (not fY) or (not fZ) or (not fRadius) or (not fHeight) then
| |
| outputChatBox("Синтаксис: /"..commandName.." [X] [Y] [Z] [Радиус] [Высота]", playerSource)
| |
| else
| |
| if (theZone ~= nil) then
| |
| destroyElement(theZone)
| |
| end
| |
| local tempCol = createColTube(fX, fY, fZ, fRaduis, fHeight)
| |
| addEventHandler("onColShapeHit", tempCol, shapeHit)
| |
| outputChatBox("Зона "..(theZone ~= nil and "перемещена" or "создана").."!", playerSource)
| |
| theZone = tempCol
| |
| end
| |
| end
| |
| addCommandHandler("set_zone", setZone, false, false)
| |
| </syntaxhighlight>
| |
|
| |
| </section>
| |
| ==Смотрите также==
| |
| {{Функции формы столкновения}}
| |
|
| |
| [[hu:createColTube]]
| |