Closed Kor-Angar closed 3 years ago
В B_GiveTradeInv проверить наличие, сохранить количество в переменную и удалить. В B_EquipTrader проверить переменную и создать нужное количество.
Хочешь забирать у ГГ золото?)
мне такое не подойдёт:-)
пока сделал общий "выход" для торговцев
var string Text_Trade_Exit;
func void DIA_Trade_Exit_Info()
{
Amount = Npc_HasItems (other,ITMI_CNY);
if (Amount > 0)
{
Npc_RemoveInvItems (other,ITMI_CNY,Amount);
Text_Trade_Exit = "Äåáåò ";
Text_Trade_Exit = ConcatStrings(Text_Trade_Exit,IntToString(Amount));
Text_Trade_Exit = ConcatStrings(Text_Trade_Exit," àííóëèðîâàí.");
PrintScreen(Text_Trade_Exit,-1,80,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_GIVEN);
};
AI_StopProcessInfos(self);
};
вчера потестил на Готике, вроде работает :-) https://youtu.be/-LaE_IBk4lU?t=99 если нареканий не будет, то можно будет сделать "подтверждение" выхода, если дебетка положительная :-) главное что логика работает: количество руды в игре ограниченное. на практике это значит: нельзя продать лут первому попавшемуся торговцу и получить 1000 руду на взятку Торусу или 1500 руды на доспех. руду надо выменивать у торговцев за лут. например в Старом Лагере если у торговцев выменять руду то её всё равно не хватит на взятку Торусу. т.е. придётся пойти дальше.. а в старой шахте у плавильщика руды есть аж 700 руды :-)
в готике 2 это система может и не работать именно экономические, так как по ощущениям золото у торговцев мало и как герой может насобирать через бартер 15000 на доспех я хз. с другой стороны при таком подходе работа подмастерьем или продажа специализированных трофеев(рога мракориса, чешуя дракона, кровь дракона) имеет серьезное значение так как за них герой получает вознаграждение золотом.
Было сложно и долго, но удалось заставить Лареса ходить на правильные точки, если попросить его проводить к магам, находясь у таверны или в лесу. Есть время и желание протестировать?
не не . из леса он не может к магам идти ;-)
где то у нас топик был про это
я у себя это как то делал просто. видимо с другого бока к вопросу зашёл. там путаница была из-за обилия условий в диалоге :-) давай протестирую завтра :-)
где то у нас топик был про это
Что-то не нашелся.
из леса он не может к магам идти ;-)
Потому что сначала нужно отнести орнамент магам, и уже потом получить квест на поиск недостающих? Просто я сформировала возможность похода во все три места через консоль.
давай протестирую завтра :-)
Нужна новая игра: https://dropmefiles.com/BUMl3
Какой твой рекорд по уровню до вступления в гильдию? И сколько обычно получается без "напряга"?
у меня как такого рекорда нету, так как я не ставил для себя набрать максимальный уровень в первой главе. квесты все в первой главе проходил, а вот именно уровень.. тем более у меня в сборке нельзя и свитками скелетов / палов поубивать.
И сколько обычно получается без "напряга"?
от фракции зависит. если например играть ментом, то можно вступать как можно раньше что бы получить доспех. если за монастырь то как можно позже. в Готике 1 было ограничение по уровню 5. в Готике 2 НВ его нет.
без напряга наверное между 5 и 13 уровнем. может даже между 7 и 13.
подскажи пожалуйста я что то скопировал и у меня всё стало мелкое :-) и надписи меньше стали
это в СистемПак.ини настраивается?
Попробуй Scale=1
стоит
но в целом это в систем паке выставляется?
[INTERFACE] Scale=2 ; ... множитель автоматического масштабирования интерфейса игры, за основу взято разрешение 1024x768 пикселей; ; включено (1) или (1.1 ... и выше), масштабирование интерфейса в n-раз на усмотрение пользователя. ; максимальное значение зависит от вертикального разрешения экрана. То есть: ; для разрешения 1920x1080, максимальное значение будет 1080/512 = 2.10 ; для разрешения 3840x2160, максимальное значение будет 2160/512 = 4.21 ; более высокие значения будут прочитаны как максимальное. ; выключено (0), без масштабирования. По-умолчанию: 1.
проблемы были со стим паком. переустановил его и всё заработало.
помнишь мы обсуждали вопрос с дополнительными инстанциями для НПС? а я у тебя уточнял ещё про общие "диалоги".. и я насколько помню ты дела возможность сдать меч Рода в Минентале и сокровища Грега и прочие..
вообщем вот такое решение придумал. проверил, работает.
instance GRD_205_Scorpio_instance_1 (C_Info)
{
npc = GRD_205_Scorpio;
nr = 1;
condition = GRD_205_Scorpio_instance_Condition;
information = GRD_205_Scorpio_instance_Info;
permanent = TRUE;
important = TRUE;
};
instance GRD_205_Scorpio_instance_2 (C_Info)
{
npc = GRD_205_Scorpio_Kapitel_4;
nr = 1;
condition = GRD_205_Scorpio_instance_Condition;
information = GRD_205_Scorpio_instance_Info;
permanent = TRUE;
important = TRUE;
};
func int GRD_205_Scorpio_instance_Condition()
{
if Npc_IsInState(self,ZS_Talk)
{
return TRUE;
};
};
// общие диалоги
func void GRD_205_Scorpio_instance_Info()
{
GRD_205_Scorpio_HeyPC.npc = Hlp_GetInstanceID(self);
GRD_205_Scorpio_BANISHED.npc = Hlp_GetInstanceID(self);
GRD_205_Scorpio_CROSSBOW.npc = Hlp_GetInstanceID(self);
GRD_205_Scorpio_CROSSBOW2.npc = Hlp_GetInstanceID(self);
GRD_205_Scorpio_TRADE.npc = Hlp_GetInstanceID(self);
GRD_205_Scorpio_BETTERARMOR.npc = Hlp_GetInstanceID(self);
DIA_Trade_Exit.npc = Hlp_GetInstanceID(self);
};
Привет. напомни пожалуйста была какая то ситуация когда ключи находящиеся у НПС попадали в продажу. с чем такое было связано?
Привет. напомни пожалуйста была какая то ситуация когда ключи находящиеся у НПС попадали в продажу. с чем такое было связано?
Если в инвентаре нпц есть ключ, то он всегда будет его продавать (Горакс, Саландрил). Поэтому в диалоге о начале торговли нужно проверять наличие ключа, удалять его и запоминать этот факт, а при завершении разговора - создавать новый и сбрасывать запоминание.
См. B_RemoveSalandrilKey() и B_GiveSalandrilKey().
спасибо!
таки смог корректно ограничить торговлю без махинаций с удалением предметов перед торговлей и вставкой после :-) Теперь очевидно, что вещи не пропали, а просто торговец не заинтересован в хламе который пытается выменять герой на ценные свитки и эликсиры :-) https://www.youtube.com/watch?v=SNYgzUb84FA
А это как так? Можно глянуть код?
конечно. вот топик https://github.com/Kor-Angar/G1_Kor_Angar/issues/8
404 - приватная репа?
расшарил. репозетории слишком хорошо индексируются, поэтому я их закрыл :-)
а ты не знаешь какие здесь проценты надо поставить?
inv_zbias = ; // Масштабирование объекта.
inv_rotx = ; // Вращение объекта по оси X.
inv_roty = ; // Вращение объекта по оси Y.
inv_rotz = ; // Вращение объекта по оси Z.
что бы получилось вот так. то есть такие настройки стоят для категории ITEM_KAT_NONE
нашёл :-)
void oCItem::RotateForInventory(int dir = 1)
{
ResetRotationsLocal();
if (G2 && ((inv_rotx != 0) || (inv_roty != 0) || (inv_rotz != 0))) {
RotateWorld(1, 0, 0, inv_rotx * dir);
RotateWorld(0, 1, 0, inv_roty * dir);
RotateWorld(0, 0, 1, inv_rotz * dir);
return;
}
switch (mainflag) {
case ITEM_KAT_NONE:
RotateWorld(1, 0, 0, -25 * dir);
RotateWorld(0, 0, 1, -45 * dir);
break;
case ITEM_KAT_NF:
if (HasFlag(ITEM_SHIELD)) {
RotateWorld(1, 0, 0, -90 * dir);
RotateWorld(0, 0, 1, -90 * dir);
break;
}
RotateWorld(1, 0, 0, -90 * dir);
if (HasFlag(ITEM_DAG)) {
RotateWorld(0, 0, 1, -45 * dir);
} else {
RotateWorld(0, 0, 1, -135 * dir);
}
break;
case ITEM_KAT_FF:
RotateWorld(1, 0, 0, 90 * dir);
RotateWorld(0, 0, 1, 45 * dir);
break;
case ITEM_KAT_MUN:
RotateWorld(0, 0, 1, -135 * dir);
break;
case ITEM_KAT_ARMOR:
RotateWorld(1, 0, 0, 360 * dir);
break;
case ITEM_KAT_FOOD:
RotateWorld(0, 1, 0, -90 * dir);
RotateWorld(1, 0, 0, -35 * dir);
break;
case ITEM_KAT_DOCS:
RotateWorld(1, 0, 0, 90 * dir);
break;
case ITEM_KAT_POTIONS:
RotateWorld(0, 1, 0, 90 * dir);
break;
case ITEM_KAT_LIGHT:
break;
case ITEM_KAT_RUNE:
RotateWorld(1, 0, 0, -90 * dir);
break;
case ITEM_KAT_MAGIC:
RotateWorld(0, 1, 0, -90 * dir);
RotateWorld(1, 0, 0, -35 * dir);
break;
}
}
то есть можно что то такое сочинить
func void inv_rot_KAT_NONE()
{
item.inv_rotx = -25; // Вращение объекта по оси X.
item.inv_roty = 0; // Вращение объекта по оси Y.
item.inv_rotz = -45; // Вращение объекта по оси Z.
};
я в принципе готов потестить очередную сборку
я в принципе готов потестить очередную сборку
g2a_nr_scriptpatch_v27_test_03.05.2021.zip Файл g2a_nr_scriptpatch_v26_plugins.mod удали, а то могут быть проблемы с новыми.
так?
так
При игре без русской озвучки файлы speech_add и speech_fix следует удалить, чтобы не проскакивали фразы на русском.
speech_add и speech_fix
а они у тебя есть в общем архиве русской озвучки в Стим Фикс?
то есть если я скачиваю стим фикс русский и ставлю русскую озвучку то аудио файлы из speech_add.mod и speech_fix.mod уже будут включены в speech_ru.vdf ? я помню что собирал всю русскую озвучку в том числе и содержимое speech_add и speech_fix в один архив в своей сборке, но не помню как там это у тебя стим фиксе организованно.. или ты просто перезаписываешь английские архивы , архивами русскими в кол-во 3-4 штук vdf и к ним еще потом speech_add и speech_fix подгружаются ?
speech_fix.mod включен в русские Speech1.vdf/Speech_Addon.vdf. speech_add.mod остается под тем же именем в ModVDF.
а ведь Каваларон наверное знает где гильдия воров, ведь он в первой готики был связан с Фингерсом который состоял в гильдии воров :-)
по моему у меня Мартин забрал шпагу бандитскую как улику и сказал что у меня недостаточно доказательств.
ну да..
if(Npc_HasItems(other,ItMw_Addon_BanditTrader))
{
AI_Output(other,self,"DIA_Addon_Martin_Fernando_15_02"); //Такие шпаги я нашел у бандитов. На эфесе выгравирована буква 'Ф'.
Npc_RemoveInvItems(other,ItMw_Addon_BanditTrader,1);
FernandoHints_ItMw = TRUE;
};
может лучше так сделать?
if(Npc_HasItems(other,ItMw_Addon_BanditTrader))
{
AI_Output(other,self,"DIA_Addon_Martin_Fernando_15_02"); //Такие шпаги я нашел у бандитов. На эфесе выгравирована буква 'Ф'.
if FernandoHints_ItMw == false
{
Npc_RemoveInvItems(other,ItMw_Addon_BanditTrader,1);
FernandoHints_ItMw = TRUE;
};
};
Ну да, одной шпаги ему достаточно и не нужно отдавать ему новую при каждом диалоге
надо поправить :-)
исправлено
стремно в игре смотритья когда все подряд предметы подписаны. ключи точно не стоило подписывать :-) да и скрижали наверное тоже.
Обновление тестовой сборки: g2a_nr_scriptpatch_v27_test_08.05.2021.zip
Изменения: https://github.com/dosinabox/g2nr_unofficial_update/commit/d409136b08e72f7ab07cf0f35e42e5efa6a33e62
Также:
Несколько новых тестовых амулетов, просто для интереса:
Предлагаю подумать, какие скорости восстановления могут быть приемлемыми)
Руна OrlanFix безопасно отправит Орлана обратно в таверну.
спс. работает. но в следующий раз лучше что то одноразовое например еду или флакон :-)
скрижаль 3 уровня после чтения оказалась в руке ГГ, а потом вернулась в инвентарь.
А вот такое изменение нужно? Сама легкая мантия появилась только в аддоне и никак не используется.
можно. я всех кроме Сатураса в своей сборке переодел в легкие доспехи.
я всех кроме Сатураса в своей сборке переодел в легкие доспехи.
и даже Ватраса?
и даже Ватраса, исходя из его социального статуса.
или так: и даже Ватраса исходя из его обязанностей внутри ордена :-)
но тут в целом опять неудачная спайка Пираней. в Классике всё было понятно, там Ватрас был один. а вот в аддоне логичнее было задействовать на церемонии ни Ватраса, а Сатураса. оно и лаконичнее было бы в плане развития сюжета (Сатурас бы не шёл в город и на церемонию пока вопрос не решён) и в плане ЛОРа (Пирокар, Сатурас и Ксардас знакомы, являются высшими магами). а я сколько в Ночь Ворона играл так и не понимал почему в плане сюжета Ватрас не хотел идти в круг Солнца, что то невнятное он всё время бормочет :-)
одним словом в аддоне я невижу даже намёка что Ватрас высший маг воды. ну стоит в городе выполняя миссию рядового мага, собирает пожертвования и читает проповеди, лечит людей. научной работой и исследованиями не занимается, политические вопросы в верхнем квартале тоже не решает :-) курирует кольцо воды в городе. если он высший маг то рядом должны быть рядовые маги которыми он должен руководить(не или мягко направлять).
Наконец я нашёл ссылки по которой можно все топики посмотреть :-) https://github.com/dosinabox/g2nr_unofficial_update/issues?utf8=%E2%9C%93&q=is%3Aissue+sort%3Aupdated-desc+
Форматирование https://github.com/GnuriaN/format-README#Оглавление
Предыдущий топик с ОффТоп'ом https://github.com/dosinabox/g2nr_unofficial_update/issues/41