|
Re: Gothic 1, 2, 3: Технические вопросы
По поводу Кассии. Только что глянул. Действительно, такой баг имеется. Если попросить у неё время на размышление, то переменная Cassia_Frist ставится в true, и потом нигде не меняется. А именно эта переменная отвечает за атаку Касси по истечении двух дней. Чтобы избавится от бага, достаточно где-нибудь после слов ГГ "Я в деле" переменной Cassia_Frist присвоить false. Добавление от 03/11/11, в 18:29:30 2Dimus:
9.1. При атаке Мильтена на Ирдорате существовала возможность получения дополнительного Царского Щавеля или Корня Дракона. Пока ещё не знаю, каким образом это реализовано у Саргона.
|
Я, кажется, понял, что Саргон имел ввиду. Помните, выше я говорил, что при падении без сознания/смерти у непися опять вызывается функция B_GiveTradeInv(self)? И что царский щавель/луговой горец/etc. защищены от "чистки" инвентаря у неписей? Вот содержание B_GiveTradeInv_Milten_DI.d:
Cпойлер(щелкните, чтобы прочесть):
func void B_GiveTradeInv_Milten_DI(var C_Npc slf) { * * *CreateInvItems(slf,ItMi_Gold,380); * * *CreateInvItems(slf,ItPl_SwampHerb,13); * * *CreateInvItems(slf,ItPl_Temp_Herb,9); * * *CreateInvItems(slf,ItPl_Perm_Herb,1); * * *CreateInvItems(slf,ItMi_Aquamarine,3); * * *CreateInvItems(slf,ItMi_Rockcrystal,3); * * *CreateInvItems(slf,ItPl_Health_Herb_01,25); * * *CreateInvItems(slf,ItPl_Health_Herb_02,14); * * *CreateInvItems(slf,ItPl_Health_Herb_03,9); * * *CreateInvItems(slf,ItPl_Mana_Herb_01,13); * * *CreateInvItems(slf,ItPl_Mana_Herb_02,8); * * *CreateInvItems(slf,ItPl_Mana_Herb_03,2); * * *CreateInvItems(slf,ItPl_Strength_Herb_01,1); * * *CreateInvItems(slf,ItPo_Health_02,25); * * *CreateInvItems(slf,ItPo_Health_03,20); * * *CreateInvItems(slf,ItPo_Mana_01,40); * * *CreateInvItems(slf,ItPo_Mana_02,20); * * *CreateInvItems(slf,ItMi_RuneBlank,1); };
Как видно, вообще нет никакой защиты от повторной выдачи торгового инвентаря. Т.е., теоретически, можно бесконечно отправлять в нокаут Милтена, и бесконечно получать с него царский щавель и драконий корень. Чтобы исправить это, можно, например, сделать так:
Cпойлер(щелкните, чтобы прочесть):
var int Milten_DI_ItemsGiven;
func void B_GiveTradeInv_Milten_DI(var C_Npc slf) { * * *if(Milten_DI_ItemsGiven == FALSE) * * *{ * * * * * *CreateInvItems(slf,ItMi_Gold,380); * * * * * *CreateInvItems(slf,ItPl_SwampHerb,13); * * * * * *CreateInvItems(slf,ItPl_Temp_Herb,9); * * * * * *CreateInvItems(slf,ItPl_Perm_Herb,1); * * * * * *CreateInvItems(slf,ItMi_Aquamarine,3); * * * * * *CreateInvItems(slf,ItMi_Rockcrystal,3); * * * * * *CreateInvItems(slf,ItPl_Health_Herb_01,25); * * * * * *CreateInvItems(slf,ItPl_Health_Herb_02,14); * * * * * *CreateInvItems(slf,ItPl_Health_Herb_03,9); * * * * * *CreateInvItems(slf,ItPl_Mana_Herb_01,13); * * * * * *CreateInvItems(slf,ItPl_Mana_Herb_02,8); * * * * * *CreateInvItems(slf,ItPl_Mana_Herb_03,2); * * * * * *CreateInvItems(slf,ItPl_Strength_Herb_01,1); * * * * * *CreateInvItems(slf,ItPo_Health_02,25); * * * * * *CreateInvItems(slf,ItPo_Health_03,20); * * * * * *CreateInvItems(slf,ItPo_Mana_01,40); * * * * * *CreateInvItems(slf,ItPo_Mana_02,20); * * * * * *CreateInvItems(slf,ItMi_RuneBlank,1); * * * * * *Milten_DI_ItemsGiven = TRUE; * * *};
};
Но вот ещё что меня беспокоит. Исходя из этих скриптов, у Милтена должно быть можно не только выбивать, но и ПОКУПАТЬ бесконечный царский щавель и драконий корень. Никто такого не замечал? Может быть, я, конечно, что-то недопонял... Вообще, может, у кого-нибудь имеется сейв из Г2НВ уже на Ирдорате? Неплохо было бы потестить всё это.
|