Lua Прочее Achievements from Minecraft [ARZ] v2

ARMOR

Модератор по раксампу
Модератор
4,936
6,735
Ачивки как в майнкрафте, но в самп

Тебя заметили - Заставьте игроков написать ваш ник
Пикапер - Поднимите пикап
Крафтер - Скрафтите что небудь на верстаке
Трейдер - Поторгуйте с любым игроком
Почти миллионер - Заработайте 500к
Шахтер - Добудьте любой ресурс на шахте
Ого! Вот это карманы! - Откройте инвентарь использовав Y
Печенька - Вступите на первый ранг в любую организацию
Я ведь не зек? - Посетите тюрьму строгого режима
О! Денюшки капнули - Получите пайдей отыграв 1 час
Ну почти... - Отыграйте меньше 20 минут
Эдвард Эдварц - Попробуйте обменять подарки у Эдварда
Кладмен мудак! - Откройте клад правильно ответив на вопрос
Грабим Абрахама - Купите любое кол-во AZ монет у бота на ЦРе
Да ну! - Получите 500кк
Я люблю твою маму! - Напишите mq @Vespan
Просил же поставить нормальную музыку, а не ту хуйню которую ты понаставлял. Хуй теперь тебе сниму обзор на скрипты

Вот оригинал:
 
Последнее редактирование:

chapo

чопа сребдс // @moujeek
Модератор
8,868
11,572
я бы не сказал что тут прям говнокод (ну частично), но личто я бы сделал все гораздо проще
Lua:
require 'lib.moonloader'
local sampev = require 'lib.samp.events'
local Achievement = { List = {}, imagePath = getWorkingDirectory()..'\\mineach', listUrl = 'https://raw.githubusercontent.com/GovnocodedByChapo/SmallScripts/main/samp_ach.json', listFile = getWorkingDirectory()..'\\resource\\SA_MINE_ACH.json' }

function sampev.onServerMessage(color, text)
    Achievement.Handler(sampev.onServerMessage, {color, text})
end

function sampev.onSendChat(text)
    Achievement.Handler(sampev.onSendChat, {text})
end

Achievement.List = {
    {
        status = false,
        title = 'Pizda',
        text = 'Ты открыл инвентарь!!!',
        image = 'ach_PZ.png',
        imageUrl = 'https://imgur.com/',
        parentFunction = 'main',
        condition = function()
            if wasKeyPressed(VK_Y) and not sampIsCursorActive() then
                return true
            end
        end
    },
    {
        status = false,
        title = 'get_message',
        text = 'твою маму любят!',
        image = 'message_received.png',
        imageUrl = 'https://imgur.com/',
        parentFunction = sampev.onServerMessage,
        condition = function(arg)
            return arg[2] == 'mq'
        end
    },
    {
        status = false, -- статус выполнения
        title = 'Поздоровайся!', -- заголовок
        text = 'Ты поздоровался с игроками сервера!', -- текст
        image = 'message_received.png', -- название картинки
        imageUrl = 'https://imgur.com/', -- ссылка на картинку
        parentFunction = sampev.onSendChat, -- функция в которой будет "обрабатываться" функция
        condition = function(arg)
            return arg[1] == 'привет'
        end
    },
    {
        status = false, -- статус выполнения
        title = 'Мамкоеб!', -- заголовок
        text = 'Ты выебал мамку!!', -- текст
        image = 'message_received.png', -- название картинки
        imageUrl = 'https://imgur.com/', -- ссылка на картинку
        parentFunction = sampev.onSendChat, -- функция в которой будет "обрабатываться" функция
        condition = function(arg)
            return arg[1] == 'я твою маму ебал, козел'
        end
    },
}
Achievement.Handler = function(currentFunction, args)
    for index, data in ipairs(Achievement.List) do
        local Function = {
            Current = type(currentFunction) == 'function' and currentFunction or _G[currentFunction],
            Parent = type(data.parentFunction) == 'function' and data.parentFunction or _G[data.parentFunction]
        }
        if not data.status and Function.Parent == currentFunction then
            if data.condition(args) then
                Achievement.List[index].status = true
                --[[
                    show notf for achievment:
                    title: data.title
                    text: data.text
                    image: path..'\\'..data.image
                ]]
                sampAddChatMessage('Achievement +: '..data.title..': '..data.text..', image: '..data.image, -1)
            end
        end
    end
end



function main()
    while not isSampAvailable() do wait(0) end
    for index, data in ipairs(Achievement.List) do
        if not doesFileExist(data.image) then
            print('Картинка для ачивки "'..data.title..'" не найдена, скачиваю...')
            --downloadUrlToFile(data.imageUrl, Achievement.imagePath..'\\'..data.image)
        end
    end
    while true do
        wait(0)
        Achievement.Handler(main)
    end
end
тут есть "обработчик" ачивок, функция и условия задаются в списке ачивок. В качестве параметров для вызова "обработчика" нужно указывать функцию (главное что бы в коде функция была перед списком), а так же таблица с параметрами. Ну вообщем думаю если посмотришь видос то поймешь
 
  • Нравится
Реакции: Rice.

VRush

https://t.me/vrushscript
Автор темы
2,416
1,192

я бы не сказал что тут прям говнокод (ну частично), но личто я бы сделал все гораздо проще
Lua:
require 'lib.moonloader'
local sampev = require 'lib.samp.events'
local Achievement = { List = {}, imagePath = getWorkingDirectory()..'\\mineach', listUrl = 'https://raw.githubusercontent.com/GovnocodedByChapo/SmallScripts/main/samp_ach.json', listFile = getWorkingDirectory()..'\\resource\\SA_MINE_ACH.json' }

function sampev.onServerMessage(color, text)
    Achievement.Handler(sampev.onServerMessage, {color, text})
end

function sampev.onSendChat(text)
    Achievement.Handler(sampev.onSendChat, {text})
end

Achievement.List = {
    {
        status = false,
        title = 'Pizda',
        text = 'Ты открыл инвентарь!!!',
        image = 'ach_PZ.png',
        imageUrl = 'https://imgur.com/',
        parentFunction = 'main',
        condition = function()
            if wasKeyPressed(VK_Y) and not sampIsCursorActive() then
                return true
            end
        end
    },
    {
        status = false,
        title = 'get_message',
        text = 'твою маму любят!',
        image = 'message_received.png',
        imageUrl = 'https://imgur.com/',
        parentFunction = sampev.onServerMessage,
        condition = function(arg)
            return arg[2] == 'mq'
        end
    },
    {
        status = false, -- статус выполнения
        title = 'Поздоровайся!', -- заголовок
        text = 'Ты поздоровался с игроками сервера!', -- текст
        image = 'message_received.png', -- название картинки
        imageUrl = 'https://imgur.com/', -- ссылка на картинку
        parentFunction = sampev.onSendChat, -- функция в которой будет "обрабатываться" функция
        condition = function(arg)
            return arg[1] == 'привет'
        end
    },
    {
        status = false, -- статус выполнения
        title = 'Мамкоеб!', -- заголовок
        text = 'Ты выебал мамку!!', -- текст
        image = 'message_received.png', -- название картинки
        imageUrl = 'https://imgur.com/', -- ссылка на картинку
        parentFunction = sampev.onSendChat, -- функция в которой будет "обрабатываться" функция
        condition = function(arg)
            return arg[1] == 'я твою маму ебал, козел'
        end
    },
}
Achievement.Handler = function(currentFunction, args)
    for index, data in ipairs(Achievement.List) do
        local Function = {
            Current = type(currentFunction) == 'function' and currentFunction or _G[currentFunction],
            Parent = type(data.parentFunction) == 'function' and data.parentFunction or _G[data.parentFunction]
        }
        if not data.status and Function.Parent == currentFunction then
            if data.condition(args) then
                Achievement.List[index].status = true
                --[[
                    show notf for achievment:
                    title: data.title
                    text: data.text
                    image: path..'\\'..data.image
                ]]
                sampAddChatMessage('Achievement +: '..data.title..': '..data.text..', image: '..data.image, -1)
            end
        end
    end
end



function main()
    while not isSampAvailable() do wait(0) end
    for index, data in ipairs(Achievement.List) do
        if not doesFileExist(data.image) then
            print('Картинка для ачивки "'..data.title..'" не найдена, скачиваю...')
            --downloadUrlToFile(data.imageUrl, Achievement.imagePath..'\\'..data.image)
        end
    end
    while true do
        wait(0)
        Achievement.Handler(main)
    end
end
тут есть "обработчик" ачивок, функция и условия задаются в списке ачивок. В качестве параметров для вызова "обработчика" нужно указывать функцию (главное что бы в коде функция была перед списком), а так же таблица с параметрами. Ну вообщем думаю если посмотришь видос то поймешь
выглядит прикольно, но толком разобратся я не смог(
 

Kvisk

Известный
212
223
я бы не сказал что тут прям говнокод (ну частично), но личто я бы сделал все гораздо проще
Lua:
require 'lib.moonloader'
local sampev = require 'lib.samp.events'
local Achievement = { List = {}, imagePath = getWorkingDirectory()..'\\mineach', listUrl = 'https://raw.githubusercontent.com/GovnocodedByChapo/SmallScripts/main/samp_ach.json', listFile = getWorkingDirectory()..'\\resource\\SA_MINE_ACH.json' }

function sampev.onServerMessage(color, text)
    Achievement.Handler(sampev.onServerMessage, {color, text})
end

function sampev.onSendChat(text)
    Achievement.Handler(sampev.onSendChat, {text})
end

Achievement.List = {
    {
        status = false,
        title = 'Pizda',
        text = 'Ты открыл инвентарь!!!',
        image = 'ach_PZ.png',
        imageUrl = 'https://imgur.com/',
        parentFunction = 'main',
        condition = function()
            if wasKeyPressed(VK_Y) and not sampIsCursorActive() then
                return true
            end
        end
    },
    {
        status = false,
        title = 'get_message',
        text = 'твою маму любят!',
        image = 'message_received.png',
        imageUrl = 'https://imgur.com/',
        parentFunction = sampev.onServerMessage,
        condition = function(arg)
            return arg[2] == 'mq'
        end
    },
    {
        status = false, -- статус выполнения
        title = 'Поздоровайся!', -- заголовок
        text = 'Ты поздоровался с игроками сервера!', -- текст
        image = 'message_received.png', -- название картинки
        imageUrl = 'https://imgur.com/', -- ссылка на картинку
        parentFunction = sampev.onSendChat, -- функция в которой будет "обрабатываться" функция
        condition = function(arg)
            return arg[1] == 'привет'
        end
    },
    {
        status = false, -- статус выполнения
        title = 'Мамкоеб!', -- заголовок
        text = 'Ты выебал мамку!!', -- текст
        image = 'message_received.png', -- название картинки
        imageUrl = 'https://imgur.com/', -- ссылка на картинку
        parentFunction = sampev.onSendChat, -- функция в которой будет "обрабатываться" функция
        condition = function(arg)
            return arg[1] == 'я твою маму ебал, козел'
        end
    },
}
Achievement.Handler = function(currentFunction, args)
    for index, data in ipairs(Achievement.List) do
        local Function = {
            Current = type(currentFunction) == 'function' and currentFunction or _G[currentFunction],
            Parent = type(data.parentFunction) == 'function' and data.parentFunction or _G[data.parentFunction]
        }
        if not data.status and Function.Parent == currentFunction then
            if data.condition(args) then
                Achievement.List[index].status = true
                --[[
                    show notf for achievment:
                    title: data.title
                    text: data.text
                    image: path..'\\'..data.image
                ]]
                sampAddChatMessage('Achievement +: '..data.title..': '..data.text..', image: '..data.image, -1)
            end
        end
    end
end



function main()
    while not isSampAvailable() do wait(0) end
    for index, data in ipairs(Achievement.List) do
        if not doesFileExist(data.image) then
            print('Картинка для ачивки "'..data.title..'" не найдена, скачиваю...')
            --downloadUrlToFile(data.imageUrl, Achievement.imagePath..'\\'..data.image)
        end
    end
    while true do
        wait(0)
        Achievement.Handler(main)
    end
end
тут есть "обработчик" ачивок, функция и условия задаются в списке ачивок. В качестве параметров для вызова "обработчика" нужно указывать функцию (главное что бы в коде функция была перед списком), а так же таблица с параметрами. Ну вообщем думаю если посмотришь видос то поймешь
Зачем ты ему разжёвываешь? Он же веня.. Он таблици то недавно выучил
 
  • Нравится
Реакции: Corenale

Sidney31

Известный
1,124
385
ну например мне вообще нечего делать в сампе уже, и вот когда добавляют квесту, или по типу такого, где надо проходить, а не просто фармить вирты, мне заходит
если тебе надоело играть в игру, не нужно пытаться искать бессмысленное занятие, перерастёт в зависимость. Займись чем-нибудь другим, что тебя интересует.
 

TheBrox

Известный
975
201
если тебе надоело играть в игру, не нужно пытаться искать бессмысленное занятие, перерастёт в зависимость. Займись чем-нибудь другим, что тебя интересует.
на своём компе, 2008 года, видюха 1 гиг, 4 гига оперативки, процессор пентиум, я почти не во что не могу поиграть кроме сампа, был бы нормальный пк, я бы давно закинул самп в корзину, под такой комп не могу найти нормальных игр которые мне нравятся, ОДНО ДЕРЬМО, а не игры
 

SummerSouL

Известный
91
48
бля, наконец-то нормальный контент
кстати, суть скрипта начинается с 0:20, мужики, смело мотайте