-- menu_client.lua

local theTableMenuScroll = {}
function startRollMessageMenu(text, r, g, b, data)
	table.insert(theTableMenuScroll,{text,r,g,b,data})
end

vehicleAddonsInfo = {
-- {Model ID, Tires, Engine, Tank Parts}
{500,4,1,1}, --Mesa
{568,4,1,1}, --Bandito
{512,0,1,1}, --Cropduster
{476,0,1,1}, --rust
{483,4,1,1}, --camper
{422,4,1,1}, --Bobcat
{470,4,1,1}, --Patriot
{471,4,1,1}, --Quad
{404,4,1,1}, --Perenniel
{531,4,1,1}, --Tractor
{468,2,1,1}, --Sanchez
{433,6,1,1}, --Barracks
{437,6,1,1}, --Coach
{509,0,0,0}, --Bike
{487,0,1,1}, --Maverick
{497,0,1,1}, --Police Maverik
{453,0,1,1} -- Reffer
}

function getVehicleAddonInfos (id)
	for i,veh in ipairs(vehicleAddonsInfo) do
		if veh[1] == id then
			return veh[2],veh[3], veh[4]
		end
	end
end

function dxDrawingColorTextMenuScroll(str, ax, ay, bx, by, color, alpha, scale, font, alignX, alignY)

  if alignX then
    if alignX == "center" then
    elseif alignX == "right" then
      local w = dxGetTextWidth(str:gsub("#%x%x%x%x%x%x",""), scale, font)
      ax = bx - w
    end
  end

  if alignY then
    if alignY == "center" then
      local h = dxGetFontHeight(scale, font)
      ay = ay + (by-ay)/2 - h/2
    elseif alignY == "bottom" then
      local h = dxGetFontHeight(scale, font)
      ay = by - h
    end
  end

  local pat = "(.-)#(%x%x%x%x%x%x)"
  local s, e, cap, col = str:find(pat, 1)
  local last = 1
  while s do
    if cap == "" and col then color = tocolor(tonumber("0x"..col:sub(1, 2)), tonumber("0x"..col:sub(3, 4)), tonumber("0x"..col:sub(5, 6)), alpha) end
    if s ~= 1 or cap ~= "" then
      local w = dxGetTextWidth(cap, scale, font)
      dxDrawText(cap, ax, ay, ax + w, by, color, scale, font)
      ax = ax + w
      color = tocolor(tonumber("0x"..col:sub(1, 2)), tonumber("0x"..col:sub(3, 4)), tonumber("0x"..col:sub(5, 6)), alpha)
    end
    last = e + 1
    s, e, cap, col = str:find(pat, last)
  end
  if last <= #str then
    cap = str:sub(last)
    local w = dxGetTextWidth(cap, scale, font)
    dxDrawText(cap, ax, ay, ax + w, by, color, scale, font)
  end
end

local boxSpace = dxGetFontHeight(1,"default-bold")+dxGetFontHeight(1,"default-bold")*0.1

local optionsTable = {
["player"] = {
{"Give Painkillers"},
{"Give Bandage"},
{"Give Morphine"},
},
}
------------------------------------------------------------------------------
--MENU
function showClientMenuItem(arg1,arg2,arg3,arg4)
theTableMenuScroll = {}
setElementData(localPlayer,"usedItemTrue", false)
numberMenuScroll = 1
if arg1 == "Take" then
	startRollMessageMenu("Подобрать "..arg2,50,255,50,arg2)
	setElementData(localPlayer,"usedItemTrue", true)
end
if arg1 == "stop" then
	disableMenu()
	refreshLoot(false)
end
if arg1 == "Helicrashsite" then
	startRollMessageMenu("Обыскать",255,255,255,"helicrashsite")
	setElementData(localPlayer,"usedItemTrue", true)
end
if arg1 == "Hospitalbox" then
	startRollMessageMenu("Содержимое",255,255,255,"hospitalbox")
	setElementData(localPlayer,"usedItemTrue", true)
end

if arg1 == "Vehicle" then
	startRollMessageMenu("Содержимое ("..arg2.."): "..getLootCurrentSlots(arg4).."/"..(getElementData(arg4,"MAX_Slots") or 0).." слотов",0,255,0,"vehicle")
	setElementData(localPlayer,"usedItemTrue", true)
	if getElementData(getElementData(arg3,"parent"),"tent") then
		startRollMessageMenu("Убрать палатку",0,255,0,"tent")
		return
	end
	--2
	if getElementHealth(arg3) < 1000 and getElementHealth(arg3) >= 50 then
		startRollMessageMenu("Починить ("..arg2.."): " ..tostring(math.floor(getElementHealth(arg3)/10)).."%",0,255,0,"repairvehicle")
		setElementData(localPlayer,"usedItemTrue", true)
	end
	
	
	if (getElementData(arg4,"fuel") or 0) < getVehicleMaxFuel(arg4) then
		startRollMessageMenu("Заправить ("..tostring(math.floor(getElementData(arg4,"fuel") or 0)).."/"..getVehicleMaxFuel(arg4)..")",255,0,0,"FuelOne")
		setElementData(localPlayer,"usedItemTrue", true)
	end
	
	if (getElementData(arg4,"fuel") or 0) >= 20 then
		startRollMessageMenu("Слить бензин ("..tostring(math.floor(getElementData(arg4,"fuel") or 0)).."/"..getVehicleMaxFuel(arg4)..")",255,255,0,"FuelTwo")
		setElementData(localPlayer,"usedItemTrue", true)
	end
	
	local tires,engine,parts = getVehicleAddonInfos (getElementModel(arg3))
	if (getElementData(arg4,"Колесо_inVehicle") or 0) < tires then
		startRollMessageMenu("Поставить колесо ("..(getElementData(arg4,"Колесо_inVehicle") or 0).."/"..tires..")",255,0,0,"TireOne")
		setElementData(localPlayer,"usedItemTrue", true)
	end
	if (getElementData(arg4,"Двигатель_inVehicle") or 0) < engine then
		startRollMessageMenu("Поставить двигатель ("..(getElementData(arg4,"Двигатель_inVehicle") or 0).."/"..engine..")",255,0,0,"EngineOne")
		setElementData(localPlayer,"usedItemTrue", true)
	end
	if (getElementData(arg4,"Parts_inVehicle") or 0) < parts then
		startRollMessageMenu("Поставить Бензобак ("..(getElementData(arg4,"Parts_inVehicle") or 0).."/"..parts..")",255,0,0,"PartsOne")
		setElementData(localPlayer,"usedItemTrue", true)
	end
	
	if (getElementData(arg4,"Колесо_inVehicle") or 0) > 0 then
		startRollMessageMenu("Снять колесо ("..(getElementData(arg4,"Колесо_inVehicle") or 0).."/"..tires..")",255,255,0,"TireTwo")
		setElementData(localPlayer,"usedItemTrue", true)
	end
	if (getElementData(arg4,"Двигатель_inVehicle") or 0) > 0 then
		startRollMessageMenu("Снять двигатель ("..(getElementData(arg4,"Двигатель_inVehicle") or 0).."/"..engine..")",255,255,0,"EngineTwo")
		setElementData(localPlayer,"usedItemTrue", true)
	end
	if (getElementData(arg4,"Parts_inVehicle") or 0) > 0 then
		startRollMessageMenu("Снять Бензобак ("..(getElementData(arg4,"Parts_inVehicle") or 0).."/"..parts..")",255,255,0,"PartsTwo")
		setElementData(localPlayer,"usedItemTrue", true)
	end	
end
if arg1 == "Player" then
	--1
	if getElementData(arg2,"bleeding") > 0 and getElementData(getLocalPlayer(),"Бинт") >= 1 then
		startRollMessageMenu("Перевязать",255,255,255,"bandage")
		setElementData(localPlayer,"usedItemTrue", true)
	end	
	if getElementData(arg2,"blood") < 11900 and getElementData(getLocalPlayer(),"Пакет крови") >= 1 then
		startRollMessageMenu("Пополнить кровь",255,255,255,"giveblood")
		setElementData(localPlayer,"usedItemTrue", true)
	end
end
if arg1 == "Dead" then
	startRollMessageMenu("Содержимое ("..arg2..")",0,255,0,"dead")
	startRollMessageMenu("Осмотреть тело",0,255,0,"deadreason")
	setElementData(localPlayer,"usedItemTrue", true)
end
if arg1 == "Fireplace" then
	if getElementData(getLocalPlayer(),"Сырое мясо") >= 1 then
		startRollMessageMenu("Приготовить мясо",255,255,255,"fireplace")
		setElementData(localPlayer,"usedItemTrue", true)
	end
end
if arg1 == "patrol" then
	if getElementData(getLocalPlayer(),"Пустая канистра") >= 1 then
		startRollMessageMenu("Наполнить канистру",255,255,255,"patrolstation")
		setElementData(localPlayer,"usedItemTrue", true)
	end	
end
if arg1 == "Wirefence" then
	if getElementData(getLocalPlayer(),"Инструменты") >= 1 then
		startRollMessageMenu("Убрать проволоку",255,255,255,"wirefence")
		setElementData(localPlayer,"usedItemTrue", true)
	end	
end
if arg1 == "SandBags" then
   if getElementData(getLocalPlayer(),"Лопата") >= 1 then
		startRollMessageMenu("Убрать мешки с песком",255,255,255,"sandbags")
		setElementData(localPlayer,"usedItemTrue", true)
   end   
end
if arg1 == "Mine" then
	if getElementData(getLocalPlayer(),"Лопата") >= 1 then
		startRollMessageMenu("Убрать мину",255,255,255,"wirefence")
		setElementData(localPlayer,"usedItemTrue", true)
	end	
end
if arg1 == "Содержимое" then
	startRollMessageMenu("Содержимое",255,255,255,"itemloot")
	setElementData(localPlayer,"usedItemTrue", true)
end
numberMenuScroll = 1
end
addEvent("showClientMenuItem",true)
addEventHandler("showClientMenuItem",getLocalPlayer(),showClientMenuItem)

function PlayerScrollMenuLalitka (key,keyState,arg)
	if getElementData(localPlayer,"usedItemTrue") then
		if ( keyState == "down" ) then
			if arg == "up" then
				numberMenuScroll = numberMenuScroll-1
				if numberMenuScroll < 1 then
					numberMenuScroll = #theTableMenuScroll
				end
			elseif arg == "down" then
				numberMenuScroll = numberMenuScroll+1
				if numberMenuScroll > #theTableMenuScroll then
					numberMenuScroll = 1
				end
			end
		end
	end
end
bindKey ( "mouse_wheel_up", "down", PlayerScrollMenuLalitka, "up" )
bindKey ( "mouse_wheel_down", "down", PlayerScrollMenuLalitka, "down" )

function disableMenu()
theTableMenuScroll = {}
setElementData(localPlayer,"usedItemTrue", false)
setNewbieInfo (false,"","")
end
addEvent("disableMenu",true)
addEventHandler("disableMenu",getLocalPlayer(),disableMenu)

function getPlayerInCol(tab)
	for theKey,thePlayer in ipairs(tab) do
		if thePlayer ~= getLocalPlayer() then
			return true
		end
	end
	return false
end

isInFirePlace = false
function onPlayerTargetPickup (theElement)
if theElement == getLocalPlayer() then
	if getElementData(source,"parent") == getLocalPlayer() then return end
		local player = getPlayerInCol(getElementsWithinColShape ( source, "player" ))
		if getPedOccupiedVehicle(getLocalPlayer()) then
			return
		end
		isInFirePlace = false
		setElementData(getLocalPlayer(),"isInFirePlace",false)
		if getElementData(source,"player") then
			showClientMenuItem("Player",getElementData(source,"parent"))
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",false)
			return
		end
		if player then
			return
		end
		if getElementData(source,"patrolstation") then
			showClientMenuItem("patrol")
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",false)
			setNewbieInfo (true,"АЗС","Нажмите среднюю кнопку мыши для того чтобы нполнить канистру!\n Необходима: Пустая канистра",source)
			return
		end
		if getElementData(source,"wirefence") then
			showClientMenuItem("Wirefence")
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",false)
			setNewbieInfo (true,"Wirefence","Нажмите среднюю кнопку мыши для того чтобы убрать проволоку!\n Необходимы: Инструменты",source)
			return
		end
		if getElementData(source,"sandbags") then
			showClientMenuItem("SandBags")
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",false)
			setNewbieInfo (true,"Мешки с песком","Нажмите среднюю кнопку мыши чтобы убрать мешки с песком!\n Требуется:Лопата",source)
			return
		end
		if getElementData(source,"mine") then
			showClientMenuItem("Mine")
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",false)
			setNewbieInfo (true,"Мина","Нажмите среднюю кнопку мыши чтобы убрать Мину!\n Требуется:Лопата",source)
			return
		end
		if getElementData(source,"fireplace") then
			showClientMenuItem("Fireplace")
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",false)
			setNewbieInfo (true,"Fireplace","Нажмите среднюю кнопку мыши для того чтобы приготовить мясо!\n Необходимо: Сырое мясо",source)
			isInFirePlace = true
			setElementData(getLocalPlayer(),"isInFirePlace",true)
			return
		end
		if getElementData(source,"deadman") then
			showClientMenuItem("Dead",getElementData(source,"playername"))
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",true)
			setElementData(getLocalPlayer(),"lootname","Осмотреть ("..getElementData(source,"playername")..")")
			setNewbieInfo (true,"Содержимое","Нажмите J чтобы открыть инвентарь!",source)
			return
		end
		if getElementData(source,"item") then
			showClientMenuItem("Take",getElementData(source,"item"))
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",false)
			setNewbieInfo (true,"Содержимое","Нажмите среднюю кнопку мыши чтобы подобрать предмет!",source)
			return
		end
		if getElementData(source,"helicrash") then
			showClientMenuItem("Helicrashsite","helicrash")
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",true)
			setElementData(getLocalPlayer(),"lootname","Обыскать") --(Helicrash)
			setNewbieInfo (true,"Содержимое","Нажмите J чтобы открыть инвентарь!",source)
			return
		end
		if getElementData(source,"hospitalbox") then
			showClientMenuItem("Hospitalbox","hospitalbox")
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",true)
			setElementData(getLocalPlayer(),"lootname","Обыскать (Hospitalbox)")
			setNewbieInfo (true,"Содержимое","Нажмите J чтобы открыть инвентарь!",source)
			return
		end
		if getElementData(source,"vehicle") then
			if not getElementData(source,"deadVehicle") then
			showClientMenuItem("Vehicle",(getVehicleName(getElementData(source,"parent")) or "Палатка"),getElementData(source,"parent"),source)
			setElementData(getLocalPlayer(),"currentCol",source)
			setElementData(getLocalPlayer(),"loot",true)
			setElementData(getLocalPlayer(),"lootname","Обыскать ("..(getVehicleName(getElementData(source,"parent")) or "Палатка")..")")
			setNewbieInfo (true,"Содержимое","Нажмите J чтобы открыть инвентарь!",source)
			return
			end
		end
		if getElementData(source,"itemloot") then
			showClientMenuItem("Содержимое")
			setElementData(getLocalPlayer(),"loot",true)
			setElementData(getLocalPlayer(),"lootname","Содержимое")
			setElementData(getLocalPlayer(),"currentCol",source)
			setNewbieInfo (true,"Содержимое","Нажмите J чтобы открыть инвентарь!",source)
			return
		end
	showClientMenuItem("stop")
end	
end
addEventHandler("onClientColShapeHit",getRootElement(),onPlayerTargetPickup)

function onPlayerTargetPickup (theElement)
if theElement == getLocalPlayer() then
	local players = getElementsWithinColShape ( source, "player" )
	if players == getLocalPlayer() then --[[return ]]end
	showClientMenuItem("stop")
	setElementData(getLocalPlayer(),"loot",false)
	setElementData(getLocalPlayer(),"currentCol",false)
	setNewbieInfo (false,"","")
	isInFirePlace = false
	setElementData(getLocalPlayer(),"isInFirePlace",false)
end
end
addEventHandler("onClientColShapeLeave",getRootElement(),onPlayerTargetPickup)

--Newbie Infos
local screenWidth, screenHeight = guiGetScreenSize()
local newbieShow = false
local newbieHead = "-"
local newbieText = "-"
local newbiePosition = 0,0,0

function setNewbieInfo (show,head,text,element)
newbieShow = show
newbieHead = head
newbieText = text
newbiePosition = element
end

addEventHandler("onClientRender", getRootElement(), 
function()

	local veh = getPedOccupiedVehicle (getLocalPlayer())
	if veh then
		disableMenu()
	else
		for id, value in pairs(theTableMenuScroll) do
			if id == numberMenuScroll then
				r1menu,g1menu,b1menu = 25,153,25
			else
				r1menu,g1menu,b1menu = 19,19,19
			end
			dxDrawRectangle ( 0, 250+id*boxSpace, screenWidth*0.2, boxSpace, tocolor (r1menu,g1menu,b1menu,180) )
			dxDrawingColorTextMenuScroll(value[1],6, 250+id*boxSpace, 6, 250+(id+1)*boxSpace, tocolor(value[2],value[3],value[4],170),170, 1, "default-bold", "center", "center")
		end
	end

	if newbieShow == false then return end
	local x,y,z = getElementPosition(newbiePosition)
	local x,y = getScreenFromWorldPosition (x,y,z)
	local length = dxGetTextWidth(newbieText,1,"default-bold")
	if x then
	dxDrawingColorText(newbieHead,x-length/2-screenWidth*0.01,y, x+length/2+screenWidth*0.01, y+screenHeight*0.03, tocolor(22,255,22,120),0.5, 1.1, "default-bold", "center", "center")
	dxDrawingColorText(newbieText,x-length/2-screenWidth*0.01,y+screenHeight*0.03, x+length/2+screenWidth*0.01, y+screenHeight*0.07, tocolor(22,255,22,120),0.5, 1, "default-bold", "center", "center")
	end
end
)

function fireRaiseTemperature ()
	if isInFirePlace then
		if getElementData(getLocalPlayer(),"temperature") <= 38 then
			setElementData(getLocalPlayer(),"temperature",getElementData(getLocalPlayer(),"temperature")+0.25)
		end
	end
end
setTimer(fireRaiseTemperature,10000,0)

------------------------------------------------------------------------------

unbindKey("mouse3","both")
function onPlayerPressMiddleMouse (key,keyState)
if ( keyState == "down" ) then
		if not getElementData(localPlayer,"usedItemTrue") then return end
		local itemName = getMenuMarkedItem()
		if itemName == "helicrashsite" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			local gearName = "Обыскать (Helicrash)" -- Helicrash
			refreshLoot(col,gearName)
			showInventoryManual()
			return
		end
		if itemName == "itemloot" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			local gearName = "Содержимое"
			refreshLoot(col,gearName)
			showInventoryManual()
			return
		end
		if itemName == "wirefence" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			local gearName = "Remove Wirefence"
			triggerServerEvent("removeWirefence",getLocalPlayer(),getElementData(col,"parent"))
			disableMenu()
			return
		end
		if itemName == "sandbags" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			local gearName = "Убрать мешки с песком"
			triggerServerEvent("removeSandBags",getLocalPlayer(),getElementData(col,"parent"))
			disableMenu()
			return
		end
		if itemName == "mine" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			local gearName = "Убрать мину"
			triggerServerEvent("removeSandBags",getLocalPlayer(),getElementData(col,"parent"))
			disableMenu()
			return
		end
		if itemName == "hospitalbox" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			local gearName = "Обыскать (Hospitalbox)"
			refreshLoot(col,gearName)
			showInventoryManual()
			return
		end
		if itemName == "vehicle" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			local gearName = "Обыскать ("..(getVehicleName(getElementData(col,"parent")) or "Палатка")..")"
			refreshLoot(col,gearName)
			showInventoryManual()
			return
		end
		if itemName == "repairvehicle" then
			if getElementData(getLocalPlayer(),"Инструменты") >= 1 then
				local col = getElementData(getLocalPlayer(),"currentCol")
				triggerServerEvent("repairVehicle",getLocalPlayer(),getElementData(col,"parent"))
			else
				startRollMessage2("Inventory", "У Вас нет Инструментов!", 255, 22, 0 )
			end	
			disableMenu()
			return
		end
	
		if itemName == "FuelOne" then
			if (getElementData(getLocalPlayer(),"Наполненная канистра") or 0) >= 1 then
				local col = getElementData(getLocalPlayer(),"currentCol")
				if getElementData(col,"fuel")+20 < getVehicleMaxFuel(col) then
					addingfuel = 20
				elseif getElementData(col,"fuel")+20 > getVehicleMaxFuel(col)+15 then
					triggerEvent ("displayClientInfo", getLocalPlayer(),"Vehicle","Бак полный!",255,22,0)
					disableMenu()
					return
				else
					addingfuel = getVehicleMaxFuel(col)-getElementData(col,"fuel")
				end
				if (getElementData(col,"Parts_inVehicle") or 0) < 1 then
					addingfuel = addingfuel/3
					triggerEvent ("displayClientInfo", getLocalPlayer(),"Vehicle","Из транспорта вылилась часть бензина!",22,255,0)
				end
				setElementData(getLocalPlayer(),"Наполненная канистра",getElementData(getLocalPlayer(),"Наполненная канистра")-1)
				setElementData(getLocalPlayer(),"Пустая канистра",(getElementData(getLocalPlayer(),"Пустая канистра") or 0)+1)
				setElementData(col,"fuel",getElementData(col,"fuel")+addingfuel)
				--triggerServerEvent("AnimAddFuel", getLocalPlayer(), getLocalPlayer())
				triggerEvent ("displayClientInfo", getLocalPlayer(),"Vehicle","Транспорт заправлен на "..addingfuel.." л.!",22,255,0)
			else
				startRollMessage2("Inventory", "У Вас нет пустой канистры!", 255, 22, 0 )
			end
			disableMenu()
			return
		end
		
		if itemName == "FuelTwo" then
			if (getElementData(getLocalPlayer(),"Пустая канистра") or 0) >= 1 then
				local col = getElementData(getLocalPlayer(),"currentCol")
				setElementData(getLocalPlayer(),"Наполненная канистра",getElementData(getLocalPlayer(),"Наполненная канистра")+1)
				setElementData(getLocalPlayer(),"Пустая канистра",(getElementData(getLocalPlayer(),"Пустая канистра") or 0)-1)
				--triggerServerEvent("AnimAddFuel", getLocalPlayer(), getLocalPlayer())
				setElementData(col,"fuel",getElementData(col,"fuel")-20)
				triggerEvent ("displayClientInfo", getLocalPlayer(),"Vehicle","Вы слили 20л. бензина!",22,255,0)
			else
				startRollMessage2("Inventory", "У Вас нет пустой канистры!", 255, 22, 0 )
			end
			disableMenu()
			return
		end
		
		if itemName == "TireOne" then
			if getElementData(getLocalPlayer(),"Инструменты") >= 1 then
				if (getElementData(getLocalPlayer(),"Колесо") or 0) > 0 then	
					local col = getElementData(getLocalPlayer(),"currentCol")
					setElementData(col,"Колесо_inVehicle",(getElementData(col,"Колесо_inVehicle") or 0)+1)
					setElementData(getLocalPlayer(),"Колесо",(getElementData(getLocalPlayer(),"Колесо") or 0)-1)
					--triggerServerEvent("AnimAddFuel", getLocalPlayer(), getLocalPlayer())
					startRollMessage2("Inventory", "Вы поставили одно колесо!", 22, 255, 0 )
				else
					startRollMessage2("Inventory", "У Вас нет колес!", 255, 22, 0 )
				end
			else
				startRollMessage2("Inventory", "У Вас нет Инструментов!", 255, 22, 0 )
			end
			disableMenu()
			return
		end
		
		if itemName == "TireTwo" then
			if getElementData(getLocalPlayer(),"Инструменты") >= 1 then
				local col = getElementData(getLocalPlayer(),"currentCol")
				if (getElementData(col,"Колесо_inVehicle") or 0) > 0 then	
					local col = getElementData(getLocalPlayer(),"currentCol")
					setElementData(col,"Колесо_inVehicle",(getElementData(col,"Колесо_inVehicle") or 0)-1)
					setElementData(getLocalPlayer(),"Колесо",(getElementData(getLocalPlayer(),"Колесо") or 0)+1)
					--triggerServerEvent("AnimAddFuel", getLocalPlayer(), getLocalPlayer())
					startRollMessage2("Inventory", "Вы сняли одно колесо!", 22, 255, 0 )
				else
					startRollMessage2("Inventory", "В транспорте нет колес!", 255, 22, 0 )
				end
			else
				startRollMessage2("Inventory", "У Вас нет Инструментов!", 255, 22, 0 )
			end
			disableMenu()
			return
		end
		
		if itemName == "EngineOne" then
			if getElementData(getLocalPlayer(),"Инструменты") >= 1 then
				if (getElementData(getLocalPlayer(),"Двигатель") or 0) > 0 then	
					local col = getElementData(getLocalPlayer(),"currentCol")
					setElementData(col,"Двигатель_inVehicle",(getElementData(col,"Двигатель_inVehicle") or 0)+1)
					setElementData(getLocalPlayer(),"Двигатель",(getElementData(getLocalPlayer(),"Двигатель") or 0)-1)
					---triggerServerEvent("AnimAddFuel", getLocalPlayer(), getLocalPlayer())
					startRollMessage2("Inventory", "Вы поставили один двигатель!", 22, 255, 0 )
				else
					startRollMessage2("Inventory", "У Вас нет двигателя!", 255, 22, 0 )
				end
			else
				startRollMessage2("Inventory", "У Вас нет Инструментов!", 255, 22, 0 )
			end
			disableMenu()
			return
		end
		
		
		if itemName == "EngineTwo" then
			if getElementData(getLocalPlayer(),"Инструменты") >= 1 then
				local col = getElementData(getLocalPlayer(),"currentCol")
				if (getElementData(col,"Двигатель_inVehicle") or 0) > 0 then	
					local col = getElementData(getLocalPlayer(),"currentCol")
					setElementData(col,"Двигатель_inVehicle",(getElementData(col,"Двигатель_inVehicle") or 0)-1)
					setElementData(getLocalPlayer(),"Двигатель",(getElementData(getLocalPlayer(),"Двигатель") or 0)+1)
					--triggerServerEvent("AnimAddFuel", getLocalPlayer(), getLocalPlayer())
					startRollMessage2("Inventory", "Вы сняли один двигатель!", 22, 255, 0 )
				else
					startRollMessage2("Inventory", "В транспорте нет двигателя!", 255, 22, 0 )
				end
			else
				startRollMessage2("Inventory", "У Вас нет Инструментов!", 255, 22, 0 )
			end
			disableMenu()
			return
		end
		
		if itemName == "PartsOne" then
		      if getElementData(getLocalPlayer(),"Инструменты") >= 1 then
				if (getElementData(getLocalPlayer(),"Бензобак") or 0) > 0 then	
					local col = getElementData(getLocalPlayer(),"currentCol")
					setElementData(col,"Parts_inVehicle",(getElementData(col,"Parts_inVehicle") or 0)+1)
					setElementData(getLocalPlayer(),"Бензобак",(getElementData(getLocalPlayer(),"Бензобак") or 0)-1)
					--triggerServerEvent("AnimAddFuel", getLocalPlayer(), getLocalPlayer())
					startRollMessage2("Inventory", "Вы поставили Бензобак!", 22, 255, 0 )
				else
					startRollMessage2("Inventory", "У Вас нет Бензобака!", 255, 22, 0 )
				end
			else
				startRollMessage2("Inventory", "У Вас нет Инструментов!", 255, 22, 0 )
			end
			disableMenu()
			return
		end
		
		if itemName == "PartsTwo" then
			if getElementData(getLocalPlayer(),"Инструменты") >= 1 then
				local col = getElementData(getLocalPlayer(),"currentCol")
				if (getElementData(col,"Parts_inVehicle") or 0) > 0 then	
					local col = getElementData(getLocalPlayer(),"currentCol")
					setElementData(col,"Parts_inVehicle",(getElementData(col,"Parts_inVehicle") or 0)-1)
					setElementData(getLocalPlayer(),"Бензобак",(getElementData(getLocalPlayer(),"Бензобак") or 0)+1)
					--triggerServerEvent("AnimAddFuel", getLocalPlayer(), getLocalPlayer())
					startRollMessage2("Inventory", "Вы сняли Бензобак!", 22, 255, 0 )
				else
					startRollMessage2("Inventory", "В транспорте нет Бензобака!", 255, 22, 0 )
				end
			else
				startRollMessage2("Inventory", "У Вас нет Инструментов!", 255, 22, 0 )
			end
			disableMenu()
			return
		end
		
		if itemName == "tent" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			triggerServerEvent("removeTent",getLocalPlayer(),getElementData(col,"parent"))
			disableMenu()
			return
		end
		if itemName == "fireplace" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			triggerServerEvent("addPlayerCookMeat",getLocalPlayer())
			disableMenu()
			return
		end
		if itemName == "бинт" then
			local col = getElementData(getLocalPlayer(),"currentCol")
				triggerServerEvent("onPlayerGiveMedicObject",getLocalPlayer(),itemName,getElementData(col,"parent"))
				disableMenu()
			return
		end
		if itemName == "giveblood" then
			local col = getElementData(getLocalPlayer(),"currentCol")
				triggerServerEvent("onPlayerGiveMedicObject",getLocalPlayer(),itemName,getElementData(col,"parent"))
				disableMenu()
			return
		end
		if itemName == "dead" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			local gearName = "Содержимое ("..getElementData(col,"playername")..")"
			refreshLoot(col,gearName)
			showInventoryManual()
			return
		end
		if itemName == "deadreason" then
			local col = getElementData(getLocalPlayer(),"currentCol")
			outputChatBox(getElementData(col,"deadreason"),255,255,255,true)
			return
		end
		if itemName == "patrolstation" then
			local col = getElementData(getLocalPlayer(),"currentCol")
				setPedAnimation (getLocalPlayer(),"BOMBER","BOM_Plant",nil,false,false,nil,false)
				setElementData(getLocalPlayer(),"Пустая канистра",getElementData(getLocalPlayer(),"Пустая канистра")-1)
				setElementData(getLocalPlayer(),"Наполненная канистра",(getElementData(getLocalPlayer(),"Наполненная канистра") or 0)+1)
				triggerEvent ("displayClientInfo",getLocalPlayer(),"patrolstation","Канистра заполнена!",22,255,0)
				disableMenu()
			return
		end

			if isToolbeltItem(itemName) then 
           local col = getElementData(getLocalPlayer(), "currentCol") 
           if #getElementsWithinColShape(col, "player") > 1 or getNetworkStats().packetlossLastSecond > 1 then        
                return        
            end 
            x, y, z = getElementPosition(getLocalPlayer()) 
            if pcount ~= nil and pcount < getTickCount() then 
                 pcount = getTickCount() + math.random(1800,2200)        
                 x, y, z = getElementPosition(getLocalPlayer()) 
                 return false 
               elseif pcount == nil then 
                 pcount = getTickCount() + math.random(1800,2200) 
                 x, y, z = getElementPosition(getLocalPlayer()) 
                 return false 
               end 
               local x1, y1, z1 = getElementPosition(getLocalPlayer()) 
               if x1 ~= x or y1 ~= y or z1 ~= z then 
                 pcount = nil 
               return false 
             end 
             pcount = nil 
             triggerServerEvent("onPlayerTakeItemFromGround", getLocalPlayer(), itemName, col) 
             disableMenu() 
             return 
           end        
              if itemName == "Assault Pack (ACU)" or itemName == "Alice Pack" or itemName == "Czech Backpack" or itemName == "Рюкзак Military" or itemName =="Serial Backpack" or itemName == "Coyote Backpack" then
          local col = getElementData(getLocalPlayer(),"currentCol") 
          triggerServerEvent("onPlayerTakeItemFromGround",getLocalPlayer(),itemName,col) 
          disableMenu() 
          return 
         end        
         if getPlayerCurrentSlots() + getItemSlots(itemName) <= getPlayerMaxAviableSlots() then 
               local col = getElementData(getLocalPlayer(), "currentCol") 
               if #getElementsWithinColShape(col, "player") > 1 or getNetworkStats().packetlossLastSecond > 1 then        
                 return        
               end 
               x, y, z = getElementPosition(getLocalPlayer()) 
               if pcount ~= nil and pcount < getTickCount() then 
                 pcount = getTickCount() + math.random(1800,2200) 
                 x, y, z = getElementPosition(getLocalPlayer()) 
                 return false 
               elseif pcount == nil then 
                 pcount = getTickCount() + math.random(1800,2200) 
                 x, y, z = getElementPosition(getLocalPlayer()) 
                 return false 
               end 
               local x1, y1, z1 = getElementPosition(getLocalPlayer()) 
               if x1 ~= x or y1 ~= y or z1 ~= z then 
                 pcount = nil 
                 return false 
               end 
               pcount = nil 
               triggerServerEvent("onPlayerTakeItemFromGround", getLocalPlayer(), itemName, col) 
               disableMenu() 
            else 
             startRollMessage2("Inventory", "Инвентарь заполнен!", 255, 22, 0) 
           end 
         end 
end 
bindKey ( "mouse3", "down", onPlayerPressMiddleMouse ) 
bindKey ( "-", "down", onPlayerPressMiddleMouse ) 

function getMenuMarkedItem()        
        for i,guiItem in ipairs(spalteGuiText) do 
         if getElementData(guiItem,"markedMenuItem") then 
          return getElementData(guiItem,"usedItem")        
         end 
        end 
end 

function playerPressedKey(button, press) 
           if (press) then 
         if button == "w" or button == "a" or button == "s" or button == "d" then 
          local anim,anim2 = getPedAnimation (getLocalPlayer()) 
          if anim and anim == "SCRATCHING" and anim2 == "sclng_r" then 
           triggerServerEvent("onClientMovesWhileAnimation",getLocalPlayer()) 
          end        
         end 
           end 
end

function getMenuMarkedItem() 
	for id, value in pairs(theTableMenuScroll) do
		if id == numberMenuScroll then
			return value[5]
		end
	end
end

Нужно дополнить эту логику чем-то нужным, сложным, необычным и интересным, предложи три нововведения и выдай это в виде кода