local sampev = require 'lib.samp.events'
local state = true
local font = renderCreateFont('Tahoma', 8, 5)
function sampev.onCreate3DText(id, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, text)
if text:find("{cccccc}Бочка с нефтью\nВладелец: {31B404}.+\nУдерживайте по бочке 'ПКМ' или пальцем") then
local name = text:match("{cccccc}Бочка с нефтью\nВладелец: ({31B404}.+)\nУдерживайте по бочке 'ПКМ' или пальцем")
return {id, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, name}
end
end
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand('neft', function()
state = not state
end)
while true do wait(0)
if state then
for i = 0, 2048 do
if sampIs3dTextDefined(i) then
local st, color, posX, posY, posZ, distance, ignoreWalls, playerId, vehicleId = sampGet3dTextInfoById(i)
if isPointOnScreen(posX, posY, posZ, 1) then
local x, y, z = getCharCoordinates(1)
local xx, yy = convert3DCoordsToScreen(x, y, z)
local px, py = convert3DCoordsToScreen(posX, posY, posZ)
if st:find("{ECDC3A}Уровень улучшения добычи нефти: %d+ / 30 уровень\n{ECDC3A}Уровень улучшения хранилища нефти: %d+ / 30 уровень\n\n\n{ffffff}Нефтевышка {31B404}№%d+{ffffff}\n{ffffff}Запас нефти:{31B404} (%d+) / (%d+)\n{ffffff}Запас бочек:{31B404} %d+ / %d+\n\n{cccccc}Стоимость за %d+ литров %(бочка%): 12 AZ%-Coins\nЧтобы купить бочку нажмите 'ALT'") then
local neft, hran = st:match("{ECDC3A}Уровень улучшения добычи нефти: %d+ / 30 уровень\n{ECDC3A}Уровень улучшения хранилища нефти: %d+ / 30 уровень\n\n\n{ffffff}Нефтевышка {31B404}№%d+{ffffff}\n{ffffff}Запас нефти:{31B404} (%d+) / (%d+)\n{ffffff}Запас бочек:{31B404} %d+ / %d+\n\n{cccccc}Стоимость за %d+ литров %(бочка%): 12 AZ%-Coins\nЧтобы купить бочку нажмите 'ALT'")
if tonumber(neft) >= 500 then
renderDrawLine(xx, yy, px, py + 60, 3, 0xFF6A5ACD)
renderDrawPolygon(px, py + 60, 10, 10, 15, 0, 0xFF6A5ACD)
renderDrawPolygon(xx, yy, 10, 10, 15, 0, 0xFF6A5ACD)
renderFontDrawText(font, '\n\n\nЗапас нефти '..neft..'/'..hran, px, py, 0xFF6A5ACD)
end
elseif st:find("{ECDC3A}Уровень улучшения добычи нефти: (%d+) / 30 уровень\n{ECDC3A}Уровень улучшения хранилища нефти: %d+ / 30 уровень\n\n\n{ffffff}Нефтевышка {31B404}№%d+{ffffff}\n{ffffff}Запас нефти:{31B404} (%d+) / (%d+)\n{ffffff}Запас бочек:{31B404} %d+ / %d+\n\n.+Покупка невозможн.+") then
local dobicha, neft, hran = st:match("{ECDC3A}Уровень улучшения добычи нефти: (%d+) / 30 уровень\n{ECDC3A}Уровень улучшения хранилища нефти: %d+ / 30 уровень\n\n\n{ffffff}Нефтевышка {31B404}№%d+{ffffff}\n{ffffff}Запас нефти:{31B404} (%d+) / (%d+)\n{ffffff}Запас бочек:{31B404} %d+ / %d+\n\n.+Покупка невозможн.+")
if (tonumber(dobicha) * 2 + 16 + tonumber(neft)) >= 500 and tonumber(neft) < 500 then
renderDrawLine(xx, yy, px, py + 60, 3, 0xFFADFF2F)
renderDrawPolygon(px, py + 60, 10, 10, 15, 0, 0xFFADFF2F)
renderDrawPolygon(xx, yy, 10, 10, 15, 0, 0xFFADFF2F)
renderFontDrawText(font, '\n\n\nЗапас нефти '..neft..'/'..hran, px, py, 0xFFADFF2F)
else
renderFontDrawText(font, '\n\n\nЗапас нефти '..neft..'/'..hran, px, py, 0xFFE6E6FA)
end
end
end
end
end
end
end
end