Заказываем 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

Известный
Всефорумный модератор
4,772
5,382
но какая разница тут вроде все с головой мне кажется это не не сложно если уметь))
ебать у тебя запросы. ты тоже с головой но в космос не летал. мб планку опустишь? тебе сказали что тут для сампа тема. ксс ищи в другом разделе и за бабосики
 
  • Нравится
Реакции: RTD и imring
1,417
1,032
Нужен скрипт, пожалуйста. Надеюсь подобное возможно.

Прописываешь /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

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