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
endhttp://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