Closed Kor-Angar closed 2 years ago
лук Боспера квестовый? арбалет паладина в 4 главе? арбалет Драгомира? меч Онд в 4 главе?
лук Боспера квестовый? меч Онд в 4 главе?
да
арбалет паладина в 4 главе? арбалет Драгомира?
нет
- шмотки Грега
- амулет Грега
не обязательно, потому что теперь их можно вернуть в Яркендаре, получив меньше опыта
не обязательно, потому что теперь их можно вернуть в Яркендаре, получив меньше опыта
когда в Ярике шмотки сдаются квест закрывается?
когда в Ярике шмотки сдаются квест закрывается?
При переходе в Яркендар квест пропадает из дневника (отменяется).
При переходе в Яркендар квест пропадает из дневника (отменяется).
тогда можно сделать проверку на диалог c Грегом в Ярике. так то Грег в Хориносе бессмертный у него его шмотки отобрать не получится :-)
кольца Тенгрона?
дневник корнелиуса письмо диего
дневник корнелиуса
Его забирает Хаген
письмо диего
Его забирает Гербрандт
"рецепты, книга, портреты ГГ, кольцо от портала, каменные таблички, 6 кровавых чаш, голова друга"
кем убит?
героем избит
а почему чаши кровавые не удалились?
давай все таблички каменные отдавать Сатурасу в диалоге про убийство Ворона.
давай с портретов ГГ снимет метку квестовых. они же никакой роли не играют вообще
а почему чаши кровавые не удалились?
Из-за квестового флага
давай с портретов ГГ снимет метку квестовых. они же никакой роли не играют вообще
Так у них и цена нулевая
я думал ты в шапке галочки поставила там где исправила :-)
да, и тогда странно, потому что такая проверка уже есть:
B_ClearJunkTradeInv.d:
if(MIS_CassiaKelche == LOG_SUCCESS)
{
Npc_RemoveInvItems(slf,ItMi_BloodCup_MIS,Npc_HasItems(slf,ItMi_BloodCup_MIS));
};
Хотя не странно, потому что квест может быть провелен. Добавлю и такую проверку.
так я квест выполнил про кровавые чаши
вполнил квест. сдал чашки Кассии. потом по квесту Андре ликвидировал гильдию.
можно просто делать проверку на смерть Кассии для кольца Констанино и чашам кровавым.
или такое будет работать только в Хориносе?
Так у них и цена нулевая
так это же хлам, если игрок его продал кому то, то наверное ему это не надо :-)
вполнил квест. сдал чашки Кассии. потом по квесту Андре ликвидировал гильдию.
Ликвидация гильдии устанавливает все квесты воров в LOG_FAILED (но не меняет записи в дневнике). Вот чаши и не удалились.
или такое будет работать только в Хориносе?
да
Ликвидация гильдии устанавливает все квесты воров в LOG_FAILED (но не меняет записи в дневнике). Вот чаши и не удалились.
исправлять будешь? :-)
исправлять будешь? :-)
уже
квестовый лут у Халвора
можно просто снимать флаг миссии у квестовых предметах когда герой их отдаёт квестодателю в функции B_GiveInvItems
if(item.flags & ITEM_MISSION)
{
item.flags = item.flags & ~ITEM_MISSION;
}
предлагаю попробовать потестить
можно сделать опционально например. я в этом прохождение, что сейчас полноценно протестирую.
if(Npc_IsPlayer(giver))
{
Npc_GetInvItem(giver,itemInstance);
itemname = item.description;
if(itemInstance == ItMi_Gold)
{
concatText = ConcatStrings(IntToString(amount),PRINT_GoldGiven);
AI_PrintScreen(concatText,-1,YPOS_GoldGiven,FONT_ScreenSmall,2);
}
else if(amount == 1)
{
concatText = ConcatStrings(itemname,PRINT_ItemGiven);
AI_PrintScreen(concatText,-1,YPOS_ItemGiven,FONT_ScreenSmall,2);
}
else
{
concatText = ConcatStrings(IntToString(amount),PRINT_ItemsGiven);
concatText = ConcatStrings(concatText," (");
concatText = ConcatStrings(concatText,itemname);
concatText = ConcatStrings(concatText,")");
AI_PrintScreen(concatText,-1,YPOS_ItemGiven,FONT_ScreenSmall,2);
};
Npc_RemoveInvItems(giver,itemInstance,amount);
CreateInvItems(taker,itemInstance,amount);
if(item.flags & ITEM_MISSION)
{
item.flags = item.flags & ~ITEM_MISSION;
};
}
Возможно, нужно itemInstance.flags вместо item.flags. Возможно, изменения флагов не сохранятся в сохраненку.
Я исходил из того что у тебя в коде выше идет дискрипшион.айтем Про сохранения, заодно и проверим ;-) 12:31, 9 мая 2021 г., dosinabox @.***>: Возможно, нужно itemInstance.flags вместо item.flags. Возможно, изменения флагов не сохранятся в сохраненку.
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe. -- Отправлено из мобильного приложения Яндекс.Почты
item - конкретный единичный экземпляр класса itemInstance. Брать у него свойство - нормально. Назначать флаги - не факт. Кстати, нужно создавать предмет у получателя только после назначения флагов. Даже если изменение флагов класса не затронет все существующие предметы или не пойдет в сохраненку, то у получателя останется вновь созданный экземпляр с измененными флагами. Скорее всего. И удалять предмет тоже следует до изменения флагов, иначе проверка свойств удаленного объекта может не сработать.
if(itemInstance.flags & ITEM_MISSION)
{
itemInstance.flags = itemInstance.flags & ~ITEM_MISSION;
};
Npc_RemoveInvItems(giver,itemInstance,amount);
CreateInvItems(taker,itemInstance,amount);
Надо добавить в тестовую сборку 😀 потестить 😀Заодно и узнаем на примере табличек которые Сатурасу сдаются, как они себя вести будут, после того как Сатурас их назад герою вернёт.12:58, 9 мая 2021 г., dosinabox @.***>: item - конкретный единичный экземпляр класса itemInstance. Брать у него свойство - нормально. Назначать флаги - не факт. Кстати, нужно создавать предмет у получателя только после назначения флагов. Даже если изменение флагов класса не затронет все существующие предметы или не пойдет в сохраненку, то у получателя останется вновь созданный экземпляр с измененными флагами. Скорее всего. И удалять предмет тоже следует до изменения флагов, иначе проверка свойств удаленного объекта может не сработать. if(itemInstance.flags & ITEM_MISSION) { itemInstance.flags = itemInstance.flags & ~ITEM_MISSION; }; Npc_RemoveInvItems(giver,itemInstance,amount); CreateInvItems(taker,itemInstance,amount);
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe. -- Отправлено из мобильного приложения Яндекс.Почты
Окей, сейчас упакую и выложу.
if(item.flags & ITEM_MISSION)
{
item.flags = item.flags & ~ITEM_MISSION;
AI_PrintScreen(ConcatStrings(itemname, " - флаг снят"),-1,YPOS_GoldTaken,FONT_ScreenSmall,2);
};
Я просто не уверен что такое решение решит вопрос в целом. Слишком оно простое и очевидное 😀 поэтому хочу пройти игру что бы сказать, что были вот такие негативные моменты и оно не подойдёт
еще бы с карт снять "квестовасть". а продавцу Ибрагиму карты просто добавлять в продажу если у него их нет.
вчера следил за этой историей. работает корректно. стараюсь продавать квестовые предметы паре продавцов, которые по сюжету получать люлей :-)
if(item.flags & ITEM_MISSION)
{
item.flags = item.flags & ~ITEM_MISSION;
AI_PrintScreen(ConcatStrings(itemname, " - флаг снят"),-1,YPOS_GoldTaken,FONT_ScreenSmall,2);
};
это добавлять в основной код не стала? :-)
это добавлять в основной код не стала? :-)
нет, убрала к какому-то из релизов
очень хорошая штука. найди возможность поставить хотя бы опционально. решение получилось крайне элегантным и эффективным.
очень хорошая штука. найди возможность поставить хотя бы опционально. решение получилось крайне элегантным и эффективным.
Насколько эффективным? Точно стоит добавлять?
Эффеткивно на все 100%. Точно стоит.
это штука эффективна на 300%. код из 1 строчки решает целый комплекс задач:
конечно можно пойти еще дальше и снимать флаг в B_CloseTopic.d. но это уже будет избыточно и слишком грамоздко.
со снятием флага я прошёл игру два или три разу. внимательно отслеживал как это происходит.
возможно в игре где то есть такой момент когда НПС берёт у героя квестовый предмет смотрит его, а потом возвращает обратно, но это в первую очередь касается документов. можно добавить дополнительную проверку на документы и с них не снимать флаги для миссии. но и это будет избыточно на мой взгляд :-)
Эффеткивно на все 100%. Точно стоит.
Добавлено в сборку для мастерской Стима.
а можно в скриптах где удаляются шмотки у торговцев добавить проверки: