RU/createExplosion
From Multi Theft Auto: Wiki
Создаёт взрыв определённого типа в указанной точке игрового мира. Если создатель указан, взрыв будет произведён только в его измерении.
Синтаксис
Click to collapse [-]
Серверbool createExplosion ( float x, float y, float z, int theType [, player creator = nil ] )
Обязательные аргументы
- x: Вещественное число, указывающее координату X, на которой будет создан взрыв.
- y: Вещественное число, указывающее координату Y, на которой будет создан взрыв.
- z: Вещественное число, указывающее координату Z, на которой будет создан взрыв.
- theType: Целое число, указывающее тип взрыва. Доступные типы:
- 0: Граната
- 1: Молотов
- 2: Ракета
- 3: Слабая ракета
- 4: Автомобиль
- 5: Автомобиль (быстрый)
- 6: Лодка
- 7: Вертолёт
- 8: Мина
- 9: Объект
- 10: Танковый снаряд
- 11: Маленький
- 12: Крохотный
Необязательные аргументы
- creator: Создатель взрыва, игрок ответственный за него.
Click to collapse [-]
Клиентbool createExplosion ( float x, float y, float z, int theType [, bool makeSound = true, float camShake = -1.0, bool damaging = true ] )
Обязательные аргументы
- x: Вещественное число, указывающее координату X, на которой будет создан взрыв.
- y: Вещественное число, указывающее координату Y, на которой будет создан взрыв.
- z: Вещественное число, указывающее координату Z, на которой будет создан взрыв.
- theType: Целое число, указывающее тип взрыва. Доступные типы:
- 0: Граната
- 1: Молотов
- 2: Ракета
- 3: Слабая ракета
- 4: Автомобиль
- 5: Автомобиль (быстрый)
- 6: Лодка
- 7: Вертолёт
- 8: Мина
- 9: Объект
- 10: Танковый снаряд
- 11: Маленький
- 12: Крохотный
Необязательные аргументы
- makeSound: Логическое значение, указывающее на слышимость взрыва.
- camShake: Вещественное число, указывающее интенсивность тряски камеры.
- damaging: Логическое значение, указывающее, должен ли взрыв наносить урон.
Возвращает
- true, если взрыв был создан.
- false, если были указаны неверные параметры.
Пример
Click to collapse [-]
СерверПример 1: Этот код создаст взрыв на позиции игрока при его появлении.
function explosionOnSpawn ( ) -- получаем позицию появившегося игрока local pX, pY, pZ = getElementPosition ( source ) -- и создаём там взрыв, указав игрока как создателя createExplosion ( pX, pY, pZ, 6, source ) end -- добавляем обработчик события addEventHandler ( "onPlayerSpawn", getRootElement(), explosionOnSpawn )
Пример 2: Этот пример позволяет создавать мины.
function createClaymore ( creator ) local x, y, z = getElementPosition ( creator ) local claymoreObject = createObject ( 1945, x, y, z - 1, 0, 0, 90 ) --создаём объект local claymoreCol = createColSphere ( x, y, z, 1 ) --создаём сферу столкновения с радиусом 1 setElementData ( claymoreCol , "type", "claymore" ) --сохраняем тип сферы setElementData ( claymoreCol, "object", claymoreObject ) --сохраняем объект setElementData ( claymoreCol, "creatorPlayer", creator ) --сохраняем создателя end function claymoreHit ( player ) if getElementData ( source, "type" ) == "claymore" then --убедимся, что это мина --получаем объект мины и создателя local claymoreObject = getElementData ( source, "object" ) local claymoreCreator = getElementData ( source, "creatorPlayer" ) --получаем позицию мины local x, y, z = getElementPosition ( source ) createExplosion ( x, y, z, 12, claymoreCreator ) --создаём взрыв, связанный с создателем, маленького размера на позиции мины --уничтожаем объект мины и сферу столкновения, чтобы мина не взорвалась снова destroyElement ( claymoreObject ) destroyElement ( source ) end end addEventHandler ( "onColShapeHit", getRootElement(), claymoreHit )
Пример 3: Вызывает взрыв, который не нанесёт урона игроку.
function fakeBombAt(el) if isElement(el) then local x,y,z = getElementPosition(el) triggerClientEvent ( "fakeBomb", getRootElement(), x, y, z, 0 ) end end function onPlayerSpawnEvent(spawnpoint, team) fakeBombAt(source) end function onPlayerQuitEvent(reason) fakeBombAt(source) end function onPlayerDiedEvent(totalAmmo, killer, killerWeapon, bodypart) setTimer(fadeCamera, 2000, 1, source, false) fakeBombAt(source) setTimer(spawnPlayer, 4000, 1, source, 0, 0, 0) setTimer(fadeCamera, 4500, 1, source, true) end addEventHandler("onPlayerQuit",getRootElement(), onPlayerQuitEvent) addEventHandler("onPlayerWasted",getRootElement(), onPlayerDiedEvent) addEventHandler("onPlayerSpawn",getRootElement(), onPlayerSpawnEvent)
Click to collapse [-]
КлиентПример 1: Этот код создаст взрыв для локального игрока при его появлении.
function explosionOnSpawn ( ) -- получаем позицию появившегося игрока local pX, pY, pZ = getElementPosition ( source ) -- и создаем там взрыв createExplosion ( pX, pY, pZ, 6 ) end -- добавляем обработчик события addEventHandler ( "onClientPlayerSpawn", getLocalPlayer(), explosionOnSpawn )
Пример 2: Вызывает взрыв, который не нанесёт урона игроку.
function fakeBomb(x,y,z,d) if d then --Проверим измерение игрока if getElementDimension(getLocalPlayer()) == d then --Если измерение игрока соответствует текущему --Тогда люди в других измерениях не увидят этот взрыв createExplosion(x, y, z, 0, true, -1.0, false) end else createExplosion(x,y,z,0,true,-1.0,false) end end addEvent("fakeBomb",true) addEventHandler("fakeBomb",getRootElement(),fakeBomb)