You are not logged in.
Он определяет только ту машину, в которой я сижу... Остальные не хочет...
Ну это верно, т.к. она самая ближняя к игроку. Попробуй 0AE2: $car = random_vehicle_near_point 0@ 1@ 2@ in_radius 10.0 find_next 1 pass_wrecked 1
Во-первых - не используй ГЛОБАЛЬНЫХ переменных в CLEO - скрипте!!! Можно исп. только "специальные", типа $PLAYER_ACTOR.
Имя FXT-файла любое. Указывать на файл нигде не нужно. Но лучше юзай опкоды 0ACA-0AD1.
Проверка нажатия кнопки - 0AB0.
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 0@ closest_ped_to 1@ записывает машину если в ней находится игрок
0AB5 записывает ближайшую машину и ближайшего педа относительно указанного актёра вне зависимости, сидит ли игрок в ней или нет.
Имеется скрипт 2 Игрока (Cleo). Мне стало интересно, как управлять вторым игроком? Нужен джойстик?
offtop:
После скрипта дофига комментариев "как скачать" и есть двое "выдающихся" №14 и 16: один где-то увидел ссылку на скачивание, а другой "форматирует" в формат .cs
не думаю, что это особо сложно, только вот зачем? он и так работает через обычный bass.dll (в этом-то и всё удобство).
Так bass.dll без плагина WMA-поток не воспроизводит!
У меня достаточно быстро уходит в "даун", при том что память на нубуке 4 гига.
Возможно, можно просто выключить запрос PIN в телефоне, не вводя PIN
А не знаешь, на Huawei E1550 прокатит такой фокус?
У меня также, но всё прекрасно работает)
Надо просто подождать)
Вопрос такой: можно ли снять пин-код с незаблокированной (его ещё пока можно вводить) сим-карты? К оператору сходить - отпадает сразу.
Обычно инжекты делают с помощью опкода jmp и ссылаются им на участок размеченной памяти (VirtualAlloc).
И главное: параметры надо передавать в обратном порядке!
Ах вооот оно что, спасибо. Кстати, а тогда в опкоде 0AA7 параметр для возвращаемого значения нужно таки указывать первым или последним?
Последним
Спасибо. Кстати, как правильно пользоваться опкодами 0AA5 и 0AA7? (Справку я читал )
А точнее, что неправильно в этом коде?:test1 wait 0 if and not actor.Dead($PLAYER_ACTOR) 0ADC: test_cheat "VIDEO" jf @test1 //0B17: show_message_box "Preved!" 0AA5: call 0x7476B0 num_params 2 pop 2 1 "Logo.mpg" wait 2000 jump @test1По адресу — процедура, проигрывающая видео, void __cdecl PlayMPEG(int nShowCmd, char *filename)
___Edit:
Хммм, перечитал хелп еще раз, написано, что строковые параметры использовать нельзя, а как же тогда?
Строки передавать можно, но насколько я знаю, эту процедуру нельзя так просто вызвать. На английском форуме то ли Deji то ли ZAZ написал код как её вызвать. И главное: параметры надо передавать в обратном порядке!
RDH wrote:Да не в гташке дело вроде!
Тогда в чём?) Поставил чистую SA - толку нет, всё равно не качает... у мя XP
А мой 1-й пример работает?
ща попробую чистую SA поставить, и поставить только этот скрипт...
Да не в гташке дело вроде!
А ты сам проверял? С тем кодом, что ты дал?
Естественно. И твой проверил: содержимое файла myfile.txt - text.
Кстати, если у тебя Виста/7, а гта стоит в Program Files - то запись в файл может блокировать UAC и писать файл в C:\Users\<имя>\AppData\Local\VirtualStore\Program Files\.
Нет, нет, пишет Downloaded, а файла нету. Я просто скопировал тот код что ты дал в новый скрипт. Сперва попробовал не менять ничего, потом поменял ya.ru на адрес одного текстовика на моём сайте (прямой ссылкой конешь) - тоже Downloaded, но никакого файла не появляется ни в папке CLEO, ни где-нибудь в другом месте.
А вместо "CLEO\myfile.txt" что написал?
И пришли образец адреса.
Вот странно, вроде бы качает, однако файл не сохраняется...
А куда сохраняешь? Может прав на запись нету, папки не существует и т.п. А что выводит?
Здесь коды ошибок.
И ещё:
URLDownloadToFile returns S_OK even if the file cannot be created and the download is canceled. If the szFileName parameter contains a file path, ensure that the destination directory exists before calling URLDownloadToFile.
Ну и чего здесь такого сверхъестественного?
{$CLEO} const S_OK=0 end 0AA2: 1@ = load_library "urlmon.dll" // IF and SET 0AA4: 2@ = get_proc_address "URLDownloadToFileA" library 1@ // IF and SET while true wait 0 if 8AB0: not key_pressed 75 // K then Continue end 0AA7: call_function 2@ num_params 5 pop 0 0 0 "CLEO\myfile.txt" "http:\\ya.ru" 0 3@ // двойной слеш обязательно писать так, остальные как обычно if 3@==S_OK // закачка стартовала then 0ACA: show_text_box "Downloaded." else 0ACE: show_formatted_text_box "Error (0x%X) !!!" 3@ end end
Только не качай так большие файлы, а то эта функция "замораживает" игру!
Я не знаю как это сделать!)
Никогда не поздно учиться)
Эм, простите, повторюсь, может кто-нибудь написать плагин для клео, который добавит опкод для скачивания файла из интернета и для проверки на существование файла по указанному адресу (не обязательно)?
Попробуй это: http://msdn.microsoft.com/ru-ru/library/ms775123.aspx вместе с опкодами 0AA2,0AA3,0AA4 (URLDownloadToFileA),0AA7 (параметр pop 0)
Т.е. это thiscall, и в delphi ее можно вызвать только через ассемблер?
Имеется процедура (Vice City):
.text:005FC980 ; =============== S U B R O U T I N E ======================================= .text:005FC980 .text:005FC980 .text:005FC980 CRadio__SetRadioStation proc near ; CODE XREF: CAudio__SetRadiostation+16p .text:005FC980 .text:005FC980 arg_0 = dword ptr 4 .text:005FC980 arg_4 = dword ptr 8 .text:005FC980 .text:005FC980 000 push ebx .text:005FC981 004 mov ebx, ecx .text:005FC983 004 cmp byte ptr [ebx], 0 .text:005FC986 004 mov edx, [esp+4+arg_0] .text:005FC98A 004 mov eax, [esp+4+arg_4] .text:005FC98E 004 jz short loc_5FC9CB .text:005FC990 004 cmp edx, 9 .text:005FC993 004 jnz short loc_5FC99A .text:005FC995 004 mov edx, 0Ah .text:005FC99A .text:005FC99A loc_5FC99A: ; CODE XREF: CRadio__SetRadioStation+13j .text:005FC99A 004 cmp edx, 23 .text:005FC99D 004 ja short loc_5FC9CB .text:005FC99F 004 cmp eax, 0FFFFFFFFh .text:005FC9A2 004 mov byte ptr [ebx+3978h], 1 .text:005FC9A9 004 mov [ebx+3979h], dl .text:005FC9AF 004 jz short loc_5FC9C4 .text:005FC9B1 004 mov ecx, edx .text:005FC9B3 004 xor edx, edx .text:005FC9B5 004 lea ecx, [ecx+ecx*2] .text:005FC9B8 004 div dword ptr [ebx+ecx*4+10h] .text:005FC9BC 004 mov [ebx+397Ch], edx .text:005FC9C2 004 jmp short loc_5FC9CB .text:005FC9C4 ; --------------------------------------------------------------------------- .text:005FC9C4 .text:005FC9C4 loc_5FC9C4: ; CODE XREF: CRadio__SetRadioStation+2Fj .text:005FC9C4 004 or dword ptr [ebx+397Ch], 0FFFFFFFFh .text:005FC9CB .text:005FC9CB loc_5FC9CB: ; CODE XREF: CRadio__SetRadioStation+Ej .text:005FC9CB ; CRadio__SetRadioStation+1Dj .text:005FC9CB ; CRadio__SetRadioStation+42j .text:005FC9CB 004 pop ebx .text:005FC9CC 000 retn 8 .text:005FC9CC CRadio__SetRadioStation endp
Вопрос: как узнать процедура/функция ли это, тип вызова (cdecl, stdcall ....).
И ещё: у этой процедуры два параметра: 1 - DWORD, 2 - WORD. Правильно определил или нет?
SA v1.0 и v1.01 можно отличить так: если по адресу 0x008A6168 записано 0x465E60 то это 1.0. А для вайса какой адрес взять?
{$CLEO} 0000: NOP :rocket_jam wait 0 if Actor.Driving($PLAYER_ACTOR) jf @rocket_jam 03C0: 0@ = actor $PLAYER_ACTOR car 3@=0xC891A8 // Rocket pool start 4@=0 :loop wait 0 0A8E: 1@ = 3@ + 4@ // int 0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0 // Rocket type if 2@==20 // heatseeking then 1@+=16 0A8D: 2@ = read_memory 1@ size 1 virtual_protect 0 // Does rocket exist? if 2@==1 // travelling then 1@-=8 0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0 // Pointer to target vehicle (when heatseeking), 0 otherwise 0AEB: 2@ = car_struct 2@ handle if 003B: 2@ == 0@ // (int) then 0ACD: show_text_highpriority "Rocket Detected!!!" time 1000 wait 2000 // * 0A8C: write_memory 1@ size 4 value 0 virtual_protect 0 end end end Inc(4@,36) if 4@ > 0x480 jf @loop jump @rocket_jam
Меняя задержку под звёздочкой, можно сделать скрипт интереснее (это время, в течении которого ракета продолжает преследовать игрока).