Lua [RadmirCRMP] Статистика охоты (HuntStat)

corner xyz

Участник
Автор темы
63
18
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R3
  3. 0.3e (R1) / CR-MP
  4. CR-MP 0.3.7
Статистика охоты для RamirRP CRMP
Считает статистику до сдачи шкур на рынок.
sa-mp-311.png

Команды:
/hres - сбросить статистику
/hhide - показать/спрятать статистику

В планах:
Среднее кол-во потраченных патронов на животное.

CHANGELOG:
17.04.2024 - Релиз.
18.04.2024 - v2 - Переработан by @ChromiusJ
 

Вложения

  • HuntStats.lua
    2.2 KB · Просмотры: 6
Последнее редактирование:
  • Эм
Реакции: Z3roKwq

ChromiusJ

Известный
Друг
4,900
3,189
код в принципе можно немного упростить, в данном случае, поработав с массивами

Lua:
local sampev = require 'samp.events'
local font_flag = require('moonloader').font_flag
local my_font = renderCreateFont('Verdana', 11, font_flag.BOLD + font_flag.SHADOW)
local stats = {
    money = 0,
    olen = 0,
    medved = 0,
    badolen = 0,
    badmedved = 0,
    kg = 0,
}

local active = false
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand('hres', rest)
    sampRegisterChatCommand('hhide', toggleVisibility)
    while true do
        if active then
            local x, y = getScreenResolution()
            renderFontDrawText(my_font, string.format(
            'Заработано: %d руб.\nНормальных шкур Оленя: %d шт.\nПлохих шкур Оленя: %d шт.\nНормальных шкур медведя: %d шт.\nПлохих шкур медведя: %d шт.\nКилограмм: %d кг.',
            stats.money, stats.olen, stats.badolen, stats.medved, stats.badmedved, stats.kg),
            x / 16 + 10, y / 2 + 100, 0xffffffff)
        end
        wait(0)
    end
end

function rest()
    for k, _ in pairs(stats) do
        stats[k] = 0
    end
end

function toggleVisibility()
    active = not active
end

function sampev.onServerMessage(color, text)
    if text:match('Вы получили:') then
        local rewards = {
            ['"Нормальная Шкура оленя"'] = {money = 15000, olen = 1, kg = 5},
            ['"Плохая Шкура оленя"'] = {money = 10000, badolen = 1, kg = 5},
            ['"Нормальная Шкура медведя"'] = {money = 20500, medved = 1, kg = 7},
            ['"Плохая Шкура медведя"'] = {money = 12500, badmedved = 1, kg = 7},
        }
        for key, reward in pairs(rewards) do
            if text:match(key) then
                active = true
                sampAddChatMessage('+' .. reward.money .. 'руб', color)
                for k, v in pairs(reward) do
                    stats[k] = stats[k] + v
                end
                break
            end
        end
    end
end
 
  • Нравится
Реакции: corner xyz