You are not logged in.
А можно ли вывести текст, записанный по адресу 0xBAB040, как обычный GXT?
0ADF: add_dynamic_GXT_entry "_TEST" text 0xBAB040
но это в случае, если используешь CLEO 4...
@444andrei444 - у тя CLEO 4 или CLEO 3?
Метки сами переименовываются во время компиляции.
за это отвечает опкод 03A4
Last edited by Voron295 (18-05-2011 17:47)
Offline
но это в случае, если используешь CLEO 4...
I wish, хотя в Quick Opcode есть аналог, так что вполне подходит.
0B22: add_GXT_entry name "GXT123" string_handle 0xBAB040
UPD. Игра вылетает при использовании этого опкода в течении 5-50 секунд, так что не подходит
Last edited by Sergey81 (19-05-2011 08:58)
Offline
Offline
И все таки никто не знает почему вылетает во время гонки, а не во времф старта?
Вылетает по той простой причине, что нет проверки на существование авто. Движок игры в определённый момент гонки удаляет авто. Ты не проверив, существует ли это авто в данный момент вообще, производишь какие-то действия и проверки над несуществующим авто. Во время старта гонки авто есть - вылета нет. Пользуйся scmlog для определения причины вылета.
Offline
Спасибо проверю
Просто не сталкивался с подобными проблемами
а существование актера убрать?
Last edited by 444andrei444 (19-05-2011 11:27)
Offline
В смысле которого я сажаю в авто. Проверка существования авто не дала результата. Тестил на версии от Voron_295
Last edited by 444andrei444 (20-05-2011 03:42)
Offline
Да у меня была отключена функция проверки условий. Искал где включить так и не нашел. Поэтому обходился без них. Только неделю назад нашел где включать.
Offline
444andrei444, лучше начать со скриптов попроще. И необходимо чётко усвоить теорию (например, когда используется if, а когда if and или if or).
когда я в 12 лет начал изучать скриптинг (тогда у меня даже инета не было, у друга инет был, саник с инета стянул), то в справке абсолютно ничего не понял решил научиться через практику (часто так делаю) - брал готовый код, например гонка, где 1 чекпоинт, потом что-то пробовал изменять, добавлять чекпоинты, короче учился на ошибках, так и появился опыт, только после того как опытным путём понял где что нужно писать, стало более-менее ясно, о чём пишется в справке.
Offline
Такой интересный вопрос есть.
Как узнать сколько цветов у машины может быть, я имею ввиду цвета primary, secondary и т.д.? Т.е. максимум 4. А как для конкретной модели авто получить это число, и может ли быть, например, третий цвет и четвертый, а первого и второго нет?
I know everything and nothing...
Offline
У меня накопилась партия вопросов. Почему когда я сохраняю игру со скрипта который в справке, она потом не загружается.
да я тоже справку понял, когда уже научился делать простенькие скрипты. И до сих пор ни разу не применял gosub ы.
Никто не знает как увеличить размер радара. Не зум. Я использовал interface editor менял значения и отсеивал, но ничего не получилось. Видно это сделано специально разработчиком программы. Или я плохо ищу
Offline
Offline
В разделе cleo 3 скрипты
Offline
У меня вопрос: можно ли (если да, то как ) поставить игрока параллельно стене? Пишу скрипт горизонтального бега по стене, наличие стены проверяю опкодом 86BD, однако мне бы поставить игрока ровно параллельно стене.... вот "кусочек" кода:
04C4: store_coords_to 11@ 12@ 13@ from_actor $PLAYER_ACTOR with_offset -0.37 0.0 0.0 04C4: store_coords_to 14@ 15@ 16@ from_actor $PLAYER_ACTOR with_offset 0.37 0.0 0.0 if 86BD: not no_obstacles_between 11@ 12@ 13@ and $PLAYER_POS_X $PLAYER_POS_Y $PLAYER_POS_Z solid 1 car 0 actor 0 object 1 particle 0 then 20@v = "h_wallrun_L" else if 86BD: not no_obstacles_between 14@ 15@ 16@ and $PLAYER_POS_X $PLAYER_POS_Y $PLAYER_POS_Z solid 1 car 0 actor 0 object 1 particle 0 then 20@v = "h_wallrun_R" else jump @H_WALLRUN_1 end end
тут надо подбежать к стене так, чтобы она оказалась сбоку, но приходится подбегать слишком близко, и это тяжело, а если и подбежишь, то ещё не факт, что ты окажешься 100% параллельно стене, а это неприемлимо, ввиду следующего кода:
0812: AS_actor $PLAYER_ACTOR perform_animation 20@v IFP_file "FS_FREERUNNING" 10.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1 // versionB 04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 04C4: store_coords_to 4@ 5@ 6@ from_actor $PLAYER_ACTOR with_offset 0.0 6.0 0.0 0063: 4@ -= 1@ // (float) 0063: 5@ -= 2@ // (float) 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 0.0 0.0 10.0 wait 5 0613: 6@ = actor $PLAYER_ACTOR animation 20@v time while 6@ < 0.5 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 4@ 5@ 2.0 wait 0 0613: 6@ = actor $PLAYER_ACTOR animation 20@v time end while 6@ < 1.0 083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 4@ 5@ -0.05 wait 0 0613: 6@ = actor $PLAYER_ACTOR animation 20@v time end jump @H_WALLRUN_1
чё делать?
P.S. На глобальные переменные не обращайте внимания, я для майна скрипт пишу...
Last edited by Voron295 (21-05-2011 18:54)
Offline
мда a кто знает какой номер устанавливает маркеру синий цвет , а то сам не могу найти .ну к примеру который ставится на машину . Все номера после 15 делают его черным .
Last edited by met dog (23-05-2011 20:56)
Offline
помогите плиз я сделал скрипт и в этом скрипте есть такая часть :генирируются координаты от игрока и потом в этих координатах создается машина . Но иногда она может появится к примеру внутри дома или прям будет внутри стены вообщем это часто приводит к взрыву машины . Можно ли сделать так чтобы тачка появлялась именно на дороге ?
Offline
Можно.
store coords from $PLAYER_ACTOR с оффсетами 0 0 0
чего-то там closest path to (эти координаты)
car.create
Offline
написал скрипт который по идее отнимать и отнимать деньги
использовал REPEAT...UNTIL
{$CLEO .cs} //-------------MAIN--------------- wait 100 :defined wait 100 if and 0256: player $PLAYER_CHAR defined else_jump @defined :jjjj wait 0 REPEAT wait 20 0109: player $PLAYER_CHAR money += -1000000 UNTIL 0109: player $PLAYER_CHAR money <= 0 0A93: end_custom_thread
но вот деньги отнимаются только один раз. в чем дело ?
Offline
написал скрипт который по идее отнимать и отнимать деньги
использовал REPEAT...UNTIL{$CLEO .cs} //-------------MAIN--------------- wait 100 :defined wait 100 if and 0256: player $PLAYER_CHAR defined else_jump @defined :jjjj wait 0 REPEAT wait 20 0109: player $PLAYER_CHAR money += -1000000 UNTIL 0109: player $PLAYER_CHAR money <= 0 0A93: end_custom_threadно вот деньги отнимаются только один раз. в чем дело ?
знак поменять не пробовал в опкоде 0109?
Offline
UNTIL 0109: player $PLAYER_CHAR money <= 0
неправильно использован опкод 0109. этот опкод прибавляет деньги, а не осуществляет проверку "больше-меньше". то, что ты изменил слова между параметрами, сути не меняет. надо было использовать опкод
010A: player $PLAYER_CHAR money > 0
скрипт должен выглядеть примерно так
{$CLEO} while true wait 250 if 0256: player $PLAYER_CHAR defined then if 010A: player $PLAYER_CHAR money > 0 then 0109: player $PLAYER_CHAR money += -1 end end end
Offline
спасибо. Вообще я решил просто пополнить свои знания о скриптинге ,а то во всех скриптах в основном else_jump применял .
Last edited by met dog (24-05-2011 14:24)
Offline
Из скрипта автосохранения, который был написан Sergey81, выдрал вот этот код:
0A8D: 1@ = read_memory 0x0061907A size 4 virtual_protect 1 0A8D: 2@ = read_memory 0x0061907E size 1 virtual_protect 1 0A8C: write_memory 0x0061907A size 4 value 0x90909090 virtual_protect 1 0A8C: write_memory 0x0061907E size 1 value 0x90 virtual_protect 1 wait 1 0AA5: call 0x619060 num_params 1 pop 0 6 wait 2 0A8C: write_memory 0x0061907A size 4 value 1@ virtual_protect 1 0A8C: write_memory 0x0061907E size 1 value 2@ virtual_protect 1
В клео-скрипте работает нормально, чего нельзя сказать о майне... вот такая конструкция в майне:
:SAVE_GAME thread 'SAVE_GAME' :SAVE_GAME_1 wait 0 if 0AB0: 48 jf @SAVE_GAME_1 0A8D: 1@ = read_memory 0x0061907A size 4 virtual_protect 1 0A8D: 2@ = read_memory 0x0061907E size 1 virtual_protect 1 0A8C: write_memory 0x0061907A size 4 value 0x90909090 virtual_protect 1 0A8C: write_memory 0x0061907E size 1 value 0x90 virtual_protect 1 wait 1 0AA5: call 0x619060 num_params 1 pop 0 6 wait 2 0A8C: write_memory 0x0061907A size 4 value 1@ virtual_protect 1 0A8C: write_memory 0x0061907E size 1 value 2@ virtual_protect 1 while 0AB0: 48 wait 0 end jump @SAVE_GAME_1
У меня есть подозрение, что данный код физически не сможет работать в майне, видимо происходит какой-то конфликт, ведь по идее сохранение происходит именно на опкоде 0AA5... Кто-нибудь может опровергнуть или доказать верность моих догадок?
Offline