Вопросы по созданию КЛЕО-скриптов
|
|
ILYALION | Дата: Понедельник, 07.11.2011, 17:03 | Сообщение # 841 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Den_spb, к сожалению, и этот скрипт не работает, что делать?
Сообщение отредактировал ILYALION - Понедельник, 07.11.2011, 17:31 |
|
| |
Den_spb | Дата: Понедельник, 07.11.2011, 17:56 | Сообщение # 842 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Если скрипт не работает, то надо искать причину и исправлять её В данном случае не работает проверка 8431. Действующий вариант:Code {$CLEO} wait 0 while true wait 0 if 0AE2: 0@ = random_vehicle_near_point 0.0 0.0 0.0 in_radius 10000.0 find_next 0 pass_wrecked 1 //IF and SET then repeat 0441: 1@ = car 0@ model 0AA7: call_function 0x4C5AA0 num_params 1 pop 1 1@ 1@ // isModelCar 046C: 2@ = car 0@ driver if and 1@ == True 2@ > 0 then 020A: set_car 0@ door_status_to 2 end until 8AE2: not 0@ = random_vehicle_near_point 0.0 0.0 0.0 in_radius 10000.0 find_next 1 pass_wrecked 1 //IF and SE end end
|
|
| |
ILYALION | Дата: Понедельник, 07.11.2011, 19:09 | Сообщение # 843 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Den_spb, большое спасибо, но есть ещё одна просьба: таким образом попасть в машину не получится. Я подумал: что если в закрытой машине ещё и прописывать какое-либо значение в неиспользуемом или малоиспользуемом смещении? И при повторном цикле проверять у случайно пойманной машины это смещение? Если значение совпадает, то начинать поиск заново. Я совершенно не умею работать с памятью, поэтому прошу Вас помочь мне.
|
|
| |
Den_spb | Дата: Понедельник, 07.11.2011, 19:30 | Сообщение # 844 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Если в машине сидит водитель, то блокировка включена. Если водителя нет, то блокировка отключена:Code {$CLEO} wait 0 while true wait 0 if 0AE2: 0@ = random_vehicle_near_point 0.0 0.0 0.0 in_radius 10000.0 find_next 0 pass_wrecked 1 //IF and SET then repeat 0441: 1@ = car 0@ model 0AA7: call_function 0x4C5AA0 num_params 1 pop 1 1@ 1@ // isModelCar if 1@ == False then continue end 046C: 2@ = car 0@ driver if 2@ > 0 then 020A: set_car 0@ door_status_to 2 else 020A: set_car 0@ door_status_to 0 end until 8AE2: not 0@ = random_vehicle_near_point 0.0 0.0 0.0 in_radius 10000.0 find_next 1 pass_wrecked 1 //IF and SE end end
|
|
| |
ILYALION | Дата: Понедельник, 07.11.2011, 20:05 | Сообщение # 845 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Den_spb, этот способ для меня не подходит, нельзя ли через память?
|
|
| |
Den_spb | Дата: Понедельник, 07.11.2011, 20:09 | Сообщение # 846 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Сформулируй чётко вопрос, я не понял, что тебе нужно.
|
|
| |
ILYALION | Дата: Понедельник, 07.11.2011, 20:18 | Сообщение # 847 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Для машины, которую нашёл генератор, прописывать в памяти определённое значение в смещении, которое мало используется (как макс. здоровье у педов), потом при повторном поиске проверять у найденной машины это значение, если совпадает-искать снова, если не совпадает-проводить нужные действия над машиной Добавлено (07.11.2011, 20:18) --------------------------------------------- Ну или есть ещё вариант: устанавливать машине цену, а потом проверять её на найденных машинах. Вы знаете опкоды для присваивания цены машине и для проверки цены машины?
|
|
| |
Den_spb | Дата: Понедельник, 07.11.2011, 20:24 | Сообщение # 848 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| У машин максимального здоровья вроде нет, а других надёжных вариантов я не знаю.
Quote (ILYALION) Вы знаете опкоды для присваивания цены машине и для проверки цены машины? В разделе Транспорт СБ справки вроде были.
|
|
| |
ILYALION | Дата: Понедельник, 07.11.2011, 20:29 | Сообщение # 849 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Quote (Den_spb) В разделе Транспорт СБ справки вроде были. Я искал-нашёл только 09E1: get_vehicle_model $Model monetary_value $Money - выбирает машину с опред. моделью и определённой ценой.
Сообщение отредактировал ILYALION - Понедельник, 07.11.2011, 20:32 |
|
| |
Den_spb | Дата: Понедельник, 07.11.2011, 20:32 | Сообщение # 850 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Нашёл в поиске опкодов. Цена относится к модели, а не к конкретному транспортному средству.Code 09E1: get_car_model $IMPORT_CARS_MODEL(4@,6i) price_to $IMPORT_CAR_PRICE
|
|
| |
ILYALION | Дата: Вторник, 08.11.2011, 05:22 | Сообщение # 851 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| Можно ли проверить только часть числа? НапримерНи или как то по другому
|
|
| |
Den_spb | Дата: Вторник, 08.11.2011, 13:42 | Сообщение # 852 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Шестнадцатиричные целые числа проверяются просто - тестированием соответствующих битов. Десятичные целые числа проверять сложнее. Пример: проверим, равен ли младший разряд трёхзначного десятичного числа четырём.Code 0@ = XXX // 000 - 999 0085: 1@ = 0@ // (int) if 0@ > 99 then 1@ /= 100 1@ *= 100 0A8F: 1@ = 0@ - 1@ end 0085: 2@ = 1@ // (int) if 0@ > 9 then 2@ /= 10 2@ *= 10 0A8F: 2@ = 1@ - 2@ end if 2@ == 4 then ... end
|
|
| |
ILYALION | Дата: Вторник, 08.11.2011, 18:13 | Сообщение # 853 |
Группа: Проверенные
Сообщений: 325
Статус: Offline
| А можно ли проверять десятетысячный разрад в десятичной дроби?
|
|
| |
KaZyS | Дата: Вторник, 08.11.2011, 20:05 | Сообщение # 854 |
Группа: Пользователи
Сообщений: 8
Статус: Offline
| не пойму, почему не работает скрипт...(мне от него надо, чтобы был ГМ на оружие) он же действует как полный... Code {$CLEO .cs}
//-------------MAIN--------------- 0000: NOP
$PLAYER.DEFINED($PLAYER_CHAR)_53 wait 500 if 0AB0: key_pressed 71 jf @$PLAYER.DEFINED($PLAYER_CHAR)_53 jump @$PLAYER.DEFINED($PLAYER_CHAR)_80
$PLAYER.DEFINED($PLAYER_CHAR)_80 wait 100 if 0AB0: key_pressed 77 jf @$PLAYER.DEFINED($PLAYER_CHAR)_53 00BC: show_text_highpriority GXT 'CHEAT1' time 2000 flag 1 // Cheat activated 018C: play_sound 1085 at 0.0 0.0 0.0 jump @$PLAYER.DEFINED($PLAYER_CHAR)_142
$PLAYER.DEFINED($PLAYER_CHAR)_142 wait 0 0@ = 362035 &0(0@,1i) = -16711696 if not Actor.Driving($PLAYER_ACTOR) jf @$PLAYER.DEFINED($PLAYER_CHAR)_263 Actor.SetImmunities($PLAYER_ACTOR, 0, 1, 0, 0, 0) 0A8C: write_memory 9867630 size 1 value 1 virtual_protect 1 if and 0818: actor $PLAYER_ACTOR in_air 02D8: actor $PLAYER_ACTOR current_weapon == 46 gosub @$PLAYER.DEFINED($PLAYER_CHAR)_436 wait 10 if 0AB0: key_pressed 35 jf @$PLAYER.DEFINED($PLAYER_CHAR)_142 jump @$PLAYER.DEFINED($PLAYER_CHAR)_337
$PLAYER.DEFINED($PLAYER_CHAR)_263 wait 0 03C0: 29@ = actor $PLAYER_ACTOR car if 8185: not car 29@ health >= 0 jf @$PLAYER.DEFINED($PLAYER_CHAR)_142 Actor.StorePos($PLAYER_ACTOR, 12@, 13@, 24@) 0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 12@ 13@ 24@ wait 1 Car.RemoveReferences(29@) jump @$PLAYER.DEFINED($PLAYER_CHAR)_142
$PLAYER.DEFINED($PLAYER_CHAR)_337 wait 0 0@ = 362035 &0(0@,1i) = -14870092 Actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0) 0A8C: write_memory 9867630 size 0 value 0 virtual_protect 0 00BC: show_text_highpriority GXT 'CHEAT8' time 2000 flag 1 // Cheat deactivated 018C: play_sound 1084 at 0.0 0.0 0.0 jump @$PLAYER.DEFINED($PLAYER_CHAR)_53
$PLAYER.DEFINED($PLAYER_CHAR)_436 wait 0 0555: remove_weapon 46 from_actor $PLAYER_ACTOR return
Сообщение отредактировал KaZyS - Вторник, 08.11.2011, 20:06 |
|
| |
Den_spb | Дата: Вторник, 08.11.2011, 20:20 | Сообщение # 855 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (ILYALION) А можно ли проверять десятетысячный разрад в десятичной дроби? Можно. Один из способов - умножить на 10.0 (100.0, 1000.0 ... ), затем перевести в целое и воспользоваться методом для целых чисел.
Quote (KaZyS) не пойму, почему не работает скрипт...(мне от него надо, чтобы был ГМ на оружие) он же действует как полный... Ничего не понял. Какой полный? Что за ГМ?
|
|
| |