[Help] Крашит игру при активации скрипта на команду. - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir  
[Help] Крашит игру при активации скрипта на команду.
ArrowOfDeath Дата: Вторник, 08.01.2019, 20:30 | Сообщение # 1
Советник
Сообщений: 629
Статус: Offline
Код
function main()
  if not isSampfuncsLoaded() or not isSampLoaded() then return end
   local font = renderCreateFont("Arial", 10, 12)
   while not isSampAvailable() do wait(100) end
   if not isPauseMenuActive() and isPlayerPlaying(PLAYER_HANDLE) then
    sampRegisterChatCommand("af", af1)
      wait(-1)
  end
end
     
function af1()
  for a = 1, 2000 do
   local result, carhandle = sampGetCarHandleBySampVehicleId(a)
   if result then
   local doorStatus = getCarDoorLockStatus(carhandle)
   if  doorStatus == 0 then
       doorStatus = "{00cc00}Unlock"
end
   if doorStatus == 2 then
      doorStatus = "{cc0000}Lock"
end   
   local model = getCarModel(carhandle)
   local namecar = getNameOfVehicleModel(model)
   local health = getCarHealth(carhandle)
   local X, Y, Z = getOffsetFromCarInWorldCoords( carhandle, 0.0, 0.0, 0.0)
   local resul = isPointOnScreen(X, Y, Z, 0.0)
   if resul then
   local wposX, wposY = convert3DCoordsToScreen(X, Y, Z)
         renderFontDrawText(font, string.format("{00ff00}%s {cc00cc}%d %s\n{ff0000}%d", namecar, model, doorStatus, health), wposX, wposY, color)
         renderDrawPolygon(wposX, wposY, 5, 5, 30, 0, color)
      end
    end
  end
end


Скрин кода
Прикрепления: Beta.lua (1.3 Kb)


Мои AHК скрипты | Темы:

AHK



Сообщение отредактировал ArrowOfDeath - Вторник, 08.01.2019, 20:32
Alowir Дата: Среда, 09.01.2019, 03:48 | Сообщение # 2
Сообщений: 774
Статус: Offline
Код
local color = 0xFFFFFFFF

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    font = renderCreateFont("Arial", 10, 12) -- обязательно делать переменную глобальной, т.к юзаешь в другой функции
    while not isSampAvailable() do wait(100) end
    if not isPauseMenuActive() and isPlayerPlaying(PLAYER_HANDLE) then
      sampRegisterChatCommand("af", af1)
    end
    wait(-1)
end

function af1()
    for carId = 1, 2000 do
        local result, carhandle = sampGetCarHandleBySampVehicleId(carId)
        if result then
            doorStatus = (getCarDoorLockStatus(carhandle) == 2 and "{cc0000}Lock" or "{00cc00}Unlock")
            local model = getCarModel(carhandle)
            local carName, carHealth, x, y, z = getNameOfVehicleModel(model), getCarHealth(carhandle), getCarCoordinates(carhandle)
            if isPointOnScreen(x, y, z, 1.0) then
                local X, Y = convert3DCoordsToScreen(x, y, z)
                renderFontDrawText(font, string.format("{00ff00}%s {cc00cc}%d %s\n{ff0000}%d", carName, model, doorStatus, carHealth), X, Y, color) --[[оба варианта верны]]--

                --renderFontDrawText(font, "{00ff00}"..carName.."{cc00cc} "..model.." "..doorStatus.."\n{ff0000}"..carHealth, X, Y, color)
                renderDrawPolygon(X, Y, 5, 5, 30, 0, color)
            end
        end
    end
end
ArrowOfDeath Дата: Среда, 09.01.2019, 15:03 | Сообщение # 3
Советник
Сообщений: 629
Статус: Offline
Спасибо, понял ошибочку. Далее при активации выводит 3д текст, но на 1 кадр. Пытался зациклить
Код
while true do
wait(0) так же repeat until

Выдает ошибочки. Как правильно зациклить чтоб к функе обращение было бесконечным, пока снова не деактивируешь?


Мои AHК скрипты | Темы:

AHK

Alowir Дата: Среда, 09.01.2019, 15:31 | Сообщение # 4
Сообщений: 774
Статус: Offline
Код
local color = 0xFFFFFFFF

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    font = renderCreateFont("Arial", 10, 12) -- обазятельно делать переменную глобальной, т.к юзаешь в другой функции
    while not isSampAvailable() do wait(100) end
    if not isPauseMenuActive() and isPlayerPlaying(PLAYER_HANDLE) then
      sampRegisterChatCommand("af", af1)
    end
    while true do wait(0)
        if status then
            for carId = 1, 2000 do
                local result, carhandle = sampGetCarHandleBySampVehicleId(carId)
                if result then
                    doorStatus = (getCarDoorLockStatus(carhandle) == 2 and "{cc0000}Lock" or "{00cc00}Unlock")
                    local model = getCarModel(carhandle)
                    local carName, carHealth, x, y, z = getNameOfVehicleModel(model), getCarHealth(carhandle), getCarCoordinates(carhandle)
                    if isPointOnScreen(x, y, z, 1.0) then
                        local X, Y = convert3DCoordsToScreen(x, y, z)
                        renderFontDrawText(font, string.format("{00ff00}%s {cc00cc}%d %s\n{ff0000}%d", carName, model, doorStatus, carHealth), X, Y, color) --[[оба варианта верны]]--

                        --renderFontDrawText(font, "{00ff00}"..carName.."{cc00cc} "..model.." "..doorStatus.."\n{ff0000}"..carHealth, X, Y, color)
                        renderDrawPolygon(X, Y, 5, 5, 30, 0, color)
                    end
                end
            end
        end
    end
end

function af1()
    status = not status
end


или

Код
local color = 0xFFFFFFFF

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    font = renderCreateFont("Arial", 10, 12) -- обазятельно делать переменную глобальной, т.к юзаешь в другой функции
    while not isSampAvailable() do wait(100) end
    if not isPauseMenuActive() and isPlayerPlaying(PLAYER_HANDLE) then
      sampRegisterChatCommand("af", af1)
    end
    wait(-1)
end

function af1()
    if renderThread then renderThread:terminate(); renderThread = nil return end
    renderThread = lua_thread.create(function()
        while true do wait(0)
            for carId = 1, 2000 do
                local result, carhandle = sampGetCarHandleBySampVehicleId(carId)
                if result then
                    doorStatus = (getCarDoorLockStatus(carhandle) == 2 and "{cc0000}Lock" or "{00cc00}Unlock")
                    local model = getCarModel(carhandle)
                    local carName, carHealth, x, y, z = getNameOfVehicleModel(model), getCarHealth(carhandle), getCarCoordinates(carhandle)
                    if isPointOnScreen(x, y, z, 1.0) then
                        local X, Y = convert3DCoordsToScreen(x, y, z)
                        renderFontDrawText(font, string.format("{00ff00}%s {cc00cc}%d %s\n{ff0000}%d", carName, model, doorStatus, carHealth), X, Y, color) --[[оба варианта верны]]--

                        --renderFontDrawText(font, "{00ff00}"..carName.."{cc00cc} "..model.." "..doorStatus.."\n{ff0000}"..carHealth, X, Y, color)
                        renderDrawPolygon(X, Y, 5, 5, 30, 0, color)
                    end
                end
            end
        end
    end)
end
ArrowOfDeath Дата: Среда, 09.01.2019, 16:24 | Сообщение # 5
Советник
Сообщений: 629
Статус: Offline
Поясни пожалуйста, логику
Код
if status then


Почему значение переменной status именно not status. Как вообще это работает в Lua.
Код
function af1()
    status = not status
end


Мои AHК скрипты | Темы:

AHK



Сообщение отредактировал ArrowOfDeath - Среда, 09.01.2019, 16:25
Bobcar Дата: Вторник, 05.02.2019, 14:15 | Сообщение # 6
Новичок
Сообщений: 6
Статус: Offline
Код
status = not status

Цитата ArrowOfDeath ()
Почему значение переменной status именно not status

Это меняет значение переменной status на противоположное. То есть если было false, то станет true, и наоборот. Оператор not - отрицание.


Сообщение отредактировал Bobcar - Вторник, 05.02.2019, 14:15
  • Страница 1 из 1
  • 1
Поиск: