Jump to content

[Решено]сам не могу найти ошибку(((


Recommended Posts

вот код.. не могу понять почему дебаг ругается на второй аргумент тоесть marker..

  
local plTable = { 
[23]={1324.92,1581.27,9.82}, 
[24]={350.09,2537.41,15.73}, 
[25]={-1349.78,-233.62,13.14}, 
[26]={1650.08,-2441.07,12.55} 
} 
  
 function getLocS(ID) 
 if isElement (marker) then 
    destroyElement(marker) 
end 
if isElement (bl) then 
    destroyElement(bl) 
end 
  
local x, y, z = plTable[ID][23], plTable[ID][24],plTable[ID][25] 
 local marker = createMarker(x,y,z,"checkpoint",10,10,235,250,150) 
local bl = createBlipAttachedTo(marker,19,2,10,235,250,225) 
  
 function MarkerHit ( hitPlayer ) 
 if hitPlayer == getLocalPlayer() and isPedInVehicle(hitPlayer) then 
    if (getElementData ( hitPlayer, "worksy" ) == 1)  then 
        if getElementModel ( getPedOccupiedVehicle(hitPlayer) ) == 581 then      
        getLocS( 1) 
            outputChatBox ("Информация:",hitPlayer, 0,153,51) 
            setElementData ( hitPlayer, "worksy", 2 ) 
            else 
            outputChatBox ("Ошибка:",hitPlayer, 102, 0, 0) 
            end 
    elseif (getElementData (hitPlayer, "worksy" ) == 2)  then 
        if getElementModel ( getPedOccupiedVehicle(hitPlayer) ) == 581 then 
            setElementData ( hitPlayer, "worksy",1) 
            outputChatBox("Информация: довезли груз!",hitPlayer, 0,153,51) 
            getLocS( 2 )                                
           else 
            outputChatBox("Ошибка:",hitPlayer, 102, 0, 0) 
           end 
       end 
     end 
  end 
end 
addEventHandler("onClientMarkerHit", marker ,MarkerHit,hitPlayer) 
  
ModelBus1 = { [581]=true } 
function enterinVehicle581 ( thePlayer, seat, jacked )  
    if ModelBus1[getElementModel(source)] and seat==0 then 
          getLocS( math.random(1,2) ) 
              setElementData(thePlayer,"worksy",1) 
        end 
end 
addEventHandler ( "onVehicleEnter", getRootElement(), enterinVehicle581 ) 

Edited by Guest
Link to comment

Это капец какой-то.

Когда вы научитесь нормально задавать вопросы.

Когда вы научитесь нормально создавать темы?

Куда вообще смотрят "модераторы"?

Прочтите: viewtopic.php?f=142&t=44526

Не будьте такими эгоистами, потрудитесь нормально изложить суть вопроса.

И вообще поясните чего вы ожидали от этого куска кода. Чего вы от него хотите?

Link to comment
  
local plTable = { 
    [23] = {1324.92,1581.27,9.82}, 
    [24] = {350.09,2537.41,15.73}, 
    [25] = {-1349.78,-233.62,13.14}, 
    [26] = {1650.08,-2441.07,12.55} 
} 
  
function getLocS( ID ) 
    if isElement ( marker ) then 
        destroyElement( marker ) 
    end 
    if isElement ( bl ) then 
        destroyElement( bl ) 
    end 
  
    local x, y, z = plTable[ID][1], plTable[ID][2],plTable[ID][3] -- Про массивы почитайте поподробнее. Очень важная тема! 
    marker = createMarker(x,y,z,"checkpoint",10,10,235,250,150)  -- Переменные были локальные, поэтому доступа вне функции к ним получить нельзя было 
    bl = createBlipAttachedTo(marker,19,2,10,235,250,225)   -- Так же область видимости... Отсуда и ошибки в аргументах 
    addEventHandler("onClientMarkerHit", marker ,MarkerHit, false ) -- Почитайте поподробнее на WIKI про аргументы! А точнее про 4 аргумент. У вас он был hitElement. 
end 
  
function MarkerHit ( hitPlayer ) -- Зачем обработчик события было вносить внутрь другой функции? 
    if hitPlayer == getLocalPlayer() and isPedInVehicle(hitPlayer) then 
        if (getElementData ( hitPlayer, "worksy" ) == 1)  then 
            if getElementModel ( getPedOccupiedVehicle(hitPlayer) ) == 581 then      
                getLocS( 1) 
                outputChatBox ("Информация:",hitPlayer, 0,153,51) 
                setElementData ( hitPlayer, "worksy", 2 ) 
            else 
                outputChatBox ("Ошибка:",hitPlayer, 102, 0, 0) 
            end 
        elseif (getElementData (hitPlayer, "worksy" ) == 2)  then 
            if getElementModel ( getPedOccupiedVehicle(hitPlayer) ) == 581 then 
                setElementData ( hitPlayer, "worksy",1) 
                outputChatBox("Информация: довезли груз!",hitPlayer, 0,153,51) 
                getLocS( 2 )                                
            else 
                outputChatBox("Ошибка:",hitPlayer, 102, 0, 0) 
            end 
        end 
    end 
end 
  
ModelBus1 = { [581] = true } 
function enterinVehicle581 ( thePlayer, seat, jacked )  
    if ModelBus1[ getElementModel(source) ] and seat==0 then 
        getLocS( math.random( #plTable ) ) -- Вы должны передать рандомный row таблицы, а не 1 или 2 
        setElementData( thePlayer, "worksy", 1 ) 
    end 
end 
addEventHandler ( "onVehicleEnter", getRootElement(), enterinVehicle581 ) 

Код прокомментировал.

P.S. Вы не могли бы расставлять табуляцию получше... Невозможно читать код ведь. Как вы сами в нем разбираетесь?

Link to comment

Flacker, я только учусь, конечно когда все по полочкам удобно только к виду привожу когда он начинает работать, как говориться отсекаю все лишнее , а как я в нем разбираюсь? просто)) ведь когда вручную все запишешь видно сразу что где, иногда правда теряю условия от его завершения, приходиться перебирать, но ваше замечание я усвоил, спасибо))) если я и не правильно часто делаю то по незнанию, а не по "нежеланию"...

Link to comment

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

И еще кое что: Ты не мог бы соблюдать правила форума в плане оформления топиков ( Название темы и так далее... )

Подробные правила форума

Информация об оформлении топиков от Kernell'а

Link to comment

хорошо я все усвоил, много тем много вопросов, впредь не буду докучать. вообщем еще раз спасибо, Flaker что дал коментарии и объяснил некоторые недочеты. ))

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...