Помощь в изменении скриптов

FYP

Известный
Автор темы
Администратор
1,758
5,724
Здесь вы можете попросить других пользователей внести какие-то небольшие изменения в скрипт, например, изменить активацию.
Для вопросов по программированию и разработке на форуме есть отдельная категория Разработка.

Рекомендации:
  1. Не просите о редактировании .asi, .sf, .luac, .dll, .exe и прочих файлов, не поддающихся простой декомпиляции. Скрипты формата .ahk (AutoHotKey), .lua (Lua/MoonLoader) и .cs (CLEO) легко поддаются изменению.
  2. Сообщения по типу "спасибо, помог" по правилам форума считаются флудом и скорее всего будут удалены. Если вам помогли, вы можете нажать кнопку Мне нравится под ответом - это даст понять, что ответ верный.
  3. За злонамеренное распространение вредоносного ПО - перманентный бан. Имейте это в виду.
Удаление копирайтов является нарушением авторских прав, если автор не дал на это своего разрешения. Правила BlastHack запрещают нарушать авторские права, поэтому если вам нужно их убрать - обращайтесь к автору.
 
Последнее редактирование:

ПAXAH

Новичок
1
0
Всех приветствую, хотелось бы сменить активацию скрипта с чит-кода "CHH" на команду в чат /chh.
Заранее спасибо!
 

Вложения

  • Crosshair.lua
    3.9 KB · Просмотры: 4

abobus10

Новичок
1
0
Пытаюсь создать бота фермера для самп рп, есть такой код. Он для работы фермера до обновления, когда были красные маркеры. Сейчас их нет. Не получается сделать так, чтобы персонаж шел не на красный маркер, а просто отходил от пикапа, нажимал Alt и после сбора урожая относил к пикапу
код:
{$CLEO}
0661: NOP "FermaBot by BoPoH"
0661: NOP "Хотя, всё равно кто-нибудь обязательно исправит копирайты :D"
0661: NOP "Исходник прилагается, правьте, сколько влезет"

20@ = 1 // флаг первого поиска жёлтого маркера

while not player.Defined($PLAYER_CHAR)
wait 0
end

:Start
while true
wait 0
    if and
    0AB0: 66 // B
    0AB0: 90 // Z
    not actor.Driving($PLAYER_ACTOR)
    then
        20@ = 1
        while 0AB0: 90 // Ждём пока игрок отпустит кнопку Z
        wait 0
        end
        0AD1: show_formatted_text_highpriority "FermaBot by BoPoH is activated!~n~Searching for yellow pickup..." time 2000
        // Ищем жёлтый пикап
        // На самом деле это объект с id 861
  
        :StartSearching // Не люблю использовать метки, но тут без них тяжело будет
        while true  // Будем искать пикап каждый игровой цикл
            actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
            0AB1: @GetNearestObjectWithModel 3 pos 0@ 1@ model 861 handle 3@
          
            if
            03CA:   object 3@ exists
            then
                0AD1: show_formatted_text_highpriority "Yellow pickup found!" time 2000
                break
            end
          
            if
            gosub @CheckIfTurnOff
            then
                jump @Start
            end
          
            if
            actor.Driving($PLAYER_ACTOR)
            then
                0AB1: @EnableActorsCollision 0     
                0687: clear_actor $PLAYER_ACTOR task
                0AD1: show_formatted_text_highpriority "FermaBot by BoPoH is deactivated!" time 2000
                jump @Start
            end
            wait 0
        end
      
        // Итак, если мы вышли из цикла, значит объект найден
        // Отправим игрока туда
        object.StorePos(3@, 0@, 1@, 2@)
        0687: clear_actor $PLAYER_ACTOR task
        wait 0
        if
        80ED:   not actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 0.5 0.5 on_foot
        then
            05D3: AS_actor $PLAYER_ACTOR goto_point 0@ 1@ 2@ mode 7 -2 ms
            wait 100
        end
        32@ = 0
        while 80ED:   not actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 0.5 0.5 on_foot         // бежим к жёлтому маркеру
            wait 0 // Ждём, пока игрок добежит до места назначения
            0AD1: show_formatted_text_highpriority "We are going to yellow pickup" time 2000
            0AB1: @HasActorGoToTask 1 actor $PLAYER_ACTOR get_to 10@
            //0AD1: show_formatted_text_highpriority "%d" time 2000 10@
            if
            10@ == 0
            then
                05D3: AS_actor $PLAYER_ACTOR goto_point 0@ 1@ 2@ mode 7 -2 ms
            else
                0A8C: write_memory 0xB7345A size 2 value -128 virtual_protect 0 // Эмулируем нажатие клавиши W, чтобы другим был виден бег
            end
            0AB1: @DisableActorsCollision 0
          
            if
            gosub @CheckIfTurnOff
            then
                jump @Start
            end
          
            if
            32@ > 50000
            then
                break
            end
          
            if and  // если поиск не первый, то пробежка до маркера не займёт больше 5 секунд
            20@ == 0
            32@ > 5000
            then
                jump @SearchYellowMarker2
            end
        end
        20@ = 0
      
        :SearchMarker   // ищем красный маркер
        32@ = 0 
        33@ = 0
        while true
            0AB1: @DisableActorsCollision 0
            0AB1: @GetNearestMarker 2 pos 0@ 1@ get_pos 4@ 5@ id 6@
            if
            not 6@ == -1
            then
                0687: clear_actor $PLAYER_ACTOR task
                wait 0
                if
                80ED:   not actor $PLAYER_ACTOR 0 near_point 4@ 5@ radius 1.0 1.0 on_foot
                then
                    05D3: AS_actor $PLAYER_ACTOR goto_point 4@ 5@ 2@ mode 7 -2 ms
                    wait 100
                end
                while 80ED:   not actor $PLAYER_ACTOR 0 near_point 4@ 5@ radius 2.0 2.0 on_foot
                    wait 0 // Ждём, пока игрок добежит до места назначения
                    0AD1: show_formatted_text_highpriority "We are going to red marker" time 2000
                    0AB1: @HasActorGoToTask 1 actor $PLAYER_ACTOR get_to 10@
                    //0AD1: show_formatted_text_highpriority "%d" time 2000 10@
                    if
                    10@ == 0
                    then
                        05D3: AS_actor $PLAYER_ACTOR goto_point 4@ 5@ 2@ mode 7 -2 ms
                    else
                        0A8C: write_memory 0xB7345A size 2 value -128 virtual_protect 0 // Эмулируем нажатие клавиши W, чтобы другим был виден бег
                    end
                    0AB1: @DisableActorsCollision 0
                  
                    if
                    gosub @CheckIfTurnOff
                    then
                        jump @Start
                    end
                end
                break   // Мы добрались до маркера
            else
                if
                33@ > 5000
                then
                    0AB1: @GetNearestObjectWithModel 4 pos 0@ 1@ model 861 start 3@ handle 4@ // маркер не появился
                                                                                                // делаем вывод, что грузовик заполнен
                                                                                                // ищем новый жёлтый пикап
                    //0AD1: show_formatted_text_highpriority "Searching new yellow pickup! %d %d" time 2000 3@ 4@
                    if
                    03CA:   object 4@ exists
                    then
                        0085: 3@ = 4@ // (int)
                        object.StorePos(3@, 0@, 1@, 2@)
                        20@ = 1
                        jump @SearchYellowMarker2       // если нашли новый пикап, идём к нему
                    end
                end
            end
          
            if
            gosub @CheckIfTurnOff
            then
                jump @Start
            end
          
            if
            32@ > 10000
            then
                break
            end
            wait 0
        end
      
        32@ = 0
        while true
            0AB1: @DisableActorsCollision 0
            0AB1: @MarkerExist 1 6@ get_status 7@
            if
            7@ == 0
            then
                0AD1: show_formatted_text_highpriority "Searching for yellow pickup..." time 2000
                break
            end
          
            if
            gosub @CheckIfTurnOff
            then
                jump @Start
            end
          
            if
            32@ > 25000
            then
                break
            end
            wait 0
        end
      
        if
        gosub @CheckIfTurnOff
        then
            break
        end
      
        :SearchYellowMarker2        // топаем к жёлтому маркеру
        if
        03CA:   object 3@ exists
        then
            0687: clear_actor $PLAYER_ACTOR task
            wait 0
            if
            80ED:   not actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 0.5 0.5 on_foot
            then
                05D3: AS_actor $PLAYER_ACTOR goto_point 0@ 1@ 2@ mode 7 -2 ms
                wait 100
            end
          
            32@ = 0
            while 80ED:   not actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 0.5 0.5 on_foot
                wait 0 // Ждём, пока игрок добежит до места назначения
                0AD1: show_formatted_text_highpriority "We are going to yellow pickup" time 2000
                0AB1: @HasActorGoToTask 1 actor $PLAYER_ACTOR get_to 10@
                //0AD1: show_formatted_text_highpriority "%d" time 2000 10@
                if
                10@ == 0
                then
                    05D3: AS_actor $PLAYER_ACTOR goto_point 0@ 1@ 2@ mode 7 -2 ms
                else
                    0A8C: write_memory 0xB7345A size 2 value -128 virtual_protect 0 // Эмулируем нажатие клавиши W, чтобы другим был виден бег
                end
                0AB1: @DisableActorsCollision 0
              
                if
                gosub @CheckIfTurnOff
                then
                    jump @Start
                end
                if
                32@ > 20000
                then
                    break
                end
                if and
                20@ == 0
                32@ > 5000
                then
                    jump @SearchYellowMarker2
                end
            end
            jump @SearchMarker
        else
            jump @StartSearching
        end
    end
end

:CheckIfTurnOff
if and
0AB0: 66 // B
0AB0: 90 // Z
then
    while 0AB0: 90 // Z
    wait 0
    end
    0AB1: @EnableActorsCollision 0     
    0687: clear_actor $PLAYER_ACTOR task
    0AD1: show_formatted_text_highpriority "FermaBot by BoPoH is deactivated!" time 2000
    0485:   return_true
else
    if
    8184: not  actor $PLAYER_ACTOR health >= 1
    then
        0AB1: @EnableActorsCollision 0     
        0687: clear_actor $PLAYER_ACTOR task
        0AD1: show_formatted_text_highpriority "FermaBot by BoPoH is deactivated!" time 2000
        0485:   return_true
    else
        059A:   return_false
    end
end
return


:GetNearestMarker
10@ = 0xC7DD58 // Пул маркеров

4@ = 0
5@ = 1000.0
for 30@ = 0 to 31
    0085: 29@ = 30@
    29@ *= 0xA0
    29@ += 48
    005A: 29@ += 10@  // (int)
    0A8D: 2@ = read_memory 29@ size 4 virtual_protect 0
    29@ += 4
    0A8D: 3@ = read_memory 29@ size 4 virtual_protect 0
    29@ += 32
    0A8D: 6@ = read_memory 29@ size 4 virtual_protect 0
    0509: 4@ = distance_between_XY 0@ 1@ and_XY 2@ 3@
  
    if and
    not 2@ == 0.0
    not 3@ == 0.0
    0025:   5@ > 4@
    not 6@ == 0
    then
        0087: 5@ = 4@
        0087: 11@ = 2@ // X
        0087: 12@ = 3@ // Y
        0085: 13@ = 30@ // (int)
    end
end

if
5@ < 30.0
then
    0AB2: ret 3 11@ 12@ 13@
else
    0AB2: ret 3 0.0 0.0 -1
end

:MarkerExist
0@ *= 0xA0
0@ += 0xC7DD58
0@ += 0x54
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0AB2: ret 1 0@

:GetNearestObjectWithModel // 0AB1: @GetNearestObjectWithModel 3 pos 0@ 1@ model 861 handle 3@
0A8D: 10@ = read_memory 0xB7449C size 4 virtual_protect 0 // CObject Pool
0A8D: 11@ = read_memory 10@ size 4 virtual_protect 0 // CObject Array
10@ += 8
0A8D: 12@ = read_memory 10@ size 4 virtual_protect 0 // CObject Number
12@ -= 1

20@ = 0 // Object Handle
25@ = 0 // Object 2 Handle
21@ = 0 // Pos
22@ = 0
23@ = 0
24@ = 1000.0 // Distance

for 4@ = 0 to 12@
    0085: 5@ = 4@
    5@ *= 0x19C
    5@ += 0x18
    005A: 5@ += 11@
    0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0 // RwObject
    if
    6@ > 0
    then
        5@ -= 0x18
        0AEC: 7@ = object_struct 5@ handle
        if
        09CC:   object 7@ model_is 2@
        then
            object.StorePos(7@, 21@, 22@, 23@)
            0509: 8@ = distance_between_XY 0@ 1@ and_XY 21@ 22@
            if
            0025: 24@ > 8@
            then
                if
                803B: not 7@ == 3@  // (int)
                then
                    0085: 20@ = 7@
                    0087: 24@ = 8@
                end
            end
        end
    end
end

if
24@ < 100.0
then
0AB2: ret 1 20@
else
0AB2: ret 1 -1
end

:DisableActorsCollision
actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
0A8D: 10@ = read_memory 0xB74490 size 4 virtual_protect 0 // CPed Pool
0A8D: 11@ = read_memory 10@ size 4 virtual_protect 0 // CPed Array
10@ += 8
0A8D: 12@ = read_memory 10@ size 4 virtual_protect 0 // CPed Number
12@ -= 1

8@ = 0
for 4@ = 0 to 12@
    0085: 5@ = 4@
    5@ *= 0x7C4
    5@ += 0x18
    005A: 5@ += 11@
    0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0 // RwObject
    if
    6@ > 0
    then
        5@ -= 0x18
        0AEA: 7@ = actor_struct 5@ handle
        actor.StorePos(7@, 20@, 21@, 22@)
        050A: 17@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 20@ 21@ 22@
        if and
        87D6: not 7@ == $PLAYER_ACTOR
        17@ < 20.0
        80DF: not actor 7@ driving
        then
            0619: enable_actor 7@ collision_detection 0
            8@ += 1
        end
    end
end
//0AD1: show_formatted_text_highpriority "%d" time 2000 8@
0AB2: ret 0

:EnableActorsCollision
actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
0A8D: 10@ = read_memory 0xB74490 size 4 virtual_protect 0 // CPed Pool
0A8D: 11@ = read_memory 10@ size 4 virtual_protect 0 // CPed Array
10@ += 8
0A8D: 12@ = read_memory 10@ size 4 virtual_protect 0 // CPed Number
12@ -= 1

for 4@ = 0 to 12@
    0085: 5@ = 4@
    5@ *= 0x7C4
    5@ += 0x18
    005A: 5@ += 11@
    0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0 // RwObject
    if
    6@ > 0
    then
        5@ -= 0x18
        0AEA: 7@ = actor_struct 5@ handle
        actor.StorePos(7@, 20@, 21@, 22@)
        if and
        87D6: not 7@ == $PLAYER_ACTOR
        80DF: not actor 7@ driving
        then
            0619: enable_actor 7@ collision_detection 1
        end
    end
end
0AB2: ret 0

:HasActorGoToTask // 0AB1: @HasActorGoToTask 1 actor $PLAYER_ACTOR get_to 0@
0A96: 1@ = actor 0@ struct
1@ += 0x47C
0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0
if
2@ > 0
then
    2@ += 4
    for 3@ = 0 to 4
        0085: 4@ = 2@ // (int)
        0085: 5@ = 3@ // (int)
        5@ *= 4
        005A: 4@ += 5@  // (int)
        0A8D: 6@ = read_memory 4@ size 4 virtual_protect 0
        if
        6@ > 0
        then
            0A8D: 7@ = read_memory 6@ size 4 virtual_protect 0
            7@ += 0x10
            0A8D: 8@ = read_memory 7@ size 4 virtual_protect 0
            0AA7: call_function 8@ num_params 0 pop 0 get_id 9@
            if
            9@ == 0x387
            then
                0AB2: ret 1 1
            end
        end

    end
end
0AB2: ret 1 0
 

opeacedoll

Известный
89
9
При клисте 0 на SRP у людей не отображаются ники, остается только полоска ХП у персонажа, может кто это исправить, чтобы ник был просто белый, а не прозрачный?
 

Вложения

  • RENDER WH OPEN SOURCE.cs
    24.7 KB · Просмотры: 5

Madeo Capaldi

Участник
42
2
Можете, пожалуйста, добавить активацию/деактивацию на J и чтобы скрипт работал по времени: 10 секунд поработал, на 20 секунд отключился и опять сам заработал
 

Вложения

  • autojump.lua
    663 байт · Просмотры: 5

Patrickyy

Участник
44
12
Зделайте чтобы на комманду /saleryoff выкл
а на /saleryon включался
или можно зделать одной коммандой
 

Qulic

Новичок
15
0
напишите пж коротенькую флудилочку, типо что бы когда я например, зажимаю num0, флудился пробел и тд
заранее большое спасибо
 

Akihiro

Новичок
7
2
Надо сделать вместо того чтобы печатать сделать на биндер клавиши желательно на End
 

Вложения

  • InsuranceCompany_v1.2 Invisible ver.lua
    4.5 KB · Просмотры: 4

976h

Участник
90
34
Зделайте чтобы на комманду /saleryoff выкл
а на /saleryon включался
или можно зделать одной коммандой
/salaryon
/salaryoff

Lua:
script_name("Salary")
script_authors("hijuce", "mark)")
script_version("0.3")

local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'

text = renderCreateFont('Tahoma', 10, 5)
salary = renderCreateFont('Tahoma', 20, 5)
balance = 0
newbalance = 0

local showSalary = true

function main()
    while not isSampAvailable() do wait(0) end
    userscreenX, userscreenY = getScreenResolution()
    sampAddChatMessage("{CC8C51}[Salary] {d5dedd}Скрипт активирован. Автор: {CC8C51}hijuce.", 0x01A0E9)
    sampRegisterChatCommand('salaryon', function() showSalary = true end)
    sampRegisterChatCommand('salaryoff', function() showSalary = false end)
    while true do
        if sampIsLocalPlayerSpawned() then
            oldMoney = getPlayerMoney(Player)
            while true do
                if showSalary then
                    if oldMoney < getPlayerMoney(Player) then
                        newbalance = getPlayerMoney(Player) - oldMoney
                    elseif oldMoney > getPlayerMoney(Player) then
                        newbalance = -oldMoney + getPlayerMoney(Player)
                    end
                    renderDrawBox(userscreenX - userscreenX + 15, userscreenY / 2, 200, 80, 0xAA5D5D5D)
                    renderFontDrawText(text, "Заработок за сессию", userscreenX - userscreenX + 35, userscreenY / 1.95, 0xFFFFFFFF)
                    renderFontDrawText(salary, newbalance + 0, userscreenX - userscreenX + 35, userscreenY / 1.85, 0xFFCC8C51)
                end
                wait(0)
            end
        end
        wait(0)
    end
end
 

976h

Участник
90
34
Можете, пожалуйста, добавить активацию/деактивацию на J и чтобы скрипт работал по времени: 10 секунд поработал, на 20 секунд отключился и опять сам заработал
Lua:
require 'lib.moonloader'
require 'lib.sampfuncs'

local autoJumpActive = false

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand("autojump", autojump)
    
    while true do
        if isKeyJustPressed(VK_J) then
            autoJumpActive = not autoJumpActive
            if autoJumpActive then
                startAutoJump()
            end
        end
        wait(0)
    end
end

function startAutoJump()
    lua_thread.create(function()
        while autoJumpActive do

            for i = 1, 5 do
                if not autoJumpActive then break end
                setVirtualKeyDown(VK_SHIFT, true)
                wait(20)
                setVirtualKeyDown(VK_SHIFT, false)
                wait(1980)
            end

            for i = 1, 20 do
                if not autoJumpActive then break end
                wait(1000)
            end
        end
    end)
end

function autojump(param)
    local time = string.match(param, "(%d+)")
    if time == nil then
        sampAddChatMessage("Use /autojump [time (in second)]", -1)
    else
        time = time * 1000
        lua_thread.create(function()
            while true do
                wait(time)
                setVirtualKeyDown(VK_SHIFT, true)
                wait(20)
                setVirtualKeyDown(VK_SHIFT, false)
            end
        end)
    end
end

напишите пж коротенькую флудилочку, типо что бы когда я например, зажимаю num0, флудился пробел и тд
заранее большое спасибо
При зажатой Num2 будет прыгать
При зажатой Num5 будет падать

Lua:
require 'lib.moonloader'
require 'lib.sampfuncs'

function main()
    repeat wait(0) until isSampAvailable()

    local spacePressed = false

    while true do
        if isKeyDown(VK_NUMPAD5) then
            if not spacePressed then
                setVirtualKeyDown(VK_SPACE, true)
                spacePressed = true
            end
            setVirtualKeyDown(VK_SHIFT, true)
        elseif isKeyDown(VK_NUMPAD2) then
            if spacePressed then
                setVirtualKeyDown(VK_SPACE, false)
                spacePressed = false
            end
            setVirtualKeyDown(VK_SHIFT, true)
        else
            if spacePressed then
                setVirtualKeyDown(VK_SPACE, false)
                spacePressed = false
            end
            setVirtualKeyDown(VK_SHIFT, false)
        end
        wait(0)
    end
end
 
Последнее редактирование:

Benzo.

Участник
158
2
Можно изменить активацию на Insert и изменить в игре название и автора типо Helper lovli by shapez и автора shapez если поможете буду очень благодарен
 

Вложения

  • Shapez.lua
    107 KB · Просмотры: 9
Последнее редактирование:

NeverStu

Активный
381
98
вытащил я тп на дорогу из адмен тулса и мне надо его модефицирувать
Нужно что-бы скрипт роботал в /re и в обичном без /re И тпхал на дорогу и немного подправить код
Lua:
script_name("roadtp")

function regcommands()
     sampRegisterChatCommand('tpr', tponroad)
end

function getNearestRoadCoordinates(radius)
    local A = { getCharCoordinates(PLAYER_PED) }
    local B = { getClosestStraightRoad(A[1], A[2], A[3], 0, radius or 600) }
    if B[1] ~= 0 and B[2] ~= 0 and B[3] ~= 0 then
        return true, B[1], B[2], B[3]
    end
    return false
end

function tponroad()
local result, x, y, z = getNearestRoadCoordinates()
        if result then
            local dist = getDistanceBetweenCoords3d(x, y, z, getCharCoordinates(PLAYER_PED))
            if not ReconWindow.v then
                setCharCoordinates(PLAYER_PED, x, y, z + 1)
                sampAddChatMessage(("[SturmtilTools] Вы телепортированы на ближайшую от Вас дорогу (%dm.)"):format(dist), 0xAAFFAA)
            else
            lua_thread.create(function()
            sampSendChat('/reoff')
            wait(500)
            setCharCoordinates(PLAYER_PED, x, y, z + 1)
            sampAddChatMessage(("[SturmtilTools] Вы телепортировали игрока из слежки на ближайшую от Вас дорогу (%dm.)"):format(dist), 0xAAFFAA)
            wait(500)
            sampSendChat('/gethere '..spec_id)
            end)
            end
        else
            sampAddChatMessage("[SturmtilTools] Не нашлось ни одной дороги поблизости", 0xFFAAAA)
        end
end
 

bronyashsa

Новичок
1
1
можете сделать чтобы автоскролл был не когда остается 2 патрона, а на боковую кнопку мыши mouse5, как бы когда нажимаешь кнопку он сам скроллил
 

Вложения

  • AutoScroll by Jeyz.cs
    18.2 KB · Просмотры: 4

Akihiro

Новичок
7
2
Нужно сделать так чтобы он брал свободные заявки, а не которые уже взяли
 

Вложения

  • InsuranceCompany_v1.2 Invisible ver.lua
    4.4 KB · Просмотры: 5
  • Эм
Реакции: Hinаta и YarikVL

Vladimirklisss

Новичок
13
1
Здравствуйте, я хотел бы изменить ключ активации для этого .sf-файла.
Текущий ключ активации: F2
Требуемая клавиша: Insert для активации и деактивации
 

Вложения

  • GBProject.sf
    116 KB · Просмотры: 4