#1 24-03-2011 11:28

k1tmoL
Registered: 24-03-2011
Posts: 3

Нужна ваша помощь

Мне нужно сделать так, чтобы ближайший пикап с моделью 1276 был виден на карте и играла музыка, когда он рядом. Проблема в том, что я не знаю как его найти... т.е. нужно не создать пикап, а именно найти уже существующий и показать его на карте (для мультиплеера). Зараннее благодарю.

Offline

#2 24-03-2011 11:40

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Нужна ваша помощь

@k1tmoL -
http://sannybuilder.com/forums/viewtopic.php?id=1135
Смотришь самый конец исходника, метку @markers, и модифицируешь код как тебе нужно. Кстати говоря, клео не предназначен для мультиплеера, и такой скрипт работать возможно не будет.

Last edited by Sergey81 (24-03-2011 11:41)

Offline

#3 24-03-2011 11:56

XotaBi4b
From: Харьков
Registered: 13-09-2008
Posts: 87

Re: Нужна ваша помощь

Мне почему то кажется, что такой поиск будет работать только в одном штате - (в зависимости от того где находится игрок).

Т.е. если игрок находится в первом штате , то поиск по штатам 2,3 осуществлятся не будет.

Last edited by XotaBi4b (24-03-2011 11:57)

Offline

#4 24-03-2011 12:10

k1tmoL
Registered: 24-03-2011
Posts: 3

Re: Нужна ваша помощь

Как я понял этот код

:markers
    for 0@ = 0x9788DC to 0x97D63C step 0x20 
        0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0 
        if 
            0039: 1@ == 15  
        then 
            000A: 0@ += -0x18 
            0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0 
            000A: 0@ += 0x18   
            if 
                8039: not 1@ == 0  
            then 
                0A8D: 2@ = read_memory 0xB7449C size 4 virtual_protect 0 
                0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 
                0062: 1@ -= 2@ 
                0016: 1@ /= 0x19C 
                0A8D: 2@ = read_memory 0xB7449C size 4 virtual_protect 0 
                000A: 2@ += 0x4 
                0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 
                005A: 2@ += 1@ 
                0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0 
                0012: 1@ *= 0x100 
                005A: 1@ += 2@               
                0188: 3@ = create_marker_above_object 1@
                0168: set_marker 3@ size 1  
                0165: set_marker 3@ color_to 6 

                end   
          end 
          end

Честно говоря я не очень то понял что есть что. Но то что тут адреса памяти - скорее всего работать не будет, ибо в мультиплеере они вроде бы другие. Есть же нахождение ближайшей машины и ближайшего педа:

0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@

Но нахождения ближайшего пикапа я не нашел..

Offline

#5 24-03-2011 13:00

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Нужна ваша помощь

Можно найти вращающийся объект пикапа с помощью опкода поиска объектов КЛЕО4:

0AE3: 0@ = random_object_near_point 2@ 3@ 10@ in_radius 6000.0 find_next 0

Offline

#6 24-03-2011 14:27

k1tmoL
Registered: 24-03-2011
Posts: 3

Re: Нужна ваша помощь

:1
wait 0
00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
0AE3: 0@ = random_object_near_point 1@ 2@ 3@ in_radius 2000.0 find_next 0
if
09CC:   object 0@ model_is 1276
jf @1
0188: 4@ = create_marker_above_object 0@
0168: set_marker 4@ size 1  
0165: set_marker 4@ color_to 6
jump @1

В чем ошибка? Нет эффекта

Last edited by k1tmoL (24-03-2011 14:53)

Offline

#7 24-03-2011 17:41

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Нужна ваша помощь

Способ с поиском объектов здесь, пожалуй, не подойдёт, т.к. объект пикапа существует только тогда, когда игрок находится рядом с ним (максимум - несколько сотен метров).

Offline

Board footer

Powered by FluxBB