|
Вопросы по созданию модификаций
| |
Chemshenik | Дата: Четверг, 07.08.2014, 22:42 | Сообщение # 1481 |
Пороховая обезьяна
Группа: Пират
Сообщений: 17
Награды: 0
Репутация: 0
Статус: В открытом море
| Цитата Mett ( ) поисковик винды вам в руки Не удалось найти. Нужно сделать так, что после получения перка, во время контрабанды патруль не появляется.
|
|
| |
Nathaniel | Дата: Четверг, 07.08.2014, 23:00 | Сообщение # 1482 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата Chemshenik ( ) Не удалось найти А вы искали? )))
Цитата Chemshenik ( ) после получения перка, во время контрабанды патруль не появляется И при чём же здесь получение перка? Патруль появляется из-за недостатка "скрытности", а не после получения перка. А это значит - нужно менять условие появления патруля.
Вам ведь правильно написал Mett - нужно уметь пользоваться поиском... Как? Мы знаем, что это диалоги патруля, который появляется после сделки с контрабандистами. Вспоминаем какую-нибудь строку из этого диалога. Например: "Я раздаю золото..." Вбиваете её в поиск и находите файл Smuggler_Guards_dialog.c. Теперь просматриваете, в каких файлах встречается упоминанание этого диалога. Результат поиска выдаёт только данный файл и файл quest_reactions.c. Ищем вхождение указанной строки в этом файле. Находим фрагмент "Rand_ContrabandInterruption", который просматриваем. Не найдя в нём условия, ищем дальше...
Этот поиск укажет вам на ещё один файл - Smuggler_OnShore_dialog.с. Открываем его и находим замечательный фрагмент кода!
Цитата if (GetSummonSkillFromNameToOld(Pchar, SKILL_SNEAK) < frandSmall(13.0*(1.0 - pow(0.9, sti(PChar.rank)))) && !CheckAttribute(PChar, "GenQuest.contraTravel.PatrolFight")) { AddDialogExitQuest("Rand_ContrabandInterruption"); PChar.GenQuest.contraTravel.PatrolFight = true; }
Меняем выделенное условие, напрямую зависящее от "скрытности" (SKILL_SNEAK), и прыгаем до потолка от счастья! Или же убираем условие в фигурных скобках, отвечающее за появление (процедура "Rand_ContrabandInterruption") в локации патруля.
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Сообщение отредактировал Nathaniel - Четверг, 07.08.2014, 23:08 |
|
| |
Reboroda | Дата: Среда, 20.08.2014, 22:39 | Сообщение # 1483 |
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
| Как правильно прочекать какой нибудь из SPECIALов у офицера? Никак не получается разобраться.
В case "hired" диалога нанятого оффа я прописал условие на каюту, а в нем - условие на силу и выносливость перса (она потом будет бонуситься, таким образом после должен остаться только пункт в else):
Код if (PChar.location == Get_My_Cabin()) { Link.l3 = RandPhraseSimple("У тебя есть какая-нибудь нужда? Что-то ты совсем раскис...", "Почему такой хмурый? Выкладывай, что у тебя на душе...");
if (CheckAttribute(npchar, SPECIAL_S) == 4 && CheckAttribute(npchar, SPECIAL_E) == 5) { Link.l3.go = "Need_Tabak_Yes"; } else { Link.l3.go = "Need_Tabak"; } }
Сила у оффа = 4, выносл = 5, но срабатывает только кейс в else. Не хочет он сообщать, что ему надо курнуть табаку, чтоб взбодриться.
- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться? - Да я вообще только одним глазком...
|
|
| |
Nathaniel | Дата: Среда, 20.08.2014, 22:59 | Сообщение # 1484 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата Reboroda ( ) срабатывает только кейс в else Если не ошибаюсь, вместо CheckAttribute(npchar, SPECIAL_S) == 4 надо писать условия для проверки PIRATES вот так:
например Код if (GetCharacterSPECIAL(npchar, "Power") == 4) { ... }
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Сообщение отредактировал Nathaniel - Среда, 20.08.2014, 23:10 |
|
| |
Reboroda | Дата: Среда, 20.08.2014, 23:37 | Сообщение # 1485 |
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
| Nathaniel, не чекается. Я пробовал и SPECIAL_S прописать вместо Power, результат = 0.
Ну да ладно. Я уже обыграл по-другому, через метку события в темп (типа story event создал). Метка легко чекается, потом ее удаляю и все дела. Спс за ответ. Вопрос снят.
- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться? - Да я вообще только одним глазком...
|
|
| |
Nathaniel | Дата: Среда, 20.08.2014, 23:42 | Сообщение # 1486 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата Reboroda ( ) не чекается Но это условие встречается не один раз в коде игры... И там оно работает исправно...
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
|
|
| |
Reboroda | Дата: Среда, 20.08.2014, 23:48 | Сообщение # 1487 |
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
| Nathaniel, странно, значит я где-то напортачил. Буду проверять.
- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться? - Да я вообще только одним глазком...
|
|
| |
korsary4 | Дата: Пятница, 22.08.2014, 00:35 | Сообщение # 1488 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
| А что, нынче в гпк такая тема не работает?
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Nathaniel | Дата: Пятница, 22.08.2014, 22:21 | Сообщение # 1489 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата korsary4 ( ) А что, нынче в гпк такая тема не работает? Встречается, но только в одной процедуре во всей игре. В английской линейке такой тип приписан квестовой девушке Джиллиан Эттербери.
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
|
|
| |
korsary4 | Дата: Пятница, 22.08.2014, 22:43 | Сообщение # 1490 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
| Цитата Nathaniel ( ) В английской линейке такой тип приписан квестовой девушке Джиллиан Эттербери. А оно работает вообще? Я пытался прописать и ничего. НПС в церкви я так и не увидел, продолжал в городе бродить в указанное время. Или это только означает, что он может быть в церкви, но не факт что он там будет?
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Nathaniel | Дата: Пятница, 22.08.2014, 22:51 | Сообщение # 1491 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата korsary4 ( ) Или это только означает, что он может быть в церкви, но не факт что он там будет? Если верить квестовому диалогу - может быть как в церкви, так и в городе... Вот так задаётся:
Код LAi_SetFanatic(sld, "PortRoyal_church", "sit", "sit1", 11.0, 14.0); То есть, вероятно, банально может получиться так, что не окажется свободного локатора...
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Сообщение отредактировал Nathaniel - Пятница, 22.08.2014, 22:51 |
|
| |
Джин-Бейн | Дата: Вторник, 26.08.2014, 16:53 | Сообщение # 1492 |
Капитан I ранга
Группа: Команда Аддона
Сообщений: 1073
Награды: 40
Репутация: 197
Статус: В открытом море
| Цитата Nathaniel ( ) То есть, вероятно, банально может получиться так, что не окажется свободного локатора.. korsary4, Да сделаю я тебе локатор, где и когда скажешь....
|
|
| |
korsary4 | Дата: Вторник, 26.08.2014, 17:47 | Сообщение # 1493 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
| Цитата Джин-Бейн ( ) korsary4, Да сделаю я тебе локатор, где и когда скажешь.... Да не, не в этом беда)) Локатор я и сам сделаю, ну почти везде. При прописывании подобного рода - LAi_SetFanatic(sld, "PortRoyal_church", "sit", "sit1", 11.0, 14.0); я не застаю нпс в церкви в нужное время, он тупо по городу бродит. На занятый локатор вроде и не свалить, так как он никем и не занят там.
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Nathaniel | Дата: Вторник, 26.08.2014, 18:48 | Сообщение # 1494 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата korsary4 ( ) я не застаю нпс в церкви в нужное время, он тупо по городу бродит Тогда, наверное, надо писать другой код. В обход этой функции. Принудительно переместить нужного NPC в заданную локацию, а потом вернуть на место. Это возможно?
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
|
|
| |
korsary4 | Дата: Вторник, 26.08.2014, 18:58 | Сообщение # 1495 |
Адмирал
Группа: Администратор
Сообщений: 5204
Награды: 496
Репутация: 1935
Статус: В открытом море
| Цитата Nathaniel ( ) Тогда, наверное, надо писать другой код. В обход этой функции. Принудительно переместить нужного NPC в заданную локацию, а потом вернуть на место. Это возможно? Не ну так я могу, но мне не столь это по квесту нужно, сколь можно ли используя стандартный функционал сделать из нпс фанатика-церковника. А здесь то ли функция не работает, то еще что. Но я пока не знаю пригодится ли мне, поэтому потом если потребуется, нужно будет сделать свое или придумать что.
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
|
|
| |
Reboroda | Дата: Четверг, 28.08.2014, 12:17 | Сообщение # 1496 |
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
| Мастера кодинга, кто-нибудь знает функцию, чтобы перезагрузить текущую локацию (ту в которой ГГ), тобишь рефрэшнуть ее? Что-т не могу найти никак поиском.
- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться? - Да я вообще только одним глазком...
|
|
| |
Nathaniel | Дата: Четверг, 28.08.2014, 14:52 | Сообщение # 1497 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата Reboroda ( ) кто-нибудь знает функцию, чтобы перезагрузить текущую локацию Знаем, это процедура DoQuestReloadToLocation()
Пример перегрузки в ту же локацию: DoQuestReloadToLocation(pchar.location, pchar.location.group, pchar.location.locator, "");
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
|
|
| |
Джин-Бейн | Дата: Четверг, 28.08.2014, 16:06 | Сообщение # 1498 |
Капитан I ранга
Группа: Команда Аддона
Сообщений: 1073
Награды: 40
Репутация: 197
Статус: В открытом море
| в дебагере же можно, через F25
Сообщение отредактировал Джин-Бейн - Четверг, 28.08.2014, 16:10 |
|
| |
Nathaniel | Дата: Четверг, 28.08.2014, 17:32 | Сообщение # 1499 |
Контр-адмирал
Группа: Капитан
Сообщений: 8036
Награды: 347
Репутация: 1845
Статус: В открытом море
| Цитата Джин-Бейн ( ) в дебагере же можно Если это необходимо по квесту какому-нибудь, зачем же дебаггер каждый раз запускать?..
Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
|
|
| |
Reboroda | Дата: Четверг, 28.08.2014, 17:42 | Сообщение # 1500 |
Мичман
Группа: Корсар
Сообщений: 146
Награды: 10
Репутация: 111
Статус: В открытом море
| Nathaniel, точно! Снова спасибо, все работает. Добавлено (28.08.2014, 17:42) --------------------------------------------- Я был не внимателен. Такая функция уже была у тебя в коде гашения костров...)
- Бизнесмен убъет в вас зрителя, но ты... Билли... Неужели тебе это могло понравиться? - Да я вообще только одним глазком...
|
|
| |
|