RU/createColTube: Difference between revisions
Jump to navigation
Jump to search
(Blanked the page) Tag: Blanking |
No edit summary |
||
| 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]] | |||
[[en:createColTube]] | |||
Revision as of 19:25, 6 August 2026
Эта функция создаёт трубку столкновений. Это форма, которая имеет позицию, двумерный (по X/Y) радиус и высоту. См. цилиндр для определения трубки. Трубка похожа на colcircle, но имеет ограниченную высоту, что позволяет ограничивать расстояние над позицией, заданной (fX, fY, fZ), на котором обнаруживается столкновение.
| Tip: To visualize a colshape when writing scripts, use the client console command showcol |
Синтаксис
colshape createColTube ( float fX, float fY, float fZ, float fRadius, float fHeight )
OOP Syntax Help! I don't understand this!
- Method: ColShape.Tube(...)
Обязательные аргументы
- fX: Позиция центра основания трубки по оси X.
- fY: Позиция центра основания трубки по оси Y.
- fZ: Позиция центра основания трубки по оси Z.
- fRadius: Радиус трубки столкновений.
- fHeight: Высота трубки столкновений.
Возвращаемое значение
Возвращает элемент colshape в случае успеха, false в случае передачи неверных аргументов.
Пример
Click to collapse [-]
Сервер Этот пример выводит сообщение в чат, когда игрок входит в колшейп, и позволяет создать колшейп с помощью консольной команды set_zone.
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)