FAQ по модам для игр серии "Корсары"
|
|
|
Лисичка | Дата: Понедельник, 10.04.2017, 17:35 | Сообщение # 2 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как лишить главного героя возможности владеть саблей, пистолетом и подзорной трубой навсегда
Если возникает необходимость лишить главного героя сабли, пистолета и подзорной трубы навсегда то в casе квеста вставляем этот код:
Код RemoveCharacterEquip(pchar, BLADE_ITEM_TYPE);RemoveCharacterEquip(pchar, GUN_ITEM_TYPE); RemoveCharacterEquip(pchar, SPYGLASS_ITEM_TYPE); EnableEquip(pchar, BLADE_ITEM_TYPE, false); EnableEquip(pchar, GUN_ITEM_TYPE, false); EnableEquip(pchar, SPYGLASS_ITEM_TYPE, false); TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, BLADE_ITEM_TYPE)); TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, GUN_ITEM_TYPE)); TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, SPYGLASS_ITEM_TYPE));
При начале исполнения case квеста в котором есть этот код у главного героя пропадут сабля, пистолет и подзорная труба.
Если надо лишить главного героя только сабли то вставляем в case квеста такой код:
Код RemoveCharacterEquip(pchar, BLADE_ITEM_TYPE); EnableEquip(pchar, BLADE_ITEM_TYPE, false); TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, BLADE_ITEM_TYPE));
Если надо лишить главного героя только пистолета то вставляем в case квеста такой код:
Код RemoveCharacterEquip(pchar, GUN_ITEM_TYPE); EnableEquip(pchar, GUN_ITEM_TYPE, false); TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, GUN_ITEM_TYPE));
Если надо лишить главного героя только подзорной трубы то вставляем в case квеста такой код:
Код RemoveCharacterEquip(pchar, SPYGLASS_ITEM_TYPE); EnableEquip(pchar, SPYGLASS_ITEM_TYPE, false); TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, SPYGLASS_ITEM_TYPE));
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:37 | Сообщение # 3 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как вернуть главному герою возможность владеть саблей, пистолетом и подзорной трубой
Если возникает необходимость вернуть главному герою возможность владеть саблей, пистолетом и подзорной трубой навсегда то в casе квеста вставляем этот код:
Код EnableEquip(pchar, SPYGLASS_ITEM_TYPE, true); EnableEquip(pchar, BLADE_ITEM_TYPE, true); EnableEquip(pchar, GUN_ITEM_TYPE, true);
EnableEquip(pchar, SPYGLASS_ITEM_TYPE, true); -- Дает возможность главному герою иметь подзорную трубу
EnableEquip(pchar, BLADE_ITEM_TYPE, true); -- Дает возможность главному герою иметь саблю
EnableEquip(pchar, GUN_ITEM_TYPE, true); -- Дает возможность главному герою иметь пистолет
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:38 | Сообщение # 4 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как выдать/забрать определенные предметы главному герою
Код PChar.DisableExchangeItems = true; //забрать предметы из рюкзака
Код TakeItemFromCharacter(pchar, "ID предмета"); //забрать предмет у главного героя
Код TakeNItems(PChar, "ID предмета", -1); //забрать предмет из рюкзака TakeNItems(PChar, "ID предмета", 1); //положить предмет в рюкзак
Код GiveItem2Character(pchar, "blade1"); //положить в рюкзак саблю EquipCharacterByItem(pchar, "blade1"); //вооружить главного героя саблей Код GiveItem2Character(PChar, "gun1"); //положить в рюкзак пистолет EquipCharacterByItem(PChar, "gun1"); //вооружить главного героя пистолетом Код GiveItem2Character(PChar, "spyglass1"); //положить в рюкзак подзорную трубу EquipCharacterByItem(PChar, "spyglass1"); //дать главному герою подзорную трубу
Список всех доступных предметов вы можете найти в файле initItems.c в папке program/items
В рюкзак к главному герою вы можете положить любой предмет.
Код GiveItem2Character(pchar, "potion1"); //положить в рюкзак личилку
Код GiveItem2Character(pchar, "ID предмета"); //положить в рюкзак предмет с ID прописанным в файле initItems.c
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:41 | Сообщение # 5 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как лишить/дать корабль главному герою
Если при создании квеста возникла необходимость лишить главного героя корабля, то можно использовать этот код
Код pchar.Ship.Type = SHIP_NOTUSED;
Если при создании квеста возникла необходимость дать главному герою корабль, то можно использовать этот код
Код pchar.Ship.Type = GenerateShip(SHIP_QSF_LUGGER, 1);
Информацию о всех кораблях можно найти в файле Ships_init.с в папке program/ships
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:42 | Сообщение # 6 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как установить отношения «наций» к главному герою
Чтобы установить отношение «наций» к главному герою используем такой код
Код SetRelations(нация, отношение); PChar.reputation.нация = число десятками от 0 до 100 ;
Допустим отношение Англии к главному герою враждебные, пишем так
Код SetRelations(ENGLAND, RELATION_ENEMY); PChar.reputation.England = 0;
Допустим отношении Англии к главному герою нейтральное тогда пишем так
Код SetRelations(ENGLAND, RELATION_NEUTRAL); PChar.reputation.England = 50;
или
SetRelations(ENGLAND, RELATION_FRIEND); PChar.reputation.England = 50;
Допустим отношение Англии к главному герою дружественное, тогда пишем так
Код SetRelations(ENGLAND, RELATION_FRIEND); PChar.reputation.England = 100;
Название «наций» ENGLAND / England - Англия HOLLAND / Holland - Голландия SPAIN / Spain - Испания FRANCE / France - Франция SMUGGLER / Smuggler - Контрабандисты PIRATE / Pirate - Пираты
Уровень репутации от 0 до 40 – враждебная 50 – нейтральная от 60 до 100 – дружественная
например: 0 - ужасная 10 - ужасная 20 - враждебная 30 - недружелюбная 40 - настороженная 50 - нейтральная 60 - симптизарующая и так далее.
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:43 | Сообщение # 7 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как установить отношения «наций» друг к другу
Допустим вам надо установить отношения между Англией и Францией как враждебные
Код SetNationRelation(ENGLAND, FRANCE, RELATION_ENEMY);
Допустим вам надо установить отношения между Англией и Францией как нейтральные
Код SetNationRelation(ENGLAND, FRANCE, RELATION_NEUTRAL);
Допустим вам надо установить отношения между Англией и Францией как дружеские
Код SetNationRelation(ENGLAND, FRANCE, RELATION_FRIEND);
Допустим вам надо установить альянс между Англией и Францией
Код SetNationRelation(ENGLAND, FRANCE, RELATION_ALLIANCE);
Название «наций» ENGLAND - Англия HOLLAND - Голландия SPAIN - Испания FRANCE - Франция PIRATE - Пираты
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:45 | Сообщение # 8 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как уменьшить/увеличить репутацию главного героя у «наций»
Допустим вам потребовалось уменьшить или увеличить репутацию главного героя у той или иной «нации». Для этого используем такой код
Код ChangeCharacterReputation(pchar, число со знаком минус или без, нация);
Допустим вы хотите уменьшить репутацию главного героя у Англичан на 15, тогда пишем так
Код ChangeCharacterReputation(pchar, –15, ENGLAND);
Допустим вы хотите увеличить репутацию главного героя у пиратов на 25, тогда пишем так
Код ChangeCharacterReputation(pchar, 25, PIRATE);
Название «наций» ENGLAND - Англия HOLLAND - Голландия SPAIN - Испания FRANCE - Франция SMUGGLER - Контрабандисты PIRATE - Пираты
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:47 | Сообщение # 9 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как дать/взять золотые монеты главному герою
Если возникла необходимость забрать или дать главному герою золотые монеты, то пишем этот код
Код AddMoneyToCharacter(pchar, цифра со знаком минус или без);
Например вам необходимо выдать главному герою 1 000 золотых, то пишем такой код
Код AddMoneyToCharacter(pchar, 1000);
Если вам надо отобрать у главного героя 500 золотых монет, то пишем такой код
Код AddMoneyToCharacter(pchar, -500);
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:48 | Сообщение # 10 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как сделать всплывающую надпись на экране
Если вам необходимо проинформировать о чем–либо игрока с помощью всплывающей надписи на экране, то используйте этот код
Код Log_SetStringToLog("ваш текст");
Например, вы хотите сообщить игроку, что в судовом журнале появилась новая запись, тогда после кода добавления записи в судовой журнал пишете так
Код Log_SetStringToLog("новая запись в судовом журнале");
Если вам надо сообщить, что главный герой получил золотые монеты в ходе выполнения квеста, то пишем так
Код Log_SetStringToLog("вы получили 1000 золотых");
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:51 | Сообщение # 11 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как вставить свою картинку–заставку во время прохождения квеста
Можно украсить прохождение квеста картинкой–заставкой которая будет появляться при переходе из одного case квеста в другой. Для вставки картинки пишем такой код
Код StartPictureAsVideo("loading\название файла с картинкой");
Например, для вызова заставки при переходе в банк код пишется так
Код StartPictureAsVideo("loading\Bank_512.tga");
А для вызова заставки при переходе в церковь пишем так
Код StartPictureAsVideo("loading\Church_512.tga");
Хотя в коде картинка имеет расширение .tga , в папке файл имеет расширение .tga.tx. Перевести свою картинку с расширением .tga в текстуру с расширением .tga.tx можно с помощью программы–конвертера ConvertorTX
Файлы с картинками для загрузки на экран хранятся в папке loading Путь к папке в игре КВС: RESOURCE\TEXTURES\loading Путь к папке в игре КВЛ: RESOURCE\TEXTURES\Loading\inside Соответственно, и названия файлов разные. Для картинки–заставки при входе в банк в игре КВС файл имеет такое имя Bank_512.tga.tx, а в игре КВЛ такое bank.tga.tx .
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:52 | Сообщение # 12 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как добавить в квест видео
Если возникла необходимость добавить видео в квест, то можно это сделать таким кодом
Код sVideoFile = "название файла";
Например, у вас есть видео файл VideoCaseA.wmv и вы хотите вставить его в игру, в одну из веток квеста. В нужном месте квеста пишете этот код
Код sVideoFile = "VideoCaseA";
Все видео файлы игры хранятся в папке RESOURCE\VIDEOS
Все видео файлы которые вы хотите использовать в игре должны иметь расширения .wmv, например VideoCaseA.wmv.
Оптимальное разрешение для видео 720х576, но если ваше видео 640х480, сойдет и такое.
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:54 | Сообщение # 13 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как событиям в квесте придать вид широкоформатного видео
Если вы желаете украсить выполнения какого-либо действия в квесте, например, диалог между главным героем и НПС, придав ему вид широкоформатного видео, то делается это с помощью кода
Код StartQuestMovie(true, true, true); EndQuestMovie();
Обратите внимание, что начинать выполнения надо в одном case квеста, а заканчивать в следующем case. Выглядеть это будет так
Код case "start_movie": StartQuestMovie(true, true, true); break; case "end_movie": EndQuestMovie(); break;
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:55 | Сообщение # 14 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как вставить свое видео как заставку к игре
Находим в папке PROGRAM файл seadogs.c. Ищем в нем такие строки.
Код void Main_LogoVideo() { int i = sti(InterfaceStates.videoIdx); switch(i) { case 0: { InterfaceStates.videoIdx = 1; StartPostVideo("PlaylogicLogo",1); return; } break;
case 1: { InterfaceStates.videoIdx = 2; StartPostVideo("1CLogo",1); return; } break;
case 2: { InterfaceStates.videoIdx = 4; StartPostVideo("AkellaLogo",1); return; } break; }
Мы видим последовательность вывода видео файлов на экран при загрузке игры. Вначале запускается файл PlaylogicLogo из case 0, после файл 1CLogo из case 1, и последним запускается файл AkellaLogo из case 2.
Чтобы вставить свое видео замените название файла на свое в выражении StartPostVideo("название файла",1);
Например, если у вас есть видео файл Zastavka.wmv и вы хотите установить его как видео заставку к игре, и файл всего один, то меняем название в case 0, в коде StartPostVideo("PlaylogicLogo",1); на название своего файла. А case 1 и case 2 стираем, так как они нам не нужны. Запись в файле должна иметь такой вид
Код void Main_LogoVideo() { int i = sti(InterfaceStates.videoIdx); switch(i) { case 0: { InterfaceStates.videoIdx = 1; StartPostVideo("Zastavka",1); return; } break; }
Все видео файлы игры хранятся в папке RESOURCE\VIDEOS
Все видео файлы которые вы хотите использовать в игре должны иметь расширения .wmv, например VideoCaseA.wmv.
Оптимальное разрешение для видео 720х576, но если ваше видео 640х480, сойдет и такое.
Стоит рассмотреть и другой вариант. Как добавление своего видео файла в качестве заставки реализовали создатели игры КВС. Вот их решение
Код void Main_LogoVideo() { int i = sti(InterfaceStates.videoIdx); switch(i) { case 0: { InterfaceStates.videoIdx = 1; //StartPostVideo("PlaylogicLogo",1); StartPostVideo("error",1); return; } break;
case 1: { InterfaceStates.videoIdx = 2; //StartPostVideo("1CLogo",1); StartPostVideo("error",1); return; } break;
case 2: { InterfaceStates.videoIdx = 4; StartPostVideo("WindFreedom",1); return; } break; }
Как видите, они отключили запуск видео из case 0 и case 1, а свое вставили в case 2.
|
|
| |
Лисичка | Дата: Понедельник, 10.04.2017, 17:58 | Сообщение # 15 |
Ветеран
Сообщений: 537
Награды: 8
Репутация: 8
Статус: Offline
| Как добавить запись в судовой журнал
Чтобы добавить запись в суровой журнал, вначале, открываем файл quests_texts.txt который находится в папке RESOURCE\INI\texts\russian\questbook и делаем там записи которые после будут отображаться в судовом журнале при вызове его из интерфейса игры
Код #QUEST First quest //обязательно на английском Заголовок квеста #TEXT 1 Первая запись в судовой журнал #TEXT 2 Вторая запись в судовой журнал #TEXT 3 Третья запись в судовой журнал
Чтобы интегрировать ваши записи сделанные в файле quests_texts.txt в игру в case квеста пишем
Код SetQuestHeader("First quest"); //добавляет заголовок в судовой журнал Код AddQuestRecord("First quest", "1"); //добавляет первую запись
Код AddQuestRecord("First quest", "2"); //добавляет вторую запись
Код AddQuestRecord("First quest", "3"); //добавляет третью запись
Код CloseQuestHeader("First quest"); //закрывает судовой журнал
|
|
| |