Jump to content

Ошибка со скриптом


Recommended Posts

Писал тут работу почтальоном и в debugscript выскочила ошибка:

Quote

WARNING: pochtalion\server.lua:35: Bad argument @ 'addEventHandler' [Expected element at argument 2, got nil]

А вот весь код:
 

Quote

local pjob = createPickup(-2425.17236, -591.79901, 132.18718, 3, 1275, 50)

function animPochta (hitElement)
    setPedAnimation(hitElement, "BOM_Plant_Loop", 10000, true)
end

function pickupJobTrudoustroistvo (hitElement)
    if not getPedOccupiedVehicle(hitElement) then
    local veh = createVehicle(402, -2434.04785, -593.96906, 131.95361)
    warpPedIntoVehicle(hitElement, veh)
    outputChatBox("Вы устроились работать почтальоном! Ваша задача - доставлять письма в определенные точки на карте", hitElement, 0,255,255)
    local m1 = createMarker(-2521.41650, -623.82672, 131.77835, "cylinder", 1.0, 0,255,0,100)
    local m2 = createMarker(-2384.37646, -586.83795, 131.11719, "cylinder", 1.0, 0,255,0,100)
    local m3 = createMarker(-2224.95654, -725.03088, 64.29856, "cylinder", 1.0, 0,255,0,100)
    local m4 = createMarker(-2244.37109, -171.33820, 34.31252, "cylinder", 1.0, 0,255,0,100)
    local m5 = createMarker(-2268.78076, -155.74817, 34.32031, "cylinder", 1.0, 0,255,0,100)
    local b1 = createBlip(-2521.41650, -623.82672, 131.77835,0,2,255,0,0,255,0,200)
    local b2 = createBlip(-2384.37646, -586.83795, 131.11719,0,2,255,0,0,255,0,200)
    local b3 = createBlip(-2224.95654, -725.03088, 64.29856,0,2,255,0,0,255,0,200)
    local b4 = createBlip(-2244.37109, -171.33820, 34.31252,0,2,255,0,0,255,0,200)
    local b5 = createBlip(-2268.78076, -155.74817, 34.32031,0,2,255,0,0,255,0,200)
end
end
addEventHandler("onPickupHit", pjob, pickupJobTrudoustroistvo)

function m1hit (hitElement)
    if not getPedOccupiedVehicle(hitElement) then
    outputChatBox("Вы доставили письмо!", hitElement, 0,255,0)
    destroyElement(m1)
    destroyElement(b1)
end
end
addEventHandler("onMarkerHit", m1, m1hit)

Помогите пожалуйста!

Link to comment
2 hours ago, Disinterpreter said:

У тебя

addEventHandler("onMarkerHit", m1, m1hit)

не может увидеть m1, так как тот локален и находится внутри функции.

Хм, а как это пофиксить собственно?

Link to comment
  • Scripting Moderators
6 hours ago, scripter1 said:

Хм, а как это пофиксить собственно?

Очень легко.

Понадобилось бы просто добавить:

addEventHandler(...)

Внутри той же функций, переменная там существует. Вместо того, что бы сразу его добавлять.

Link to comment
10 hours ago, majqq said:

Очень легко.

Понадобилось бы просто добавить:

addEventHandler(...)

Внутри той же функций, переменная там существует. Вместо того, что бы сразу его добавлять.

внутри функции pickupJobTrudoustroistvo?  или в функции m1hit?

@Disinterpreter

Link to comment
  • Other Languages Moderators
5 minutes ago, scripter1 said:

внутри функции pickupJobTrudoustroistvo?  или в функции m1hit?

@Disinterpreter

Нет, смотри, у тебя сейчас маркер находится внутри pickupJobTrudoustroistvo, однако addEventHandler находится в глобальном окружении. Тебе нужно чтобы addEventHandler видел твой маркер, как тебе посоветовали выше, ты можешь блок с addEventHandler добавить внутрь функции pickupJobTrudoustroistvo. Ну или есть десяток других способов.

Link to comment
Just now, Disinterpreter said:

Нет, смотри, у тебя сейчас маркер находится внутри pickupJobTrudoustroistvo, однако addEventHandler находится в глобальном окружении. Тебе нужно чтобы addEventHandler видел твой маркер, как тебе посоветовали выше, ты можешь блок с addEventHandler добавить внутрь функции pickupJobTrudoustroistvo. Ну или есть десяток других способов.

Смотри.
Свяжись со мной в вк: https://vk.com/lua.zombie
Просто так удобнее.

Link to comment
2 hours ago, Disinterpreter said:

Нет, смотри, у тебя сейчас маркер находится внутри pickupJobTrudoustroistvo, однако addEventHandler находится в глобальном окружении. Тебе нужно чтобы addEventHandler видел твой маркер, как тебе посоветовали выше, ты можешь блок с addEventHandler добавить внутрь функции pickupJobTrudoustroistvo. Ну или есть десяток других способов.

 можешь исправленный код плз скинуть?
Не особо тебя понимаю

Link to comment
  • Other Languages Moderators
1 hour ago, scripter1 said:

 можешь исправленный код плз скинуть?
Не особо тебя понимаю

Не могу. Не я же программист этого кода. Я только подсказал путь для решения.

Link to comment
  • 3 months later...

Наверное уже поздно, но всё же. Либо объяви m1 и все остальные за пределами функции, а уже потом присвой значения (а лучше их массивами вовсе сделать), либо просто запихни addEventHandler("OnMarkerHit".....) в функцию где объявляешь маркеры. 

Link to comment
  • 1 year later...
On 05/08/2020 at 19:47, scripter1 said:

Писал тут работу почтальоном и в debugscript выскочила ошибка:

А вот весь код:
 

Помогите пожалуйста!

local pjob = createPickup(-2425.17236, -591.79901, 132.18718, 3, 1275, 50)

function animPochta (hitElement)
    setPedAnimation(hitElement, "BOM_Plant_Loop", 10000, true)
end

function pickupJobTrudoustroistvo (hitElement)
    if not getPedOccupiedVehicle(hitElement) then
    local veh = createVehicle(402, -2434.04785, -593.96906, 131.95361)
    warpPedIntoVehicle(hitElement, veh)
    outputChatBox("Вы устроились работать почтальоном! Ваша задача - доставлять письма в определенные точки на карте", hitElement, 0,255,255)
    local m1 = createMarker(-2521.41650, -623.82672, 131.77835, "cylinder", 1.0, 0,255,0,100)
    local m2 = createMarker(-2384.37646, -586.83795, 131.11719, "cylinder", 1.0, 0,255,0,100)
    local m3 = createMarker(-2224.95654, -725.03088, 64.29856, "cylinder", 1.0, 0,255,0,100)
    local m4 = createMarker(-2244.37109, -171.33820, 34.31252, "cylinder", 1.0, 0,255,0,100)
    local m5 = createMarker(-2268.78076, -155.74817, 34.32031, "cylinder", 1.0, 0,255,0,100)
    local b1 = createBlip(-2521.41650, -623.82672, 131.77835,0,2,255,0,0,255,0,200)
    local b2 = createBlip(-2384.37646, -586.83795, 131.11719,0,2,255,0,0,255,0,200)
    local b3 = createBlip(-2224.95654, -725.03088, 64.29856,0,2,255,0,0,255,0,200)
    local b4 = createBlip(-2244.37109, -171.33820, 34.31252,0,2,255,0,0,255,0,200)
    local b5 = createBlip(-2268.78076, -155.74817, 34.32031,0,2,255,0,0,255,0,200)
    
    addEventHandler("onMarkerHit", m1, m1hit)
end
end
addEventHandler("onPickupHit", pjob, pickupJobTrudoustroistvo)

function m1hit (hitElement)
    if not getPedOccupiedVehicle(hitElement) then
      outputChatBox("Вы доставили письмо!", hitElement, 0,255,0)
      destroyElement(m1)
      destroyElement(b1)
  end
end

 

Link to comment
  • Sarrum locked this topic
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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