» TeamX (Архив Форума)«


Форум TeamX » Тех. поддержка » Скрипты (Все вопросы по скриптингу - сюда)

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения

 
GaroldPredator
Пользователь

Откуда: Military Base
Регистрация: Апр. 2004

Всего: 52 сообщения

2 Tim
Можно поинтересоваться вопросом?
А где ты Ruby достал, ась?

-----
В мире есть две точки зрения: неправильная и моя.

Отправлено: 17:47 - 19 Апр., 2004
Tim
Пользователь

Откуда: Санкт-Петербург
Регистрация: Май 2003

Всего: 265 сообщений

Скачал где-то... не помню... могу на мыло кинуть... Надо?

-----
Ядерному взрыву - да! да! да!
Солнечному миру - нет! нет! нет!

Отправлено: 19:06 - 19 Апр., 2004
GaroldPredator
Пользователь

Откуда: Military Base
Регистрация: Апр. 2004

Всего: 52 сообщения

2 Tim
Буду очень признателен...
В смысле, давай!
Мыло такое:
hunter199090@mail.ru
Заранее Thank you!



(Отредактировал(а) GaroldPredator - 19:34 - 19 Апр., 2004)

-----
В мире есть две точки зрения: неправильная и моя.

Отправлено: 19:33 - 19 Апр., 2004
Tim
Пользователь

Откуда: Санкт-Петербург
Регистрация: Май 2003

Всего: 265 сообщений

2GaroldPredator
Догадался ридми почитать и нашел сайт с которого его скачать можно:
http://www.dm4lab.to/~usa/ruby/index_en.html

Но там столько версий.... у меня 1.6.8
И весят они...
И фиг знает что качать...

Кот. у меня весит 741Кб... Может это спец. версия как раз для Фолла...
Подождем пока кто-нибудь скажет что да как... иль слать...?

-----
Ядерному взрыву - да! да! да!
Солнечному миру - нет! нет! нет!

Отправлено: 20:24 - 19 Апр., 2004
GaroldPredator
Пользователь

Откуда: Military Base
Регистрация: Апр. 2004

Всего: 52 сообщения

2 Tim
Я щас нашару ткнул одну, которая весит побольше!
Может, как докачается напишу!

-----
В мире есть две точки зрения: неправильная и моя.

Отправлено: 22:15 - 19 Апр., 2004
Tehnokrat
Модератор

Откуда: Новосибирск
Регистрация: Окт. 2003

Всего: 489 сообщений

Препроцессор watcom лежит здесь (849K).

Прога F-GECK не имеет никакого отношения к компиляции скриптов. При нажатии кнопки "Компилировать" она передаёт имя скрипта BAT-файлу compiler.bat в котором должны быть прописаны пути к препроцессору, компилятору и папке назначения для выходящих из компилятора int-файлов.

Декомпилятор Ruby действительно создаёт файлы ssl, но это не файлы компилятора BIS, и приниматься этим компилятором они естественно не будут. Там и названия команд другие и формат скриптового языка отличается.

-----
Прошлое можно узнать, но нельзя изменить. Будущее можно изменить, но нельзя узнать.

Отправлено: 0:13 - 20 Апр., 2004
Raven
Пользователь

Откуда: Владик
Регистрация: Февр. 2004

Всего: 408 сообщений

to Garold

Грубо говоря, есть два типа команд:
1. Встроенные команды
2. Макросы

Встроенные команды прошиты в движке, их не нужно нигде объявлять дефайном или подключать include-ом какие-либо файлы. Если в скрипте используются встроенные команды - то препроцессор не нужен, компилятор обойдётся и без него.

Макросы - это сокращения/дополнения встроенных команд. Например, тебе часто приходитя использовать встроенную команду obj_name(dude_obj) - т.е. выводить Имя Чузена. Вместо этого ты можешь написать

#define pl_name obj_name(dude_obj)

и использовать pl_name, но теперь тебе понадобится препроцессор.

Выдержка из "сырого" HowTo (гл. 2):
-------------------------------------------------------------
До запуска компилятора выполняется ещё одна программа - препроцессор. Он ищет так называемые "директивы препроцессора" и выполняет их. Узнать директиву легко - она начинается с символа #.

Есть два основных типа директив - #define и #include

Директива #define делает замену (по всему тексту программы) своего первого параметра вторым. Например:

#define ONE 1
#define TWO 2

заменит все слова ONE в тексте на 1 и слова TWO на 2. (ONE < TWO превратится в 1 < 2)

Директиве #include в качестве параметра передают имя файла - и она "вставляет" весь этот файл в скрипт - как раз в то самое место, где написана директива. Например #include "c:\text.txt" будет заменено на содержимое файла c:\text.txt. Но на разных компьютерах файлы могут лежать в разных каталогах. Для того, чтобы в таких случаях не пришлось переписывать все директивы во всех скриптах - используют относительные имена.

Т.е. мы просто просто пишем #include <text.txt> и вызываем препроцессор с флагом -I c:\ - теперь все свои параметры для директивы #include препроцессор будет искать в "c:\".
-------------------------------------------------------------

Файлик command.h как раз и содержит большую часть этих макросов.
Например, макрос  dude_is_male выглядит так (всё из command.h):

#define dude_is_male                        (dude_gender == GENDER_MALE)

В свою очередь есть макрос:
#define dude_gender                         (get_critter_stat(dude_obj,STAT_gender))

, а в файле define.h раскрывается смысл переменных GENDER_MALE:
#define GENDER_MALE   (0)
#define GENDER_FEMALE (1)

Если мы "развернём" макрос dude_is_male, то получим:

get_critter_stat(dude_obj,STAT_gender) == 0

, где get_critter_stat - это встроенная команда, а dude_obj - указатель на Чузена (т.е. команда применяется по отношению к Игроку. Если Elder - указатель на старейшину, то get_critter_stat(Elder,STAT_gender) вернёт пол старейшины).

Все "переменные", написанные ПРОПИСНЫМИ буквами представляют из себя define-ы (напр. GENDER_MALE). Т.е. STAT_gender - это тоже define. Смотрим в define.h:

#define STAT_gender                (34)

В конце концов получаем, что

dude_is_male

это тоже самое, что и

get_critter_stat(dude_obj,34) == 0

Если ты заменишь все dude_is_male в тексте на get_critter_stat(dude_obj,34) == 0 - то препроцессор тебе не понадобиться.

Мало того, что последняя строчка длиннее, так она ещё и непонятней. Вот для избежания таких непоняток и исполбзуют препроцессор.

to Tim and Garold

Вы давайте-давайте - спрашивайте всё, что не понятно. Чтоб я знал какие вопросы возникают у новичков. И вам польза, и я буду знать что в HowTo писать :-)

Отправлено: 6:23 - 20 Апр., 2004
GaroldPredator
Пользователь

Откуда: Military Base
Регистрация: Апр. 2004

Всего: 52 сообщения

Сам ты новичок! Я просто проверял знаешь ты это или нет!
Да ладно, на самом деле, типо, спасибо!


(Добавление от 15:33 - 20 Апр., 2004.)


2 VSEM
У меня всё равно какая-то фигня:
Когда  пытаюсь сделать препроцессинг, watcom находит ошибки в некоторых заголовочных файлах:
ScenePid.h, Party.h и т.д и т.п.
А если  их удалить, то пишет, что нужно их загрузить, потому, что к ним обращается command.h.
Как быть?

-----
В мире есть две точки зрения: неправильная и моя.

Отправлено: 15:01 - 20 Апр., 2004
Tim
Пользователь

Откуда: Санкт-Петербург
Регистрация: Май 2003

Всего: 265 сообщений

Объясните какие надо вводить команды... если нет watcom то все ясно... а если есть... что compile больше не нужен...
напишите плиз на примере...  куда девать папку HEADERS... куда watcom и главное что писать в ком. строке.... То разобраться не могу...

-----
Ядерному взрыву - да! да! да!
Солнечному миру - нет! нет! нет!

Отправлено: 16:36 - 20 Апр., 2004
GaroldPredator
Пользователь

Откуда: Military Base
Регистрация: Апр. 2004

Всего: 52 сообщения

2 Tim
Смотри, Тимищще!
Во-первых, ты уже, я надеюсь, написал скрипт?
Если да, и если у тебя стоит этот самый watcom (будь он неладен), то запихиваешь его (каталог c_nt) в папку fallout2mapper\scripts и потом запихиваешь в папку c_nt\binnt файл command.h (который живёт в каталоге headers).
Дальше (желательно в volcov commandere  или в любом другом менеджере, где можно посмотреть, что пишет файл после его запуска) заходишь в каталог binnt и в коммандной строке пишешь:
wcc386.exe (или wcc.exe, по мне, так    безра     -i C:\fallout2\fallout 2 mapper \scripts\название скрипта.ssl.
Все бы хорошо, но после этого всего нужно еще что-то сделать, потому, что она (или он) пишет у меня ошибки в других *.h файлах и нифига не компилирует!
ВОТ!!!

(Отредактировал(а) GaroldPredator - 17:27 - 20 Апр., 2004)

-----
В мире есть две точки зрения: неправильная и моя.

Отправлено: 17:23 - 20 Апр., 2004
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com