Внимание! Материалы размещенные на сайте принадлежат их владельцам и предоставляются исключительно в ознакомительных целях. При копировании материала, ссылка на сайт обязательна.
Не много о ЯП Lua — интерпретируемый язык программирования, разработанный подразделением Tecgraf Католического университета Рио-де-Жанейро (Computer Graphics Technology Group of Pontifical Catholic University of Rio de Janeiro in Brazil). Является свободно распространяемым, с открытыми исходными текстами на языке Си. 
далее идет перечень опкодов и команд для разных ситуаций: 

Работа со звуками 

Первый операционный код позволяет проиграть звук (music.mp3) в указанных координатах (x, y, z). 
Второй операционный код позволяет задать радиус проигрывания.

playSound3D("music.mp3", -1500.3966064453, 763.08734130859, 7.1875, true) 
setSoundMaxDistance( sound,100 ) 


Работа с текстурами 

Очень часто людей волнует вопрос как вывести свою картинку/текстуру на экран, вот небольшой пример кода:

function showClientImage()  
      guiCreateStaticImage( 20, 200, 100, 100, "imagename.png", false )  
  end  
  addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource() ), showClientImage ) 


Собственно параметры, сам рисунок, и путь к нему, расширение может быть любое в пределах растровых изображений. затем Альфа канал картинки, и координаты (положение текстуры.) 

Иконки и маркеры 

Первый операционный код создает иконку на радаре, здесь все должно быть понятно, координаты по 3 осям, и идентификатор иконки. 
Втрой операционный код создает сферу, последние параметры задают диаметр и цвет цилиндра по таблице RGB.

createBlip (X, Y, Z, id Иконки) 
local myMarker = createMarker(X, Y, Z, 'cylinder', 2.0, 255, 0, 0, 150) 


Условия и их выполнение (сфера) 

Не менее редким остается вопрос новичков как сделать чтоб при попадании на маркер, игрок получал деньги, или происходило какое либо действие, пример кода:

local myMarker = createMarker(X, Y, Z, 'cylinder', 2.0, 255, 0, 0, 150)  
         
  function MarkerHit( hitElement, matchingDimension)  
        if getElementType(hitElement) == 'player' then  
            givePlayerMoney(hitElement, 1000)  
            outputChatBox( getPlayerName(hitElement).."Зашел на маркер,, и получил 1000$", getRootElement(), 255, 255, 0 )  
        end  
  end  
            
  addEventHandler( "onMarkerHit", myMarker, MarkerHit ) 


Общие опкоды применяемые к объектам и текстурам (замена): 

Ниже представлен пример замены текстуры у любого объекта карты использую ID объекта, roadtextures.txd - Собственно сама библиотека TXD, 8838 - ID Модели в IDE, dfk - переменая можете использовать свою к примеру test123.

function onResourceStart() 
  dfk = engineLoadTXD ( "roadtextures.txd" ) 

         engineImportTXD ( dfk, 8838  ) --Road 

end 
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onResourceStart) 


Ниже представлен пример замены транспорта, в главной роле dff, txd, и id транспортного средства.

function replaceModel()   
txd = engineLoadTXD("at400.txd", 577 ) 
   engineImportTXD(txd, 577) 
   dff = engineLoadDFF("at400.dff", 577 ) 
   engineReplaceModel(dff, 577) 
end 
addEventHandler ( "onClientResourceStart", getResourceRootElement(getThisResource()), replaceModel) 
addCommandHandler ( "reloadcar", replaceModel ) 


Данный код годится для замены игровых скинов, 267 - ID скина.:

txd = engineLoadTXD ( "skater.txd" ) 
engineImportTXD ( txd, 267 ) 
dff = engineLoadDFF ( "skater.dff", 267 ) 
engineReplaceModel ( dff, 267 ) 


Данный код годится для замены игровых моделей, полная замена коллизии, текстуры и модели, + установка LOD'a 2052 - ID модели:

addEventHandler('onClientResourceStart', resourceRoot,  
function()  

local txd = engineLoadTXD('files/mc2.txd',true) 
         engineImportTXD(txd, 2052) 

   
  local dff = engineLoadDFF('files/mc2.dff', 0)  
  engineReplaceModel(dff, 2052) 

  local col = engineLoadCOL('files/mc2.col')  
  engineReplaceCOL(col, 2052) 

    
  engineSetModelLODDistance(2052, 500) 
end  


Add
Info
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Теги