Заказываем lua скрипты

Статус
В этой теме нельзя размещать новые ответы.

Lord

Новичок
236
42
Нужен скрипт, пожалуйста. Надеюсь подобное возможно.

Прописываешь /cmd ID, появляется список с выбором пунктов.
Крестиком (или что-то вроде) выбираешь пункт первый (Мат), подтверждаешь button_1, тогда в чат пишет "/mute ID 5 Мат".
Второй пункт "Оскорбление" — "/mute ID 10 Оскорбление".
Третий пункт "Флуд" — "/mute ID 20 Флуд".

В общем, если выбираешь несколько пунктов, то значение суммируется. К примеру выбрал пункт 1 и 3, то в чат выводит "/mute ID 25 Мат, Флуд.", или выбрал все 3, то "/mute ID 35 Мат, Оскорбление, Флуд.

Мне бы для начала эти три пункта, а дальше сам постараюсь разобраться.

Заранее благодарю.
 

vdgf34534

Новичок
3
0
но какая разница тут вроде все с головой мне кажется это не не сложно если уметь))
 

AnWu

https://t.me/anwublog
Всефорумный модератор
4,708
5,248
но какая разница тут вроде все с головой мне кажется это не не сложно если уметь))
ебать у тебя запросы. ты тоже с головой но в космос не летал. мб планку опустишь? тебе сказали что тут для сампа тема. ксс ищи в другом разделе и за бабосики
 
  • Нравится
Реакции: RTD и imring
1,417
1,030
Нужен скрипт, пожалуйста. Надеюсь подобное возможно.

Прописываешь /cmd ID, появляется список с выбором пунктов.
Крестиком (или что-то вроде) выбираешь пункт первый (Мат), подтверждаешь button_1, тогда в чат пишет "/mute ID 5 Мат".
Второй пункт "Оскорбление" — "/mute ID 10 Оскорбление".
Третий пункт "Флуд" — "/mute ID 20 Флуд".

В общем, если выбираешь несколько пунктов, то значение суммируется. К примеру выбрал пункт 1 и 3, то в чат выводит "/mute ID 25 Мат, Флуд.", или выбрал все 3, то "/mute ID 35 Мат, Оскорбление, Флуд.

Мне бы для начала эти три пункта, а дальше сам постараюсь разобраться.

Заранее благодарю.
Lua:
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

do
    window = imgui.ImBool(false)
    Reason = {imgui.ImBool(false), imgui.ImBool(false), imgui.ImBool(false), imgui.ImBool(false)}
    penaltyInt = {imgui.ImInt(5), imgui.ImInt(10), imgui.ImInt(20), imgui.ImInt(420)}
    penaltyStr = {imgui.ImBuffer('Мат', 50), imgui.ImBuffer('Оскорбление', 50), imgui.ImBuffer('Флуд', 50), imgui.ImBuffer('Лох', 50)}
    Otv = imgui.ImBuffer('', 256)
    penalty = imgui.ImInt(0)
end

function imgui.OnDrawFrame()
    local sw, sh = getScreenResolution()
    local btn_size = imgui.ImVec2(-0.1, 0)
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(500, 420), imgui.Cond.FirstUseEver) -- размер окна
    imgui.Begin(u8'Выдать наказание: '..sampGetPlayerNickname(ID)..' ['..ID..']', window)
    for i = 1, #penaltyStr do
        if penaltyStr[i].v ~= nil and penaltyInt[i].v ~= nil and Reason[i].v ~= nil then -- чтобы только скрипт крашнуло, если че
            if imgui.Checkbox(u8(penaltyStr[i].v)..' ['..penaltyInt[i].v..']', Reason[i]) then
                if Reason[i].v then
                    penalty.v = penalty.v + penaltyInt[i].v
                    if #Otv.v == 0 then Otv.v = penaltyStr[i].v..'.'
                    else Otv.v = penaltyStr[i].v..' '..Otv.v end
                else
                    penalty.v = penalty.v - penaltyInt[i].v
                    Otv.v = string.gsub(Otv.v, penaltyStr[i].v, '')
                end
            end
        end
    end
    imgui.Text(u8'Наказание: '..u8(Otv.v))
    if imgui.Button(u8'Выдать наказание. Время:'..penalty.v) then
        sampSendChat('/mute '..ID..' '..penalty.v..' '..Otv.v)
        for i = 1, #Reason do
            Reason[i].v = false
        end
        Otv.v = ''
        penalty.v = 0
    end
    imgui.End()
end

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('menu', function(param)
    if param:match('%d+') then
        if sampIsPlayerConnected(param) then
            ID = param
            sampAddChatMessage(param, -1)
            window.v = not window.v
        end
    end
    end)
    while true do wait(0)
        imgui.Process = window.v
    end
end
 

Lord

Новичок
236
42
Lua:
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

do
    window = imgui.ImBool(false)
    Reason = {imgui.ImBool(false), imgui.ImBool(false), imgui.ImBool(false), imgui.ImBool(false)}
    penaltyInt = {imgui.ImInt(5), imgui.ImInt(10), imgui.ImInt(20), imgui.ImInt(420)}
    penaltyStr = {imgui.ImBuffer('Мат', 50), imgui.ImBuffer('Оскорбление', 50), imgui.ImBuffer('Флуд', 50), imgui.ImBuffer('Лох', 50)}
    Otv = imgui.ImBuffer('', 256)
    penalty = imgui.ImInt(0)
end

function imgui.OnDrawFrame()
    local sw, sh = getScreenResolution()
    local btn_size = imgui.ImVec2(-0.1, 0)
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(500, 420), imgui.Cond.FirstUseEver) -- размер окна
    imgui.Begin(u8'Выдать наказание: '..sampGetPlayerNickname(ID)..' ['..ID..']', window)
    for i = 1, #penaltyStr do
        if penaltyStr[i].v ~= nil and penaltyInt[i].v ~= nil and Reason[i].v ~= nil then -- чтобы только скрипт крашнуло, если че
            if imgui.Checkbox(u8(penaltyStr[i].v)..' ['..penaltyInt[i].v..']', Reason[i]) then
                if Reason[i].v then
                    penalty.v = penalty.v + penaltyInt[i].v
                    if #Otv.v == 0 then Otv.v = penaltyStr[i].v..'.'
                    else Otv.v = penaltyStr[i].v..' '..Otv.v end
                else
                    penalty.v = penalty.v - penaltyInt[i].v
                    Otv.v = string.gsub(Otv.v, penaltyStr[i].v, '')
                end
            end
        end
    end
    imgui.Text(u8'Наказание: '..u8(Otv.v))
    if imgui.Button(u8'Выдать наказание. Время:'..penalty.v) then
        sampSendChat('/mute '..ID..' '..penalty.v..' '..Otv.v)
        for i = 1, #Reason do
            Reason[i].v = false
        end
        Otv.v = ''
        penalty.v = 0
    end
    imgui.End()
end

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('menu', function(param)
    if param:match('%d+') then
        if sampIsPlayerConnected(param) then
            ID = param
            sampAddChatMessage(param, -1)
            window.v = not window.v
        end
    end
    end)
    while true do wait(0)
        imgui.Process = window.v
    end
end
Ля, ну почему ты такой охуенный.
Жаль откат для повышение репутации.
 

AnWu

https://t.me/anwublog
Всефорумный модератор
4,708
5,248
Ну если оно будет показывать когда пд,то давай.Мне вообще без разницы что там будет таймер или время,главное чтоб показывало когда пд
пд каждый час и это можно смотреть по /timestamp. ровно в 00 минут пд. таймер может быть не точным в секундах
 
Статус
В этой теме нельзя размещать новые ответы.