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

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


Купить игры
 



Чат
 
500


Статистика
 
Пользователи, посетившие сайт за текущий день:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Модератор форума: NikK  
Кодинг квестов
MythДата: Понедельник, 02.01.2012, 13:49 | Сообщение # 141
Мичман
Группа: Пират
Сообщений: 146
Награды: 8
Репутация: -13
Статус: В открытом море
Знающие скриптеры нужны ваши подсказки:

1) Можно ли делать проверку на тип офицера и если да, то как она выглядит?
2) Можно ли делать проверку на то, что если в городе есть церковь, то выполнится определенное действие, что бы не нужно было указывать каждый город с церковью отдельно?
3) Нужно прописать корабль около Аматики, но как не пойму. Функцию нашел, но локаторы у вод Аматики не видны, и я не знаю, что туда писать......


Myth: Make Your Thought Heard

Сообщение отредактировал Myth - Понедельник, 02.01.2012, 17:40
korsary4Дата: Понедельник, 02.01.2012, 18:47 | Сообщение # 142
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
Quote (Myth)
1) Можно ли делать проверку на тип офицера и если да, то как она выглядит?

стандартной вроде никакой нет. Проверяй параметр у нпс Npchar.quest.officertype. Там хранится название должности. Типа boatswain, cannoner.
Остальное смотри в файле PROGRAM\scripts\officers.c

Quote (Myth)
Можно ли делать проверку на то, что если в городе есть церковь, то выполнится определенное действие, что бы не нужно было указывать каждый город с церковью отдельно?

Только если указывать конкретный город. По умолчанию в ГПК все церкви на одном локаторе висят во всех городах. Поэтому, думаю, будет работать такая конструкция:
Code
  if (Locations[FindLocation("Havana_town")].reload.l7.label == "Church")
   {
   Log_Info("Церковь в Havana_town есть.");
   }

Попробуй, я не проверял, других идей по этому поводу нет.

Quote (Myth)
3) Нужно прописать корабль около Аматики, но как не пойму. Функцию нашел, но локаторы у вод Аматики не видны, и я не знаю, что туда писать......

Смотри файл локаторов острова, в моделях лежит. Я там смотрю и потом экспериментирую. Может Watson просветит в этом вопросе. Он недавно мог такое использовать в одной линейки.



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
The_JokerДата: Понедельник, 02.01.2012, 18:50 | Сообщение # 143
Профессор-Икс
Группа: Корсар
Сообщений: 1532
Награды: 51
Репутация: 177
Статус: В открытом море
Quote (korsary4)
Я там смотрю и потом экспериментирую.

мог бы ко мне обратится)
Я знаю как включать локаторы в море) Но это долгая и муторная тема. Миф, насчет этогов в ЛС отвечу.

Quote (korsary4)
Он недавно мог такое использовать в одной линейки.

я везде это использую) Волшебство ребята)




MythДата: Понедельник, 02.01.2012, 18:56 | Сообщение # 144
Мичман
Группа: Пират
Сообщений: 146
Награды: 8
Репутация: -13
Статус: В открытом море
Спасибо обоим, про офицеров не понял лишь одно: где прописаны их типы. А так все понятно.

Myth: Make Your Thought Heard
korsary4Дата: Понедельник, 02.01.2012, 18:58 | Сообщение # 145
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
Quote (Myth)
где прописаны их типы. А так все понятно.

В файле PROGRAM\scripts\officers.c найди где прописано SetOfficerParam. Там все типы офицеров.



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
MythДата: Воскресенье, 08.01.2012, 14:30 | Сообщение # 146
Мичман
Группа: Пират
Сообщений: 146
Награды: 8
Репутация: -13
Статус: В открытом море
korsary4, понял теперь. Благодарю!

Добавлено (08.01.2012, 14:30)
---------------------------------------------
Снова вопрос по прописыванию корабля:

FantomMakeCoolSailor(sld, SHIP_SLOOP, "", CANNON_TYPE_CANNON_LBS12, 60, 60, 60);

За что отвечают последние 3 цифры?


Myth: Make Your Thought Heard

Сообщение отредактировал Myth - Воскресенье, 08.01.2012, 14:32
The_JokerДата: Воскресенье, 08.01.2012, 18:21 | Сообщение # 147
Профессор-Икс
Группа: Корсар
Сообщений: 1532
Награды: 51
Репутация: 177
Статус: В открытом море
Myth, найди исходник функции, и посмотри. Я бы помог, просто не с своего компа сижу. У брата на полчасика стырил ноут. =)



MythДата: Суббота, 21.01.2012, 17:19 | Сообщение # 148
Мичман
Группа: Пират
Сообщений: 146
Награды: 8
Репутация: -13
Статус: В открытом море
Уважаемые форумчане! Хочу поделиться с вами еще одним моим программным изменением для "Корсаров". Урок под эту тему писать нет смысла, он очень короткий. Поэтому пишу в теме по кодированию, если не в тему, то прощу перенести сообщение в нужный раздел.

Меня уже давно бесила кнопка F12, та самая что при нажатии на нее выводит информацию о ближайшем к ГГ персонаже. Смысла в обычном, не тестовом режиме игры, я в ней не вижу. Решил попробовать сделать так, что бы она работала только в режиме бета теста.

Нам нужно открыть файл "Debuger.c", расположен он в PROGRAM. И строки:



Превратить в:



Все, теперь при обычном режиме игры F12 не работает!

Добавлено (21.01.2012, 17:19)
---------------------------------------------

Quote (Watson)
после убийства закрываешь выходы из локации, и ставишь условие:

PChar.quest.Robert101.win_condition.l1 = "item";
PChar.quest.Robert101.win_condition.l1.item = "money";
PChar.quest.Robert101.condition = "Robert101";

вот когда ГГ заберёт деньги, выполнится кайс Robert101, в нём уже открываешь выходы из локации.


Watson, тут ты ошибся, не работает эта функция под деньги.


Myth: Make Your Thought Heard

Сообщение отредактировал Myth - Среда, 11.01.2012, 11:34
The_JokerДата: Суббота, 21.01.2012, 22:03 | Сообщение # 149
Профессор-Икс
Группа: Корсар
Сообщений: 1532
Награды: 51
Репутация: 177
Статус: В открытом море
Quote (Myth)
тут ты ошибся, не работает эта функция под деньги.

ошибся может быть ты. У меня работает. Несколько раз использовал, и работает без проблем - как на деньгах, так и на предметах.




MythДата: Среда, 25.01.2012, 21:59 | Сообщение # 150
Мичман
Группа: Пират
Сообщений: 146
Награды: 8
Репутация: -13
Статус: В открытом море
Ребят вопрос даже не по коду, а по глючности шторма: взял сегодня собрал на ГПК свой пак с изменениями, перенес его на другую машину, итог: не появляется именно одна определенная запись в СЖ и определенный персонаж, хотя на других машинах эта сборка корректно работает, таких приколов там нет. Не у кого таких проблем не было?

Myth: Make Your Thought Heard
korsary4Дата: Четверг, 26.01.2012, 13:09 | Сообщение # 151
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
Quote (Myth)
Watson, тут ты ошибся, не работает эта функция под деньги.

нужно прописывать еще кое-что в файле PROGRAM\quests\quests_check.c
так можно много условных прерываний прописать, типа ранг ГГ и т.п.

Quote (Myth)
Ребят вопрос даже не по коду, а по глючности шторма: взял сегодня собрал на ГПК свой пак с изменениями, перенес его на другую машину, итог: не появляется именно одна определенная запись в СЖ и определенный персонаж, хотя на других машинах эта сборка корректно работает, таких приколов там нет. Не у кого таких проблем не было?

У меня нормально, частенько приходится переносить файлы с компа на ноут, и в обратном порядке. Всегда все нормально работает.



Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
The_JokerДата: Четверг, 26.01.2012, 19:54 | Сообщение # 152
Профессор-Икс
Группа: Корсар
Сообщений: 1532
Награды: 51
Репутация: 177
Статус: В открытом море
Quote (Myth)
Ребят вопрос даже не по коду, а по глючности шторма: взял сегодня собрал на ГПК свой пак с изменениями, перенес его на другую машину, итог: не появляется именно одна определенная запись в СЖ и определенный персонаж, хотя на других машинах эта сборка корректно работает, таких приколов там нет. Не у кого таких проблем не было?

значит чтото не правильно перенёс.




MythДата: Четверг, 26.01.2012, 20:01 | Сообщение # 153
Мичман
Группа: Пират
Сообщений: 146
Награды: 8
Репутация: -13
Статус: В открытом море
Watson, там у меня архив распаковывающийся сам ошибки быть не может..

Myth: Make Your Thought Heard
korsary4Дата: Четверг, 26.01.2012, 20:36 | Сообщение # 154
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
Myth, если не сверхсекретная информация, хочешь мне можешь скинуть, проверю у себя.


Единственное, что можно сказать об удаче с уверенностью — она изменит.
--------
MythДата: Понедельник, 06.02.2012, 14:18 | Сообщение # 155
Мичман
Группа: Пират
Сообщений: 146
Награды: 8
Репутация: -13
Статус: В открытом море
korsary4, благодарю, но решение уже нашлось в виде целой папки PROGRAM.... jokingly

Добавлено (04.02.2012, 12:24)
---------------------------------------------
По квесту нужно, чтобы корабль был побит на 50% по корпусу, на 75 по парусам и команде. Все прописал, но повреждения лишь на корпусе появились, помогите пожалуйста.



Myth: Make Your Thought Heard

Сообщение отредактировал Myth - Понедельник, 06.02.2012, 14:24
Хуал-ДевисДата: Вторник, 27.03.2012, 13:15 | Сообщение # 156
Пороховая обезьяна
Группа: Пират
Сообщений: 3
Награды: 0
Репутация: 0
Статус: В открытом море
Народ можете помочь, я хочу убрать линейку Блада, и отправить ГГ в другую локацию, как это сделать?
Vitek5Дата: Вторник, 27.03.2012, 18:36 | Сообщение # 157
Матрос
Группа: Корсар
Сообщений: 58
Награды: 3
Репутация: 4
Статус: В открытом море
Вот небольшой список функций для создания квестов в игре Корсары: ГПК

Меняем нацию города:
SetCaptureTownByNation("ID Города", Нация);

Вызвать квест по окончанию диалога:
AddDialogExitQuestFunction("-------------");

Забираем корабль у ГГ:
DeleteAttribute(Pchar, "ship");
DeleteAttribute(Pchar, "ShipSails.gerald_name");
Pchar.ship.type = SHIP_NOTUSED;

Забираем предметы у ГГ. (Совсем все):
DeleteAttribute(Pchar, "items");
RemoveCharacterEquip(pchar, BLADE_ITEM_TYPE);
RemoveCharacterEquip(pchar, GUN_ITEM_TYPE);
RemoveCharacterEquip(pchar, SPYGLASS_ITEM_TYPE);
RemoveCharacterEquip(pchar, PATENT_ITEM_TYPE);
RemoveCharacterEquip(pchar, CIRASS_ITEM_TYPE);
RemoveCharacterEquip(pchar, MAPS_ITEM_TYPE);

Добавим NPC в пассажиры:
AddPassenger(pchar, characterFromID("ID NPC "), false);

Удалим NPC из пассажиров:
RemovePassenger(Pchar,CharacterFromID("ID NPC "));

Добавляет квест:
SetQuestHeader("Quest_Name");

Добавляет первую запись:
AddQuestRecord("Quest_Name", "1");

Перемещяет квест в Архив событий:
CloseQuestHeader(Quest_Name);

Установка отношений между нациями:
SetNationRelationBoth(Nation, Nation, Relation)

Где Nation:
Англия = 0.
Франция = 1.
Испания = 2.
Голландия = 3.
Пираты = 4.

Relation:
Дружеские = 0.
Торговые = 1.
Вражеские = 2.

Спавн NPC:
sld = CharacterFromID("ID NPC");
LAI_SetStayType(sld);
ChangeCharacterAddressGroup(sld,"Локация", "Группа локатора", "Локатор");

Проверка на наличие предмета:
if (GetCharacterItem(Pchar, "ID Предмера")>=Кол-во предметов(1))

Проверка на наличие денег:
if (sti(pchar.money) >= Кол-Во Денег)

Проверка на кол-во человек в команде:
bOk = (GetPartyCrewQuantity(Pchar, true) >= 90) || bBettaTestMode;
if (sti(Pchar.Ship.Type) != SHIP_NOTUSED && bOk)

Забираем у ГГ деньги:
AddMoneyToCharacter(pchar, -Число);

Смена начальной ветки диалога с NPC:
Characters[GetCharacterIndex("ID NPC")].Dialog.CurrentNode = "SecondTime";

Прописываем NPC тип Actor:
LAi_SetActorType(characterFromID("ID NPC"));

Прописываем NPC тип Война:
LAi_SetWarriorType(CharacterFromID("ID NPC"));

Помещаем NPC в группу Враги:
LAi_group_MoveCharacter(CharacterFromID("ID NPC"), "Enemy");

Бой между группой Враги и группой ГГ:
LAi_group_FightGroups("Enemy", LAI_GROUP_PLAYER, true);

Боевой режим для ГГ:
LAi_SetFightMode(pchar, true);

Запуск следующего Кейса через секунду:
LAi_QuestDelay("Кейс", 1.0);

Заставляем NPC бежать к указанному локатору:
LAi_ActorRunToLocator(characterFromID("ID NPC"), "Группа локатора", "Локатор", "Следующий кейс", -1);

Делаем радиус локатора Goto_Quest большим:
Locations[FindLocation("Локация")].locators_radius.goto.goto_quest = 3.0;

Начать диалог с ГГ:
LAi_ActorDialog(characterFromID("ID NPC"),Pchar , "", 0, 0.1);

Добавить перк:
SetCharacterPerk(sld, "Название Перка");

Делаем табличку "Прошло сорок минут":
В файл Reaction_functions.c прописываем:

void Ro_1()
{
SetLaunchFrameFormParam("Прошло сорок минут.", "Ro_2", 0, 3);
LaunchFrameForm();
WaitDate("", 0, 0, 0, 0, 40);
RecalculateJumpTable();
}

А в файле с диалогом прописываем эту строчку в нужный кейс:
AddDialogExitQuestFunction("Ro_1");
И ещё прописываем кейс Ro_2
Хуал-ДевисДата: Четверг, 29.03.2012, 11:05 | Сообщение # 158
Пороховая обезьяна
Группа: Пират
Сообщений: 3
Награды: 0
Репутация: 0
Статус: В открытом море
Волк777З
Quote (Волк777)
Jack-sparrow, Дать предметы куда проще, а блокировать нацию ни как. Я пробывал но не фига не удовалось только одному гг а блокировка стоит на бладе. Насчёт дать предметы пропиши if(startHeroType == 2) { ch.skill.freeskill = 0; ch.Skill.FreeSPECIAL = 0; sGlobalTemp = "Flag" + NationShortName(sti(pchar.nation)); SetCharacterPerk(pchar, sGlobalTemp); // перк флага нации SetCharacterPerk(pchar, "FlagPir"); SetCharacterPerk(pchar, "Energaiser"); // скрытый перк дает 1.5 к приросту энергии, дается ГГ и боссам уровней // раздаём предметы GiveItem2Character(Pchar, "blade62"); EquipCharacterbyItem(Pchar, "blade62"); GiveItem2Character(Pchar, "pistol10"); EquipCharacterbyItem(Pchar, "Pistol10"); TakeNItems(Pchar, "Jacks_compass", 1); // начальные скилы задать InitStartParam(pchar); SetEnergyToCharacter(pchar); initMainCharacterItem(); DeleteAttribute(pchar, "Ship"); pchar.Ship.Type = SHIP_Black_pearl; SetBaseShipData(pchar); pchar.Ship.Name = "Чёрная Жемчужина"; }

Фаил RPGUtilite

if(startHeroType == 2)
{
ch.skill.freeskill = 0;
ch.Skill.FreeSPECIAL = 0;
sGlobalTemp = "Flag" + NationShortName(sti(pchar.nation));
SetCharacterPerk(pchar, sGlobalTemp);
SetCharacterPerk(pchar, "FlagPir");
SetCharacterPerk(pchar, "Energaiser");
GiveItem2Character(Pchar, "blade2");
EquipCharacterbyItem(Pchar, "blade2");
GiveItem2Character(Pchar, "pistol2");
EquipCharacterbyItem(Pchar, "Pistol2");
InitStartParam(pchar);
SetEnergyToCharacter(pchar);
initMainCharacterItem();
DeleteAttribute(pchar, "Ship");
pchar.Ship.Type = SHIP_Barque;
SetBaseShipData(pchar);
pchar.Ship.Name = "Санта-Моника";
} я сделал вот таким образом, но при этом у ГГ появился не барк, а варшип где команда 400 человек и корпус 400 тысяч. + Когда задал оружие и экипировал он выдал оружие по уровню сложности, а то что я задал, просто в инвентарь положил, как это исправить?
И попутно ещё вопрос, как мне ГГ к примеру в порт Ла веги отправить, с новым диологом и НПС (временным).


Сообщение отредактировал Хуал-Девис - Четверг, 29.03.2012, 20:58
revivalДата: Четверг, 05.04.2012, 19:45 | Сообщение # 159
Матрос
Группа: Пират
Сообщений: 44
Награды: 1
Репутация: 9
Статус: В открытом море
Так я непонял можно ли какому то ГГ, кроме Блада заблокировать нацию или нет? И как?

Добавлено (05.04.2012, 19:45)
---------------------------------------------
Все снял первому ГГ блок на нацию.

MettДата: Суббота, 07.04.2012, 16:25 | Сообщение # 160
Капитан I ранга
Группа: Корсар
Сообщений: 586
Награды: 91
Репутация: 565
Статус: В открытом море
revival, можно конечно.. посмотри в characters\RPGUtilite

кстати, может кто не знает, но так делаются сбитые мачты:
персонаж_id.ship.masts.mast1 = 1.0;
персонаж_id.ship.masts.mast2 = 1.0;
персонаж_id.ship.masts.mast3 = 1.0;


Что толку, если не можешь сделать мир лучше.
Поиск:

Copyright Pirates-Life.Ru © 2008-2024


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