Ошибка в коде

Annanel

Участник
Автор темы
86
8
Версия MoonLoader
Другое
Вот сам код

Lua:
script_author("Annanel")
require 'lib.moonloader'
local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local isRecording = false -- Установите флажок, чтобы проверить, записывает ли проигрыватель маршрут
local route = {} -- Таблица для хранения записанного маршрута
-- Функция для начала записи маршрута
function startRecording()
    isRecording = true
    route = {} -- Очистите существующий маршрут
    addEventHandler("onPlayerUpdate", recordPosition)
    sampAddChatMessage("[Route Recording] Началась запись маршрута.", 0xFFFFFF)
end
-- Функция остановки записи маршрута
function stopRecording()
    isRecording = false
    removeEventHandler("onPlayerUpdate", recordPosition)
    sampAddChatMessage("[Route Recording] Запись маршрута остановлена.", 0xFFFFFF)
end
-- Функция для записи положения игрока
function recordPosition()
    if isRecording then
        local x, y, z = getElementPosition(getLocalPlayer())
        local time = getTickCount()
        table.insert(route, {x = x, y = y, z = z, time = time})
    end
end
-- Функция для воспроизведения записанного маршрута
function playRoute()
    if #route == 0 then
        sampAddChatMessage("[Route Recording] Маршрут не записан.", 0xFFFFFF)
        return
    end
    local startTime = getTickCount()
    for i, position in ipairs(route) do
        local x, y, z = position.x, position.y, position.z
        local time = position.time
        local elapsed = getTickCount() - startTime
        setTimer(setElementPosition, elapsed, 1, getLocalPlayer(), x, y, z)
    end
end
function onScriptLoad()
    -- Register the chat commands to start/stop recording and play back the route
    sampRegisterChatCommand("startrecording", startRecording)
    sampRegisterChatCommand("stoprecording", stopRecording)
    sampRegisterChatCommand("playroute", playRoute)
end

Вот ошибка:

Код:
[13:28:35.612363] (error)    routrecording.lua: ... Games Launcher\bin\arizona\moonloader\routrecording.lua:51: attempt to call global 'sampAddChatCommand' (a nil value)
stack traceback:
    ... Games Launcher\bin\arizona\moonloader\routrecording.lua:51: in main chunk
 
Последнее редактирование:
  • Эм
Реакции: YarikVL

YarikVL

Известный
Проверенный
4,767
1,819
Вот сам код

Lua:
script_author("Annanel")
require 'lib.moonloader'
local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
-- Global variables
local isRecording = false -- Flag to check if the player is recording a route
local route = {} -- Table to store the recorded route

-- Function to start recording the route
function startRecording()
    isRecording = true
    route = {} -- Clear the existing route
    addEventHandler("onClientRender", recordPosition)
    sampAddChatMessage("Route recording started.", 0xFFFFFF)
end

-- Function to stop recording the route
function stopRecording()
    isRecording = false
    removeEventHandler("onClientRender", recordPosition)
    sampAddChatMessage("Route recording stopped.", 0xFFFFFF)
end

-- Function to record the player's position
function recordPosition()
    if isRecording then
        local x, y, z = getElementPosition(getLocalPlayer())
        local time = getTickCount()
        table.insert(route, {x = x, y = y, z = z, time = time})
    end
end

-- Function to play back the recorded route
function playRoute()
    if #route == 0 then
        sampAddChatMessage("No route recorded.", 0xFFFFFF)
        return
    end
    local startTime = getTickCount()
    for i, position in ipairs(route) do
        local x, y, z = position.x, position.y, position.z
        local time = position.time
        local elapsed = getTickCount() - startTime
        setTimer(setElementPosition, elapsed, 1, getLocalPlayer(), x, y, z)
    end
end

-- Register the chat commands to start/stop recording and play back the route
sampAddChatCommand("startrecording", startRecording)
sampAddChatCommand("stoprecording", stopRecording)
sampAddChatCommand("playroute", playRoute)

Вот ошибка:

Код:
[13:28:35.612363] (error)    routrecording.lua: ... Games Launcher\bin\arizona\moonloader\routrecording.lua:51: attempt to call global 'sampAddChatCommand' (a nil value)
stack traceback:
    ... Games Launcher\bin\arizona\moonloader\routrecording.lua:51: in main chunk
ChatGPT никогда не напишет рабочий скрипт для сампа.
Посмотри ролики The champ guess и ты поймёшь что команда регистрируется так: sampRegisterChatCommand
 

Annanel

Участник
Автор темы
86
8
  • Bug
  • Эм
Реакции: qdIbp и YarikVL

Annanel

Участник
Автор темы
86
8
ChatGPT никогда не напишет рабочий скрипт для сампа.
Посмотри ролики The champ guess и ты поймёшь что команда регистрируется так: sampRegisterChatCommand
А как можно забиндить команду на кнопку?

Ещё вот такие траблы почему-то

Код:
routrecording.lua: lua: error: bad argument #1 to 'addEventHandler' (invalid event name)
stack traceback:
    [C]: in function 'addEventHandler'
    ... Games Launcher\bin\arizona\moonloader\routrecording.lua:14: in function <... Games Launcher\bin\arizona\moonloader\routrecording.lua:11>
[13:53:51.084015] (error)    routrecording.lua: Script died due to an error. (1882772C)

Я так понимаю здесь надо юзать onPlayerUpdate? за место onClientRender
 
Последнее редактирование:
  • Злость
Реакции: YarikVL

YarikVL

Известный
Проверенный
4,767
1,819
А как можно забиндить команду на кнопку?
Посмотри ролики The champ guess


Ещё вот такие траблы почему-то

Код:
routrecording.lua: lua: error: bad argument #1 to 'addEventHandler' (invalid event name)
stack traceback:
    [C]: in function 'addEventHandler'
    ... Games Launcher\bin\arizona\moonloader\routrecording.lua:14: in function <... Games Launcher\bin\arizona\moonloader\routrecording.lua:11>
[13:53:51.084015] (error)    routrecording.lua: Script died due to an error. (1882772C)
Аллооо, я по приколу это пишу?:
ChatGPT никогда не напишет рабочий скрипт для сампа.
Посмотри ролики The champ guess


addEventHandler("onClientRender", recordPosition)
Нету такого события..
removeEventHandler("onClientRender", recordPosition)
Нету такого события и вообще функции removeEventHandler
local x, y, z = getElementPosition(getLocalPlayer())
Нету таких функций в moonApi, писал бы сам код - загуглил и увидел как достают позицию своего персонажа
setTimer(setElementPosition, elapsed, 1, getLocalPlayer(), x, y, z)
Нету такой функции в moonApi.


Это только то, что я увидел за 5 минут.