Всем привет! А вот как можно сделать, чтобы ты заходишь в дом(определенный) разговариваешь с человеком, после диалога он на тебя нападает, а потом обратно начинается диалог. Нпс я уже создал.
Можете сами кучу этих примеров найти... Такие моменты есть почти в каждом генераторном квесте при поединке с капитаном корабля. Например, в файле QuestUtilite.c есть вот такая процедура SetQuestAboardCabinDialog(); её вам и следует изучить. Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Сообщение отредактировал Nathaniel - Суббота, 19.07.2014, 15:52
Всем привет ;) Вопрос следующий хочу снять "паузу мира" в игре дабы не зависимо от пройденных кв развития ГГ мир жыл бы своей жизью какие строки в каких файлах нужно править для этого? Есть ли возможность создать таковое желательно с возможным учащением по ходу прокачки ГГ (желательно с учащением количества карабельных перков "флаги все же не так быстро можно выбрать") частоты смены отношений между нациями и соответственно все более и более частыми осадами колоний и сменой их владельцев. И еще вопрос если реально то к примеру ввести отдельной строкой захват колоний ГГ герою с свое пользование либо же передачу колоний в собственность нации на которую работает ГГ к примеру после изучения последнего перка на флаг нации. СПС ;)
Всё дело в том, что физически "паузу мира" отключить можно, но лучше до определённого момента этого не делать! Почему? Потому что у вас накроются все нац. линейки и некоторые побочные квесты!
Сама же "пауза мира" отключается очень просто!.. Выбираете любой диалог с генерал-губернатором, проматываете к концу нац. линейки, смотрите там примерно такой фрагмент:
Цитата
case "Step_12_6": dialog.text = "Итак, основные задачи, поставленные передо мной Испанией, выполнены."; link.l1 = "Можете в этом не сомневаться, сеньор генерал-губернатор..."; link.l1.go = "exit"; AddTitleNextRate(sti(NPChar.nation), 4); DeleteAttribute(pchar, "questTemp.Waiting_time"); pchar.questTemp.State = "EndOfQuestLine"; bWorldAlivePause = false; // Конец линейки ... ... break;
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Всё дело в том, что физически "паузу мира" отключить можно,
из задуманного мной в этом сам по себе смысл и заключался дабы не мир зависил от ГГ до того как ГГ пройдет нац линейку или же провалит ее. А сама по себе мировая позиция дабы влияла на ГГ. Пока ГГ поехал выполнять одно задание выпивая в баре видит что его колонию с ген губернатором осаждают к примеру. Бросаешь все несешься спасать колонию так как в лучшем вале просто разграбят в худшем нужно искать потом куда перебрался Ген губернатор дабы потом ему же и отчитаться о проделанной работе. Так по идее более верно с логической стороны. А привязка к флагам тут как простое усложнение ГГрею всего мира плыл сдавать трафей и содержимое трюма к примеру на ямайку а там уже испания при птдержке оранжа бедный порт роял разнесла с такой скоростью что испания и англия к примеру уже в нейтрале а из перков ГГ есть флаги англии франции и пиратов (вот и делай вид что ты испанец или голандец флаги которых поднять еще ГГ не может) тут будет включаться шанс прокатит скрытностью обман испанцев что ты француз к примеру под флагом англии. Забыл сказать что я в редактировании чайник поэтому не могли бы уточнить где данные строки нужно было найти и поправить. СПС ;)
Сообщение отредактировал _Mihas_ - Суббота, 19.07.2014, 17:25
Странно, а как у вас, в таком случае, игра работает?! Поищите файл \program\characters\QuestUtilite.c.
Цитата_Mihas_ ()
в этом сам по себе смысл и заключался
Прошу прощения, но я в вашем потоке бессвязной логики разобраться абсолютно не могу... Или описывайте свою цель более понятно, или объясните - что вам всё-таки нужно? Потрудитесь хотя бы запятые расставлять, если хотите добиться того, чтобы вас поняли... Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Сообщение отредактировал Nathaniel - Суббота, 19.07.2014, 17:28
целью снять "паузу мира" было желание заставить ГГ подстраиваться под игру. А не игру заставлять ждать когда ГГ пройдет нац линейку. В виде примера был приведен вариант. ГГ берет квест у генерал губернатора и уплывает на его выполнение. Пока ГГ выполнял задание генерал губернатора, да добирался к пункту его выполнения, пройдет какой либо отрезок игрового времени. И если ранее при работающей "паузе мира" где взял КВ туда и плывешь не задумываясь там ли еще генерал губернатор. То при снятии таковой, нужно будет выпить в баре с целью уточнения нет ли осады города в котором брался кв от генерал губернатора. После выполнения задания, так же нужно будет следить за тем как долго ГГ плывет с отчетом, к генерал губернатору. Так как если по новостям мы видели что осады города с генерал губернатором не происходило, то и плыть следует в ту колонию где был генерал губернатор. Если же были новости что колония в осаде и продержится еще к примеру 8 дней, то о заходе в попутные порты, боевые действия и тп. может быть чревато последствиями. А именно переездом Генерал губернатора в другую колонию, а по выходу из глобальной карты на боевую, ГГ или же попадает в осаждающую эскадру. Или же и вовсе будет атакован фортом новых владельцев. Словом если это все сложно для чтения моего стиля описания, если возможно укажите плиз 1е какие строки в каких файлах и каким редактором мне нужно найти в оригинальном виде (такие как они есть без редактирования) 2е что на что нужно будет изменить дабы пауза мира была снята, это отражалось в ветке наций. 3е и была бы возможность захвата колоний как себе так и нации на которую служит ГГ. Про флаги уже молчу понял что слишком загнул, сделать привязку корабельных перков к частоте смен отношений наций. СПС ;)
Сообщение отредактировал _Mihas_ - Суббота, 19.07.2014, 18:12
Парни!! Нужна ваша помощь. Как переработать вот это: //капитан шебеки Синяя Птица if (refChar.CaptanId == "BlueBirdCapitain" && pchar.questTemp.BlueBird == "toSeaBattle") { LAi_SetCheckMinHP(refChar, 5, true, "QuestAboardCabinDialog"); // сколько НР мин }
Так чтобы там был свой НПС("Arno_Bodett"), Свой квест "BedBoys", и свой диалог"Fergus_Bolter"... Помогите, а то что-то у меня не получается. Заранее спасибо.
Chemshenik, идентификатор "BlueBirdCapitain" - это ID капитана "Синей птицы", а не модель или что-то подобное. Если вы хотите поменять эту модель - найдите инициализацию этого капитана по этому идентификатору. Где конкретно - я не помню уже...
ЦитатаChemshenik ()
свой диалог"Fergus_Bolter"
Диалог для NPC задаётся внутри инициализации персонажа. Например:
Будет означать, что в файле ForAll_dialog.c будет прописан весь диалог с указанным персонажем. Если же вы создали отдельный файл диалога для этого персонажа, нужно указать имя этого файла вместо указанного...
ЦитатаChemshenik ()
чтобы там был свой НПС("Arno_Bodett")
А теперь - сам инишник вашего персонажа. Он должен начинаться строкой типа:
Я обычно создаю всех персонажей внутри файла LSC_Q2Utilite.c, а диалоги для них - в ForAll_dialog.c. Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
А разве это гарантирует беспрепятственный и беспроблемный прогон всех нац. линеек? Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Nathaniel, Спасибо что пробовали мне помочь. Но мне нужно было не это. Я уже нашел ответ на свой вопрос. Простите за лишнюю трату вашего времени...
Добавлено (20.07.2014, 01:19) --------------------------------------------- А кто знает, как сделать чтобы ты убил персонажа, обыскал его, взял например письмо, и только тогда появиться запись СЖ??
А разве это гарантирует беспрепятственный и беспроблемный прогон всех нац. линеек?
нет, не гарантирует, но человеку очень хотелось... желание клиента - закон
ЦитатаChemshenik ()
А кто знает, как сделать чтобы ты убил персонажа, обыскал его, взял например письмо, и только тогда появиться запись СЖ??
найти функцию обработки взятия предмета с трупа и туда дописать условие на получение определенного предмета в определенной ситуации Что толку, если не можешь сделать мир лучше.
Джин-Бейн, это только один из вариатнов у меня вот второй назрел: дописать функцию TakeNItems(...), опять же с проверками вариатов то много, можно как угодно крутить-вертеть, а я лишь предложил человеку логическую последовательность действий
p.s. сам я за скриптами с зимы не сидел, уже начинаю хватку терять.. так-то Что толку, если не можешь сделать мир лучше.
найти функцию обработки взятия предмета с трупа и туда дописать условие на получение определенного предмета в определенной ситуации
Спасибо)) Я нашел и сделал))
Добавлено (20.07.2014, 10:06) --------------------------------------------- У меня еще вопрос. Я создал поселение на Терксе, взял модель жемчужного промысла, и удалил оттуда всех граждан, что на жемч. промысле, и хочу добавить туда своих. Вопрос: Нужно создавать каждого НПС и ставить туда, или есть другой способ??
Нужно создавать каждого НПС и ставить туда, или есть другой способ?
Есть! Нужно предварительно написать в файле LAi_utilites.c процедуру заполнения поселения, а затем прописать имя этой процедуры в файле LAi_login.c внутри процедуры LAi_CharacterPostLogin()! Пример заполнения можете посмотреть в указанном файле. Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!