Если ты про зоны, вроде Айдлвуда, то через клео никак. Это все прописано в каком-то отдельном файле, вроде называется zones.dat.
Добавлено (10.06.2012, 20:41) --------------------------------------------- Эмм, кстати, у меня еще вопрос назрел, забываю спросить... в чем разница между Camera.SetPosition и Camera.SetAtPos? Не спрашивал, если б юзал Camera.SetAtPos, но я ленив как медведь, и юзаю Camera.SetPosition only ... Буду очень признателен за ответ.
другой вопрос - можно ли как-нибудь проверять, есть ли над актёром маркер, и если есть, то не создавать заново? нужно сделать так, чтобы античит мог пометить маркерами нескольких игроков, и чтобы они не "накладывались" друг на друга когда он начинает заново срабатывать на уже помеченных игроков
Хендл/структура педа записывается в поле структуры маркера. Перебор структур маркеров - проверка, является ли значение в поле хендлом/адресом структуры нужного педа. Не тестировалось.
Code
:DOES_THIS_CHAR_HAS_BLIP for 1@ = 0xBA86F4 to 0xBAA24C step 0x28 0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0 if 003B: 2@ == 0@ then 0AB2: ret 1 true end end 0AB2: ret 1 false
Проверка:
Code
0AB1: call @DOES_THIS_CHAR_HAS_BLIP num_params 1 actor 0@ get_result_to 1@ if 1@ == false then // end
Quote (MrSecret)
Если ты про зоны, вроде Айдлвуда, то через клео никак.
Да ну. Для её добавления надо лишь знать место расположения структур зон в памяти и формат структуры.
goto @END_DOES_THIS_CHAR_HAS_BLIP :DOES_THIS_CHAR_HAS_BLIP for 1@ = 0xBA86F4 to 0xBAA24C step 0x28 0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0 if 003B: 2@ == 0@ then 0AB2: ret 1 true end end 0AB2: ret 1 false :END_DOES_THIS_CHAR_HAS_BLIP
Как вывести на экран меню в котором можно выбирать пункты и если один выберешь он задействует какую-нибудь команду? [url=http://nick-name.ru/sertificates/777287/][img]http://nick-name.ru/forum/Vanya_8778.gif[/img][/url]
команда создаёт "кровавый взрыв" по кординатам 21@ 22@ 23@ от актрёа и в радиусе 24@ 25@ 26@,100 это размера взырыва,0@ имя актра к кторому присываиваеться "кровывый взырыв",этим опкодом можно например сделать когда ударяешь пресонаже в лицо то по кординатм его лица пояляеться кровь,очень красиво и эфектно) Скачать альбом Лумен-Лучшее(2008) Скачать Хиты Европы Плюс(2000-2010)
SPIRITS, ракету надо создавать именно как ракету (CProjectile), а не обычный обьект. Времена, когда пользователи создавали велосипед, чтобы эмулировать то, что в игре уже есть, прошли. Мои скрипты Grand Theft Auto III HD Development Team
Вот ты прицепил объект, но нафига ты его двигаешь в какие то координаты? Он же улетает просто, убери команду 0007: 13@ = 9.0 0007: 16@ = 9.0 0007: 19@ = 0.3 034E: move_object 4@ to 0.0 0.0 0.0 speed 13@ 16@ 19@ flag 1 0392: make_object 4@ moveable 1 Он у тебя просто улетит Ведь ты его прицепил к игроку И он и так будет вместе с ним
Я бы сказал, что тут нужно не объект цеплять к педу, а педа к объекту, но в объектах я не разбираюсь
каким опкодом можно принудительно поворачивать камеру, а ещё лучше заставлять её смотреть в указанные координаты? 0160: set_camera_point_at что-то криво работает - поворачивать то он поворачивает, но почему-то сама камера при этом находится где-то в районе военной базы
/едит: починил заменив на Camera.PointAt(4@ 5@ 6@ 2) и добавив после него camera.SetPosition(1@ 2@ 3@ 0.0 0.0 0.0), но что-то меня всёравно смущают эти танцы с бубном
/edit2: Клео можно научить поддержке сложных математических выражений? требуется получить значение переменной по формуле X = Xpos - В * sqrrt( (Xtar-Xpos)^2 + (Ytar-Ypos)^2 )/ (Xtar-Xpos) - всё бы ничего, но в клео она стремительно разбухает в пару десятков строчек кода, и опкоды под некоторые операции у меня всёравно не получается найти
Сообщение отредактировал Artalus - Среда, 13.06.2012, 20:07
Jin, Ну объект ты прицепил 069B: attach_object 4@ to_actor $PLAYER_ACTOR with_offset 0.0 0.5 -1.0 rotation 0.0 0.0 0.0 И после того как ты его прицепил он будет следовать за игроком, то есть объект становиться частью игрока
Добавлено (14.06.2012, 13:51) --------------------------------------------- Слушайте люди, вы когда нибудь ответите нормальными словами, почему ракета то летит, то летит боком, то вообще не летит?
Code
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027} {$CLEO .cs}
//-------------MAIN--------------- 0000: NOP
:NONAME_2 0001: wait 0 ms 0247: load_model #MISSILE 038B: load_requested_models
:NONAME_13 0001: wait 0 ms 00D6: if 00DF: actor $PLAYER_ACTOR driving 004D: jump_if_false @NONAME_13 03C0: 0@ = actor $PLAYER_ACTOR car 00D6: if 056E: car 0@ defined 004D: jump_if_false @NONAME_13 0407: store_coords_to 5@ 6@ 7@ from_car 0@ with_offset 0.0 1.0 0.5 0407: store_coords_to 15@ 17@ 18@ from_car 0@ with_offset 0.0 20.0 0.5 00D6: if 0AB0: key_pressed 1 004D: jump_if_false @NONAME_13 0107: 4@ = create_object #MISSILE at 5@ 6@ 7@ 066D: 14@ = attach_particle "TANK_FIRE" to_object 4@ with_offset 0.0 -0.1 0.0 flag 1 064C: make_particle 14@ visible 0001: wait 100 ms 0650: destroy_particle 14@ 0007: 13@ = 14.0 0007: 16@ = 14.0 0007: 19@ = 0.3 034E: move_object 4@ to 15@ 17@ 18@ speed 13@ 16@ 19@ flag 1 0392: make_object 4@ moveable 1 071F: set_object 4@ health_to 100 0001: wait 1000 ms 01BB: store_object 4@ position_to 10@ 11@ 12@ 0108: destroy_object 4@ 020C: create_explosion_with_radius 1 at 10@ 11@ 12@ 0948: create_explosion_at 10@ 11@ 12@ type 4 camera_shake 1 0002: jump @NONAME_2
Jin, Так если по координате Y летит ракета то прямо Если координата X то боком И че есть проверка на XYZ ? Она же иногда вообще не летит и на машине взрывается
Клео можно научить поддержке сложных математических выражений? требуется получить значение переменной по формуле X = Xpos - В * sqrrt( (Xtar-Xpos)^2 + (Ytar-Ypos)^2 )/ (Xtar-Xpos) - всё бы ничего, но в клео она стремительно разбухает в пару десятков строчек кода, и опкоды под некоторые операции у меня всёравно не получается найти
Если надо выполнить один и тот же набор операций в разных участках кода, то можно использовать gosub. При этом набор операций прописывается в коде один раз, вот так:
Code
:Metka // тут операции return
Выполнение указанного кода осуществляется командой gosub @Metka (gosub переводит исполнение кода на метку, а return переводит исполнение кода на строчку, которая идёт после строчки с gosub).
возведение в степень и рабочий @ += @ float самая главная проблема - это переизбыток переменных, одна строчка математического выражения растягивается не только на десяток строчек кода, но и на несколько временных переменных, именно поэтому меня и интересует "компилятор" комбинированныхматематических функций
В клео4 есть такой опкод 0AEE: 0@ = 2.0 exp 0.5 //all floats
Quote (Artalus)
рабочий @ += @ float
Просто вводим в Поиск опкодов "@ += @ float" и получаем нужный опкод 005B: 4@ += 17@ // (float)
Quote (Artalus)
самая главная проблема - это переизбыток переменных, одна строчка математического выражения растягивается не только на десяток строчек кода, но и на несколько временных переменных
Неужели все 32 переменные нужны одновременно? Если значение, записанное в переменную, больше не требуется, то в эту переменную можно записать новое значение. Если всё же переменных не хватает, то можно хранить значения в hex-буфере.
Quote (Artalus)
одна строчка математического выражения растягивается не только на десяток строчек кода, но и на несколько временных переменных, именно поэтому меня и интересует "компилятор"
Существующие опкоды можно выполнять только по отдельности, объединить два опкода в один нельзя. П.С.Если есть знания ассемблера, то можно прописать нужный алгоритм на языке ассемблера и вызывать его как код gta_sa.exe (опкодами 0AA5-0AA8)
Сообщение отредактировал Den_spb - Пятница, 15.06.2012, 12:44
Просто вводим в Поиск опкодов "@ += @ float" и получаем нужный опкод
в том то и дело, что там их 3 штуки, и ни один не работает
Quote (Den_spb)
Неужели все 32 переменные нужны одновременно? Если значение, записанное в переменную, больше не требуется, то в эту переменную можно записать новое значение. Если всё же переменных не хватает, то можно хранить значения в hex-буфере.
все не нужны, меня просто не радует тот факт что их больше чем одна) впрочем, это уже начинается брюзжание про hex-буфер можно поподброднее?