Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Скрипты FO3
« on: 19 November 2008, 22:27:33 » |
|
-- upd -- FOMM теперь умеет компилировать скрипты. Пока не все, но начало положено. -- upd end -- Итак, настал тот час, когда мы можем работать со скриптами FO3. 1. Опкоды. Они же FuncCode в документе №2. 2. Формат записи SCPT. Интересен всем, особенно наличием Output Codes. 3. Примитивная утилита для облегчения жизни кодерам в прямом смысле этого слова. А вот как на данный момент выглядит скриптинг: 1D 00 00 00 ; start 10 00 06 00 [00 00] [11 00] [00 00] ; begin GameMode 1C 00 [01 00] 9E 10 [ [05 00] [ [01 00] [72 02 00] ] ] ; DogmeatREF.MoveTo player
11 00 00 00 ; end
; References ; SCRO - Global Reference: ACRE - Placed Creature [0006A775] <DogmeatREF> ; SCRO - Global Reference: Player [00000014]
Присоединяйтесь. Да. Совсем небольшой апдейт по Output Codes: 19 00 00 00 -- endif
|
|
« Last Edit: 23 November 2008, 13:47:10 by Wasteland Ghost »
|
|
|
|
|
Jordan
Пользователь
Posts: 416
|
|
Re: Скрипты FO3
« Reply #1 on: 19 November 2008, 22:57:39 » |
|
1D 00 00 00 ; start 10 00 06 00 [00 00] [11 00] [00 00] ; begin GameMode 1C 00 [01 00] 9E 10 [ [05 00] [ [01 00] [72 02 00] ] ] ; DogmeatREF.PlaceAtMe player
11 00 00 00 ; end
; References ; SCRO - Global Reference: ACRE - Placed Creature [0006A775] <DogmeatREF> ; SCRO - Global Reference: Player [00000014]
Это чего такое то? Скрипт? Исходник скрипта выглядил бы так? start begin GameMode DogmeatREF.PlaceAtMe player end Что то я все равно не могу понять как скрипты то писать. В нулях и единицах? Можешь подробнее прокоментировать скрипт? И еще сделать пару примеров и тоже их плдробно прокоментировать.
|
Воспрянет Россия, из праха отцов Расправятся крылья, миллионов сердец Поднимут все головы и грудью вздохнут И громка скажут, что пришли Мы пришли, со столетней войны
|
|
|
Fakels
Пользователь
Posts: 337
Модный геймер
|
|
Re: Скрипты FO3
« Reply #2 on: 20 November 2008, 00:19:32 » |
|
как скрипты то писать. В нулях и единицах?
А как ты хотел! Что не помнишь когда начали ковырять старый фол тоже были нули и единицы (то есть коды), погоди щас кулибины че нибудь придумают.
|
"Необходимо учесть все условия и тогда - нет проблем"
|
|
|
Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Re: Скрипты FO3
« Reply #3 on: 20 November 2008, 00:52:30 » |
|
Это скрипт в опкодах. Нормального компилера в ближайшее время не ждите. Если, конечно, гуру не купят Ф3. По поводу комментариев -- прошу по ссылкам.
|
|
|
|
Jordan
Пользователь
Posts: 416
|
|
Re: Скрипты FO3
« Reply #4 on: 20 November 2008, 16:47:18 » |
|
Пара вопросов.
Чтал документацию по ссылкам выше. Так вот.
1C 00 [01 00] 9E 10 [ [05 00] [ [01 00] [72 02 00] ] ] ; DogmeatREF.PlaceAtMe player
Искал опкод PlaceAtMe он 1025 а его в строке нет. Или я не понял. Что такое в скобочках?
Покажите хоть один пример с подробными коментариями, что бы хоть суть понять как скрипты писать. Кто разобрался?
|
Воспрянет Россия, из праха отцов Расправятся крылья, миллионов сердец Поднимут все головы и грудью вздохнут И громка скажут, что пришли Мы пришли, со столетней войны
|
|
|
Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Re: Скрипты FO3
« Reply #5 on: 20 November 2008, 18:47:09 » |
|
Потому что там не placeatme, а moveto. Исправлено. Везде.Jordan, ты же сам говорил, что в программировании не разбираешься. Лучше не парься. Объяснять подобные записи человеку, не знакомому с машинными кодами, сложно. PS Если реально хочешь разобраться -- сначала почитай про программирование в машинных кодах.
|
|
« Last Edit: 20 November 2008, 18:52:13 by Wasteland Ghost »
|
|
|
|
|
Jordan
Пользователь
Posts: 416
|
|
Re: Скрипты FO3
« Reply #6 on: 20 November 2008, 20:16:03 » |
|
Почитал я о машинных кодах. Посмотрел на эти мошинные коды. Там 1001100011000 а потом увидел двойку и понял что нужно отдохнуть. Так вот вопрос 1C 00 [01 00] 9E 10 [ [05 00] [ [01 00] [72 02 00] ] ] ; DogmeatREF.MoveTo player Получается MoveTo это 9E 10 но в опкодах написано 109E, а это [ [05 00] [ [01 00] [72 02 00] ] ] аргументы. Я правильно понял или нет? А что в этой строке player и DogmeatREF.?
|
Воспрянет Россия, из праха отцов Расправятся крылья, миллионов сердец Поднимут все головы и грудью вздохнут И громка скажут, что пришли Мы пришли, со столетней войны
|
|
|
Jordan
Пользователь
Posts: 416
|
|
Re: Скрипты FO3
« Reply #7 on: 20 November 2008, 22:11:59 » |
|
Так чуть разобрался
1D 00 00 00 это номер скрипта получается номер скрипта 29 В документации написано ScriptName 1D 00 00 00 Length of a scriptname is always 00 00
10 00 06 00 [00 00] [11 00] [00 00] ; begin GameMode Begin GameMode 10 00 06 00 00 00 [BlkLen(4)] 06 00 is the [ModeLen]. Но я так и не понял что за скобки и для чего они, и что такое вот это [11 00] [00 00]
1C 00 [01 00] 9E 10 [ [05 00] [ [01 00] [72 02 00] ] ] ; DogmeatREF.PlaceAtMe player 9E 10 это MoveTo, а [72 02 00] это player, но это что [05 00] [ [01 00]
11 00 00 00 это end
1C 00 [01 00] это call В документации написано [reference]. 1C 00 [Index(2)] For a reference call (eg: player.[Function]) the index is a 1-based value into a SCRO subrecord in the script which holds the formid of the reference. For example, 1C 00 01 00 is the first SCRO subrecord.
Если неправильно поправьте.
|
|
« Last Edit: 20 November 2008, 22:14:10 by Jordan »
|
|
Воспрянет Россия, из праха отцов Расправятся крылья, миллионов сердец Поднимут все головы и грудью вздохнут И громка скажут, что пришли Мы пришли, со столетней войны
|
|
|
Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Re: Скрипты FO3
« Reply #8 on: 21 November 2008, 13:33:20 » |
|
Скобки -- для меня. Можно и без них. Порядок записи чисел. Здесь применяется [L][H] -- сначала пишется младший байт, потом старший. 1D 00 00 00 -- это общий для всех скриптов заголовок. Потом идут обработчики: код + размер данных в байтах. Аналогично работает любая операци внутри обработчика: код операции + размер данных в байтах. Коды операций можно найти по ссылкам п.1 и п.2. Дальнейший ликбез по программированию -- в соответствующем разделе. ОК?
|
|
|
|
Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Re: Скрипты FO3
« Reply #9 on: 23 November 2008, 11:45:04 » |
|
Отличная новость: FOMM теперь умеет компилировать скрипты! Правда, пока только небольшие и простенькие, но уже стало легче дышать.
|
|
|
|
Oleg
Модератор
Posts: 547
|
|
Re: Скрипты FO3
« Reply #10 on: 23 November 2008, 11:54:14 » |
|
эээ он с 1С версией дружит? Глупый наверное вопрос...
|
За сим прощаюсь, Олег.
|
|
|
Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Re: Скрипты FO3
« Reply #11 on: 23 November 2008, 13:45:51 » |
|
Дружит-дружит. Он же движок и перевод не трогает.
|
|
|
|
Oleg
Модератор
Posts: 547
|
|
Re: Скрипты FO3
« Reply #12 on: 24 November 2008, 11:41:41 » |
|
Еще вопрос, а есть вот это на русском? 1. Опкоды. Они же FuncCode в документе №2. 2. Формат записи SCPT. Интересен всем, особенно наличием Output Codes. А то мой англицкий оставляет желать лучшего и могут быть разночтения и недопонимания...
|
За сим прощаюсь, Олег.
|
|
|
Wasteland Ghost
Администратор
Posts: 869
Маленькое Злое Привидение
|
|
Re: Скрипты FO3
« Reply #13 on: 24 November 2008, 11:46:07 » |
|
Нету.
|
|
|
|
Oleg
Модератор
Posts: 547
|
|
Re: Скрипты FO3
« Reply #14 on: 24 November 2008, 20:59:06 » |
|
а чем dds смотреть? стоп вопрос снят... если кому нуно то http://www.tesnexus.com/downloads/file.php?id=8698
|
|
« Last Edit: 25 November 2008, 23:55:55 by Wasteland Ghost »
|
|
За сим прощаюсь, Олег.
|
|
|
|