Первоначально расчитывал при запуске каждого опкода на проигрывание/остановку/проверку/установку параметров из Аудио Плеера проверять не загружалась ли игра. Если не определит, то возможно какой-то звук начнёт проигрываться и при последующей загрузке(если еще проверка сработает) он остановится, хотя должен играть по скрипту и загрузятся звуки по текущему слоту из файла... Вот пример бага, так что очень надеюсь на вашу помосчь:rolleyes:
*с этой проблемой справился
]]>f:=PLongInt($00B7CB64)^;
//f:=0.5;
i:=round(i*f/100);
Поясняю свои действия - Я попробовал поменять на тип PLongInt, звук не воспроизвёлся вобще. Значение адресса по умолчанию 1.0, ну я поставил опкодом на 0.5, значит значение по идее 0.5. НО ничего не заработало, потом я попробовал со строкой f:=0.5 - идеально. Звук проигрался в 2 раза медленнее, когда же я дописал строку /100, то звук воспроизвелся только при обычной скорости игры... Пока не знаю что это означает, надеюсь вы мне поможете разобраться. Впринципе могу исходники своего Аудио Плеера выложить, если сильно надо будет. Но я этого не собирался делать до выхода финальной версии. Для тех кто ещё не знает что он делает, скажу только одно))):
0B51: $GTA3_WAV_SOUND = play_audio "audio\GTA3\LIB_A1.mp3" direct_path 0 volume 100 position 0.0 loop 0 menu_flag 0 temp 0.0 samplerate 0 pitch 0 reverse 0 synchronize speed 1 volume 1
Ссыль на плагин кину в темку как доделаю версию 1.5, если кого заинтересовало. Ну всё, жду помощи:)
]]>возможно, проблема в том, что double - 8 байт, а нужно четыре.
Ааа. Не подскажешь какой тип использовать? Я уже много попробовал: PInt, PByte, PDouble и т.п. PFloat на Делфи нет и справочников в инете не нашёл по типам хороших. Полазил в Windows.pas, нарыл:
ULONG = Cardinal;
PULONG = ^ULONG;
А Кардинал, помоему и есть что-то типа Float, но не подошло. Вот не знаю что делать(
]]>//var f : real ; i : integer;
//i:=22050
//...
VirtualProtect(Ptr($00B7CB64),4,4,op);
f:=PDouble($00B7CB64)^;
i:=round(i*f);
//...
Это для аудио плагина чтобы скорость воспроизведения с игровой сравнять) Адресс вроде работает. Не знаю в чём прблема:(
]]>