как сделать взаимодейсвие с пикаком и диалогом

Feykomet

Участник
Автор темы
149
12
Всем привет есть код и как сделать что бы когда он доходит до координаты он взаимодействовал с пикаком и потом выбирал в диалоге пункт с id 0\
т.к я впервые сталкиваююсь с взяимодейсвием с пикапами и диалогами
желательно объяснить как это работает

Lua:
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('bub', function ()
        lua_thread.create(function ()
            runToPoint(-71, 1190)
            runToPoint(-60, 1180)
        end)
    end)
    while true do
        wait(0)
    end
end

function runToPoint(tox, toy)
   local x, y, z = getCharCoordinates(PLAYER_PED)
   local angle = getHeadingFromVector2d(tox - x, toy - y)
   local xAngle = math.random(-50, 50)/100
   setCameraPositionUnfixed(xAngle, math.rad(angle - 90))
   stopRun = false
   while getDistanceBetweenCoords2d(x, y, tox, toy) > 0.8 do
       setGameKeyState(1, -255)
       --setGameKeyState(16, 1)
       wait(1)
       x, y, z = getCharCoordinates(PLAYER_PED)
       angle = getHeadingFromVector2d(tox - x, toy - y)
       setCameraPositionUnfixed(xAngle, math.rad(angle - 90))
       if stopRun then
           stopRun = false
           break
       end
   end
end
 

Feykomet

Участник
Автор темы
149
12
тебе нужно альт нажать чтобы пикап взять(на аризоне по крайней мере так)
дак мне нужно что бы он сам это делал думаешь я просто так код скинул и сказал что бы скрипт взаимодействовал с пикапом
 

chromiusj

fullstack eblan
Модератор
5,754
4,057
дак мне нужно что бы он сам это делал думаешь я просто так код скинул и сказал что бы скрипт взаимодействовал с пикапом
Друг,много кому что нужно
Взаимодействие диалогов осуществляется через хук OnShowDialog
Координаты пикапа можешь получить сниппетом,а можешь обычной функцией
Lua:
--пример кода для ленивых
function distPickup()
    local pX, pY, pZ = getCharCoordinates(PLAYER_PED)
    for id = 0, 4095 do
        local pickup = sampGetPickupHandleBySampId(id)
        if doesPickupExist(pickup) then
            local x, y, z = getPickupCoordinates(pickup)
            local dist = getDistanceBetweenCoords3d(x, y, z, -1829.8, -1627.2, 23)
            if dist <= 2 then
                lua_thread.create(function()
                    sendOnfootSync(x, y, z)--сам найдешь функцию
                    wait(0)
                    sampSendPickedUpPickup(id)
                end)
            end
        end
    end
end
 
Последнее редактирование: