Показать сообщение отдельно
Старый 11.03.2011, 19:09   #4196
Wandar

AGFC
Гость
 
Сообщений: n/a

По умолчанию 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НВ уже на Ирдорате? Неплохо было бы потестить всё это.
Ответить с цитированием