Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Структура данных X-Tension | страница 11
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 11 из 15
На страницу: Пред.  1, 2, 3 ... 10, 11, 12, 13, 14, 15  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал X-Tension/X-BTF: «Структура данных X-Tension»
Blueboar
 125 EGP


Рейтинг канала: 2(12)
Репутация: 20
Сообщения: 47
Откуда: Курган
Зарегистрирован: 01.12.2004
Насчет CHEAT мне понравилось
Я написал дизассемблер (дескриптатор Хы... ) для 001.obj
получилось около 2 Мб запакованного текста, но
сложность в некоторых вещах остается.

1) Ну самое простое - глюков пока много, но это
я исправлю
2) Неизвестные команды! Я пока пишу на каждую неизвестную
команду - UNKNOWN, но как определить сколько слов
она занимает, а то пишу UNKNOWN, а потом идут данные,
а я ж не знаю, сколько их и воспринимаю за команды.
3) Пока нет названий подпрограмм. Я так понимаю, нужно
же писать CALL SE.LOADTEXT, а не call strg[0044]?

Ну, а так - высказывайте предложения по
1) Как должна выглядеть дизассемблированная программа
2) Какие поля туда включить
3) Как писать смещение - так как пишется после GOTO
или смещение в файле
4) Может вам названия некоторых команд не нравятся?
5) итд итп

Компилятора пока нет. Но чувствую, ежели так пойдет,
то появится.
    Добавлено: 09:52 17-12-2004   
Shaddie
 556 EGP


Рейтинг канала: 6(438)
Репутация: 118
Сообщения: 261
Откуда: Томск
Зарегистрирован: 09.09.2004
Я то же написал небольшой дескриптатор Хы.... Вот такой выдает результат:
Код:

Init

000DDA4A:  0006ED21:          SETMEM 4
000DDA4E:  0006ED23:          $0056=GETVAR  BRENNAN
000DDA54:  0006ED26:          $0056=GETVAR  %s
000DDA5A:  0006ED29:          PUSH 2
000DDA5C:  0006ED2A:          CALLASM  SE_SPrintf
000DDA62:  0006ED2D:          WRITE [41]
000DDA66:  0006ED2F:          POP
000DDA68:  0006ED30:          PUSH 1
000DDA6A:  0006ED31:          WRITE [42]
000DDA6E:  0006ED33:          POP
..
000DDA90:  0006ED44:          PUSH 1
000DDA92:  0006ED45:          WRITE [4]       //Координата X начального сектора
000DDA96:  0006ED47:          POP
000DDA98:  0006ED48:          PUSH 3
000DDA9A:  0006ED49:          WRITE [5]       //Координата Y начального сектора
000DDA9E:  0006ED4B:          POP
..
000DDB2C:  0006ED92:          PUSH 0
000DDB2E:  0006ED93:          WRITE [44]       //Признак режима читов 
000DDB32:  0006ED95:          POP
..
000DDB4C:  0006EDA2:          PUSH 0
000DDB4E:  0006EDA3:          WRITE [52]
000DDB52:  0006EDA5:          POP
000DDB54:  0006EDA6:          READVAR [23]
000DDB58:  0006EDA8:          IF [SP]<>0 THEN JMP M0003
000DDB5E:  0006EDAB:          READVAR [19]
000DDB62:  0006EDAD:          IF [SP]=0 THEN PUSH 1 ELSE PUSH 0
000DDB64:  0006EDAE:          IF [SP]<>0 THEN JMP M0001
000DDB6A:  0006EDB1:          PUSH 0
000DDB6C:  0006EDB2:          POP
000DDB6E:  0006EDB3:  M0001:  PUSH SP[3]
000DDB72:  0006EDB5:          PUSH 1
000DDB74:  0006EDB6:          CALLASM  Net_CreatePlayer
000DDB7A:  0006EDB9:          WRITEVAR [22]
000DDB7E:  0006EDBB:          POP
000DDB80:  0006EDBC:          READVAR [22]
000DDB84:  0006EDBE:          IF [SP]<>0 THEN JMP M0002
000DDB8A:  0006EDC1:          READVAR [22]
000DDB8E:  0006EDC3:          PUSH 1
000DDB90:  0006EDC4:          CALLASM  Net_GetPlayerName
000DDB96:  0006EDC7:          READVAR [22]
000DDB9A:  0006EDC9:          PUSH 2
000DDB9C:  0006EDCA:          PUSH 2009
000DDBA0:  0006EDCC:          $003A
000DDBA2:  0006EDCD:          $0057=CALL  Create
000DDBA8:  0006EDD0:          WRITE [1]
000DDBAC:  0006EDD2:          POP
000DDBAE:  0006EDD3:          PUSH 0
000DDBB0:  0006EDD4:          PUSH 1
000DDBB2:  0006EDD5:          READ [1]
000DDBB6:  0006EDD7:          $0057=CALL  SetLatency
000DDBBC:  0006EDDA:          POP
000DDBBE:  0006EDDB:  M0002:  JMP M0004
000DDBC4:  0006EDDE:  M0003:  PUSH 1
000DDBC6:  0006EDDF:          WRITEVAR [22]
000DDBCA:  0006EDE1:          POP
000DDBCC:  0006EDE2:          PUSH SP[3]
000DDBD0:  0006EDE4:          READVAR [22]
000DDBD4:  0006EDE6:          PUSH 2
000DDBD6:  0006EDE7:          PUSH 2009
000DDBDA:  0006EDE9:          $003A
000DDBDC:  0006EDEA:          $0057=CALL  Create
000DDBE2:  0006EDED:          WRITE [1]
000DDBE6:  0006EDEF:          POP
000DDBE8:  0006EDF0:          READ [1]
000DDBEC:  0006EDF2:          PUSH 9
000DDBEE:  0006EDF3:          READVAR [18]
000DDBF2:  0006EDF5:          PUTDATA
000DDBF4:  0006EDF6:          POP
000DDBF6:  0006EDF7:          PUSH 0
000DDBF8:  0006EDF8:          POP
000DDBFA:  0006EDF9:  M0004:  PUSH 1
000DDBFC:  0006EDFA:          WRITE [3]
000DDC00:  0006EDFC:          POP
000DDC02:  0006EDFD:          PUSH 0
000DDC04:  0006EDFE:          WRITE [23]
000DDC08:  0006EE00:          POP
000DDC0A:  0006EE01:          PUSH 0
000DDC0C:  0006EE02:          PUSH 5000
000DDC10:  0006EE04:          $0059=CALL  Set
000DDC1A:  0006EE09:          POP
000DDC1C:  0006EE0A:          PUSH 0
000DDC1E:  0006EE0B:          PUSH 3001
000DDC22:  0006EE0D:          $0059=CALL  Set
000DDC2C:  0006EE12:          POP
000DDC2E:  0006EE13:          PUSH 0
000DDC30:  0006EE14:          RET


1 колонка: смещение в файле
2 колонка: Адрес как он указан для команды $0031
3 колонка: Метка перехода по команде GOTO
1 и 2 можно указывать только для начала подпрограммы.

Ксатати команда 002C похоже очищает весь стек?
    Добавлено: 10:59 17-12-2004   
Shaddie
 556 EGP


Рейтинг канала: 6(438)
Репутация: 118
Сообщения: 261
Откуда: Томск
Зарегистрирован: 09.09.2004
Есть такая мысль:
если отсортировать список подпрограмм по адресу или смещению, то получим что, подпрограммы расположены блоками из классов. Блок начинается с подпрограмм GetClass и IsClass, далее следуют подпрограммы этого класса и так до следующих GetClass и IsClass:

//Класс 1
GetClass – возвращает идентификатор класса (объекта)
IsClass – проверяет идентификатор класса (объекта)
Procedure1
Procedure2

//Класс 2
GetClass
IsClass
    Добавлено: 11:41 17-12-2004   
Blueboar
 125 EGP


Рейтинг канала: 2(12)
Репутация: 20
Сообщения: 47
Откуда: Курган
Зарегистрирован: 01.12.2004
Все, ребят, доигрались. Я разобрался в классовой структуре файла 001.OBJ. Любой объект в 001.OBJ принадлежит некоторому классу.
Например, классам принадлежат переменные и подпрограммы. При передаче управления на подпрограмму кроме ее смещения в STRG указывается также номер ее класса. Например, пример из дескриптатора Shaddie:

000DDC0C: 0006EE02: PUSH 5000
000DDC10: 0006EE04: $0059=CALL Set
000DDC1A: 0006EE09: POP
000DDC1C: 0006EE0A: PUSH 0
000DDC1E: 0006EE0B: PUSH 3001
000DDC22: 0006EE0D: $0059=CALL Set

Видите, вызывается два раза подпрограмма Set, но первый раз перед вызовом в стек (а вообще там номер класса) помещается 5000, а в другом 3001. Следовательно вызовутся две СОВЕРШЕННО РАЗНЫЕ подпрограммы!
Самый главный вопрос – какие? Все оказалось настолько просто, что я до сих пор не могу понять, как не понял этого раньше (Рыб, можешь в «Фразы не в тему» записать). За исключением первого сегмента SYMB (про него позже – он корень всех классов), все остальные имеют после себя сегмент VARS, а ПОСЛЕ НЕГО, но до следующего SYMB – 12 байт

4 байта – номер класса текущего
4 байта – номер класса родителя (или –1, если такого нет)
4 байта – Время создания, наверное, формат похож на CTIM, нам судя по всему неинтересно

Все! Если пройтись так по всем сегментам SYMB, можно выстроить цепочку классов. Для первого SYMB все эти данные записаны в сегменте OBJ3, что после него. Формат тот же. Там записан один объект, и в нем 12 байт.
Теперь – как определить названия этих классов. Неинтересно же по цифрам перечислять. Для этого есть подпрограмма GetObjectName (посмотрите в моем списке). Вся эта подпрограмма по сути – набор маленьких одинаковых кусочков (Shaddie, работа для тебя Улыбка ). Берется значение интересуемого класса, сравнивается с некоторым числом. Если это правда такой класс, в стек заносится другое число. Потом этот результат как-то обрабатывается. Что интересно нам? То, что этот другое число – номер строки в 44001.txt файле (скорее всего, но не на 100%), так как я почему-то некоторых все равно не нашел… А может они безымянные…
Интересно, а зачем для каждой подпрограммы кроме ее класса указан класс предка. Мы же не знаем команд, которые позволяют это как-то использовать. Или если подпрограмма не найдена у потомка, то ищется у его родителя (как в ООП)?
Кроме того, обратите внимание на подпрограмму по адресу 00000001 (самое начало). Там тоже в стек записываются значения, причем в каждой такой записи вторым идет номер какого-то класса. Я пока не знаю, что эта подпрограмма означает, но ОЧЕНЬ ИНТЕРЕСНО…
    Добавлено: 16:57 17-12-2004   
Blueboar
 125 EGP


Рейтинг канала: 2(12)
Репутация: 20
Сообщения: 47
Откуда: Курган
Зарегистрирован: 01.12.2004
Небольшое уточнение: Подпрограмма обрабатывает классы разными
способами. То есть полученное вами число может отражать одно
из двух

1) Смещение в STRG с именем класса
2) Номер в 44001.TXT с именем класса.

Различить их можно по адресу перехода после каждой маленькой
программочки проверки класса. Если там вызываются две подпрограммы,
то это из 44001.TXT, если одна - из STRG.
    Добавлено: 20:08 17-12-2004   
Пассажир
 

Пассажир




Дескриптировал подпрограмму GetObjectName.
Текст подпрограммы можно посмотреть здесь.
Суть этой программы: вывести наименование полученного ей объекта.
    Добавлено: 08:35 18-12-2004   
Blueboar
 125 EGP


Рейтинг канала: 2(12)
Репутация: 20
Сообщения: 47
Откуда: Курган
Зарегистрирован: 01.12.2004
У меня сложилось такое впечатление, что нужно разграничить
понятие класса и объекта.

Класс указывается после каждого VARS и относится к предшест-
вующему ему SYMB. По GetObjectName можно узнать название
класса. Но раз подпрограмма называется GetOBJECTName, то она выводит название объекта, а не класса.

Кто знаком с C++, скажите, какие взаимоотношения между
классом и объектом, а то я в ООП плохо соображаю

P.S. Shaddie, а чего ты пассажиром стал? Или это не ты?
    Добавлено: 09:55 18-12-2004   
Blueboar
 125 EGP


Рейтинг канала: 2(12)
Репутация: 20
Сообщения: 47
Откуда: Курган
Зарегистрирован: 01.12.2004
Вот и я говорю, что если, например, перед CALLом вы
видите строку

PUSH 00002016
call ...

То смотрим в GetObjectName (Shaddie, tnx), и видим

0002EE8A: 00017741: PUSH 2016
0002EE8E: 00017743: IF [SP]<>SP[1] THEN PUSH 0 ELSE PUSH 1
0002EE90: 00017744: IF [SP]=0 THEN JMP M0058
0002EE96: 00017747: POP
0002EE98: 00017748: M0057: $0056=GETVAR STATION {STRG: 0000049A}

То есть получаем класс с именем STATION. Смотрим в SYMB, после которого есть 00002016 в поле названия класса.
Подпрограмма вызывается ИМЕННО ИЗ ЭТОГО SYMB, а не из любого другого, если их много.

Есть еще вопрос. Судя по всему подпрограмме CALL передается не один параметр (номер класса), а два. Причем первый также обрабатывается в GetObjectName (17531;175bb). В зависимости от него в стек заносятся номера строк из 44001.txt, в которых
записано "Аргон", "Борон", итд.

Получается что каждой подпрограмме передается кроме номера класса еще и раса, для которой ее выполнять? Ух ты!.. А зачем? Неужто подпрограммы класса работают по разному для разных рас?
    Добавлено: 10:04 18-12-2004   
Shaddie
 556 EGP


Рейтинг канала: 6(438)
Репутация: 118
Сообщения: 261
Откуда: Томск
Зарегистрирован: 09.09.2004
По поводу команд 0006 и 002B.
У меня сложилось такое мнение:
Для каждого объекта (класса?) есть какой-то массив данных. Так вот эти командами как раз и читают/записывают данные в/из него.
Blueboar :
Shaddie, а чего ты пассажиром стал? Или это не ты?

Это был я Хы....
Blueboar :
Получается что каждой подпрограмме передается кроме номера класса еще и раса, для которой ее выполнять?

Да, если считать, что раса это родительский класс (класс предка) которому подчинен класс станция.
    Добавлено: 10:24 18-12-2004   
Shaddie
 556 EGP


Рейтинг канала: 6(438)
Репутация: 118
Сообщения: 261
Откуда: Томск
Зарегистрирован: 09.09.2004
Насчет иерархии классов.
Нужно составить дерево иерархии классов.
Мне представляется, что она должна выглядеть приблизительно так:
Галактика – родительский класс (уровень 0).
___Сектор – подчиненный класс (уровень 1).
______Раса – подчиненный класс (уровень 2).
_________Станции – подчиненный класс (уровень 3).
____________Товар – подчиненный класс (уровень 4).
____________Корабль – подчиненный класс (уровень 4).
_______________Товар корабля – подчиненный класс (уровень 5).
_________Корабль охранения сектора – подчиненный класс (уровень 3).
____________Товар – подчиненный класс (уровень 4).
___Астероиды – подчиненный класс (уровень 2).
Может быть, структура иерархии и проще, а может и наоборот. Попробую дома разобраться.
    Добавлено: 10:56 18-12-2004   
Рыб
 1242 EGP


Рейтинг канала: 3(36)
Репутация: 340
Сообщения: 7461

Зарегистрирован: 05.06.2001
Blueboar :
Кто знаком с C++, скажите, какие взаимоотношения между классом и объектом

Так никаких взаимоотношений между ними вообще нет, класс - это описание свойств и поведения и взаимоотнощений объекта с другими объектами и программой. Класс это абстракция, существующая только в исходных кодах, а в конечном бинарном файле есть просто набор объектов и инструкций, построенный согласно этому описанию.
    Добавлено: 11:39 18-12-2004   
DF
 300 EGP


Рейтинг канала: 5(118)
Репутация: 47
Сообщения: 478

Зарегистрирован: 06.09.2003
Небольшое дополнение на счет классов:
Класс - это сочетание некой структуры данных и функций, предназначеных для ее обработки, объект - какой-либо конкретный набор данных в памяти, структура которых соответствует классу и для него можно выполнить соответствующие функции (в терминах ООП они называются методы).
Например: есть класс "корабль", который представляет собой структуру, содержащую тоько координаты x,y,z и функцию(метод) goto (x1,y1,z1).
Объект - какой-то конкретный корабль, к нему можно применить метод goto и он переместится на соотв. координаты.
Как примерно это будет выглядеть в коде:
Описание класса:
class ship{
int x,y,z;
void goto(x1,y1,z1){x=x1;y=y1;z=z1;};
}
И использование:
ship ship1,ship2...;
ship1.goto(10,20,30);
ship2.goto(40,20,30);
....
Здесь ship - класс, a ship1 и ship2 - объекты.
то же самое можно описать и без применения классов:
struct ship{int x,y,z;}
void goto(&ship,x1,y1,z1)

ship ship1,ship2...;
goto(ship1,10,20,30);
goto(ship2,40,20,30);

Далее, на сколько я знаю в ООП понятие "подчиненный класс" вообще не существует. Есть понятия "базовый класс" и "производный класс", относящиеся к наследованию.
В нашем примере, например нам надо создать класс "торговый корабль" который имеет груз:
class tradeship:ship{
int cargo;//код груза
}
Класс ship является базовым по отношению к tradeship, а tradeship - производным к ship.
При этом объекты класса tradeship имеют все свойства объектов класса ship, но еще и свойство cargo:

tradeship tship1;
tship1.goto(30,40,50);
tship1.cargo=20;//засунули какой-то груз

Без использования классов это будет выглядеть примерно так :
struct tradeship{
ship bship;
int cargo;
}

На сколько я знаю, какие-либо взаимоотношения между различными классами в ООП не определены, программист может сделать сам что хочет, например один объект может содержать указатель на другой объект и т.п. Корабль и станция не являются между собой базовым и производным классом.

Цитата:
Неизвестные команды! Я пока пишу на каждую неизвестную команду - UNKNOWN, но как определить сколько слов она занимает, а то пишу UNKNOWN, а потом идут данные, а я ж не знаю, сколько их и воспринимаю за команды.

Очень просто: достаточно посмотреть на сколко изменится указатель на команду когда начнется выполнение следующей команды (конечно если это не команда перехода). Аналогично можно определить изменение стека.
P.S. Если что не так, просьба особо ногами не пинать Улыбка , примеры весьма абстрактные, имеющие мало отношения к реальности.
P.P.S. В C для идентификации объектов используются просто указатели на область памяти, идентификаторы объектов - это уже эгосовтовское изобретение.
P.P.P.S. Shaddie, а как ты узнал про режим отладки и cheat?
_________________
По моему так.
    Добавлено: 22:46 18-12-2004   
Blueboar
 125 EGP


Рейтинг канала: 2(12)
Репутация: 20
Сообщения: 47
Откуда: Курган
Зарегистрирован: 01.12.2004
Насчет команды 002F. Просмотрел ее работу в 002.OBJ. И знаете, что оказалось? Первый выданный идентификатор – 0003 Улыбка. А знаете почему? А потому что 0001 и 0002 заняты – под первый и второй SYMB! Получается, идентификаторы классов (0001, 0002) и объектов (0003-…) расположены в одном адресном пространстве и не могут пересекаться.
Осталось выяснить, выделяются ли объекты последовательно (выбирается первый пустой идентификатор), или начиная с некоторого числа для каждой подпрограммы.
И вообще, как это повлияет на дальнейшее изучение? Ведь если идентификаторы даются из одного набора как классам, так и объектам, то означает ли это, что у них могут быть какие-то общие свойства? Например, создал идентификатор командой 002F, в который положил кусок программы. А потом написал – перейти на подпрограмму… Правда в SYMB и STRG ее не будет…
    Добавлено: 09:47 21-12-2004   
Shaddie
 556 EGP


Рейтинг канала: 6(438)
Репутация: 118
Сообщения: 261
Откуда: Томск
Зарегистрирован: 09.09.2004
DF :
Shaddie, а как ты узнал про режим отладки и cheat?

Собственно искал, где задаются координаты стартового сектора. Нашел в процедуре Run (или Init которая от туда вызывается - сейчас уже не помню). Обратил внимание, что там так же задается ряд других данных (командой 002B), которые потом доступны по команде 0006 (для идентификатора объекта 2100 - игрок). Посмотрел, значение какой переменной проверяет процедура Cheating, нашел ее в процедуре Run и исправил на 1. А вообще надо найти, как эту переменную устанавливают в 1. Скорее всего, она изменяется на 1 в результате запуска игры с каким либо ключом или наличием какого ни будь файла.
    Добавлено: 13:14 22-12-2004   
X-admiral
 100 EGP


Репутация: 7
Сообщения: 221
Откуда: Беларусь, Гродно
Зарегистрирован: 24.08.2004
Вопрос : ведь есть в obj-файле ссылки на exe ? То можно сделать ссылки и на другие файлы ? В сейвы записывается вся информация для игры или во время игры все равно берется часть данных из exe и obj ? Я к тому веду можно ли замутить нечто подобное скриптам из X2 , в том смысле , что при внесении изменений не надо будет начинать новую игру ?
Понятно , что если это возможно , то так называемый срипт будет служить только одной конкретной цели , например AI во время боя .
    Добавлено: 21:14 02-01-2005   
X-admiral
 100 EGP


Репутация: 7
Сообщения: 221
Откуда: Беларусь, Гродно
Зарегистрирован: 24.08.2004
2 Shaddie и всем , кто роется в коде XT :

Может знаете , где в obj или в exe написано какую модель грузить
для обьектов ? Мне нужно для станций ...
    Добавлено: 13:12 04-01-2005   
Shaddie
 556 EGP


Рейтинг канала: 6(438)
Репутация: 118
Сообщения: 261
Откуда: Томск
Зарегистрирован: 09.09.2004
X-admiral :
Ведь есть в obj-файле ссылки на exe ?
Думаю нет. Хотя скрипты из obj-файла вызывают ASM программы exe-шника.

X-admiral :
В сейвы записывается вся информация для игры или во время игры все равно берется часть данных из exe и obj ?
Во время игры точно используется exe-шник, а 001.obj только при начале новой игры. Хотя последнее не факт (нужно будет проверить).

X-admiral :
Я к тому веду можно ли замутить нечто подобное скриптам из X2 , в том смысле , что при внесении изменений не надо будет начинать новую игру ?
Вряд ли.

X-admiral :
Может знаете , где в obj или в exe написано какую модель грузить для объектов ?
Я не знаю.
Не проверял, но если посмотреть код скрипта DisplayExplosion (отображение взрыва станции ?), то можно увидить, что в ней используется body-файл 505 (папка v) и scene-файлы 2098-2102, 2104 и 2105 (папка cut).
Модель, если я правильно понимаю, и есть scene-файл?
    Добавлено: 12:09 09-01-2005   
X-admiral
 100 EGP


Репутация: 7
Сообщения: 221
Откуда: Беларусь, Гродно
Зарегистрирован: 24.08.2004
Насчет obj : а ai и прочие скрипты откуда тогда ?
Насчет scene : твою информацию я проверю ( спасибо ) , а scene - это и есть сцен[а] , например ставим обьект ( модель из v/ ) на такие координаты , другой - на такие , а третий - на такие , а затем двигаем его на такие , поворачиваем так и т.д.
    Добавлено: 22:29 09-01-2005   
X-admiral
 100 EGP


Репутация: 7
Сообщения: 221
Откуда: Беларусь, Гродно
Зарегистрирован: 24.08.2004
И еще забыл написать : а можно как найти скрипт для отображения ufo ( он из нескольких body состоит ) ? Или с этим делом в exe ? Хотя раз ufo генерится случайно , то это наверное все ж в obj...
    Добавлено: 22:34 09-01-2005   
Blueboar
 125 EGP


Рейтинг канала: 2(12)
Репутация: 20
Сообщения: 47
Откуда: Курган
Зарегистрирован: 01.12.2004
Здравствуйте. Давно меня не было.

За это время накопал очень важную новую инфу.
А именно - как создаются объекты из классов. Вы
знаете (если уже составили карту классов), что
класс астероида один. А астероидов то тысяча. Из
класса астероид создаются объекты - астероиды.
Потом вызывается конструктор, а в конце деструктор.
(подпрограммы Create - Destruct). Создают и
уничтожают объекты команды 003A-003B. В стеке
у них должен быть объект, созданный командой
002F.
А вообще, я накопал гораздо больше, только денег
на инет не хватает, так что я пишу из интернет
центра, а инфа у меня дома. Как накоплю, напишу
развернуто.

P.S. Спасибо, столько EGP понакидали. За что только,
если меня не было?
    Добавлено: 10:55 11-01-2005   
Канал X-Tension/X-BTF: «Структура данных X-Tension»
На страницу: Пред.  1, 2, 3 ... 10, 11, 12, 13, 14, 15  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Если на утро Ваш профиль заблокирован, значит вчера Вы очень хорошо провели время. (радуется Squad)

  » Структура данных X-Tension | страница 11
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18