NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @namespace https://github.com/KhanhhNe // @name Auto buy forest-berries // @description Auto trade chợ đen forest-berries // @icon https://www.google.com/s2/favicons?domain=forest-berries.biz // @copyright 2021, KhanhhNe (https://github.com/KhanhhNe) // @license CC-BY-SA-3.0; http://creativecommons.org/licenses/by-sa/3.0/ // @license MIT // @version 1.2.7 // @include *forest-berries.biz/account/market // @grant none // ==/UserScript== // ==OpenUserJS== // @author KhanhhNe // ==/OpenUserJS== /*jshint esversion: 6 */ /*jshint asi: true */ /*globals $:false */ // Tự reload trong trường hợp code chính không reload được vì gặp lỗi (ưu tiên) setTimeout(() => window.location.reload(), 10000) // Reload bằng cách chuyển đến link hiện tại (dự phòng). Sở dĩ cách này // chỉ là dự phòng vì làm thế liên tục sẽ làm browser lag hơn khi lịch sử // sẽ tràn ngập /account/market, /account/market,... setTimeout(() => window.location.replace(window.location.href), 15000) const data = {"\u0442\u0440\u0438": 3, "\u0447\u0435\u0442\u044b\u0440\u0435": 4, "\u043f\u044f\u0442\u044c": 5, "\u0448\u0435\u0441\u0442\u044c": 6, "\u0441\u0435\u043c\u044c": 7, "\u0432\u043e\u0441\u0435\u043c\u044c": 8, "\u0434\u0435\u0432\u044f\u0442\u044c": 9, "\u0434\u0435\u0441\u044f\u0442\u044c": 10, "\u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u044c": 11, "\u0434\u0432\u0435\u043d\u0430\u0434\u0446\u0430\u0442\u044c": 12, "\u0442\u0440\u0438\u043d\u0430\u0434\u0446\u0430\u0442\u044c": 13, "\u0447\u0435\u0442\u044b\u0440\u043d\u0430\u0434\u0446\u0430\u0442\u044c": 14, "\u043f\u044f\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c": 15, "\u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c": 16, "\u0441\u0435\u043c\u043d\u0430\u0434\u0446\u0430\u0442\u044c": 17, "\u0432\u043e\u0441\u0435\u043c\u043d\u0430\u0434\u0446\u0430\u0442\u044c": 18, "\u0434\u0435\u0432\u044f\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c": 19, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c": 20, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0442\u0440\u0438": 23, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0447\u0435\u0442\u044b\u0440\u0435": 24, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u043f\u044f\u0442\u044c": 25, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0448\u0435\u0441\u0442\u044c": 26, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0441\u0435\u043c\u044c": 27, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0432\u043e\u0441\u0435\u043c\u044c": 28, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0434\u0435\u0432\u044f\u0442\u044c": 29, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c": 30, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0442\u0440\u0438": 33, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0447\u0435\u0442\u044b\u0440\u0435": 34, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u043f\u044f\u0442\u044c": 35, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0448\u0435\u0441\u0442\u044c": 36, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0441\u0435\u043c\u044c": 37, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0432\u043e\u0441\u0435\u043c\u044c": 38, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0434\u0435\u0432\u044f\u0442\u044c": 39, "\u0441\u043e\u0440\u043e\u043a": 40, "\u0441\u043e\u0440\u043e\u043a \u0442\u0440\u0438": 43, "\u0441\u043e\u0440\u043e\u043a \u0447\u0435\u0442\u044b\u0440\u0435": 44, "\u0441\u043e\u0440\u043e\u043a \u043f\u044f\u0442\u044c": 45, "\u0441\u043e\u0440\u043e\u043a \u0448\u0435\u0441\u0442\u044c": 46, "\u0441\u043e\u0440\u043e\u043a \u0441\u0435\u043c\u044c": 47, "\u0441\u043e\u0440\u043e\u043a \u0432\u043e\u0441\u0435\u043c\u044c": 48, "\u0441\u043e\u0440\u043e\u043a \u0434\u0435\u0432\u044f\u0442\u044c": 49, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442": 50, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0442\u0440\u0438": 53, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0447\u0435\u0442\u044b\u0440\u0435": 54, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u043f\u044f\u0442\u044c": 55, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0448\u0435\u0441\u0442\u044c": 56, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0441\u0435\u043c\u044c": 57, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0432\u043e\u0441\u0435\u043c\u044c": 58, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0435\u0432\u044f\u0442\u044c": 59, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442": 60, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0442\u0440\u0438": 63, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0447\u0435\u0442\u044b\u0440\u0435": 64, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u043f\u044f\u0442\u044c": 65, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0448\u0435\u0441\u0442\u044c": 66, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0441\u0435\u043c\u044c": 67, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0432\u043e\u0441\u0435\u043c\u044c": 68, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0435\u0432\u044f\u0442\u044c": 69, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442": 70, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0442\u0440\u0438": 73, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0447\u0435\u0442\u044b\u0440\u0435": 74, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u043f\u044f\u0442\u044c": 75, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0448\u0435\u0441\u0442\u044c": 76, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0441\u0435\u043c\u044c": 77, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0432\u043e\u0441\u0435\u043c\u044c": 78, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0435\u0432\u044f\u0442\u044c": 79, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442": 80, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0442\u0440\u0438": 83, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0447\u0435\u0442\u044b\u0440\u0435": 84, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u043f\u044f\u0442\u044c": 85, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0448\u0435\u0441\u0442\u044c": 86, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0441\u0435\u043c\u044c": 87, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0432\u043e\u0441\u0435\u043c\u044c": 88, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0435\u0432\u044f\u0442\u044c": 89, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e": 90, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u0442\u0440\u0438": 93, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u0447\u0435\u0442\u044b\u0440\u0435": 94, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u043f\u044f\u0442\u044c": 95, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u0448\u0435\u0441\u0442\u044c": 96, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u0441\u0435\u043c\u044c": 97, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u0432\u043e\u0441\u0435\u043c\u044c": 98, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u0434\u0435\u0432\u044f\u0442\u044c": 99, "\u0441\u0442\u043e": 100, "\u043d\u0443\u043b\u044c": 0, "\u043d\u043e\u043b\u044c": 0, "\u043e\u0434\u0438\u043d": 1, "\u043e\u0434\u043d\u0430": 1, "\u043e\u0434\u043d\u043e": 1, "\u043e\u0434\u043d\u0438": 1, "\u0434\u0432\u0430": 2, "\u0434\u0432\u0435": 2, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u043e\u0434\u0438\u043d": 21, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u043e\u0434\u043d\u0430": 21, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u043e\u0434\u043d\u043e": 21, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0434\u0432\u0430": 22, "\u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0434\u0432\u0435": 22, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u043e\u0434\u0438\u043d": 31, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u043e\u0434\u043d\u0430": 31, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u043e\u0434\u043d\u043e": 31, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0434\u0432\u0430": 32, "\u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0434\u0432\u0435": 32, "\u0441\u043e\u0440\u043e\u043a \u043e\u0434\u0438\u043d": 41, "\u0441\u043e\u0440\u043e\u043a \u043e\u0434\u043d\u0430": 41, "\u0441\u043e\u0440\u043e\u043a \u043e\u0434\u043d\u043e": 41, "\u0441\u043e\u0440\u043e\u043a \u0434\u0432\u0430": 42, "\u0441\u043e\u0440\u043e\u043a \u0434\u0432\u0435": 42, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u0438\u043d": 51, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u043d\u0430": 51, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u043d\u043e": 51, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0432\u0430": 52, "\u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0432\u0435": 52, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u0438\u043d": 61, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u043d\u0430": 61, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u043d\u043e": 61, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0432\u0430": 62, "\u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0432\u0435": 62, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u0438\u043d": 71, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u043d\u0430": 71, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u043d\u043e": 71, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0432\u0430": 72, "\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0432\u0435": 72, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u0438\u043d": 81, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u043d\u0430": 81, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u043e\u0434\u043d\u043e": 81, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0432\u0430": 82, "\u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0434\u0432\u0435": 82, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u043e\u0434\u0438\u043d": 91, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u043e\u0434\u043d\u0430": 91, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u043e\u0434\u043d\u043e": 91, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u0434\u0432\u0430": 92, "\u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e \u0434\u0432\u0435": 92} function range(a, b=-1) { if (b == -1) { return [...Array(a)].map((_, index) => index) } else { return [...Array(b-a)].map((_, index) => index + a) } } function match_percent(input, source) { const dp = [ [...Array(input.length)].map((_, index) => input[index] == source[0] ? 1 : 0) ] for (let source_ind of range(1, source.length)) { dp.push([...Array(input.length)].map(n => n || 0)) if (input[0] == source[source_ind] || dp[source_ind-1][0] == 1) { dp[source_ind][0] = 1 } else { dp[source_ind][0] = 0 } } for (let source_ind of range(1, source.length)) { for (let input_ind of range(1, input.length)) { dp[source_ind][input_ind] = input[input_ind] == source[source_ind] ? 1 : 0 dp[source_ind][input_ind] += Math.max(...dp[source_ind-1].slice(0, input_ind)) } } return dp[source.length-1][input.length-1] } function get_value(input) { let max_length = -1, match_number = -1, match_russian = '' for (let [russian, number] of Object.entries(data)) { let current_match_length = match_percent(input, russian) // Lưu lại <chữ tiếng Nga>, <số kí tự trùng nhau với input> // nếu <số kí tự trùng nhau với input> > <số kí tự trùng nhau tối đa hiện tại> if (current_match_length > max_length) { max_length = current_match_length match_number = number match_russian = russian } } // Hiển thị nhìn cho zui console.log({input, match_russian, match_number, max_length}) return match_number } function solve(text) { const [a, b] = text.split(' + ') return get_value(a) + get_value(b) } function has_captcha() { // Phát hiện captcha dựa trên hình ảnh cô cảnh sát xinh đẹp return document.querySelector('img[src*="polic.png"]') !== null } function solve_captcha() { // Lấy nội dung captcha const captcha_text = document.querySelector('.cl-right > div > center span span').textContent.split(' = ')[0] // Giải captcha const captcha_solution = solve(captcha_text) if (document.forms.length < 3) { // Nếu không có form thì có nghĩa là captcha đang bị khoá // và phải đợi để được giải captcha window.location.reload() } else { // Nhập dữ liệu đáp án captcha vào field n99 và submit (tự reload) document.forms[2].n99.value = captcha_solution document.forms[2].submit() } } function buy_stuff() { let requested = 0 for (let inp of document.querySelectorAll('.tdata3 [name=item]')) { // Chọn các input có name là "item" const form = new FormData(document.forms[0]) // Tạo form data để submit form.set('item', inp.value) // Đặt item thành giá trị của input // Submit form $.ajax({ url: form.action, data: form, processData: false, contentType: false, type: 'POST', success: function(){} }) requested += 1 } document.querySelector('.blokkur5k').scrollIntoView() // Scroll đến bảng slot để dễ nhìn setTimeout(() => window.location.reload(), (requested || 1) * (Math.random() * 0.4 + 1.8) * 1000) // Reload trang để xem kết quả } (function () { 'use strict'; if (has_captcha()) { solve_captcha() } else { buy_stuff() } })();