Ruga Posted April 24, 2013 Share Posted April 24, 2013 (edited) вот код.. не могу понять почему дебаг ругается на второй аргумент тоесть 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 April 25, 2013 by Guest Link to comment
TheNormalnij Posted April 24, 2013 Share Posted April 24, 2013 Посмотри как ты юзаешь таблицу plTable Link to comment
Kernell Posted April 24, 2013 Share Posted April 24, 2013 Это капец какой-то. Когда вы научитесь нормально задавать вопросы. Когда вы научитесь нормально создавать темы? Куда вообще смотрят "модераторы"? Прочтите: viewtopic.php?f=142&t=44526 Не будьте такими эгоистами, потрудитесь нормально изложить суть вопроса. И вообще поясните чего вы ожидали от этого куска кода. Чего вы от него хотите? Link to comment
Flaker Posted April 25, 2013 Share Posted April 25, 2013 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
Ruga Posted April 25, 2013 Author Share Posted April 25, 2013 Flacker, я только учусь, конечно когда все по полочкам удобно только к виду привожу когда он начинает работать, как говориться отсекаю все лишнее , а как я в нем разбираюсь? просто)) ведь когда вручную все запишешь видно сразу что где, иногда правда теряю условия от его завершения, приходиться перебирать, но ваше замечание я усвоил, спасибо))) если я и не правильно часто делаю то по незнанию, а не по "нежеланию"... Link to comment
Flaker Posted April 25, 2013 Share Posted April 25, 2013 В общем, соблюдай табуляцию, это как минимум удобно при чтении своего же кода. К тому же, шанс получить ответ, при наличии удобочитаемого кода, выше. И еще кое что: Ты не мог бы соблюдать правила форума в плане оформления топиков ( Название темы и так далее... ) Подробные правила форума Информация об оформлении топиков от Kernell'а Link to comment
Kenix Posted April 25, 2013 Share Posted April 25, 2013 https://forum.multitheftauto.com/viewtopic.php?f=141&t=40703 Link to comment
Ruga Posted April 25, 2013 Author Share Posted April 25, 2013 хорошо я все усвоил, много тем много вопросов, впредь не буду докучать. вообщем еще раз спасибо, Flaker что дал коментарии и объяснил некоторые недочеты. )) Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now