Jump to content

Общий мини "HELP ME" топик по скриптингу


Recommended Posts

Чтото не получается!!! Я Наверно нетак делаю! :cry::cry::cry::cry::cry::cry:

local myMarker = createMarker(-1651.8, -163.1, 12.9, 'cylinder', 5.0, 0, 255, 0, 150) 
  
function Countdown ( source, hitElement ) 
    guiSetVisible ( imagecount, false ) 
    imagecount = guiCreateStaticImage (305,119,250,190,"images/3.png",false) 
    setTimer ( Countdown2, 1000, 1 ) 
end 
function Countdown2 ( source ) 
    guiSetVisible ( imagecount, false ) 
    imagecount = guiCreateStaticImage(305,119,250,190,"images/2.png",false) 
    setTimer ( Countdown1, 1000, 1 ) 
end 
function Countdown1 ( source ) 
    guiSetVisible ( imagecount, false ) 
    imagecount = guiCreateStaticImage(305,119,250,190,"images/1.png",false) 
    setTimer ( Countdown0, 1000, 1 ) 
end 
function Countdown0 ( source ) 
    guiSetVisible ( imagecount, false ) 
    imagecount = guiCreateStaticImage(305,119,320,81,"images/go.png",false) 
    setTimer ( CountdownEnd, 3000, 1 ) 
end 
function CountdownEnd ( source ) 
    guiSetVisible ( imagecount, false ) 
end 
addCommandHandler ( "countdown", Countdown ) 
  
  
  
addEventHandler( "onMarkerHit", myMarker, Countdown ) 

Link to comment

Короче, если у тебя клиентский скрипт, то тебе нужно юзать и клиентское событие соответственно т.к серверное событие на клиенте не будет срабатывать.

P.S На вики написано на какой стороне( клиент/сервер ) событие.

Link to comment
Короче, если у тебя клиентский скрипт, то тебе нужно юзать и клиентское событие соответственно т.к серверное событие на клиенте не будет срабатывать.

P.S На вики написано на какой стороне( клиент/сервер ) событие.

Это клиентский скрипт верно? Тебе нужно юзать клиентское событие onClientMarkerHit. В предыдущем посте я сказал уже об этом.

P.S Никто не будет писать код за тебя.

Link to comment

Народ, кто копался когда-нибудь в speedo_gfx, или просто знает, подскажите, как вывести стрелку спидометра на 1 план?

Стрелка спидометра создана таким образом:

needle = dxDrawImage(x, y, g_ImageW, g_ImageH, "test_needle.png", vehSpeed, 0, 0, white, true) 

Я пробовал guiMoveToFront (needle), добавил последний параметр к dxDrawImage -> (postGUI = true).

Но все равно, не получается вывести на передний план эту стрелочку.(

Link to comment
Рендер: 
Рисуем картинку спидометра 
Рисуем стрелку. 

В этом порядке делай всё.

Вообще легче свой спидометр сделать. Там ничего сложного нет.

Link to comment

Вобще я вот хочу сделать, но у меня самая большая проблемма, это с расчетами координат спидометра на экране.

Что б всегда в углу был (при любом разрешении). Я просто даже не понимаю как координаты жти расчитывать.

Link to comment

По х: ~ 0.9

По y: ~ 0.9

Это относительные координаты так? А нельзя же использовать относительные и абсолютные сразу, следовательно для ширины и высоты придется использовать тоже относительные, а значит если экран 22 дюйма и тд... то очень большим будет спидометр.

Так? Или я не знаю что-то?

Link to comment

В гуишках уже встроен аргумент relative. Значит в дх нужно будет выкручиваться самому ( ибо в том же dxDrawImage нужна абсолютная позиция, а не относителньая )

=> относительные координаты умножаешь на ( ширину, высоту ) экрана.

Пример

  
local nScreenX, nScreenY = guiGetScreenSize( ) -- Получаем ширину, высоту экрана. 
local nX, nY = 0.9 * nScreenX, 0.9 * nScreenY 
  

Координаты будут абсолютными, но точными :) на любых разрешениях.

Link to comment

Вот написал немного.

Стрелка появляется под диском спидометра, что тут надо изменить что-бы появлялась сверху?

local Screen_Width, Screen_High = guiGetScreenSize( ) -- Получаем ширину, высоту экрана. 
  
  
  
  
  
  
function show_spedo_disc() 
    disc = guiCreateStaticImage(Screen_Width/1.27,Screen_High/1.4, 212, 212, "disc.png", false) 
    Disk_pos_X, Disk_pos_Y = guiGetPosition(disc, false) 
end 
  
function Player_Render() 
    needle = dxDrawImage(Disk_pos_X, Disk_pos_Y, 212, 212, "needle.png", 1, 0, 0, white, true) 
end 
  
  
  
addEventHandler("onClientVehicleEnter", getRootElement(), 
    function(thePlayer) 
        if thePlayer == getLocalPlayer() then 
            show_spedo_disc() 
            addEventHandler("onClientRender", getRootElement(), Player_Render) 
        end 
    end 
) 

Link to comment
GUIEditor_Window = {} 
GUIEditor_TabPanel = {} 
GUIEditor_Tab = {} 
GUIEditor_Memo = {} 
  
GUIEditor_Window[1] = guiCreateWindow(221,190,568,422,"GUI OKNO",false) 
GUIEditor_TabPanel[1] = guiCreateTabPanel(12,32,531,366,false,GUIEditor_Window[1]) 
GUIEditor_Tab[1] = guiCreateTab("Tab Pannelka (TAB1)",GUIEditor_TabPanel[1]) 
GUIEditor_Memo[1] = guiCreateMemo(91,43,362,261,"Это мемо",false,GUIEditor_Tab[1]) 
GUIEditor_Tab[2] = guiCreateTab("Tab Pannelka (TAB2)",GUIEditor_TabPanel[1]) 
  

https://community.multitheftauto.com/index.php?p=resources&s=details&id=141

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...