Показать сообщение отдельно
Старый 15.02.2011, 11:29   #4127
Dimus

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

По умолчанию Re: Gothic 1, 2, 3: Технические вопросы

Заметил очень странное поведение у трёх персонажей в Яркендаре - в отличие от остальных бандитов они не реагируют на надетый ГГ не бандитский доспех и даже на убийства других бандитов! Они берутся за оружие только в том случае, когда ГГ нанесёт им любое повреждение (срабатывает функция ReactToDamage). Это Рамон, охраняющий вход в нижний лагерь (BDT_1071_Addon_Ramon) и два стражника, охраняющие вход в верхний лагерь (BDT_1088_Addon_Torwache) и вход в храм Аданоса (BDT_10018_Addon_Torwache).

Ошибка в скрипте Скатти (Story\Dialoge\DIA_BDT_1086_Addon_Scatty.d) - в описании сказано, что он повышает навык рудокопа на 10% за 2 LP, но на самом деле это стоит 1 LP. Вот соответствующая часть скрипта:
Cпойлер(щелкните, чтобы прочесть):
var int Scatty_teach_perm;

instance DIA_Addon_Scatty_teach(C_Info)
{
* * *npc = BDT_1086_Addon_Scatty;
* * *nr = 2;
* * *condition = DIA_Addon_Scatty_teach_Condition;
* * *information = DIA_Addon_Scatty_teach_Info;
* * *permanent = TRUE;
* * *description = "Расскажи мне еще что-нибудь о том, как копать золото. (2 LP/10 процентов)";
};


func int DIA_Addon_Scatty_teach_Condition()
{
* * *if(Npc_KnowsInfo(other,DIA_Addon_Scatty_Gold) && (Scatty_teach_perm == FALSE))
* * *{
* * * * * *return TRUE;
* * *};
};

func void DIA_Addon_Scatty_teach_Info()
{
* * *AI_Output(other,self,"DIA_Addon_Scatty_teach_15_0 0"); * * *//Расскажи мне еще что-нибудь о том, как копать золото.
* * *if(other.lp >= 1)
* * *{
* * * * * *AI_Output(self,other,"DIA_Addon_Scatty_teach_01_0 1"); * * *//В первую очередь ты должен знать, что золото - это не руда. Оно мягкое, как масло. Если ты ударишь слишком сильно, все разлетится.
* * * * * *AI_Output(self,other,"DIA_Addon_Scatty_teach_01_0 2"); * * *//У каждого рудокопа есть свои приемы, позволяющие ему отделить самородки от породы.
* * * * * *AI_Output(self,other,"DIA_Addon_Scatty_teach_01_0 3"); * * *//В конечном итоге, эти приемы и отличают просто рудокопа от хорошего рудокопа.
* * * * * *AI_Output(self,other,"DIA_Addon_Scatty_teach_01_0 4"); * * *//Кроме этого, повторенье - мать ученья. Только работая ты станешь хорошим рудокопом.
* * * * * *other.lp = other.lp - 1;
* * * * * *B_Upgrade_Hero_HackChance(10);
* * * * * *Scatty_teach_perm = TRUE;
* * *}
* * *else
* * *{
* * * * * *B_Say(self,other,"$NOLEARNNOPOINTS");
* * *};
};

То же самое наблюдается и в скриптах из G2MDK. Вдобавок в аддоне можно повысить навык рудокопа свыше 100%. Для этого нужно у различных учителей докачать навык до 90%, затем с помощью добычи золота повысить до 100% (2 + 3 + 5), а затем подойти к Скатти - в итоге получаем 110%! :o

В итоге исправил обе ошибки. Изменения в скрипте Story\Dialoge\DIA_BDT_1086_Addon_Scatty.d:
Cпойлер(щелкните, чтобы прочесть):
instance DIA_Addon_Scatty_teach(C_Info)
{
* * *npc = BDT_1086_Addon_Scatty;
* * *nr = 2;
* * *condition = DIA_Addon_Scatty_teach_Condition;
* * *information = DIA_Addon_Scatty_teach_Info;
* * *permanent = TRUE;
* * *description = "Расскажи мне еще что-нибудь о том, как копать золото. (1 LP/10 процентов)";
};

А также в скрипте Story\B_Content\B_Upgrade_Hero_HackChance.d:
Cпойлер(щелкните, чтобы прочесть):
func void B_Upgrade_Hero_HackChance(var int Wert)
{
     var string concatText;
     concatText = ConcatStrings(PRINT_ADDON_HACKCHANCE,IntToString(W ert));
     concatText = ConcatStrings(concatText,")");
     PrintScreen(concatText,-1,34,FONT_ScreenSmall,2);
     Hero_HackChance = Hero_HackChance + Wert;
     if(Hero_HackChance > 100)
     {
           Hero_HackChance = 100;
     };

     Snd_Play("Geldbeutel");
};
Ответить с цитированием