JS-скрипт Weave / w1ndy-yaw / Опен сурс

Памагите
Пользователь
Статус
Оффлайн
Регистрация
15 Апр 2021
Сообщения
225
Реакции[?]
44
Поинты[?]
3K
Установка
1. Скачиваем прикреплённый архив
2. Папку w1ndy-yaw, перекидываем на Локальный диск
3. Нажимаем Win + R, пишем %appdata%
4. Ищем папку weave
5. Перекидываем скрипт !w1ndy-yaw в папку scripts
6. Запускаем игру и инжектим чит
7. Готово!

Функции
[+] Styles - Default, Pony
[+] Background - Default, Fade, Gradient
[+] DoubleTap Insecure
[+] Pitch 0 on land
[+] Tank - No Desync
[+] Adaptive Jitter
[+] Holo Panel
[+] Pet
[+] KeyBinds
[+] Nade In 1 Person
[+] Viewmodel In Scope
[+] Custom HitSound
[+] Custom KillSound
[+] TrashTalk

О скрипте
Скрипт делался не для унхитабл скрипт аа 2022 жесть кс го, делал его больше под визуальную часть, чтобы было приятно играть :)
Для людей которые захотят написать что это паста. Да, мы все знаем что это паста, но она хотя бы бесплатная, а не как requiem.tech и тому подобные.



JavaScript:
// Вары для пользователя
var username = " w1ndyxz"

// Команды когда запустил скрипт
cheat.execute_command("fps_max 0")
cheat.execute_command("fps_max_menu 0")
cheat.execute_command("clear")



// Логи
cheat.log("Welcome!");
cheat.log("Script version 6.0");
cheat.log("Check new version in Discord");
cheat.log("Discord - discord.gg/7B6bmsEvbH");

// Вары
var size = render.get_screen_size(); // Разрешение экрана
var screen = render.get_screen_size(); // Разрешение экрана

// Звук при лоаде
utils.play_sound("C:/w1ndy-yaw/start.wav");

// Унлоаде
register_callback("unload", function () {
    cheat.execute_command("fov_cs_debug 0")
    convars.set_int("cl_clock_correction", 1);
    convars.set_int("sv_maxusrcmdprocessticks", 16);
    utils.play_sound("C:/w1ndy-yaw/close.wav");
})


// Стили
ui.add_slider("                   >> STYLES <<", "", 0, 0)
ui.add_combo("Styles", "style_var", ["None", "Default", "Pony"], 0);
vars.set_uint("js.style_var", 1)

ui.add_combo("Background", "bg_var", ["None", "Default", "Fade", "Gradient"], 0);
vars.set_uint("js.bg_var", 1)


// Кнопочки, слайдеры

ui.add_slider("                   >> RAGEBOT <<", "", 0, 0)

ui.add_checkbox("DoubleTap Insecure", "dt_insecure")



ui.add_slider("                   >> ANTI-AIM <<", "", 0, 0)

ui.add_checkbox("Pitch 0 on land", "pit_on_land")
ui.add_checkbox("Tank - No Desync", "antiaim1")
ui.add_checkbox("Adaptive Jitter", "adap_jitter")



ui.add_slider("                    >> VISUALS <<", "", 0, 0)

ui.add_checkbox("Holo Panel", "holo_panel")
ui.add_checkbox("Pet", "pet1")
ui.add_checkbox("KeyBinds", "keybinds", 0);
ui.add_slider("KeyBins Location X", "location_keybind_x", 0, screen[0]);
ui.add_slider("KeyBins Location Y", "location_keybind_y", 0, screen[1]);
vars.set_int("js.location_keybind_x", 479);
vars.set_int("js.location_keybind_y", 850);
ui.add_checkbox("Nade In 1 Person", "f_nade")
ui.add_checkbox("Viewmodel In Scope", "v_in_scope")



ui.add_slider("                      >> MISC <<", "", 0, 0)

ui.add_checkbox("Custom HitSound", "customehitsound")
ui.add_checkbox("Custom KillSound", "customekill")
ui.add_checkbox("TrashTalk", "trashtalkrussia")



// Background Default
register_callback("render", function() {
    if (vars.get_uint("js.bg_var") == 1) {
      var a = ui.get_menu_alpha()

      render.filled_rect([0, 0], [screen[0], screen[1]], [17, 17, 17, a * 100], 0)

   }
})

// Background Fade
register_callback("render", function() {
    if (vars.get_uint("js.bg_var") == 2) {
      var a = ui.get_menu_alpha()

      render.filled_rect_gradient([0,0], [screen[0], screen[1]], [30, 30, 30, a * 0], [30, 30, 30, a * 0], [20, 20, 20, a * 150], [20, 20, 20, a * 150]);

   }
})

// Background Gradient
register_callback("render", function() {
    if (vars.get_uint("js.bg_var") == 3) {
      var a = ui.get_menu_alpha()

        render.filled_rect_gradient([0, 0], [screen[0], screen[1]], [255, 255, 0, a * 100], [0, 255, 0, a * 100], [0, 165, 255, a * 100], [0, 0, 255, a * 100])

   }
})



// Анимация
var lerp = function(a, b, percentage) { return a + (b - a) * percentage; }
var x = 0;
var y = 0;

// Default Style
register_callback("render", function() {
    if (vars.get_uint("js.style_var") == 1) {

    var time = (new Date()).toTimeString().substring(0, 5);
    var a = ui.get_menu_alpha()
    var pos = ui.get_menu_position()

    x = lerp(x, pos[0] + 100, global_vars.frametime() * 6);
    y = lerp(y, pos[1] + 150, global_vars.frametime() * 6)

    if (a > 0) {

        // Внутреность
        render.filled_rect([x - 100, y - 175], [177, 22], [17, 17, 17, a * 100], 5);
        render.filled_rect([x + 84, y - 175], [520, 22], [17, 17, 17, a * 100], 5);

        // Обводка
        render.rect([x - 100, y - 175], [177, 22], [255, 92, 119, a * 255], 5);
        render.rect([x + 84, y - 175], [520, 22], [255, 92, 119, a * 255], 5);

        // Текст слева
        render.text([x - 45, y - 165], [255, 255, 255, a * 255], 12, 4, "w1ndy-yaw")

        // Текст справа
        render.text([x + 92, y - 165], [255, 255, 255, a * 255], 12, 4, "Welcome back," + username)
        render.text([x + 568, y - 165], [255, 255, 255, a * 255], 12, 4, time)

    }
}})

// Pony Style
register_callback("render", function() {
  if (vars.get_uint("js.style_var") == 2) {
    var pos = ui.get_menu_position()
    var a = ui.get_menu_alpha()


    if(ui.get_menu_alpha < 1) return;

    // Картинка
            // Сюда пишите своё расположение картинки
    render.picture("C:/w1ndy-yaw/zxc.png", [pos[0] + 125, pos[1] - 222], [600, 300], a * 255);

    // Обводка
    render.rect([pos[0] - 1, pos[1] - 1], [178, 490], [248, 181, 1, a * 255], 5);
    render.rect([pos[0] + 183, pos[1] - 1], [522, 490], [248, 181, 1, a * 255], 5);

}})



// Трэштолк
register_callback("player_death", function() {
    if (!vars.get_bool("js.trashtalkrussia")) return;

    var phrases = ["w1ndy-yaw - discord.gg/7B6bmsEvbH", "гет гуд гет w1ndy-yaw",
    "а у вас походу умирать это семейное)", "нахуя пидораса убил?",
    "чао персик дозревай", "уважаемый в тюрьме вы будете водолазом",
    "говори буду плохо говорить буду сосать, буду плохо сосать буду пересасывать",
    "долбаеб иди башмачки в сундучок школьный собирай", "ботинок ебаный чо слетел",
    "братик маме привет передай", "не противник", "а ты че клоун???", "я обоссал тебя (",
    "ты че там отлетел то?", "упал хуета ебаная , но в боди забрал да похуй все равно упал",
    "*DEAD* ливай с хвх (", "до связи башмак", "нищета глупейшая играть учись", "опущен сын твари",
    "нищий улетел", "*DEAD* пофикси нищ", "сразу видно кфг иссуе мб конфиг у меня прикупишь ?",
    "животное аддон скачай а то падаешь", "оттарабанен армянская королева", "сука не позорься и ливни",
    "улетел тапочек ебаный", "единицей свалился фуфлыжник", "зачем ты играешь тут безмозглый",
    "иди кумыса попей очередняра", "откисай сочняра",
    "АХАХА ЕБАТЬ У ТЕБЯ ЧЕРЕПНАЯ КОРОБКА ПРЯМ КАК [XML-RPC] No-Spread 24/7 | aim_ag_texture_2 ONLY!",
    "на мыло и веревку то деньги есть????", "ИЩИ СЕБЯ НА pornoeb.cc/sochniki", "свежий кабанчик",
    "до связи на подскоке кабанчик", "скажи маме сухарики купить долбаеб",
    "ебать ты красиво на бутылку присел , тебе дать альт ?", "прости что без смазки)",
    "алло это скорая? тут такая ситуация пареню который упал нужна скорая)",
    "ало ты мапу лузаешь дура очнись", "тяжело с кряком????",
    "ЕБУЧЕСТЬ ВТОРОГО РАЗРЯДА ВЫДВИЖЕНЕЦ ОТКИС", "але а противники то где???",
    "ты по легиту играешь ?", "ХУЕПРЫГАЛО ТУСОВОЧНОЕ КУДА ПОЛЕТЕЛО",
    "ты куда жертва козьего аборта", "iq?", "·٠●•۩۞۩ОтДыХаЙ (ٿ) НуБяРа۩۞۩•●٠·",
    "ты то куда лезешь сын фантомного стационарного спец изолированого металлформовочного механизма",
    "╭∩╮( ⚆ ʖ ⚆)╭∩╮ ДоПрыГался(ت)ДрУжоЧеК", "держи зонтик ☂, тебя обоссали", "Держи ✈ и лети нахуй !",
    "слишком сочный для w1ndy-yaw", "сьебался нахуй таракан усатый",
    "мать твою ебал", "нахуй ты упал иди вставай и на завод", "не по сезону шуршишь фраер",
    "ИЗИ ЧМО ЕБАНОЕ", "ливай блять не позорься", "AХАХ ПИДОР УПАЛ С ВАНВЕЯ ХАХАХА ОНЛИ БАИМ В БОДИ ПОТЕЕТ НА ФД АХА",
    "АХАХА УЛЕТЕЛ ЧМОШНИК", "1 МАТЬ ЖАЛЬ", "тебе права голоса не давали thirdworlder ебаный",
    "на завод иди", "не не он опять упал на конлени", "вставай заебал , завтра в школу",
    "гет гуд гет иди нахуй", "ну нет почему он ложится когда я прохожу",
    "у тебя ник нейм адео?", "парень тебе ник придумать?", "такой тупой :(",
    "хватит получать хс ,лучше возьми свою руку и иди дрочи",
    "нет нет этот крякер такой смешной", "1 сын шлюхи", "1 мать твою ебал",
    "преобрети мой кфг клоун", "об кафель голову разбил?", "мать твою ебал",
    "хуесос дальше адайся ко мне", "ещё раз позови к себе на бекап",
    "w1ndy-yaw - discord.gg/7B6bmsEvbH", "гет гуд гет w1ndy-yaw",
    "не противник", "ник нейм дориан(", "iq ?", "упал = минус мать", "не пиши мне",
    "жаль конечно что против тебя играю, но куда деваться", "адиничкой упал",
    "сынок зачем тебе это ?", "давно в рот берёшь?", "мне можно", "ты меня так заебал , ливни уже",
    "ничему жизнь не учит (", "я не понял, ты такой жирный потомучто дошики каждый день жрешь?",
    "братка го я тебе бекап позову", "толстяк даже пройти спокойно не может",
    "улетаешь в копилку мертвых сочников", "отмена скит мисснул",
    "почему боты ходят, я вроде не прописывал bot_Stop 0 0_0", "жри землю мышь",
    "а ты вообще знаешь что такое iq?", "пиши disconnect обоссанный",
    "ошка взорвалась от моего наплыва", "отсосала проститутка хахаха",
    "ебло разлетелось на тысячи частиц материи", "oh my god валера, ты сириусли надеялся меня убить? АХАХ",
    "каадык мне в зад вот это я тебе ебло снес красиво", "ешки матрешки вот это вантапчик",
    "-> заползла обратно моча <- тебе в будку", "бектрекед to africa дегенерат)",
    "опять шляпа слетела, анти-попадайки не помогли", "где носопырку потерял",
    "где мозги потерял шаболда", "залил очко спермой",
    "передавило ослинской", "братец тут уже нихуя не поможет",
    "бегите сука, папочка идет...", "лям сюда лям туда, бэктрекед ту africa моча",
    "сейчас в попу, потом в ротик", "у тебя еще есть шанс козленыш",
    "сейчас рейвтрип, а потом что? в ротик?", "снимай штаны щас будем петушить",
    "глотай помёт овечк", "оправдания?",
    "минет делай ханыга", "яйца в щечки и потопал на тот свет",
    "ешки матрешки нихуя ты пули всосал как кончу проглотил", "анально наказан"];

    var dead = entity.get_player_for_user_id(current_event.get_int("userid"));
    var attacker = entity.get_player_for_user_id(current_event.get_int("attacker"));
    var me = entity.get_local_player();

        if (me != dead && attacker != dead && attacker == me) {
            cheat.execute_command("say " +phrases[math.random_int(0, phrases.length)]);
        }
})


// RGB
function HSVtoRGB2(h,s,v){
    var r, g, b, i, f, p, q, t;
    if (arguments.length === 1) {
        s = h.s, v = h.v, h = h.h;
    }
    i = Math.floor(h * 6);
    f = h * 6 - i;
    p = v * (1 - s);
    q = v * (1 - f * s);
    t = v * (1 - (1 - f) * s);
    switch (i % 6) {
        case 0: r = v, g = t, b = p; break;
        case 1: r = q, g = v, b = p; break;
        case 2: r = p, g = v, b = t; break;
        case 3: r = p, g = q, b = v; break;
        case 4: r = t, g = p, b = v; break;
        case 5: r = v, g = p, b = q; break;
    }
    return [
        Math.round(r * 255),
        Math.round(g * 255),
        Math.round(b * 255),
        255
    ]
}

// Кейбинды
register_callback('render', function() {
    if (!vars.get_bool("js.keybinds")) return; {

        var keybinds_list = [
            ["thirdperson","Thirdperson"],
            ["force_safepoints","Force Safepoints"],
            ["body_aim","Force Body"],
            ["override_damage","Override Damage"],
            ["ensure_lean","Ensure Lean"],
            ["inverter","Inverter"],
            ["fake_duck","Fake Duck"],
            ["slow_walk","Slow Walk"],
            ["doubletap","Double Tap"],
            ["hide_shots","Hide Shots"],
            ["peek_assist","Peek Assist"],
        ]
        var binds = [];
        var x = vars.get_int("js.location_keybind_x");
        var y = vars.get_int("js.location_keybind_y");
        var c = HSVtoRGB2(global_vars.realtime() * 0.1, 1, 1);

        for (var n in keybinds_list) {
        if (vars.is_bind_active(keybinds_list[n][0])) binds.push(n);

    }
}

    render.filled_rect([x - 10, y - 20], [155, 23], [17, 17, 17, 100], 5)
    render.rect([x - 10, y - 20], [155, 23], [c[0], c[2], c[3], 255], 4)
    //render.picture("C:/w1ndy-yaw/binds.png", [x - 7, y - 23], [30, 30], 255)


    render.text([x + 37, y - 8], [255, 255, 255, 255], 12, 4, "Keybinds");


    for (var i in binds) {

      render.text([x - 6, y + 14 + 15 * i - 4], [255, 255, 255, 255], 12, 0, keybinds_list[binds[i]][1]);
      render.text([x + 121, y + 14 + 15 * i - 4], [255, 255, 255, 255], 12, 0, "[on]");

    }
})



// Хитсаунд
register_callback("player_hurt", function() {
    if (!vars.get_bool("js.customehitsound")) return;

        var attacker = entity.get_player_for_user_id(current_event.get_int("attacker"))
        var userid = entity.get_player_for_user_id(current_event.get_int("userid"))

    if (attacker == entity.get_local_player() && userid != entity.get_local_player()) {
                    // Расположение звука
    utils.play_sound("C:/w1ndy-yaw/hit.wav");

  }
})

// Киллсаунд
register_callback("player_death", function() {
    if (!vars.get_bool("js.customekill")) return;

        var attacker = entity.get_player_for_user_id(current_event.get_int("attacker"))
        var userid = entity.get_player_for_user_id(current_event.get_int("userid"))

    if (attacker == entity.get_local_player() && userid != entity.get_local_player()) {
                    // Расположение звука
    utils.play_sound("C:/w1ndy-yaw/kill.wav");

  }
})



// Питч 0, когда упал на землю
var groundCounter = 0;

register_callback("render", function() {
    if(!vars.get_bool("js.pit_on_land")) return;
    if(!entity.get_local_player()) return;

    var LocalPlayer = entity.get_local_player()
    var LocalPlayerFlags = entity.get_flags(LocalPlayer)

     if (LocalPlayerFlags == 256 || LocalPlayerFlags == 262) {
        groundCounter = 0;
    }

    if (LocalPlayerFlags == 257 || LocalPlayerFlags == 261 || LocalPlayerFlags == 263) {
        groundCounter = groundCounter + 1.6;
    }

    if (groundCounter > 5 && groundCounter < 200) {
        vars.set_int("antiaim.pitch", 0)
    } else {
        vars.set_int("antiaim.pitch", 2)
    }
})

// Viewmodel In Scope
register_callback('createmove', function() {
    if(vars.get_bool("js.v_in_scope"))

    {
        cheat.execute_command("fov_cs_debug 90")
    }
    else
    {
        cheat.execute_command("fov_cs_debug 0")
    }

})

// Первое лицо при нейде
var Grenade = [44,45,46,47,48]
var ThirdPNow = false;
var SaveNade;
var needSwitch = false;


register_callback("createmove", function () {
    if (!vars.get_bool("js.f_nade")) return;
    var my_weapon = entity.get_weapon_id(entity.get_local_player())
    for (i=0; i < Grenade.length; i++){
        if (my_weapon == Grenade[i]){
            SaveNade = i
        }
    }

    if (Grenade[SaveNade] == my_weapon){
        if(vars.is_bind_active("thirdperson")){
            ThirdPNow = true;
            needSwitch = true;
            vars.set_bind_active("thirdperson", false);
        }
        }else if(needSwitch) {
            needSwitch = false;
            vars.set_bind_active("thirdperson", ThirdPNow)
        }
})



// Tank No Desync
register_callback('createmove', function() {
    if(!vars.get_bool("js.antiaim1")) return;
    {
        vars.set_bool("antiaim.desync", false);
        vars.set_int("antiaim.trigger[0].jitter_angle", 45);
        vars.set_int("antiaim.trigger[0].yaw_add", 10);
    }
})


// Adaptive jitter
register_callback("render", function() {
    if (!vars.get_bool("js.adap_jitter")) return;
        var jitter_switch = false

        if (jitter_switch) {
            vars.set_int("antiaim.trigger[0].jitter_angle", -math.random_int(0, 30));
            jitter_switch = false;
        } else {
            vars.set_int("antiaim.trigger[0].jitter_angle", math.random_int(0, 30));
            jitter_switch = true;
        }
})



// Extrapolate Tick
function extrapolate_tick(player, ticks) {
    var egt = entity.get_origin(player),
        velocity = entity.get_velocity(player),
        array = [];
    return array[0] = egt[0] + velocity[0] * global_vars.interval_per_tick() * ticks, array[1] = egt[1] + velocity[1] * global_vars.interval_per_tick() * ticks, array[2] = egt[2] + velocity[2] * global_vars.interval_per_tick() * ticks, array;
};

// Анимация
var lerp = function(a, b, percentage) { return a + (b - a) * percentage; }
var pet_x = 0;
var pet_y = 0;

// Питомец
register_callback("render", function() {
    if (!vars.get_bool("js.pet1")) return;

    var player = render.world_to_screen(extrapolate_tick(entity.get_local_player(), -3));

    pet_x = lerp(pet_x, player[0] + 1, global_vars.frametime() * 2);
    pet_y = lerp(pet_y, player[1] - 50, global_vars.frametime() * 2);

    render.picture("C:/w1ndy-yaw/nagatoro.png", [pet_x, pet_y], [200, 200], 255);

})



// Doubletap insecure
register_callback("render", function() {
        if (!vars.get_bool("js.dt_insecure")) {
            convars.set_int("cl_clock_correction", 0);
            convars.set_int("sv_maxusrcmdprocessticks", 18);
        } else {
            convars.set_int("cl_clock_correction", 1);
            convars.set_int("sv_maxusrcmdprocessticks", 16);
        }
})



// RGB
function HSVtoRGB(h, s, v) {
    var r, g, b, i, f, p, q, t;
    if (arguments.length === 1) {
        s = h.s, v = h.v, h = h.h;
    }
    i = Math.floor(h * 6);
    f = h * 6 - i;
    p = v * (1 - s);
    q = v * (1 - f * s);
    t = v * (1 - (1 - f) * s);
    switch (i % 6) {
        case 0: r = v, g = t, b = p; break;
        case 1: r = q, g = v, b = p; break;
        case 2: r = p, g = v, b = t; break;
        case 3: r = p, g = q, b = v; break;
        case 4: r = t, g = p, b = v; break;
        case 5: r = v, g = p, b = q; break;
    }
    return {
        r: Math.round(r * 255),
        g: Math.round(g * 255),
        b: Math.round(b * 255)
    };
}

// Extrapolate Tick
function extrapolate_tick2(player, ticks) {
    var pos = entity.get_origin(player),
        velocity = entity.get_velocity(player),
        array = [];
    return array[0] = pos[0] + velocity[0] * global_vars.interval_per_tick() * ticks, array[1] = pos[1] + velocity[1] * global_vars.interval_per_tick() * ticks, array[2] = pos[2] + velocity[2] * global_vars.interval_per_tick() * ticks, array;
};

// Анимация
var lerp = function(a, b, percentage) { return a + (b - a) * percentage; }
var player_x = 0;
var player_y = 0;

// Holo Panel
register_callback("render", function() {
    if (!vars.get_bool("js.holo_panel")) return;

    var player = render.world_to_screen(extrapolate_tick2(entity.get_local_player(), -2));
    var rgb = HSVtoRGB(global_vars.tick_count() % 1000 / 1000, 1, 1);
    var desync_fake = Math.round(cheat.get_desync_amount())
    var checkdt = vars.is_bind_active("doubletap")
    var checkonshot = vars.is_bind_active("hide_shots");
    var onshot_color = (function() {
        if (checkonshot) { return [0, 255, 0] }
        return [0, 0, 255]
    })()

    // Плавное мигание
    var realtime = global_vars.realtime() / 2
    var alpha = Math.floor(Math.sin(realtime * 4) * (200 / 2) + 200 / 2)

    player_x = lerp(player_x, player[0] + 50, global_vars.frametime() * 2);
    player_y = lerp(player_y, player[1] + 50, global_vars.frametime() * 2);


    render.filled_rect([player_x - 150, player_y - 1], [200, 65], [17, 17, 17, 59], 0)
    render.filled_rect([player_x - 150, player_y - 1], [200, 3], [rgb.r, rgb.g, rgb.b, 255], 0)


    render.text([player_x - 145, player_y + 5], [255, 255, 255, 255], 0, 2, "ANTI-AIMBOT DEBUG")
    render.text([player_x - 145, player_y + 23], [255, 255, 255, 255], 0, 4, "FAKE (" + desync_fake + "°)")
    if (checkdt) { render.text([player_x - 145, player_y + 43], [255, 255, 255, 255], 0, 2, "SHIFTING TICKBASE") }
    render.text([player_x - 60, player_y + 24], [255, 255, 255, 255], 0, 4, "OSAA:")
    render.text([player_x - 15, player_y + 24], [onshot_color[0], onshot_color[1], onshot_color[2], 255], 1, 4, checkonshot ? "ON" : "OFF")


})
 

Вложения

Последнее редактирование:
onetap.su technology
Пользователь
Статус
Оффлайн
Регистрация
20 Июн 2020
Сообщения
351
Реакции[?]
108
Поинты[?]
1K
респект что не продаешь скрипт за 35 рублей
 
Мне как-то до пизды
Пользователь
Статус
Оффлайн
Регистрация
4 Ноя 2020
Сообщения
954
Реакции[?]
124
Поинты[?]
3K
респект что на видео обзоре отличная песня
 
Пользователь
Статус
Оффлайн
Регистрация
4 Ноя 2020
Сообщения
457
Реакции[?]
71
Поинты[?]
2K
респект что на видео обзоре не скрипт за 35 рублей
 
Мне как-то до пизды
Пользователь
Статус
Оффлайн
Регистрация
4 Ноя 2020
Сообщения
954
Реакции[?]
124
Поинты[?]
3K
[+] MaskChanger
а собственно где?
 
Сверху Снизу