Добавлено (27.03.2012, 21:14) --------------------------------------------- Нет, странно, машина рядом всё и так нормально, а пед всё равно проваливается, даже если 100 поставить.
{$CLEO} wait 0 while true wait 0 if not player.Defined($player_char) then continue 080E: get_actor $PLAYER_ACTOR ped_event_to 5@
end if and 5@<>12 02D8: actor $PLAYER_ACTOR current_weapon == 38 00E1: player 0 pressed_key 6 then if 0@ == 0 then Audiostream.Load3D(1@, "CLEO\MUSIC03.MP3") repeat wait 0 until Audiostream.Load3D(1@, "CLEO\MUSIC03.MP3") Audiostream.PerformAction(1@, PLAY) Audiostream.Loop(1@, 1) 0@ = 1 end else if 0@ == 1 then Audiostream.PerformAction(1@, STOP) audiostream.Release(1@) 0@ = 0 end end end
Что это? По смещению 0x1C для CEntity хранится набор флагов.
видел
Quote Но как определить количество в обойме
Для каждого слота оружия в памяти есть своя структура... Вот примерно так быдет выглядеть код, чтобы записать в переменные 1@ - 11@ число патронов в обойме для некоторых видов оружия, я написал что где.
Над смещением 0x5E0 и до смещения 0x5A0, относительно структуры игрока, лежат ещё 3 структуры, предположительно это ручное оружие, и кулак/кастет, ещё одна структура - хз.
но не понял как использовать, подскажи как сделать проверку остатка патронов в обойме
Добавлено (27.03.2012, 22:00) --------------------------------------------- код взял Den_spb Дата: Среда, 28.09.2011, 16:05 | Сообщение # 828
Добавлено (27.03.2012, 22:23) --------------------------------------------- делал еще с провркой анимации
{$CLEO .cs}
//-------------MAIN--------------- wait 0
:NONAME_4 wait 0 if not Player.Defined($PLAYER_CHAR) else_jump @NONAME_31 jump @NONAME_239
:NONAME_31 if 02D8: actor $PLAYER_ACTOR current_weapon == 31 00E1: player 0 pressed_key 17 if or Actor.Animation($PLAYER_ACTOR) == "RIFLE_CROUCHFIRE" Actor.Animation($PLAYER_ACTOR) == "RIFLE_FIRE" else_jump @NONAME_202 if 0@ == 0 else_jump @NONAME_195 Audiostream.Load(1@, "CLEO\MUSIC04.MP3")
{$CLEO} Audiostream.Load(1@, "CLEO\MUSIC03.MP3") repeat wait 0 until Audiostream.Load(1@, "CLEO\MUSIC03.MP3") while true wait 0 if not player.Defined($player_char) then continue end 080E: get_actor $PLAYER_ACTOR ped_event_to 5@ if and 5@ <> 12 02D8: actor $PLAYER_ACTOR current_weapon == 38 00E1: player 0 pressed_key 6 then if 0@ == 0 then Audiostream.PerformAction(1@, PLAY) Audiostream.Loop(1@, 1) 0@ = 1 end else if 0@ == 1 then Audiostream.PerformAction(1@, STOP) 0@ = 0 end end end
У тебя скрипт отработает всего один раз. Если нужно, чтобы код выполнялся постоянно, его следует поместить в цикл. Попробуй так:
Code
{$CLEO} 0000: audiostream.Load3D(11@ "CLEO\police.mp3") repeat wait 0 until audiostream.Load3D(11@ "CLEO\police.mp3") 0AC2: set_3d_audiostream 11@ position -1402.31 1365.67 5.38
while true wait 0 if player.Defined($PLAYER_CHAR) then if 010F: player $PLAYER_CHAR wanted_level > 0 then if 0@ == 0 then Audiostream.PerformAction(11@, PLAY) audiostream.Loop(11@ 1) 0@ = 1 end else if 0@ == 1 then Audiostream.PerformAction(11@, STOP) 0@ = 0 end end end end
{$CLEO} 0000: audiostream.Load3D(11@ "CLEO\police.mp3") repeat wait 0 until audiostream.Load3D(11@ "CLEO\police.mp3")
while true wait 0 if player.Defined($PLAYER_CHAR) then if 010F: player $PLAYER_CHAR wanted_level > 0 then if 0@ == 0 then 0AC2: set_3d_audiostream 11@ position -1402.31 1365.67 5.38 Audiostream.PerformAction(11@, PLAY) audiostream.Loop(11@ 1) 0@ = 1 end else if 0@ == 1 then Audiostream.PerformAction(11@, STOP) 0@ = 0 end end end end
Добавлено (05.04.2012, 16:27) --------------------------------------------- Den_spb,а если один звук нужно загрузить в разных местах, нужно ли загружать мелодию по-новому или просто написать 0AC2: set_3d_audiostream 11@ position -1402.31 1365.67 5.38 ещё раз (ну со своими координатами)
Если звук должен играть в разных местах поочерёдно, то достаточно прописать 0AC2. Если звук должен играть в двух местах одновременно, то возможно, придётся загрузить его дважды - точно сказать не могу.