#76 Re: Вопросы по скриптингу » handling.cfg » 01-03-2008 21:10

ну её конечно можно использовать например, провеить если актёр в тачке то  открыть файл handling.cfg, прочитать, найти нужную тачку и цену и взять  эту цену занести в переменную, вычесть это значение из денег игрока, или прибавить...

Для этого есть опкод:

09E1: get_car_model $IMPORT_CARS_MODEL(4@,6i) price_to $IMPORT_CAR_PRICE

#77 Re: Работа с памятью, EXE » Где прописывается оружие для банд? » 29-02-2008 15:55

.text:005DE680     _initGangWeapons proc near              ; CODE XREF: sub_53BCF0+F1p
.text:005DE680                                             ; sub_5BA1A0+1A5p
.text:005DE680 000                 xor     eax, eax
.text:005DE682 000                 mov     ecx, 16h
.text:005DE687 000                 mov     edx, 1Ch
.text:005DE68C 000                 mov     _gangsWeapons.field_4, ecx
.text:005DE692 000                 mov     _gangsWeapons.field_8, edx
.text:005DE698 000                 mov     _gangsWeapons.field_C, eax
.text:005DE69D 000                 mov     _gangsWeapons.field_4+10h, ecx
.text:005DE6A3 000                 mov     _gangsWeapons.field_8+10h, eax
.text:005DE6A8 000                 mov     _gangsWeapons.field_C+10h, eax
.text:005DE6AD 000                 mov     _gangsWeapons.field_4+20h, ecx
.text:005DE6B3 000                 mov     _gangsWeapons.field_8+20h, eax
.text:005DE6B8 000                 mov     _gangsWeapons.field_C+20h, eax
.text:005DE6BD 000                 mov     _gangsWeapons.field_4+40h, ecx
.text:005DE6C3 000                 mov     _gangsWeapons.field_8+40h, edx
.text:005DE6C9 000                 mov     _gangsWeapons.field_C+40h, eax
.text:005DE6CE 000                 mov     _gangsWeapons.field_4+50h, 18h
.text:005DE6D8 000                 mov     _gangsWeapons.field_8+50h, eax
.text:005DE6DD 000                 mov     _gangsWeapons.field_C+50h, eax
.text:005DE6E2 000                 mov     _gangsWeapons.field_4+60h, ecx
.text:005DE6E8 000                 mov     _gangsWeapons.field_8+60h, 1Eh
.text:005DE6F2 000                 mov     _gangsWeapons.field_C+60h, eax
.text:005DE6F7 000                 mov     _gangsWeapons.field_4+70h, ecx
.text:005DE6FD 000                 mov     _gangsWeapons.field_8+70h, edx
.text:005DE703 000                 mov     _gangsWeapons.field_C+70h, eax
.text:005DE708 000                 retn
.text:005DE708     _initGangWeapons endp

#78 Re: Модификации » Car_lights_mod » 23-02-2008 12:19

{$CLEO}
0A95: enable_thread_saving

if
    0@ == 0
then
    014B: 1@ = init_parked_car_generator #ADMIRAL color -1 -1 1 alarm 0 door_lock 0 0 10000 at -2035.194 170.770 28.462 angle 90.0
    014C: set_parked_car_generator 1@ cars_to_generate_to 101
    
    014B: 2@ = init_parked_car_generator #BULLET color -1 -1 1 alarm 0 door_lock 0 0 10000 at -2035.194 170.770 28.462 angle 90.0
    014C: set_parked_car_generator 2@ cars_to_generate_to 101
    
    // ...
    
    014B: 31@ = init_parked_car_generator #NRG500 color -1 -1 1 alarm 0 door_lock 0 0 10000 at -2035.194 170.770 28.462 angle 90.0
    014C: set_parked_car_generator 31@ cars_to_generate_to 101     
    
    0@ = 1
end
0A93: end_custom_thread

#80 Re: Модификации » Car_lights_mod » 23-02-2008 11:00

{$CLEO}

const
    i = 12@
    playerCar = 13@
end

var
    0@: Array 6 of Integer
    6@: Array 6 of Integer
end

0@ = 0x68
1@ = 0x62
2@ = 0x67
3@ = 0x69
4@ = 0x61
5@ = 0x63

{
for i = 0 to 5
    6@[i] = 0
end
}

while true
    wait 0
    if
        Player.Defined($PLAYER_CHAR)
    then
        if
            Actor.Driving($PLAYER_ACTOR)
        then
            03C0: playerCar = actor $PLAYER_ACTOR car 
            gosub @Proc
        end
    end
end

:Proc
for i = 0 to 5
    if and
        0AB0:  key_pressed 0x11
        0AB0:  key_pressed 0@[i]
    then
        {
        if
            88A7:   not car playerCar componentA i opened_or_not_present
        then
            0657: car playerCar open_componentA i
        else
            068A: set_car playerCar repair_componentA i 
        end
        }
        if
            6@[i] == 0    
        then
            6@[i] = 1
            0657: car playerCar open_componentA i
            wait 100
            return
        end
        if
            6@[i] == 1   
        then
            6@[i] = 0
            068A: set_car playerCar repair_componentA i
            wait 100
            return
        end 
    end
end
return

Открывает капот, багажник и двери. Клавиши: Ctrl + Num123789. Можешь поменять на свои.

#81 Re: Модификации » Car_lights_mod » 23-02-2008 08:02

{$CLEO}
0@ = 0
while true
    wait 0
    if
        Player.Defined($PLAYER_CHAR)
    then
        if
            Actor.Driving($PLAYER_ACTOR)
        then
            03C0: 1@ = actor $PLAYER_ACTOR car
            if and
                00E1:   player 0 pressed_key 17
                0@ == 0
            then
                0@ = 1
                0657: car 1@ open_componentA 0
                wait 100 
            end
            if and
                00E1:   player 0 pressed_key 17
                0@ == 1
            then
                0@ = 0
                068A: set_car 1@ repair_componentA 0
                wait 100 
            end 
        end
    end
end

#82 Re: Модификации » Car_lights_mod » 21-02-2008 15:12

MegaMax wrote:

Поставил его, там можно короче включать фары и открывать капот с багажником, но  блин, нельзя никак закрыть их, кроме как долбануть по ней (а если тачка бронированная?), как это переделать?

Как вариант использовать опкод:

068A: set_car $RYDER_CAR repair_componentA 2

#84 Re: Вопросы по скриптингу » Вопросы по опкодам » 17-02-2008 09:32

@cooler21 - добавь проверку еще на это событие:

EVENT_KNOCK_OFF_BIKE 8

#85 Re: Вопросы по скриптингу » Вопросы по опкодам » 16-02-2008 07:39

while true
wait 0
    080E: get_actor 0@ ped_event_to 1@
    if
        1@ == 9
    then
        // 
    end
end

#86 Re: Вопросы по скриптингу » Ошибка в механизме отключения двигателя авто. » 14-02-2008 12:34

Здоровье машины и время целые, а не дробные величины.

Для прверки жизней существует опкод:

0185:   car 73@ health >= 700
8185:   not car $SWEET_CAR health >= 250
{$CLEO}

0000:

while true
    wait 0
    if
        Player.Defined($PLAYER_CHAR)
    then
        if
            Actor.Driving($PLAYER_ACTOR)
        then
            03C0: 0@ = actor $PLAYER_ACTOR car
            while true
                wait 0
                if
                   not Actor.InCar($PLAYER_ACTOR, 0@)
                then
                    Car.RemoveReferences(0@) 
                    Break
                end
                if
                    8185:   not car 0@ health >= 500
                then
                    0209: 1@ = random_int_in_ranges 1000 5000
                    wait 1@ 
                    02D4: car 0@ turn_off_engine
                    Car.RemoveReferences(0@) 
                end 
            end 
        end
    end
end

#87 Re: Sanny Builder и CLEO » глюки и ошибки в Sanny Builder » 03-02-2008 16:25

До компиляции:

var
    $Car1: Car
    $Car2: Array 3 of Car
end

$Car1.Health = 100
Car.Health($Car1) = 100

$Car2[0].Health = 100
Car.Health($Car2[0]) = 100

После:

Car.Health($4) = 100
Car.Health($4) = 100

$5 = 100                // !!!
Car.Health($5) = 100

#88 Re: О сайте и форумах » Вопросы и предложения » 01-02-2008 16:11

Стоит ли перейти на эту версию форума (даже скорее портала)?

ИМХО из всего вышеперечисленного нужно только RSS, хотя можно установить, но только как форум, для сайта лучше какую-нибудь CMS выбрать.

#89 Re: Вопросы по скриптингу » трабл...кароны не работают » 26-01-2008 14:16

я вообще думаю что короны создаются этим циклом

Без этого куска миссия прекрасно работает, он вообще там не нужен, смотри на координаты.

#90 Re: Вопросы по скриптингу » трабл...кароны не работают » 25-01-2008 11:13

если в родных скриптах миссии 'KIKSTA' сана все кароны создаются 1 раз циклом

В оригинальной миссии короны создаться вот здесь (KICKSTA_7904):

:KICKSTA_8084
024F: create_corona_with_radius 249@ type 0 lensflares 0 with_color 250@ 251@ 252@ at 50@(253@,33f) 83@(253@,33f) 116@(253@,33f) 
if 
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 50@(253@,33f) 83@(253@,33f) 116@(253@,33f) radius 1.5 1.5 1.5 
else_jump @KICKSTA_8425

тут сразу идет проверка, находиться ли игрок около короны или нет.

если просто открвть меин родной и снова скомпилить его санни корон уже нет

У меня все работает и короны создаються.

#91 Re: Вопросы по скриптингу » трабл...кароны не работают » 24-01-2008 17:33

2MIXAZZZ:
Корона должна постоянно создаваться, т.е. используй опкод в цикле:

while true
    wait 0
    024F: create_corona_with_radius 1.5 type 0 lensflares 0 with_color 255 0 0 at 2488.56 -1666.84 18.38
end

#92 Re: Вопросы по скриптингу » трабл...кароны не работают » 24-01-2008 06:28

Попробуй опкодом 06D5 с типами 3 или 4.

06D5: 449@ = create_racing_checkpoint_at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 point_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 type 205@ radius 6.0

Первый элемент массивы должен быть с индексом 0:

$corona_X[0] = -1388.63
$corona_Y[0] = 1486.48
$corona_Z[0] = 305.919
$corona_X[1] = -1437.12
$corona_Y[1] = 1434.81
$corona_Z[1] = 315.836
$corona_X[2] = -1417.71
$corona_Y[2] = 1544.8
$corona_Z[2] = 302.693

#93 Re: О сайте и форумах » Вопросы и предложения » 16-01-2008 13:25

На главной странице хрень прицепилась. Смотри html код. Троян какой-то.

#94 Re: Программирование » Создание DLL в VC++ » 16-01-2008 11:32

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
		case DLL_THREAD_ATTACH:
		case DLL_THREAD_DETACH:
		case DLL_PROCESS_DETACH:
			break;
    }
    return TRUE;
}

#95 Re: Модификации » Перекраска на мойке, Вызов тех помощи » 15-01-2008 15:24

В потоке NONAME_68 проверка выполниться один раз.
Поток NONAME_301 представляет собой цикл, из которого игра выйдет, когда игрок окажется около машины, так вот пока машина к нему едет и нужно проверять повреждена она или нет.

#96 Re: Модификации » Перекраска на мойке, Вызов тех помощи » 15-01-2008 13:27

как заставить Техпом цепануть твою тачку крюком а потом отцепить

0893: put_trailer 37@ on_cab 34@ 
07AC: detach_trailer 37@ from_cab 34@

А также как выбрать ближайшую заправку? Не знаю команд?

А команды такой и нет, все придется делать вручную.

единственная проблемма с техпом, это когда вызываешь и она по дороге к тебе переворачивается то маркер над ней не пропадает хотя вроде как проверка на целостность машины стоит?

Проверяй на целостность машины в потоке NONAME_301:

00D6: if
8119:   not car $10289 wrecked 
004D: jump_if_false @NONAME_394

К стате насчет глобальных переменных при написании 00A5: $10289 = create_car #TOWTRUCK at $10296 $10297 $10298  если в место $10289 поставить к примеру 1@ то компилятор ругаеться. и приходиться ставить глобальную.

Должно все быть нормально. Какую ошибку выдает компилятор?

#98 Re: Вопросы по скриптингу » Чё-то глючит скрипт, хотя всё по инструкции делал... » 29-12-2007 19:21

Только вместо пикапов жизни, ментовской звезды и брони, появляются инфо-значок, карточка и какая-то вращающаяся дверь. И игра не сохраняется, хотя сейвы грузятся

Читай ФАК: http://sannybuilder.com/forums/viewtopic.php?id=90

И ещё вопрос вдогонку: как сделать, чтобы при подъезде к определённой точке там происходил бы взрыв (ака мина, только чтобы и когда на машине подъезжаешь тоже)?

if
    00EC:   actor $PLAYER_ACTOR 0 near_point 1812.369 -1929.922 radius 80.0 80.0
then
    020C: create_explosion_with_radius 0 at 72@ 73@ 74@ 
end

p.s.
Топик в Общие вопросы

#100 Re: Модификации » Мультимод » 22-12-2007 08:12

Печать боле менее круглая, а спидометр овальный.

t1471132_s1.jpg t1471134_s2.jpg

Board footer

Powered by FluxBB