#2626 19-10-2010 05:06

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

в папку к каждому ЕХЕ придётся класть дллки клео, аси и пр.


GIMS developer

Offline

#2627 19-10-2010 14:09

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

Re: Один вопрос

CraZZZy-GameRRR wrote:

Как узнать хэндл педа, атакующего авто?

http://sannybuilder.com/forums/viewtopi … 510#p12510

Offline

#2628 19-10-2010 14:17

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

3Doomer wrote:

в папку к каждому ЕХЕ придётся класть дллки клео, аси и пр.

Не, я имел в виду что gta_sa.exe и gta_vc.exe будут в одной папке. В том и идея, чтобы запустить какой нибудь глобальный мод, не держа на винте несколько копий SA.
Вобщем сделал небольшое исследование в этом направлении, всё вроде как получилось. Такая связка:
0ddbb472c8da20d297e7c4ea0b41e6cc.jpeg 
работает, зима/лето регулируются наличием virtualimg.asi в корне SA, если нужен united - запуск через gta_un.exe
Единственное, United выдаёт чёрный экран при загрузке с cleo-скриптами, видимо какой-то из них конфликтует.
UPD. Так и есть, cleo-затычка решила проблему.

Last edited by Sergey81 (19-10-2010 15:14)

Offline

#2629 21-10-2010 13:20

d88
Registered: 15-12-2009
Posts: 254
Website

Re: Один вопрос

У меня такая ситуация. Надо выполнить проверку, что актёр падает с высоты. Анимацию проверить нельзя, потому что я ему присвоил другую анимацию и сохраняется во время падения.

Пробовал код 0819: 25@ = actor $PLAYER_ACTOR distance_from_ground – в мануале написано что он записывает в переменную 25@ расстояние между актёром и землёй. Далее проверял так   25@ > 2. Но проверка срабатывает всегда, даже если актёр на земле.

Есть ещё какие-то способы?

Offline

#2630 21-10-2010 13:32

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ 0@ 1@ 2@

подгоняешь 2@ как удобно


GIMS developer

Offline

#2631 21-10-2010 13:33

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

@d88 - 0818:   actor $PLAYER_ACTOR in_air  мб?

Offline

#2632 21-10-2010 14:16

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

25@ > 2

Срабатывает всегда, потому что 25@ - float. Пиши

25@ > 2.0

Offline

#2633 21-10-2010 14:37

d88
Registered: 15-12-2009
Posts: 254
Website

Re: Один вопрос

Alien wrote:
25@ > 2

Срабатывает всегда, потому что 25@ - float. Пиши

25@ > 2.0

Спасибо, вот это помогло.

Теперь ещё такой вопрос – как сделать чтоб анимация сохранялась даже если актёр мертв? Вот я актёру установил анимацию падения на спину, а когда использую команды убивающие его, он вскакивает и падает на живот.

Offline

#2634 21-10-2010 16:06

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

Re: Один вопрос

тут уже врядли что-то поможет...только если саму аниму убивания изменить, хотя это тоже не имеет смысла...

Last edited by BoPoH (21-10-2010 16:07)


userbar.png

Offline

#2635 21-10-2010 16:38

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

А есть аналоги mta-шного лазера
e2748702f75fb65bb2cfe6e867e2b70a.jpeg 
для сингла? Про красную точку знаю что существует, а вот реализации лазера не видел.

Offline

#2636 21-10-2010 19:33

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

Re: Один вопрос

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


userbar.png

Offline

#2637 21-10-2010 19:47

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

там лазер создан из лучей от выстрела, создаются опкодом, и они жёлтые

Last edited by 3Doomer (21-10-2010 19:47)


GIMS developer

Offline

#2638 21-10-2010 19:48

d88
Registered: 15-12-2009
Posts: 254
Website

Re: Один вопрос

Лазерная сетка там создавалась кодом

06BC: create_M4_shoot_from 2193.268 -1165.441 1031.124 target $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD energy 1

Offline

#2639 21-10-2010 20:37

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

Ну так M4_shoot это партикл выстрела, он даже не статичный. Я пробовал сделать модель лазера, потом аттачил её к гг, в этом способе только непонятно, как заставить эту модель всегда быть в координатах от оружия до того места, куда целимся. Но в mta судя по всему не через модель сделано.

Offline

#2640 21-10-2010 20:45

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

Re: Один вопрос

Ну так M4_shoot это партикл выстрела, он даже не статичный.

Что значит "не статичный"? Если надо, чтобы луч существовал всё время, то следует создавать его постоянно (в цикле). Можно посмотреть опкод 06BC в ИДА и все сопутствующие функции - может удастся выдернуть только луч и изменить его цвет на красный.

Last edited by Den_spb (21-10-2010 20:46)

Offline

#2641 21-10-2010 21:05

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

Den_spb wrote:

Ну так M4_shoot это партикл выстрела, он даже не статичный.

Что значит "не статичный"? Если надо, чтобы луч существовал всё время, то следует создавать его постоянно (в цикле). Можно посмотреть опкод 06BC в ИДА и все сопутствующие функции - может удастся выдернуть только луч и изменить его цвет на красный.

Ну использовал я этот опкод по нажатию кнопки, у меня получилось то же самое, если бы из оружия стрелять. Там же не цельный луч идёт от одной точки к другой, а несколько отрезков двигаются. + игрок реагирует на это действо, если встать на пути, жизни не отнимаются, но видно что пули эти идут в игрока.
Возможно в чистой игре не так, у меня bullet.asi стоит.

Offline

#2642 22-10-2010 07:08

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Один вопрос

energy измени, будут отниматься
а луч через препятствия не проходит


GIMS developer

Offline

#2643 22-10-2010 08:27

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

Лучше наверно через 04D5, как Ryosuke делал в accessory.cs. Там как раз и цвет красный будет. Я только не понял, как и куда цеплять этот самый луч, чтоб он шёл от оружия в точку прицеливания.
UPD. В виде модификации accessory.cs получилось как-то так:
1f0389633514f46a178188521b9f8325.jpeg
Кстати, а перекрестие прицела через память можно отключить?

Last edited by Sergey81 (22-10-2010 09:46)

Offline

#2644 22-10-2010 14:44

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

Re: Один вопрос

Лучше наверно через 04D5, как Ryosuke делал в accessory.cs. Там как раз и цвет красный будет.

Да, это проще будет.

Я только не понял, как и куда цеплять этот самый луч, чтоб он шёл от оружия в точку прицеливания

Луч ни к чему не цепляется, а создаётся в координатах - их надо вычислить через память.

Offline

#2645 22-10-2010 17:33

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: Один вопрос

0x726D2B - call createBulletTrail

0AC6: 0@ = label @CreateLaserParticle offset
0A8C: write_memory 0x726D2C size 4 value 0@ virtual_protect 1

:CreateLaserParticle
hex
{
06BC: create_M4_shoot_from 0@ 1@ 2@ target 3@ 4@ 5@ energy 6@
}
end
:DisableCrosshair
0A8C: write_memory 0x58FBBF size 5 value 0x90 virtual_protect 1

I was goning to do this, but I don't have the required ASM skills. Planned to grab the parameters passed to :CreateLaserParticle and create either another thread (passing the params) or a corona, if possible.

Last edited by Deji (22-10-2010 17:38)

Offline

#2646 22-10-2010 18:36

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

@Deji - :DisableCrosshair works fine, thanks for address.
With accessory.cs, to prevent crash, code is:

0A8C: write_memory 0x58FBBC size 4 value 0x903475C0 virtual_protect 1
0A8C: write_memory 0x58FBC0 size 4 value 0x90909090 virtual_protect 1

a96eb88d483cb70c4c6ee2f3a3a73f37.jpeg

Last edited by Sergey81 (22-10-2010 19:26)

Offline

#2647 22-10-2010 19:30

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: Один вопрос

Ah, well I saw the post before the edit, so I fetched the alphas of the crosshair textures.

These allow you to have more control over what is visible, anyway... All dwords.

// Crosshair Textures (all weapons except camera and sniper rifle)
0x58E2EC // top right
0x58E3BF // top left?
0x58E420 // bottom right?
0x58E461 // bottom left?
0x58E287 // middle dot

// Sniper Rifle and Camera
0x58E8F6 // top right
0x58E96C // top left?
0x58E9DC // bottom right?
0x58EA4B // bottom left?

Last edited by Deji (22-10-2010 19:35)

Offline

#2648 23-10-2010 08:26

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

Re: Один вопрос

Кстати, никто не знает, как пользоваться консольным Spark'ом?
-------------------------------------------------------------------------------
А всё не надо, уже нашёл)

Last edited by BoPoH (23-10-2010 09:14)


userbar.png

Offline

#2649 23-10-2010 09:41

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Один вопрос

{$cleo}
wait 0
while true
    wait 0
    Model.Load(#NVGOGGLES)
    20@ = 17
    20@ *= 2
    20@ += 0xB73458                        
    if and
    Player.Defined($PLAYER_CHAR)
        80DF:   not actor $PLAYER_ACTOR driving 
        8818:   not actor $PLAYER_ACTOR in_air 
        0AB0:  key_pressed 50      
    then
0470: 0@ = actor $PLAYER_ACTOR current_weapon 
wait 10
if
8611:   not actor $PLAYER_ACTOR performing_animation "WEAPON_crouch" 
then
01B2: give_actor $PLAYER_ACTOR weapon 44 ammo 1    
wait 20    
0A8C: write_memory 20@ size 2 value 0xFF virtual_protect 0    
wait 1100
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0@  
end

if
0611:   actor $PLAYER_ACTOR performing_animation "WEAPON_crouch"
then
01B2: give_actor $PLAYER_ACTOR weapon 44 ammo 1    
wait 20    
0A8C: write_memory 20@ size 2 value 0xFF virtual_protect 0    
wait 1100
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0@
0A8C: write_memory 0xB7347C size 2 value 0xFF virtual_protect 0
end
end
//
    if and
Player.Defined($PLAYER_CHAR)
00DF:   actor $PLAYER_ACTOR driving 
0AB0:  key_pressed 50      
    then
    wait 100
0A8D: 1@ = read_memory 0xC402B8 size 4 virtual_protect 0
if
1@ == 0
then
25@ = 5
08B1: enable_night_vision 1
else
25@ = 0
08B1: enable_night_vision 0
end
    end
    
if and
25@ == 5
00DF:   actor $PLAYER_ACTOR driving 
00E1:   player 0 pressed_key 15 
then
08B1: enable_night_vision 0
25@ = 0
end    


    end

В принципе, скрипт работает нормально, я вот только думаю, Model.Destroy нужно делать или так сойдёт?

Offline

#2650 24-10-2010 05:37

d88
Registered: 15-12-2009
Posts: 254
Website

Re: Один вопрос

Теперь у меня такая проблема. Мне нужно чтоб актёр стоял в боевой стойке (ну это я ему анимацию присвою) и следил за игроком, как будто держа его на прицеле. Т.е. всегда поворачивался в сторону игрока. Можно использовать 0639: AS_actor -1 rotate_to_actor 86@, хотя это не совсем то что надо, но здесь ещё проблема в том что анимация пропадает. Я ещё думал сделать пак действий, но тогда анимация начинается раньше чем актёр повернётся.

Offline

Board footer

Powered by FluxBB