Ruga Posted January 21, 2013 Share Posted January 21, 2013 (edited) Есть вот скрипт который вызывает вертолет с магнитом)), как сделать что бы магнит был на всей модели данного тс, как бы выделить функционал кода только магнита и привязать на модель тс! Или же привязать на createVehicle (417,0,0,0,0,0,0) = что бы у этого созданного тс был магнит постоянный server function magnet_func ( player ) local x, y, z = getElementPosition ( player ) local veh = createVehicle ( 417, x, y, z ) setVehicleAsMagnetHelicopter ( veh ) end addCommandHandler ( "magnet", magnet_func ) function setVehicleAsMagnetHelicopter ( veh ) if getElementModel ( veh ) == 417 then local x, y, z = getElementPosition ( veh ) local magnet = createObject ( 1301, x, y, z-1.5) attachElements ( magnet, veh, 0, 0, -1.5 ) setElementData ( veh, "magpos", -1.5 ) setElementData ( veh, "magnet", magnet ) setElementData ( veh, "magnetic", true ) setElementData ( veh, "hasmagnetactivated", false ) end end function magnetUp ( player ) local veh = getPedOccupiedVehicle ( player ) if veh then local magpos = getElementData ( veh, "magpos" ) if magpos < -1.5 then local magnet = getElementData ( veh, "magnet" ) detachElements ( magnet ) local magpos = magpos+0.1 attachElements ( magnet, veh, 0, 0, magpos, 0, 0, 0 ) setElementData ( veh, "magpos", magpos ) end end end function magnetDown ( player ) local veh = getPedOccupiedVehicle ( player ) if veh then local magpos = getElementData ( veh, "magpos" ) if magpos > -15 then local magnet = getElementData ( veh, "magnet" ) detachElements ( magnet ) local magpos = magpos-0.1 attachElements ( magnet, veh, 0, 0, magpos, 0, 0, 0 ) setElementData ( veh, "magpos", magpos ) end end end function bindTrigger () if not isKeyBound ( source, "lctrl", "down", magnetVehicleCheck ) then bindKey ( source, "lctrl", "down", magnetVehicleCheck ) bindKey ( source, "rctrl", "down", magnetVehicleCheck ) bindKey ( source, "num_sub", "down", magnetUp ) bindKey ( source, "num_add", "down", magnetDown ) end end function unbindTrigger () if isKeyBound ( source, "lctrl", "down", magnetVehicleCheck ) then unbindKey ( source, "lctrl", "down", magnetVehicleCheck ) unbindKey ( source, "rctrl", "down", magnetVehicleCheck ) unbindKey ( source, "num_sub", "down", magnetUp ) unbindKey ( source, "num_add", "down", magnetDown ) end end addEventHandler ( "onPlayerVehicleEnter", getRootElement(), bindTrigger ) addEventHandler ( "onPlayerVehicleExit", getRootElement(), unbindTrigger ) addEventHandler ( "onPlayerWasted", getRootElement(), unbindTrigger ) function magnetVehicleCheck ( player ) local veh = getPedOccupiedVehicle ( player ) if veh then if getElementData ( veh, "magnetic" ) then if getElementData ( veh, "hasmagnetactivated" ) then setElementData ( veh, "hasmagnetactivated", false ) detachElements ( getElementData ( veh, "magneticVeh" ) ) else local magnet = getElementData ( veh, "magnet" ) local x, y, z = getElementPosition ( magnet ) local magpos = getElementData ( veh, "magpos" ) local marker = createColSphere ( x , y , z, 2 ) local vehs = getElementsWithinColShape ( marker, "vehicle" ) destroyElement ( marker ) grabveh = false for key, vehitem in ipairs(vehs) do if vehitem ~= veh then local grabveh = vehitem attachElements ( grabveh, magnet, 0, 0, -1, 0, 0, getVehicleRotation(grabveh) ) setElementData ( veh, "hasmagnetactivated", true ) setElementData ( veh, "magneticVeh", grabveh ) break end end end end end end сlient function clientRenderMagnet () local vehitem = getPedOccupiedVehicle ( getLocalPlayer() ) if vehitem then local mv = getElementData ( vehitem, "magnet" ) if mv then local x1, y1, z1 = getElementPosition ( mv ) local x2, y2, z2 = getElementPosition ( vehitem ) dxDrawLine3D ( x1, y1, z1, x2, y2, z2, tocolor ( 100, 100, 100, 255 ), 10 ) end end end addEventHandler ( "onClientRender", getRootElement(), clientRenderMagnet ) Edited April 17, 2013 by Guest Link to comment
Flaker Posted January 21, 2013 Share Posted January 21, 2013 Ты говори, что не получается и что дебаг пишет... А то в твоем коде копаться, очень не хочется, уж извини! Link to comment
Ruga Posted April 17, 2013 Author Share Posted April 17, 2013 все сделал, пару минут размышлений)) Link to comment
TheNormalnij Posted April 17, 2013 Share Posted April 17, 2013 Mon Jan 21, 2013 8:34 pm : Как пропатчить KDE2 под FreeBSD? Wed Apr 17, 2013 6:42 : А, всё, сам разобрался ) Link to comment
Other Languages Moderators Disinterpreter Posted April 17, 2013 Other Languages Moderators Share Posted April 17, 2013 Mon Jan 21, 2013 8:34 pm : Как пропатчить KDE2 под FreeBSD? Wed Apr 17, 2013 6:42 : А, всё, сам разобрался ) Тоонко :DD Link to comment
Ruga Posted April 17, 2013 Author Share Posted April 17, 2013 нет ну если брать в расчет что я когда задавал вопрос реально не знал.. то, при чем тут патч?, "насмешка тобишь" Вопрос темы конечно тупой, я не против, но ведь не все сразу умными становятся, я написал его и только сейчас решил все таки разобраться, самому стыдно за вопрос, но он есть, а допольнительный код что дописал не считаю нужным выкладывать, он хорошо работает)) не вижу повода для насмешек ребята, ну это как говориться, кто как разумеет))) Link to comment
_Vincent_ Posted April 18, 2013 Share Posted April 18, 2013 патчинг кде2 под фрибсд - своего рода мем рунета. погугли если интересно. а еще это оффтоп в данной теме. раз разобрался, то тему прикрою Link to comment
Recommended Posts