Исходник Uganda GGame

Статус
В этой теме нельзя размещать новые ответы.

romanblinov2013

RB_PRO
Автор темы
Проверенный
212
196
Эпиграф:
Писать на стареньком языке - честь.
А на новеньких и imgui есть.
Пишем на старом языке,
Поддерживаем алгоритмичность ума.​

Привет создал я значит игрушку, которая может бегать и убивать ненужных угандёнков.
Код хорошо закомментировал, поэтому проблем с чтением быть не должно.
На все интересующие вопросы отвечу. Пишите свои пожелания для совершенствования проекта, ну или сами дорабатывайте его и скидывайте сюда свои наработки.
Знаю, что этот скрипт не будет культовым и он не совсем нужен для сампа. Но мерзкий уkр может его залить на ПС, поэтому я запрещаю размещение моего сурса на сторонних форумах.

Активация:
/ggame.u
/ggame.uset

Писал под:
CLEO 4.3
SAMPFUNCS 5.3.3

Тригерид:
Под LUA не переписывать.


CLEO:
{$CLEO}
0000: NOP
repeat
wait 100
until samp.Available()

/*





1@ - X координата поля.
2@ - Y координата поля.
11@ - X координата actor.
12@ - Y координата actor.

С самого начала основного цикла (47-131) я отключаю игровую клавиатуру и включаю курсор.
(47-52) (128-131) хуйня для включения курсора.
(58-85) управление actor, попутно сравнивая его координаты с допустимыми координатами. Ограничено полем.
(87-107) если нажата ЛКМ.
(97-106) если ты попал в полигон 30x20 на врага.
Далее идёт появление врага, которого нужно убить красной линией.
9@ - X координата врага.
10@ - Y координата врага.
(109-125) появление ебучего врага.







*/


0AF0: 1@ = get_int_from_ini_file "cleo\GGameUganda\config.ini" section "POSICION" key "Xpos" // Загрузка из ini-файла X координаты стандартного поля, в котором будет бегать actor
0AF0: 2@ = get_int_from_ini_file "cleo\GGameUganda\config.ini" section "POSICION" key "Ypos" // Загрузка из ini-файла Y координаты стандартного поля, в котором будет бегать actor
0B71: render 3@ = load_texture_from_file "cleo\GGameUganda\actor.png" // Загрузка actor(Угандёног)
    0085: 11@ = 1@ // (int) Последующие 3 строки размещают actor на поле
    0085: 12@ = 2@ // (int)
    12@ += 375
0B34: samp register_client_command "ggame.u" to_label @cmd // Загрузка команды
0B34: samp register_client_command "ggame.uset" to_label @cmd1 // Загрузка команды
while true // Осовной цикл, в котором происходит весь секс
wait 0
    IF 31@ == 1 // Сама игра
    THEN 0B8D: samp set_cursor_mode 2
        REPEAT
        WAIT 0
            IF 0B8C:    samp is_cursor_active
            THEN
            0B5E: get_cursor_pos 21@ 22@ // Получение координат курсора для рендеринга line
            0B69: render draw_box_pos 1@ 2@ size 600 400 color 0x898787FF // Рендеринг поля
            0B73: render draw_texture 3@ pos 11@ 12@ size 30 20 rotation 0.0 color -1 // Рендер моего actor
            0085: 5@ = 1@ // (int)
            5@ += 570
                if and
                001D:   11@ > 1@  // (int)
                0AB0:   key_pressed 65
                then
                11@ -= 4
                end
                if and
                801D:   11@ > 5@  // (int)
                0AB0:   key_pressed 68
                then
                11@ += 4
                end
                if and
                801D:   2@ > 12@  // (int)
                0AB0:   key_pressed 87
                then
                12@ -= 4
                end
            
                0085: 7@ = 2@ // (int)
                7@ += 375
            
                if and
                001D:   7@ > 12@
                0AB0:   key_pressed 83
                then
                12@ += 4
                end        
                
                if 0AB0:   key_pressed 1
                then
                11@ += 15
                12@ += 10
                0B68: render draw_line_point1 11@ 12@ point2 21@ 22@ width 1 color 0xFFFF0000 // рисуется красная линия. Подобие выстрела.
                11@ -= 15
                12@ -= 10
                0085: 15@ = 9@
                0085: 16@ = 10@
                15@ += 30
                16@ += 20
                    if and
                    001D:   21@ > 9@  // (int)
                    001D:   22@ > 10@  // (int)
                    801D:   21@ > 15@  // (int)
                    801D:   22@ > 16@  // (int)
                    then
                    0ACD: show_text_highpriority "~n~~n~~r~Ubil" time 100
                    8@ = 81 // Искуственное появление нового врага после убийства старого
                    end
                end
        
                if 0019:   8@ > 80
                then
                0AC9: free_allocated_memory 19@
                0AC9: free_allocated_memory 20@
                0AC9: free_allocated_memory 9@
                0AC9: free_allocated_memory 10@
                0AC9: free_allocated_memory 8@
                0209: 19@ = random_int_in_ranges 10 550 // Чтобы он появлялся рандомно
                0209: 20@ = random_int_in_ranges 10 360 // Чтобы он появлялся рандомно
                0085: 9@ = 1@
                0085: 10@ = 2@
                005A: 9@ += 19@  // (int)
                005A: 10@ += 20@  // (int)
                8@ = 0
                end
            8@ += 1
            0B73: render draw_texture 3@ pos 9@ 10@ size 30 20 rotation 0.0 color -1 // рендеринг врага
        
        
            ELSE 0B8D: samp set_cursor_mode 2
            END
        UNTIL 31@ == 0
    END
 
 
   IF 30@ == 1 // настройки
    THEN 0B8D: samp set_cursor_mode 2
        REPEAT
        WAIT 0
            IF 0B8C:    samp is_cursor_active
            THEN
            0B5E: get_cursor_pos 1@ 2@
            0B69: render draw_box_pos 1@ 2@ size 600 400 color 0xFFFFFFFF
                if 0AB0:   key_pressed 1
                then
                0AF8: samp add_message_to_chat "[ GGame ]: Вы установили новые настройки.{3399FF} X -{ff33ff} %d{3399FF}. Y -{ff33ff} %d{3399FF}." color 0x0066CC 1@ 2@
                0B8D: samp set_cursor_mode 0
                30@ = 0
                break
                end
            ELSE 0B8D: samp set_cursor_mode 2
            END
        UNTIL 30@ == 0
    0B8D: samp set_cursor_mode 3
    31@ = 1
    // cleo\GGameUganda
    0AF1: write_int 1@ to_ini_file "cleo\GGameUganda\config.ini" section "POSICION" key "Xpos"
    0AF1: write_int 2@ to_ini_file "cleo\GGameUganda\config.ini" section "POSICION" key "Ypos"
    0085: 11@ = 1@ // (int)
    0085: 12@ = 2@ // (int)
    12@ += 375
    END    
 
 
 
 
end

:cmd // Активация для самой игры
0B12: 31@ = 31@ XOR 1
30@ = 0 // Выключение настроек
if 31@ == 1
then
0ACD: show_text_highpriority "~g~GGame is ~r~ON~n~~w~Author:~p~ ~>~RB_PRO~<~" time 3000
0B8D: samp set_cursor_mode 2
else
0ACD: show_text_highpriority "~g~GGame is ~r~OFF~n~~w~Author:~p~ ~>~RB_PRO~<~" time 3000
0B8D: samp set_cursor_mode 4 // Тут нужно дорабоать, чтобы курсор выключался, мышка включалась, как и клавиатура
end
samp.CmdRet()

:cmd1 // Активация для настроек
0B12: 30@ = 30@ XOR 1
31@ = 0 // Выключение игры
if 30@ == 1
then
0ACD: show_text_highpriority "~g~GGame. Setting position is ~r~ON~n~~w~Author:~p~ ~>~RB_PRO~<~" time 3000
else
0ACD: show_text_highpriority "~g~GGame. Setting position is ~r~OFF~n~~w~Author:~p~ ~>~RB_PRO~<~" time 3000
end
samp.CmdRet()

Возможно, что тут не будет ответов и я останусь дэбилом, а может быть и нет)
 

Вложения

  • GGameUganda.rar
    131.1 KB · Просмотры: 26
  • GGameUganda.txt
    6.5 KB · Просмотры: 15
Последнее редактирование:

kraft1k

Вынь х*й из головы и все получится © hnnssy
Друг
1,479
1,163
Да ладно, шо тут такого? Пикадор давно заливал игрушку покруче :D
Да и на луа это переписать лучше будет, ибо много херни всякой на клео.
 

romanblinov2013

RB_PRO
Автор темы
Проверенный
212
196
Да ладно, шо тут такого? Пикадор давно заливал игрушку покруче :D
Да и на луа это переписать лучше будет, ибо много херни всякой на клео.
Писать на стареньком языке - честь.
А на новеньких и imgui есть.
В этом и смысл. Будем работать над этим мотором на старом языке с 32 переменными.
 

Laine_prikol

ДИДЖЕЙ МАДЕСТ
Проверенный
260
216
Очень круто, но смысла от этого почти нету. Если хочется поиграть во время прокачки уровня или сиденья в кпз можно поиграть на телефоне например.
 

romanblinov2013

RB_PRO
Автор темы
Проверенный
212
196

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,956
В этом и смысл. Будем работать над этим мотором на старом языке с 32 переменными.
Надоедает что Вы пишите, что в CLEO 32 переменные. Во первых их 34, а во вторых Вам половины из них максимум должно хватить если Вы грамотно пишите, а если Вы грамотно пишите, то должны знать, что в CLEO переменные - это не проблема, так как их можно держать в неограниченном количестве.
 
  • Нравится
Реакции: romanblinov2013

LUCHARE

Известный
Друг
545
687
  • Нравится
Реакции: randazzo и imring

romanblinov2013

RB_PRO
Автор темы
Проверенный
212
196
А чо на перфокартах не пробиваешь?
Подумывал об этом.

Надоедает что Вы пишите, что в CLEO 32 переменные. Во первых их 34, а во вторых Вам половины из них максимум должно хватить если Вы грамотно пишите, а если Вы грамотно пишите, то должны знать, что в CLEO переменные - это не проблема, так как их можно держать в неограниченном количестве.
Не испытываю проблем с переменными.

Ты щас сравнил 2 не сравнимые вещи. Как ты умудряешься быть таким недалеким?
Лучше спроси, как мне пришло в голову написать Uganda Game.
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Последнее редактирование:
  • Нравится
Реакции: eiuhuth
Статус
В этой теме нельзя размещать новые ответы.