You are not logged in.
Скажите кто-нибудь, пожалуйсто, адреса координат вывода имени автомобиля и названия улицы. Найти самому у меня не получается, к сожалению=(.
А можно и номера свои установить на эти машины ?
есть что-то вроде этого ?
0674: set_car_model #ADMIRAL numberplate "VOVAN"
Есть. Пишешь вместо 014B: 09E2:
09E2: @1 = parked_car_generator_w_numberplate #GREENWOO 44 44 0 alarm 0 door_lock 0 0 10000 plate "C0P15P1G" at x y z angle z
Номер машины должен содержать 8 букв(английские буквы и цифры). Если нужен пробел, то ставь знак "_" (без ковычек)
2flashTrash : код в студию )
Вот, то что объяснял Seemann.
Загрузка IPL: Code: // -------------- получаем адрес, если скрипт в CLEO -------------- 0A9F: 0@ = current_thread_pointer 0@ += 0x10 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 0@ -= @IPL // -------------- получаем адрес, если скрипт в майне -------------- //0@ = @IPL //0@ += 0xA49960 // загружаем IPL 0AA5: call 0x5B8700 num_params 1 pop 1 0@ //.... -------------- где-то в скрипте -------------- :IPL hex "data\maps\vegas\vegasE.ipl" 00 endЯ правда не уверен, будет ли рада игра, если ей вот так подсовывать IPL. Возможно надо что-то дополнительно выгружать после этого...
Можно обойтись без IPL и создавать гараж напрямую из скрипта:
Code: {$CLEO} 0A9F: 0@ = current_thread_pointer 0@ += 0x10 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 0@ -= @GRGE // 0@ указывает на опкод 0900, пропускаем 4 байта в коде (0900 и 2 еще байта) 0@ += 4 // теперь 0@ указывает непосредственно на сам текст "2602.6..." // вызываем процедуру чтения строки GRGE из IPL 0AA5: call 0x5B4530 num_params 1 pop 1 0@ 0A93: end_custom_thread :GRGE 0900: "2602.6 1438.84 9.8337 2616.4 1438.84 2602.6 1462.11 15.4891 1 1 vgElock" 0000:
Вывод: гараж нужно прописывать через IPL. Хотя я где-то на форуме выкладывал способ, как создать гараж через память игры, попробуй поискать.
Через память бесполезно. Когда ты мне показал как можно создавать гаражи, я пробывал сделать гараж через память и ipl-файл, не начиная новой игры, у меня ничего не получилось. Наверно знаний не хватает. Единственное что у меня получилось - сделать гараж через ipl начиная новую игру.
Как можно поправить код игры чтобы обрезать без последствий кол-во маши? Напр машин 120(это напр) а я хочу чтобы в игре использовались только 50, а остальные 70 не загружались и в следствии этого игра не глючила и не вылетала, как бы вбить игре код в память что машин было не 120(мой пример) а 50?
Есть такой опкод:
0732: random_car_generator_disable_model #SAVANNA // отключить генерацию Саванны. 0733: random_car_generator_enable_model #SAVANNA // включить генерацию Саванны. 0734: reset_random_car_generator_models // сбрасывает генерацию моделей. Наверно включает все "запрещенные" модели, но точно я не знаю. Надо спросить у Seemann'а.
Можно обойтись и без скриптов.
Открываешь фaйл cargrp.dat(лежит в папке data), и удаляешь из каждой строчки те модели машин, которые тебе не нужны(например taxi). После этого ты не встретишь на дорогах ниодного такси(за исключением припаркованных и тех, что появляются по велению Его Величества Скрипта).
1.В клео нельзя использовать глобальные переменные.
Ну кто тебе это сказал? В клео МОЖНО использовать глобальные переменные, НО НЕ РЕКОМЕНДУЕТСЯ.
2Agenzvell. это шутка, да? заменить транспорт на здание...
2Alexander. а зачем огород городить, с несколькими переменными, с умножениями и т. д.? в некоторых случаях лучше и так сделать, но тут человек спрашивал как заменить числа на переменные.
дык, а чего тут не ясного то?
:DEAL1_6 // selected button 'PRIMO' (0) 10@ == 4299 if 010A: player $PLAYER_CHAR money > 10@ 004D: jump_if_false @NOMONEY 10@ == -4300 0109: player $PLAYER_CHAR money += 10@ wait 10 gosub @PICKERZ2 jump @PRIMO
Полностью согласен с Capushon'ом. Еще бы, ИМХО, счетчик сообщений снести... Ну зачем он?
FlashTrash,
А что если не морочиться и записать пасссажира-копа в хэндл?
0432: $Act = get actor handle from car $Car passenger 0
и заставить его палить по актеру?
Я пробовал но он не хочет.
ну прально не хочет, он же не пасажир.
046C: 125@ = car 42@ driver
хмм, спасибо.. и зачем, интересно, они тогда нужны, эти опкоды, которые не гарантируют получение хэндла? веть наверняка не просто так...
Используйте только 03С0 для получения хэндла машины.
вопрос - почему? в чем отличие? вроде еще есть какой-то третий опкод на получение хендла(если есть, то чем он отличается?)?
какая может быть ошибка в этом скрипте?
А что, это типа работало O_o ??? У тебя один ляп за другим.
Вот примерно так надо.
:start while true if 010F: player $PLAYER_CHAR wanted_level > 1 then model.Load(#TEC9) model.Load(#SFPD1) 038B: load_requested_models :cont if and Model.Available(#TEC9) Model.Available(#SFPD1) then :create_and_set 04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 200.0 200.0 0.0 04C4: create_coordinate 4@ 5@ 3@ from_actor $PLAYER_ACTOR offset -200.0 -200.0 0.0 053E: 6@ = get_random_car_with_actors -1 in_area 1@ 2@ 4@ 5@ if Car.Id(6@) == #COPBIKE then 01C8: 7@ = create_actor_pedtype 6 model #SFPD1 in_car 6@ passenger_seat 0 01B2: give_actor 7@ weapon 32 ammo 99999 Actor.WeaponAccuracy(7@) = 90 gosub @plahavecar 0713: actor 7@ drive_by actor $PLAYER_ACTOR car 8@ point 0.0 0.0 0.0 radius 200.0 8 1 firing_rate 60 // дальше надо либо искать другую машину и проверять, что бы она не была равна 6@, // либо продолжать код дальше. в противном случае его надо завершить. 004E: end_thread end goto @create_and_set end goto @cont end end :plahavecar if Actor.Driving($PLAYER_ACTOR) then 0811: 8@ = actor $PLAYER_ACTOR car // versionC return else 8@ = -1 return end
В этом спидометре такой проблемы нет
ну что ж я буду чужим пользоваться, когда свой есть? ладно, забей. может сам найду
хочешь положение на экране изменить?
да , а то они на спидометр наплывают, не красиво выходит.
Я извеняюсь за свою надоедливость, но как всё таки заставить авто игнорировать пути?
2Seemann. Я так и думал, но сомневался... Спасибо, теперь сомнений нет.
Добавленно.
Скажите адреса всплывающих текстов названий машины и местности, если они известны. Хочу координаты вывода поменять.
2AleX AciD. А вот хорошо бы сделать так, что бы камера, при движении авто, через N-ое время не разворачивалась, как сейчас. А то приходится переодически мышкой двигать, чтоб камера положение не начала менять.
2Seemann.
при загрузке сэйва, когда всё уже загружено и экран гаснет, как обычно, чтоб потом показать название местности и включиться, - тогда и происходит зависание. ctrl+alt+del.
версия - 1.0 US, плагины - scm log, скриптики CLEO мелкие. С предыдущей версией Клео всё работает, пришлось делать даунгрейд
Эмм.. скачал я Клео за нумером 3.0.646, а при загрузке игры она(игра) виснет. Просто черный экран и всё. Ничего больше. Поставил более ранюю версию Клео - и всё заработало.
З.Ы. Извеняюсь, если не в ту тему.
Agenzvell, путь один, но довольно длинный и "восьмёркообразный".
Как заставить транспорт ехать тупо к точке, игнорируя все пути? Пробывал то опкод
00AF: set_car $copobike[1] driver_behaviour_to 8
но, он всё равно байк до последнего плетется по путям, создавая такую тупость, что аж злит
З.Ы. авто(ну тоесть на сам деле байк) "посылал" опкодом
0704: car $copobike[1] drive_to $x_cp[$ch_number] $y_cp[$ch_number] $z_cp[$ch_number]
З.З.Ы. пробывал прицепить авто к scmpath'у, авто доезжает до поределенной точки и дальше не едет, хотя scm-путь еще не пройден. Может есть какой то лимит поинтов в scm-путях?
ну ты за-агнул конечно с зимой... даж не мечтай.
В пустыне форма шерифов меняется на бежевую рубашку и коричневые брюки, а в сельской местности как обычно черно-бежевая.
{$CLEO} 0000: goto @notdesert :desertcop wait 0 if Model.Available(#DSHER) then 0A8C: write_memory 0x8A5AA0 size 1 value 288 virtual_protect 0 //пишем dsher else goto @loadcop end :notdesert wait 0 if and 8154: not actor $PLAYER_ACTOR in_zone 'RED' // red country 8154: not actor $PLAYER_ACTOR in_zone 'FLINTC' // flint country jf @countrycop if 8154: not actor $PLAYER_ACTOR in_zone 'BONE' // bone country jf @desertcop 0249: release_model #DSHER 0249: release_model #CSHER goto @desertcop :countrycop wait 0 if Model.Available(#CSHER) then 0A8C: write_memory 0x8A5AA0 size 1 value 283 virtual_protect 0 //пишем dsher goto @notdesert else goto @loadcopcont end :loadcopcont wait 0 Model.Load(#CSHER) 038B: load_requested_models :loadcopcont2 wait 0 if Model.Available(#CSHER) jf @loadcopcont2 goto @countrycop :loadcop wait 0 Model.Load(#DSHER) 038B: load_requested_models :loadcop2 wait 0 if Model.Available(#DSHER) jf @loadcop2 goto @desertcop