Greasemonkey: рд╕рдорд░реНрдерди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдкреНрд░рд╛рд░рдВрдн рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рди рдЯрд╛рдЗрдо

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдЬреБрд▓ре░ 2017  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: greasemonkey/greasemonkey

document-start рд▓рд┐рдП @run-at ред

рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП #2483 рджреЗрдЦреЗрдВред рдпрд╣ "рдЕрд╕рдВрднрд╡" рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА 17 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк content_scripts рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдХреБрдВрдЬреА рдХреА run_at рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ 4 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЖрдкрдХреЗ рд╕рд╛рде рдХреНрд░реЛрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрдпрд╛ рд╕рд╛рдЭрд╛ рдХреА рдереАред рдЕрдм рдлрд┐рд░ рд╕реЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдПред рдореИрдВ

рдореИрдВ рдЕрдкрдиреЗ рд╕реБрдЭрд╛рд╡ рдХреЛ https://bugs.chromium.org/p/chromium/issues/detail?id=257956 рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛/рдЪрд╛рд╣рддреА рд╣реВрдВ

tabs.insertCSS/executeScript рдХреЛ рддрдм рддрдХ CSS/JS рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдЯреИрдм рдХрд╛ URL рдЧреИрд░-рд░рд┐рдХреНрдд рд╕реЗрдЯ рди рд╣реЛ (рд╢реВрдиреНрдп рдирд╣реАрдВ, рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ, рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ ""), рдФрд░ рдпрджрд┐ рдЯреИрдм рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

WebExtension API рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@iology рдЖрдкрдиреЗ рдореЗрд░реЗ рд╕реБрдЭрд╛рд╡ рдХреЛ

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдореЗрд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: (рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)

/**
 * <strong i="8">@typedef</strong> UserScript
 * <strong i="9">@property</strong> {Object} header The parsed header of a script
 * <strong i="10">@property</strong> {String} script The raw script data
 * <strong i="11">@property</strong> {String} type The script media type (in case a script is WebAssembly
 *                         or something other than JavaScript)
 */

/** The load state of this script. Used by the `matches()` function */
const READY_STATE = document.readyState;

(async () => {
    (await (browser.storage.local.get({scripts: []}) // Excuse this horrible code style
        .then(ret => ret.scripts)))                  // of combining `await` and `.then()`
        .forEach(/* <strong i="12">@param</strong> {UserScript} script */ script => {
            if (matches(script.header)) {
                let scriptTag = document.createElement("script");
                scriptTag.setAttribute("type", script.type)
                scriptTag.textContent = script.script;
                document.appendChild(scriptTag);
            }
        });
})();

/**
 * Checks if this script matches this page and @run-at property.
 * 
 * <strong i="13">@param</strong> {Object} scriptHeader The parsed header of a script
 * <strong i="14">@return</strong> {boolean} `true` if this page matches, `false` otherwise
 */
function matches(scriptHeader) {
    // Uses window.location and READY_STATE.
    // TODO: Implement
}

@ ExE-Boss рдЬрдм рддрдХ рдЖрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдкреЗрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкрд╣рд▓реЗ рд╣реА рд▓реЛрдб рд╣реЛ рдЪреБрдХрд╛ рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ WebExtensions рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕реАрдорд┐рдд рд╣реИрдВред

@ рдПрдХреНрд╕рдИ-рдмреЙрд╕, рдПрдХ рдмрдЧрдЬрд┐рд▓рд╛ рд╣реИ, https://bugzilla.mozilla.org/show_bug.cgi?id=1332273 , рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рдЧрддрд┐ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ @ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдкреНрд░рд╛рд░рдВрдн рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдпрд╣ FF57 рдХреЗ рд▓рд┐рдП рдЙрддрд░реЗрдЧрд╛, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ WebExtensions рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕реАрдорд┐рдд рд╣реИрдВред

@ ExE-Boss рд╡рд╕реНрддреБрддрдГ рд╡рд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕реЗ рднреА рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ # 2525 рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рдмрд┐рдВрджреБ рддрдХ рдкреВрд░рд╛ рдкреГрд╖реНрда рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓реЛрдб рд╣реЛ рдЪреБрдХрд╛ рд╣реИред

Violentmonkey рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднреА рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ Tampermonkey рдХрд┐рд╕ рдХрд╛рд▓реЗ рдЬрд╛рджреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ document-start рдкрд░ рдордЬрд╝рдмреВрддреА рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред

Tampermonkey 2.9 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛ GPL-3.0 рдерд╛ рдФрд░ рдЗрд╕реЗ GitHub рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рд╕рд┐рдВрдХ рдПрдХреНрд╕рдПрдЪрдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рдВрд╕реНрдХрд░рдг 2.6 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдХрд┐ рдЯреИрдореНрдкрд░рдореЛрдирдХреА рдмрдВрдж рд╕реНрд░реЛрдд рдХреНрдпреЛрдВ рдЪрд▓рд╛ рдЧрдпрд╛:

рдореБрдЭреЗ рд╕рд╛рдорд╛рди рдЪреЛрд░реА рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рдЯреИрдореНрдкрд░рдореЛрдирдХреА рдХреЗ рддрд░реНрдХ рдХреЛ рдЙрд▓рдЯрдирд╛ рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдирд╛ рдХрд╛рдиреВрдиреА рдирд╣реАрдВ рд╣реИред

@Sxderp рдпрд╣ рдХреЗрд╡рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 57 рдХреЗ рд▓рд┐рдП рд╣реИ, рдЙрд╕ рдмрдЧ рдХреЛ рдЕрднреА рднреА 58+ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

FYI рдХрд░реЗрдВ, Tampermonkey рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИред рдПрдХ "рддрддреНрдХрд╛рд▓" рдЗрдВрдЬреЗрдХреНрд╢рди рд╡рд┐рдХрд▓реНрдк рд╣реИ (рдЬреЛ рдмреЗрд╣рдж рд╣реИрдХреА рд╣реИ) рдЬреЛ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди xkcd.com рдЬреИрд╕реЗ рд╕рд░рд▓ рдкреГрд╖реНрдареЛрдВ рдкрд░, рдореБрдЭреЗ рдЕрднреА рднреА рдореЗрд░реЗ рд╕реАрдПрд╕рдПрд╕ (рдЬреЛ рд╣рдореЗрд╢рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдлреНрд▓реИрд╢ рдорд┐рд▓рддрд╛ рд╣реИред рдореБрдЭреЗ рдХрднреА-рдХрднреА рдЕрдиреНрдп рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рднреА рдлреНрд▓реИрд╢ рдорд┐рд▓рддрд╛ рд╣реИред

рдЯреИрдореНрдкрд░реНрдореЛрдирдХреА рдХреЗ рдХреЛрдб рдХреЛ рдЙрд▓рдЯ рджреЗрдирд╛ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рд╕рд╛рде рд╣реА, рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЙрдирдХреЗ рдлрд╝реЛрд░рдо рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рд╣реИрдВред рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐-vio рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдХреЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рд╣реИ, рдФрд░ рд╣рдо рдПрдХ рдЖрджрд░реНрд╢ рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрджрд┐ рдпрд╣ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдзрд┐ рдорд┐рд▓ рдЬрд╛рддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдмрд╕реЗрдЯ рдХреЛ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкрдврд╝рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, https://github.com/ccd0/4chan-x/issues/1627 рджреЗрдЦреЗрдВред рдпрд╣рд╛рдВ рдореБрдЭреЗ рдкреГрд╖реНрда рдкрд░ рдХреБрдЫ рдХреЛрдб рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЛрдб рдХреЛ рдЕрдХреНрд╖рдо рди рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рднреА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдФрд░ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ localStorage рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред

рдпрджрд┐ рдпрд╣ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдзрд┐ рдорд┐рд▓ рдЬрд╛рддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдмрд╕реЗрдЯ рдХреЛ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкрдврд╝рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдХрд┐рд╕реА рднреА рдЕрд▓реНрдкрд╛рд╡рдзрд┐ рдореЗрдВ рдирд╣реАрдВред (рдкреНрд░рд╛рдкреНрдд | рд╕реЗрдЯ) рдорд╛рди рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд╕рд╛рде рд╕рдордХрд╛рд▓рд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдЬреАрдПрдо рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдЬрд┐рд╕рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдиреЛрдВ рд╡рд╛рд▓реЗ рдЪрд░ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрд╢рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЬреЛ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рд╢рд╛рдпрдж рдЬреАрдПрдо рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдЬрд┐рд╕рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдиреЛрдВ рд╡рд╛рд▓реЗ рдЪрд░ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрд╢рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЬреЛ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рдВрднрд╡рддрдГ рдпрд╣ GM рд╡рд╕реНрддреБ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ред GM.initValues.yourVariable рдЬреИрд╕рд╛ рдХреБрдЫред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

silverwind picture silverwind  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arantius picture arantius  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

makyen picture makyen  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

eradrix picture eradrix  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

darkred picture darkred  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ