You are not logged in.
Pages: 1
Теперь любому прохожему можно подарить (в данном случае) цветы
{$E} 0000: :FLOWER wait 0 Model.Load(#FLOWERA) 038B: load_requested_models :FLOW wait 0 $ONMISSION == 0 else_jump @FLOW if and Model.Available(#FLOWERA) Player.Defined($PLAYER_CHAR) if 00E1: key_Pressed 0 4 jf @FLOW Jump @FIND :FIND wait 0 if 00E1: key_Pressed 0 10 jf @FLOW Actor.StorePos($PLAYER_ACTOR,0@,1@,2@) 3@ = 5.0 Gosub @AIC_GETACTOR if 9@ <> -1 jf @FIND 01B2: give_actor 9@ weapon 14 ammo 0 // Load the weapon model before using this wait 100 Model.Destroy(#FLOWERA) Actor.RemoveReferences(9@) jump @FLOWER :AIC_GETACTOR 0006: 16@ = 305868 0006: 17@ = @AIC_TESTACTORHANDLE 0006: 20@ = 1988 0002: jump @AIC_STARTSEARCH :AIC_GETVEHICLE 0006: 16@ = 305869 0006: 17@ = @AIC_TESTVEHICLEHANDLE 0006: 18@ = -1 0006: 20@ = 2584 0256: player $PLAYER_CHAR defined 004D: jump_if_false @AIC_STARTSEARCH 00DF: actor $PLAYER_ACTOR driving 004D: jump_if_false @AIC_STARTSEARCH 03C0: 18@ = actor $PLAYER_ACTOR car 0002: jump @AIC_STARTSEARCH :AIC_GETOBJECT 0006: 16@ = 305871 0006: 17@ = @AIC_TESTOBJECTHANDLE 0006: 20@ = 412 :AIC_STARTSEARCH 0085: 4@ = 16@ // (int) 008B: 4@ = &0(4@,1i) // (int) 0085: 19@ = 4@ // (int) 000E: 19@ -= 10787160 0016: 19@ /= 4 008B: 19@ = &0(19@,1i) // (int) 000E: 4@ -= 10787168 0016: 4@ /= 4 008B: 4@ = &0(4@,1i) // (int) 0006: 9@ = -1 0085: 11@ = 4@ // (int) 0006: 10@ = 0 :AIC_SEARCHLOOPMAIN 000A: 4@ += 20 0050: gosub @AIC_READ4B 0085: 4@ = 5@ // (int) 8039: not 4@ == 0 004D: jump_if_false @AIC_SEARCHLOOPNEXT 000A: 4@ += 48 0050: gosub @AIC_READ4B 0085: 12@ = 5@ // (int) 000A: 4@ += 4 0050: gosub @AIC_READ4B 0085: 13@ = 5@ // (int) 000A: 4@ += 4 0050: gosub @AIC_READ4B 0085: 14@ = 5@ // (int) 050A: 15@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 12@ 13@ 14@ 0025: 3@ > 15@ // (float) 004D: jump_if_false @AIC_SEARCHLOOPNEXT 0085: 9@ = 10@ // (int) 0085: 4@ = 16@ // (int) 008B: 4@ = &0(4@,1i) // (int) 000A: 4@ += 4 0050: gosub @AIC_READ4B 0085: 4@ = 5@ // (int) 005A: 4@ += 9@ // (int) 0050: gosub @AIC_READ1B 0012: 9@ *= 256 005A: 9@ += 5@ // (int) 0002: jump 17@ :AIC_TESTVEHICLEHANDLE 056E: is 9@ valid_vehicle_handle 004D: jump_if_false @AIC_NOHANDLE 00D6: if or 003B: 18@ == 9@ // (int) 0119: car 9@ wrecked 004D: jump_if_false @AIC_NEWSEARCHRADIUS 0002: jump @AIC_NOHANDLE :AIC_TESTACTORHANDLE 056D: is 9@ valid_actor_handle 004D: jump_if_false @AIC_NOHANDLE 00D6: if or 003C: $PLAYER_ACTOR == 9@ // (int) 0118: actor 9@ dead 004D: jump_if_false @AIC_NEWSEARCHRADIUS 0002: jump @AIC_NOHANDLE :AIC_TESTOBJECTHANDLE //0001: wait 0 83CA: not object 9@ exists 004D: jump_if_false @AIC_NEWSEARCHRADIUS :AIC_NOHANDLE 0006: 9@ = -1 0002: jump @AIC_SEARCHLOOPNEXT :AIC_NEWSEARCHRADIUS 0085: 3@ = 15@ :AIC_SEARCHLOOPNEXT 005A: 11@ += 20@ // (int) 0085: 4@ = 11@ // (int) 000A: 10@ += 1 002D: 10@ >= 19@ // (int) 004D: jump_if_false @AIC_SEARCHLOOPMAIN 0051: return :AIC_READ1B 0085: 6@ = 4@ // (int) 0085: 8@ = 4@ // (int) 0016: 4@ /= 4 0012: 4@ *= 4 0062: 8@ -= 4@ // (int) 0012: 8@ *= 8 000E: 4@ -= 10787168 0016: 4@ /= 4 008B: 7@ = &0(4@,1i) // (int) 0085: 4@ = 6@ // (int) 0006: 5@ = 0 0006: 6@ = 0 :AIC_READ1B_LOOP 08B9: test 7@ bit 8@ 004D: jump_if_false @AIC_READ1B_NEXTBIT 08BF: set 5@ bit 6@ :AIC_READ1B_NEXTBIT 000A: 6@ += 1 000A: 8@ += 1 0039: 6@ == 8 004D: jump_if_false @AIC_READ1B_LOOP 0051: return :AIC_READ4B 0085: 6@ = 4@ // (int) 000E: 4@ -= 10787168 0016: 4@ /= 4 008B: 5@ = &0(4@,1i) // (int) 0085: 4@ = 6@ // (int) 0051: return
Last edited by svetka (25-05-2008 14:54)
Offline
Идея замечательная)
Только если делать этот скрипт для CLEO (чего ты видимо хотела, раз стоит директива $E), то можно было бы воспользоваться и некоторыми возможностями CLEO. Например, вместо большого кода Interceptor'а можно заюзать опкод
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@
который записывает в переменные хендлы ближайших к игроку машины и прохожего. Скрипт сократился бы раза в 4 в размере.
Из недостатков:
Ты проверяешь на нажатие кнопку 4, а на отпущенность - 10.
Модель не обязательно загружать с самого начала, можно сделать это после нажатия кнопки.
После передачи прохожему цветов стоит стишком небольшая проверка и из-за первой ошибки скрипт отрабатывает несколько раз подряд.
Model.Destroy(#FLOWERA) Actor.RemoveReferences(9@) Jump @NONAME_1337 :NONAME_1337 Actor.RemoveReferences(9@) jump @EXPLODE
этот блок должен быть сокращен до
Model.Destroy(#FLOWERA) Actor.RemoveReferences(9@) jump @LOAD_MODEL // метка перед Model.Load
Offline
Немного усовершенствовал, теперь прохожему случайным образом дарится дилдо или цветы
{$CLEO} 0000: while true wait 250 if Player.Defined($PLAYER_CHAR) then if $ONMISSION == 0 then if 0AB0: key_pressed 70 // F then 0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@ if 1@ > -1 then 0209: 2@ = random_int_in_ranges #gun_dildo1 #gun_cane Model.Load(2@) while not Model.Available(2@) wait 0 end 0085: 3@ = 2@ // (int) 3@ -= 311 // convert modelID to weaponID (325->14) 01B2: give_actor 1@ weapon 3@ ammo 0 // Load the weapon model before using this Model.Destroy(2@) wait 1000 end end end end end
http://cleo.sannybuilder.com/scripts/flowers.cs
Все кредиты Светке)
Offline
Seemann, я рада, что тебе понравился скрипт. А без ошибок в коде я вообще писать не умею:)
Спасибо, что подсказал)
Хотела опробовать твой вариант, но компилятор пишет, что не знает опкода 0AB5:
Я сегодня скачала новую CLEO 3 Library (v3.0.846) . Но с ней у меня не работают старые cleo-скрипты. Вернула старые - всё нормально.
Может я не то скачала? Еще компилятор естественно не опознает опкод 0AB6:
Seemann, может можно их вручную прописать куда надо? Только вот не знаю куда. И где их значения можно посмотреть? Или может ты мне скажи?
Last edited by svetka (24-05-2008 14:47)
Offline
Но с ней у меня не работают старые cleo-скрипты.
Можно поподробнее (какая версия была, какие скрипты стоят, есть ли плагины)? По идее новые версии CLEO совместимы со старыми.
может можно их вручную прописать куда надо?
Идеальный вариант - скачать SB 3.03, там есть SASCM.INI, в котором эти опкоды прописаны.
Если возможности нет, то добавь в свой SASCM.INI эти строки:
; --- CLEO 3 Opcodes --- ; version 3.0.846 ; visit www.cleo.sannybuilder.com for more info ;----------------------- 0A8C=4,write_memory %1d% size %2d% value %3d% virtual_protect %4d% 0A8D=4,%4d% = read_memory %1d% size %2d% virtual_protect %3d% 0A8E=3,%3d% = %1d% + %2d% ; int 0A8F=3,%3d% = %1d% - %2d% ; int 0A90=3,%3d% = %1d% * %2d% ; int 0A91=3,%3d% = %1d% / %2d% ; int 0A92=-1,create_custom_thread %1s% 0A93=0,end_custom_thread 0A94=-1,start_custom_mission %1s% 0A95=0,enable_thread_saving 0A96=2,%2d% = actor %1d% struct 0A97=2,%2d% = car %1d% struct 0A98=2,%2d% = object %1d% struct 0A99=1,chdir %1b:userdir/rootdir% 0A9A=3,%3d% = openfile %1s% mode %2d% // IF and SET 0A9B=1,closefile %1d% 0A9C=2,%2d% = file %1d% size 0A9D=3,readfile %1d% size %2d% to %3d% 0A9E=3,writefile %1d% size %2d% from %3d% 0A9F=1,%1d% = current_thread_pointer 0AA0=1,gosub_if_false %1p% 0AA1=0,return_if_false 0AA2=2,%2h% = load_library %1s% // IF and SET 0AA3=1,free_library %1h% 0AA4=3,%3d% = get_proc_address %1s% library %2d% // IF and SET 0AA5=-1,call %1d% num_params %2h% pop %3h% 0AA6=-1,call_method %1d% struct %2d% num_params %3h% pop %4h% 0AA7=-1,call_function %1d% num_params %2h% pop %3h% 0AA8=-1,call_function_method %1d% struct %2d% num_params %3h% pop %4h% 0AA9=0, is_game_version_original 0AAA=2,%2d% = thread %1s% pointer 0AAB=1, file_exists %1s% 0AAC=2,%2d% = load_mp3 %1d% 0AAD=2,set_mp3 %1d% perform_action %2d% 0AAE=1,release_mp3 %1d% 0AAF=2,%2d% = get_mp3_length %1d% 0AB0=1, key_pressed %1d% 0AB1=-1,call_scm_func %1p% 0AB2=-1,ret 0AB3=2,var %1d% = %2d% 0AB4=2,%2d% = var %1d% 0AB5=3,store_actor %1d% closest_vehicle_to %2d% closest_ped_to %3d% 0AB6=3,store_target_marker_coords_to %1d% %2d% %3d% // IF and SET 0AB7=2,get_vehicle %1d% number_of_gears_to %2d% 0AB8=2,get_vehicle %1d% current_gear_to %2d% 0AB9=2,get_mp3 %1d% state_to %2d%
Offline
Стоит SB v3.01 от 06.08.2007 г.
Плагинов вроде gxthook, scmlog и т.п. насколько я понимаю - нет. Даже папки такой нет.
А скрипты... Мои. На подобии того, что я выложила.
Или вот твой, например:
{$E} 0000: :NONAME_2 wait 250 if 0AB0: key_pressed 115 else_jump @NONAME_24 03D8: show_save_screen :NONAME_24 jump @NONAME_2
Сейчас установила SB 3.03 - ни один cleo-скрипт не работает.
Last edited by svetka (24-05-2008 16:06)
Offline
Заменила vorbisFile на старый (от 26.06.2005 23:12 18,5 КБ) и скрипты заработали.
Seemann, что это за клавиша в твоем коде: 0AB0: key_pressed 70 ? И где узнать номера всех таких клавишь?
Last edited by svetka (24-05-2008 19:09)
Offline
что это за клавиша в твоем коде: 0AB0: key_pressed 70 ? И где узнать номера всех таких клавишь?
Offline
Спасибо, Seemann
Но у меня новая напасть. После установки 3.03 (сначала всё было нормально) я не могу поставить расширение c.s. файлам scm. Он мне cleo-скрипты компилирует именно в scm, а когда я сатвлю нужное расширение - тип файла не меняется, хотя и именуется как например qwer.cs . Вот.
Offline
Чтобы скомпилировать скрипт в .CS файл, нужно чтобы в начале стояла директива $CLEO.
Offline
Это поняла. Теперь всё получается:)
Но вот когда раньше я ставила {Е} - подобных проблем не возникало.
Offline
У тебя наверно в винде стоит опция "Скрывать разрешения"? Если так, то файл, который ты пытаешься переименовать (qwer.cs) на самом деле имеет скрытое расширение .scm и его полное имя - qwer.cs.scm. Если ты отключишь эту виндовскую опцию (делается через Панель управления-Свойства папки), то будешь видеть все имя, включая расширение файла. Тогда можно будет вручную переименовать .scm в .cs.
$E создает файл, по содержанию идентичный .cs, но с расширением .scm (как в script.img).
Offline
Seemann, у меня почему-то не работает твой скрипт. Вообще никто не реагирует. Нажимаю F вплотную подходя к педу. И ничего.
Offline
Seemann, как-то пропустила твой последний пост) Точно, всё было скрыто. Виндоус каким-то образом сам себя обслужил.
И на счет $E теперь понятно:)
Но твой вариант скрипта так и не работает. Я уже и 0AB0: key_pressed 70 на 00E1: key_Pressed 0 4 заменила. Ничего.
Offline
нее ты не поняла.. подходиш к педу и автомотически передаещ. нисе ненадо нажимать
Offline
@Centrino Duo - Нажимать-то как раз нужно, там есть проверка.
@svetka - Закачай скомпилированный скрипт еще раз. Там была ошибка.
Last edited by Seemann (25-05-2008 17:42)
Offline
Seemann, я скачала по этой ссылке: http://cleo.sannybuilder.com/scripts/flowers.cs
Там всё тот же самый скрипт. Один в один со старым. В SB сравнила. Естественно не включается.
Offline
Неа, там другой. В старом был опкод 0a8f.
Offline
Да, и правда
И всё равно не работает. Я подбежала вплотную к своей банде. Они стоят на месте. Нажимаю F и подольше, и пореже - нет цветов.
Last edited by svetka (25-05-2008 18:49)
Offline
а дилдо? цветы редко выпадают.
Offline
Уф-ф... Дошло. Заменила новый vorbisFile на старый и всё заработало. И дилды у всех, и букеты:)
Offline
Pages: 1