Семь Футов под Килем
Форма входа
 
Приветствуем тебя, корсар Юнга!

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!
Логин:
Пароль:


Купить игры
 



Чат
 
500


Статистика
 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Модератор форума: NikK  
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Урок № 6. Добавить новый корабль на основе имеющихся моделей
Урок № 6. Добавить новый корабль на основе имеющихся моделей
Jared_StarkДата: Понедельник, 08.06.2015, 00:28 | Сообщение # 201
Матрос
Группа: Корсар
Сообщений: 33
Награды: 5
Репутация: -15
Статус: В открытом море
Цитата Nathaniel ()
Да. Там в числе файлов будет набор текстур вида deck, dekk, dek1 и прочие однокоренные. Именно они являются текстурами палуб исключительно всех кораблей. Поэтому и лежат там. Ещё там иногда лежат фонарики корабельные, некоторые узорчатые элементы обшивки кораблей и т.п.

Откройте модель корабля в GM Viewer и запишите себе в блокнот список всех текстур, используемых моделью. Потом ищите...

Спасибо! Будет время, попробую поиграюсь.

Добавлено (08.06.2015, 00:28)
---------------------------------------------
Nathaniel, спасибо за помощь, дружище! Все получилось, Вы мне очень помогли! -drinks-


Чувство, когда тебя ночью обнимают и сквозь сон притягивают к себе, не передаваемо... Особенно, когда живешь один - вообще обоср#ться можно!
MalleusДата: Четверг, 11.06.2015, 22:44 | Сообщение # 202
Пороховая обезьяна
Группа: Корсар
Сообщений: 10
Награды: 5
Репутация: 17
Статус: В открытом море
Народ, добавляю кораблик строго по описанию. при запуске выдает ошибку COMPILE ERROR - file: scripts\ShipsUtilites.c; line: 955
Undeclared identifier: Veinard
в чем проблема может крыться?
MettДата: Пятница, 12.06.2015, 00:59 | Сообщение # 203
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 90
Репутация: 555
Статус: В открытом море
Malleus, и ShipsUtilites.c вы не трогали?
код добавляемого судна в студию


Что толку, если не можешь сделать мир лучше.
NathanielДата: Пятница, 12.06.2015, 15:43 | Сообщение # 204
Контр-адмирал
Группа: Капитан
Сообщений: 7703
Награды: 334
Репутация: 1744
Статус: В открытом море
Цитата Malleus ()
Undeclared identifier: Veinard

Английский переводчик вам в помощь! Это значит, что Вы забыли описать идентификатор. Забыли прописать тип переменной или описание идентификатора корабля. В частности, в этом файле есть процедура под названием SetShipyardStore(), которую многие используют для размещения корабля в продаже на верфи. Скорее всего, Вы неверно указали идентификатор именно там.

Если уж указывать идентификатор, он должен быть в формате SHIP_VEINARD. Этот же идентификатор должен быть обязательно прописан в:
- ships_init.c;
- ships.h;


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
MalleusДата: Пятница, 12.06.2015, 16:10 | Сообщение # 205
Пороховая обезьяна
Группа: Корсар
Сообщений: 10
Награды: 5
Репутация: 17
Статус: В открытом море
Nathaniel, Спасибо, разобрался.напортачил именно там
Jared_StarkДата: Среда, 17.06.2015, 14:11 | Сообщение # 206
Матрос
Группа: Корсар
Сообщений: 33
Награды: 5
Репутация: -15
Статус: В открытом море
Народ, возникла проблема. Корабли добавил правильно, новую игру начал. В бета-тесте на верфи все добавленные кораблики есть, но если отключить бета-тест, то ни в море не встречаются ни на верфи не появляются. Подскажите где я мог ошибиться?

Чувство, когда тебя ночью обнимают и сквозь сон притягивают к себе, не передаваемо... Особенно, когда живешь один - вообще обоср#ться можно!

Сообщение отредактировал Jared_Stark - Среда, 24.06.2015, 09:35
PsychoShooterДата: Пятница, 18.09.2015, 14:11 | Сообщение # 207
Матрос
Группа: Корсар
Сообщений: 30
Награды: 21
Репутация: 203
Статус: В открытом море
Точно так же и у меня. Всё сделал по инструкции, но в игре корабля нет. И ещё вопрос: как сделать чтобы корабль продавался на ОДНОЙ определённой верфи, а не на всех. Чтобы был уникальным. Или же как заменить созданным кораблём корабль в квесте ПС "Предательство Грифо Сайфуса", чтобы вместо шебеки получить его?

На абордаж!
NathanielДата: Пятница, 18.09.2015, 16:15 | Сообщение # 208
Контр-адмирал
Группа: Капитан
Сообщений: 7703
Награды: 334
Репутация: 1744
Статус: В открытом море
Цитата PsychoShooter ()
Или же как заменить созданным кораблём корабль в квесте ПС "Предательство Грифо Сайфуса", чтобы вместо шебеки получить его?

Это тоже очень просто. Нужно найти код в скриптах К:ПС, именно в коде данного квеста, в котором инициализируется эта конкретная шебека, и просто заменить идентификатор и описание на соответствующее.


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!


Сообщение отредактировал Nathaniel - Пятница, 18.09.2015, 16:16
PsychoShooterДата: Пятница, 18.09.2015, 18:42 | Сообщение # 209
Матрос
Группа: Корсар
Сообщений: 30
Награды: 21
Репутация: 203
Статус: В открытом море
Странно, вот я вставил идентификатор нового корабля в первый квест, где герой получает люггер после убийства Томми Толстяка. По идее я теперь вместо люггера должен получить Синко Льягас, там даже была отдельная строка с названием корабля, который я изменил, но всё равно в игре я получаю люггер "Бешеное корыто". Видимо я слишком глуп для этого.

На абордаж!
NathanielДата: Пятница, 18.09.2015, 21:05 | Сообщение # 210
Контр-адмирал
Группа: Капитан
Сообщений: 7703
Награды: 334
Репутация: 1744
Статус: В открытом море
Цитата PsychoShooter ()
всё равно в игре я получаю люггер "Бешеное корыто"

Начнём с того, что я не смотрел скрипты К:ПС и не знаю вообще ничего о том, как они устроены. Но по своему личному опыту я не вижу никакой сложности в этом. Я уже написал о самом простом способе... Повторю ещё раз:
1) найдите с помощью встроенного поиска Windows строку с названием корабля (это строка, тип переменной string, так что ищите в кавычках);
2) осмотрите часть кода, в которых генерируется такое название, функций может бють несколько;
3) убедитесь в том, что контрольное сохранение, с которого вы загружаетесь, сделано до вызова функции создания корабля;

Немного по последнему пункту... Предположим, корабль генерируется в момент начала новой игры... Такое бывает. Значит - начинаем новую игру. Предположим, корабль генерируется в момент высадки на берег (я не проходил К:ПС - не знаю) в начале игры. Предположим, корабль сгенерируется после какого-то другого события... Так вот, найдите функцию или процедуру, в теле которой генерируется этот корабль. И поищите, откуда эта функция вызывается! Возможно, она вызывается из какого-то диалога, файла quest_reactions или reaction_functions. Или любого другого. Искать вызов рекомендую, опять же, с помощью встроенного поиска операционной системы по ключевым словам. Объект поиска - имя функции/процедуры, но без аргументов и скобок.

Пример функции - void GenerateMyQuest(); объект поиска же - слово "GenerateMyQuest"! Понятно, надеюсь, и то, что искать нужно в папке со скриптами, её задавайте местом поиска?


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!


Сообщение отредактировал Nathaniel - Пятница, 18.09.2015, 21:26
PsychoShooterДата: Понедельник, 21.09.2015, 16:19 | Сообщение # 211
Матрос
Группа: Корсар
Сообщений: 30
Награды: 21
Репутация: 203
Статус: В открытом море
Да, спасибо. Всё получилось.

Добавлено (21.09.2015, 16:19)
---------------------------------------------
После долгих попыток пришёл в выводу что в Проклятые Судьбой не читаются скрипты из папки Program.
Эту папку скачал с постороннего ресурса, а сам аддон установлен на чистую ГПК. Изменил подход. Установил ГПК, оба патча и кряк, открыл скрипты и установил аддон. В итоге в скриптах есть все данные из ГПК, но скриптов из ПС нет. Надоело возиться с этим и просто забил.


На абордаж!
NathanielДата: Понедельник, 21.09.2015, 18:32 | Сообщение # 212
Контр-адмирал
Группа: Капитан
Сообщений: 7703
Награды: 334
Репутация: 1744
Статус: В открытом море
Цитата PsychoShooter ()
Установил ГПК, оба патча и кряк, открыл скрипты и установил аддон

Тем самым Вы просто-напросто открыли скрипты К:ГПК версии 1.2.12, а скрипты ПС, очевидно, нужно подключать к игре. Теперь подробности... Скрипты К:ГПК 1.2.12 благодаря кряку имеют свойство считываться из папки Program без их переименования. Все остальные скрипты любого другого аддона считываются напрямую из файла stormex2.dll, поэтому для их считывания нужно:

1. В прилагаемой папке со скриптами переименовать все имена файлов и все ссылки на эти файлы внутри самих файлов. Полагаю, Вы знакомы с этим.
2. В файле engine.ini в качестве стартовой указать папку со скриптами К:ПС в строке:

Код
run = seadogs.c

указать другое название этого файла, в зависимости от того, как переименованы файлы.

P. S.

P. P. S.


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
MettДата: Понедельник, 21.09.2015, 18:58 | Сообщение # 213
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 90
Репутация: 555
Статус: В открытом море
я сейчас предложу самый простой способ (у меня в К3СМ прокатило)
вместо переименовывания всех файлов просто меняете program_directory = PROGRAM на program_directory = PROGRAM2 в engine.ini
папку со скриптами тоже переименовываете в PROGRAM2, никакие файлы переименовывать не надо


Что толку, если не можешь сделать мир лучше.
NathanielДата: Понедельник, 21.09.2015, 19:24 | Сообщение # 214
Контр-адмирал
Группа: Капитан
Сообщений: 7703
Награды: 334
Репутация: 1744
Статус: В открытом море
Цитата Mett ()
самый простой способ...

Мне этот простой способ невыгоден по той причине, что файлы оригинала и изменённые очень легко перепутать при работе с ними, т.к. название у них одинаковое.


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
PsychoShooterДата: Понедельник, 21.09.2015, 21:40 | Сообщение # 215
Матрос
Группа: Корсар
Сообщений: 30
Награды: 21
Репутация: 203
Статус: В открытом море
Сделал всё согласно плану, но при запуске:
http://firepic.org/?v=6.2015-09-21_1z1y0q0ectba.png
Хм.. ищу ошибку.

Добавлено (21.09.2015, 21:40)
---------------------------------------------
Метод с изменением названия папки не работает. Полная лажа с этими скриптами в аддоне.


На абордаж!

Сообщение отредактировал PsychoShooter - Понедельник, 21.09.2015, 20:48
NathanielДата: Вторник, 22.09.2015, 00:01 | Сообщение # 216
Контр-адмирал
Группа: Капитан
Сообщений: 7703
Награды: 334
Репутация: 1744
Статус: В открытом море
Цитата PsychoShooter ()
Хм.. ищу ошибку

Включите отладочные логи, если ещё не включили. FAQ, вопрос 7. Искать станет проще!


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
PsychoShooterДата: Вторник, 22.09.2015, 14:16 | Сообщение # 217
Матрос
Группа: Корсар
Сообщений: 30
Награды: 21
Репутация: 203
Статус: В открытом море
Цитата Nathaniel ()
Включите отладочные логи, если ещё не включили. FAQ, вопрос 7. Искать станет проще!

Ок, спасибо. Ошибка была связаны с items. Сейчас проверяю связь между файлами, потому что если запустить x_MainLine вместо MainLine, то пишет это:
COMPILE ERROR - file: lugger\MainLine.c; line: 4
Function [StartDamnedDestiny] already declared in: lugger\x_MainLine.c line 3
Уверен что справлюсь сам. Спасибо за помощь. Кстати, может вынести всё это в отдельную тему в разделе ПС? Вдруг у кого-то будут те же заморочки.

Добавлено (22.09.2015, 14:16)
---------------------------------------------
Перепроверил все файлы и.. о, чудо! Все изменения, которые я вносил теперь отражены в игре. Теперь могу свободно получить Синко Льягас по квесту. Каким-то мистическим образом скрипты перестали ругаться на ошибки и заработали.. боюсь здесь не обошлось без индейских обрядов Натаниэля.. спасибо, корсар!


На абордаж!
NathanielДата: Вторник, 22.09.2015, 15:55 | Сообщение # 218
Контр-адмирал
Группа: Капитан
Сообщений: 7703
Награды: 334
Репутация: 1744
Статус: В открытом море
Цитата PsychoShooter ()
Каким-то мистическим образом скрипты перестали ругаться на ошибки и заработали

Там всё начинается с одного-единственного первого файла seadogs.c. И по цепи загружаются все остальные. Если на первом этапе возникает ошибка из-за не обнаружения файла, процедуры или функции - дальше может быть всякое. У меня иной раз в лог вываливало до 1,5 тысячи строк. Поэтому важно отслеживать такие ошибки в самом начале.

Цитата PsychoShooter ()
Function already declared in...

И такое было тоже очень часто. И ещё у меня даже при стабильной работе игры выбивает в лог непонятные строки типа:
"Invalid function argument..."
"Function 'AddStr2Array' stack error..."


Они не критические, но вылезают постоянно и без конца.



Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
PsychoShooterДата: Вторник, 22.09.2015, 16:03 | Сообщение # 219
Матрос
Группа: Корсар
Сообщений: 30
Награды: 21
Репутация: 203
Статус: В открытом море
Всё работает, но в логе указаны ошибки в calendar и ShipsUtilites. Это не помешает нормальному прохождению игры?

На абордаж!
NathanielДата: Вторник, 22.09.2015, 16:10 | Сообщение # 220
Контр-адмирал
Группа: Капитан
Сообщений: 7703
Награды: 334
Репутация: 1744
Статус: В открытом море
Цитата PsychoShooter ()
Это не помешает нормальному прохождению игры?

Сложно точно ответить на этот вопрос. Но если игра запускается и работает без критических вылетов - всё нормально. Там много ошибок и строк будет записываться. Не только в error.txt, а и в system.txt и compile.exe. Там можно находить ошибки тоже. Я несколько раз нашёл там пару критических ошибок, когда переносил локации в игру из другой.


Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор.
Но я не нашёл там никого, кто не был бы моим другом!
Форум » Ад-доны для игр серии Корсары » FAQ по модам - "Сделай мод сам" » Урок № 6. Добавить новый корабль на основе имеющихся моделей
Поиск:

Copyright Pirates-Life.Ru © 2008-2018


Семь Футов под Килем - Бухта Корсаров и Пиратов!