• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Готика 2: НВ Неофициальное обновление для Г2 НВ

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.115
Благодарности
3.196
Баллы
485
  • Первое сообщение
  • #1
Неофициальное обновление для игры "Готика 2: Ночь Ворона" представляет собой модификацию, направленную на исправление многочисленных ошибок и недоработок игры различной степени критичности. Данное обновление не включает новые квесты или глобальные изменения баланса и рекомендуется всем, кто хочет играть в Г2НВ без багов.
Разработка обновления ведется с 2005 года и по сегодняшний день. Камрад Efectivo (aka Нефариус) русифицировал патч от Fizzban и внес несколько дополнительных исправлений (так что получилась не русификация, а самостоятельный продукт на его основе).
В неофициальном обновлении камрад Dimus значительно расширил список исправлений и добавил некоторые улучшения. Дальнейшая работа над обновлением продолжена силами D36.
Также в данную сборку включены исправленные миры от Kvincius (Рудниковая долина, Яркендар, Хоринис и Ирдорат), исправленные шрифты от N1kX, неофициальное исправление русской озвучки от Dimus и полезные плагины для Union от Slavemaster (zBugFixes, zMiscUtils, zPicklockAnis, zTorchControl и другие).

Текущая версия:
29 от 14.08.2023

Ссылки:
Установщик модификации (76.5 МБ);
Версия для Мастерской Steam;
Исходники скриптов и архив релизов.

Установка:
Запустить установщик обновления, указать каталог с установленной игрой и выбрать набор устанавливаемых компонентов.
Внимание: Для того, чтобы все изменения вступили в силу, после установки обновления нужно начать новую игру!

Загрузка текста...

Удаление:
Удалить данное обновление можно через раздел "Программы и компоненты" в панели управления или запустив исполняемый файл G2a_NR_ScriptPatch_v29_uninstall.exe в каталоге с установленной игрой.

Примечания:
1. Для предотвращения возможных конфликтов с различными модами обновление устанавливается в формате модификации, поэтому для её работы необходимо наличие мод-стартера Player Kit. Также настоятельно рекомендуется установить последнюю версию Union;
2. Каждая версия неофициального обновления запускается через GothicStarter.exe отдельно и использует собственные папки сохранений. Удаление разных версий из панели управления также происходит раздельно;
3. Начало новой игры обязательно. Не поддерживаются сохранения, сделанные в оригинале, в любом другом моде или в любой предшествующей версии неофициального обновления.
Игнорирование данного предупреждения может привести к непредсказуемым последствиям: от невозможности продвижения по сюжету до вылетов.
Для тестирования доступна предварительная сборка 30 версии неофициального обновления. Подробности здесь.
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.558
Благодарности
4.139
Баллы
915
Если не грузится, то откатывайся на более ранние сэйвы. Если их нет, значит, ты сам запорол своё прохождение. И я в упор не вижу проблемного сэйва.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.115
Благодарности
3.196
Баллы
485
Загружаюсь и через некоторое время вылетает ошибка.
1) Отключи антивирус, если таковой имеется. Повлияет ли это на ошибку?
2) Поспи дома у Константино. Повлияет ли это на ошибку?
3) В настройках игры снизь дистанцию обзора и дистанцию объектов до минимальных 20%. Появится ли ошибка на том же месте, что и в прошлые разы? Если в другом, то где именно? Постарайся обойти весь город.

Сохранёнка не грузится(пишет "нельзя загружать файлы данного типа"(NEWWORLD.DAT И ТД))
Упакуй всю папку слота сохранения в архив zip или rar, тогда ты сможешь прикрепить её к сообщению.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.818
Благодарности
5.221
Баллы
910
Закомментируй следующие неиспользуемые переменные, чтобы проще их было найти, ну и в будущем найти им применение.
Daedalus:
var int KDF02_Equipped;
var int KDF03_Equipped;
var int MIL02_Equipped;
var int MIL03_Equipped;
var int SLD02_Equipped;
var int SLD03_Equipped;
var int Leather02_Equipped;
var int Rhobar_Equipped;
var int SCKnowsSkipAsKidnapper
var int SCKnowsExactlyWhereMissingPeopleAre;
var int SCMetMissingPeople;
var int MIS_Bartok_MissingTrokar; //нет дальнейшего развития
var int SC_ShowedRangerArmor;
var int SC_KnowsOrnament; //используется один раз, нет присвоения
var int Myxir_CITY_IstDa;
var int VatrasAbloeseIstDa; //один раз присвоение и нет дальнейшего использования
var int Saturas_KnowsWeaponIsInAdanosTempel;
var int Sumpfi_Counter;
var int Snaf_Amount;
var int Knows_Finn;
var int Knows_Huno;
var int Knows_Fisk;
var int Knows_Esteban;
var int Knows_Senyan;
var int Finn_CONTRA;
var int Paul_CONTRA;
var int Senyan_CONTRA; //один раз присвоение на завершение (LOG_SUCCESS), нет этапов
var int Senyan_Gold;
var int PC_KnowsRedStone;
var int Lockpick_gegeben;
var int Lennar_Trust;
var int Senyan_Start;
var int Juan_Parole;
var int Patrick_trust;
var int knows_losung;
var int knows_petze;
var int Tom_Angebot;
var int MIS_LookForMorgan;
var int MIS_MorganRumBringen;
var int AlligatorJackTrustYou;
var int AlligatorJack_PlayersTriesAlone;
var int Henry_GetPartyMember; //должна использоваться где-то, после присвоения
var int Owen_Sc_FoundMalcom;
var int malcomexident;
var int Bill_addon_deal;
var int MIS_Addon_JoinHenrysCrew;
var int Henrys_CrewCount;
var int MIS_Addon_JoinMorgansCrew;
var int MIS_Addon_Bill_SearchEsteban;
var int MIS_Addon_Bill_KillEsteban;
var int MIS_ADDON_PIR_6_Duell;
var int MIS_ADDON_PIR_6_BringGrog;
var int MIS_Addon_PIR_7_BringJoint;
var int MIS_Addon_PIR_7_BringGrog;
var int PlayerKnowsAboutMIne;
var int mis_bones_scoutbandits;
var int MIS_DuellWithGreg;
var int Read_JuansText; //дальнейшего использования нет
var int Skip_Addon_PlayerKnowsAboutBigBusiness;
var int SC_KnowsGoldmine;
var int MIS_Addon_HenryCrewMember;
var int MIS_Addon_MorganCrewMember;
var int MIS_ADDON_ProofHenryCrew;
var int MIS_Addon_ProofHenryCrew_Count;
var int MIS_ADDON_ProofMorganCrew;
var int MIS_Addon_ProofMorganCrew_Count;
var int Knows_RuebenSchnaps; //присвоение нет нигде (упоминается в C_Addon_Knows_Schnaps)
var int Knows_VinoSchnaps; //тоже также
var int Knows_PiratenSchnaps; //также
var int Knows_Magierschnaps; //также
var int Knows_Sumpfkrautschnaps; //также
var int Francis_Addon_TeachPlayer; //судя по переменной, Фрэнсис должен был обучать чему-то ГГ
var int Points_Farm;
var int Points_Monastery;
var int Andre_GivesChance;
var int Andre_Bonus;
var int MIS_Andre_FISH; //возможно задумывался квест с рыбой
var int MIS_AndreGotThief;
var int MIS_Meldor_BringGold;
var int MIS_Meldor_BringGold_Day;
var int Nadja_tot;
var int Halvor_Deal; //дальше нет использования после присвоения
var int Thorben_Deal;
var int Wulfgar_First;
var int MIS_PayAlwin;
var int Knows_Ruga_Answer;
var int Miliz_Points;
var int GernodsDrink;
var int GernodHappy;
var int MIS_GuardSheep;  //похоже, что задумывался какой-то квест по защите овец
var int MIS_PickHerb; //похоже, что задумывался квест по сбору трав, коих много
var int MIS_SweepLibrary; //это что-то с библиотекой
var int ShrineconfessCost;
const int CostRescueGorn = 500; //хм, раньше освобождение Горна стоило 500 золотых монет
var int Canthar_Passierschein_Accept;
var int Canthar_Passierschein_Accept_Day;
var int Canthar_AccusePlayerAndre;
var int Canthar_AccusePlayerAndre_Day;
var int Soeldner_Points;
var int Sentenza_Friend;
var int Buster_Friend;
var int MIS_Gorax_Ambient;
var int Thief_Absolution;
var int Igaraz_Anger;
var int MIS_Gorax_Bote;
var int Paket_Opend;
var int MIS_Fed_GetRidOfTengron;
var int MIS_Brutus_Kasse;
var int MIS_Pyrokar_GoToVatrasInnoseye; //должен уходить в завершенные после ритуала
var int MIS_Xardas_GoToVatrasInnoseye; //должен уходить в завершенные после ритуала
var int MIS_FindTheObesessed; //нигде нет присвоение в статус выполнения, из-за чего у Милтена один диалог не работает
var int MIS_DiegoNWSendsYouToJudge;
var int MIS_InnosEyeStolen; //нет дальнейшего использования
var int Lobart_DIA_HALT_WegDamit;
var int Lobart_MILCHANGEBOT;
var int SCPaysForGritta;
var int Matteo_Deal;
var int Matteo_Day;
var int HannaGaveSword;
var int DayMeetAlwin;
var int MoeOfferedTrain;
var int Bartok_Day;
var int Bartok_Deal;
var int Constantino_Gehilfe;
var int EddaPaid;
var int HelpAgon;
var int BaboLikesYou;
var int Nagur_UmsGeldBeschissen;
var int wulfgarWantsMoney; //интересно, какие деньги ждал Вульфгар
var int Fester_Paid;
var int Thekla_SCNaughty;
var int Torlof_PissedOff;
var int Torlof_SC_DarfZuLee;
var int Torlof_SauerWegenSekob;
var int Sekob_ersteChancevertan;
var int Bengar_MILIZKLATSCHEN_Kohle;
var int Engardo_SchonAngeredet;
var int KnowsGerold;
var int PriceForGorn;
var int SLDChooseMoreMoney;
var int FoodForGerold;
var int WantinDungeon;
var int Knows_WEAPON_1H_Special_01;
var int heroGIL_KDF2; //не используется после присвоения
var int Igaraz_ISPartner; //нет присвоения в LOG_SUCCESS из-за чего диалог у Бабо заблокирован
var int RescueBennet_KnowsWitness; //не используется после присвоения
const int CostForPAlSpells = 5; //хм, переменная для свитков палов
var int Hyglas_SendsToKarras; //не используется после присвоения
var int DayForFinalDJGArmor;
var int PlayerHasFinalArmor;
var int Wulfgar_Teach2H;
var int Ramirez_TeachPicklock;
var int Thorben_TeachPicklock; //наверное уже использовала
var int Torlof_TeachSTR;
var int Torlof_TeachDEX;
var int Buster_Teach1H;
var int Cord_Teach2H;
var int Lee_Teach2H;
var int Gaan_TeachAnimalTrophy;
var int Parlan_TeachMANA;
var int Pyrokar_TeachMANA;
var int Ulthar_TeachPalRunes;
var int Pyrokar_TeachPalRunes;
var int Serpentes_TeachPalRunes;
var int Hyglas_TeachRunes;
var int Karras_TeachRunes;
var int Parlan_TeachRunes;
var int Marduk_TeachRunes;
var int Neoras_TeachAlchemy; //наверно использовала
ar int Godar_TeachPlayer;
var int EngorTraderLog;
var int TandorTraderLog;
Печально, что столько опыта упущено, хотя некоторые восстановить будет просто.
Итого упущено 2675 (2775) опыта
Daedalus:
const int XP_Addon_LookForMorgan = 100;
const int XP_Addon_MorganRumBringen = 150;
const int XP_Addon_HenryProofCrew = 200;
const int XP_Addon_MorganProofCrew = 200;
const int XP_Bones_Goldmine = 200;
const int XP_Bill_SearchEsteban = 200;
const int XP_Addon_HankHasSkipsGrog = 200;
const int XP_Addon_Tom = 100;
const int XP_Book_Level_1 = 50;
const int XP_Book_Level_2 = 75;
const int XP_Book_Level_3 = 100;
const int XP_Mission1 = 100;
const int XP_Mission2 = 100;
const int XP_Mission3 = 100;
const int XP_Mission4 = 100;
const int XP_Mission5 = 100;
const int XP_Andre_Bonus = 100;
const int XP_Garvell_Infos = 50; //видимо, опыт должен даваться за рассказанную инфу ГГ Гарвеллу, получается три раза
const int XP_Torlof_GenugStimmen = 250;
const int XP_GoraxBote = 100;
const int XP_GoraxBoteDead = 50;
const int XP_FoundJergan = 50; //наверно стоит дать опыт в этом диалоге DIA_Jergan_Diego
Я не знаю, как смотрели локализаторы, но в диалоге
Daedalus:
func void DIA_Addon_Saturas_Hallo_weiЯtdu()
{
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_00");    //Ты хоть имеешь представление о том, что ты наделал?
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_01");    //Ты настолько сильно пошатнул базовую структуру магического естества, что в Хоринисе все чуть не оглохли.
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_02");    //Скажи спасибо, что Барьера больше нет.
    AI_Output(other,self,"DIA_Addon_Saturas_Hallo_weiЯtdu_15_03");    //Что же ты жалуешься, старче? Все ведь сработано как надо.
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_04");    //(высокомерно) Следите за языком, юноша!
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_05");    //(раздраженно) Что, во имя всех стихий, тебе здесь нужно?
    Info_ClearChoices(DIA_Addon_Saturas_Hallo);
};
Присутствует немецкая лигатура ß, которая буква Я. Ее можно заменить на ss, ну или совсем в крайнем случае на b. Это не критично, но бросилось в глаза
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.558
Благодарности
4.139
Баллы
915
var int MIS_Andre_FISH; //возможно задумывался квест с рыбой
Возможно, о том, что у Фарима ополчение отбирает улов, можно было рассказать не Мартину (как реализовано сейчас), а лорду Андрэ.
var int MIS_SweepLibrary; //это что-то с библиотекой
Скорее всего в монастыре планировался квест по подметанию не только келий послушников, но и библиотеки. Но в итоге PB отказались от него и наградой за выполнение героем хозяйственных работ стал ключ от библиотеки.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.115
Благодарности
3.196
Баллы
485
var int MIS_FindTheObesessed; //нигде нет присвоение в статус выполнения, из-за чего у Милтена один диалог не работает
Реплика Милтена будет обязательно исправлена и восстановлена (её будет слышать ГГ-маг):
Daedalus:
AI_Output(self,other,"DIA_MiltenNW_KAP4_PERM_03_08");    //Мы получаем все больше сообщений об одержимых людях. Враг стал силен, значительно сильнее, чем я ожидал.

var int Igaraz_ISPartner; //нет присвоения в LOG_SUCCESS из-за чего диалог у Бабо заблокирован
Было исправлено и восстановлено пару месяцев назад в разрабатываемой версии: из-за этого недочета никогда не воспроизводились аж 10 реплик.

var int GernodsDrink;
var int GernodHappy;
Да это же про нашего старого знакомого Гернода (VLK_466_Gernod), который потерял свое имя к релизу:
117067_gernod.jpg

var int Knows_RuebenSchnaps; //присвоение нет нигде (упоминается в C_Addon_Knows_Schnaps)
Сама проверочная функция C_Addon_Knows_Schnaps тоже никак не используется.

var int Knows_RuebenSchnaps;
var int Knows_VinoSchnaps;
var int Knows_PiratenSchnaps;
var int Knows_Magierschnaps;
var int Knows_Sumpfkrautschnaps;
Похоже на наименования разных видов самогона, которые мог бы варить ГГ в аддоне, но которые не успели доделать: из свеклы, по рецепту Вино, пиратский, монастырский и из болотника.

Печально, что столько опыта упущено, хотя некоторые восстановить будет просто.
А надо ли?..

const int XP_Garvell_Infos = 50; //видимо, опыт должен даваться за рассказанную инфу ГГ Гарвеллу, получается три раза
В релизной версии игры за информацию (об орках в Рудниковой долине, миссии паладинов в Хоринисе и орке-разведчике у стен города) он дает динамическое количество опыта в зависимости от текущей главы, что, на мой взгляд, совсем неправильно. Почему поощряется откладывание сообщений на поздние этапы сюжета, если Гарвелл спешит закончить свой корабль и убраться с острова как можно скорее, а добывать эту информацию сложно как раз в начале игры? Мне кажется, что здесь следует наоборот давать больше опыта, если игрок поторопится, и меньше - с ходом сюжета. Эдакий XP_Ambient наоборот: 150 - 100 - 75 - 50 - 25.

Присутствует немецкий лигатура ß, которая буква Я. Ее можно заменить на ss, ну или совсем в крайнем случае на b. Это не критично, но бросилось в глаза
Было исправлено в разрабатываемой версии.
 
Последнее редактирование:

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455
Я не знаю, как смотрели локализаторы, но в диалоге
Daedalus:
func void DIA_Addon_Saturas_Hallo_weiЯtdu()
{
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_00");    //Ты хоть имеешь представление о том, что ты наделал?
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_01");    //Ты настолько сильно пошатнул базовую структуру магического естества, что в Хоринисе все чуть не оглохли.
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_02");    //Скажи спасибо, что Барьера больше нет.
    AI_Output(other,self,"DIA_Addon_Saturas_Hallo_weiЯtdu_15_03");    //Что же ты жалуешься, старче? Все ведь сработано как надо.
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_04");    //(высокомерно) Следите за языком, юноша!
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weiЯtdu_14_05");    //(раздраженно) Что, во имя всех стихий, тебе здесь нужно?
    Info_ClearChoices(DIA_Addon_Saturas_Hallo);
};
Присутствует немецкая лигатура ß, которая буква Я. Ее можно заменить на ss, ну или совсем в крайнем случае на b. Это не критично, но бросилось в глаза

ß - как суслика не видно, но она там есть, это зависит от выбора кодировки в редакторе, т.к. ANSI не может одновременно отобразить расширенную европейскую и кириллическую раскладку.
Тот же диалог, но открытый в западноевропейской Windows-1252.
Daedalus:
func void DIA_Addon_Saturas_Hallo_weißtdu()
{
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weißtdu_14_00");    //Òû õîòü èìååøü ïðåäñòàâëåíèå î òîì, ÷òî òû íàäåëàë?
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weißtdu_14_01");    //Òû íàñòîëüêî ñèëüíî ïîøàòíóë áàçîâóþ ñòðóêòóðó ìàãè÷åñêîãî åñòåñòâà, ÷òî â Õîðèíèñå âñå ÷óòü íå îãëîõëè.
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weißtdu_14_02");    //Ñêàæè ñïàñèáî, ÷òî Áàðüåðà áîëüøå íåò.
    AI_Output(other,self,"DIA_Addon_Saturas_Hallo_weißtdu_15_03");    //×òî æå òû æàëóåøüñÿ, ñòàð÷å? Âñå âåäü ñðàáîòàíî êàê íàäî.
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weißtdu_14_04");    //(âûñîêîìåðíî) Ñëåäèòå çà ÿçûêîì, þíîøà!
    AI_Output(self,other,"DIA_Addon_Saturas_Hallo_weißtdu_14_05");    //(ðàçäðàæåííî) ×òî, âî èìÿ âñåõ ñòèõèé, òåáå çäåñü íóæíî?
    Info_ClearChoices(DIA_Addon_Saturas_Hallo);
};

Было исправлено в разрабатываемой версии.
Диалог не работал? В файлах озвучки тоже все символы переименовали?
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.115
Благодарности
3.196
Баллы
485
Диалог не работал? В файлах озвучки тоже все символы переименовали?
Диалог работал и с файлами делать ничего не нужно, но вот такие символы в названиях функций - безобразие. Хоть и работающее. По возможности от них следует избавляться и никогда не использовать.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Спецсимволы в коде это заведомый рассадник багов, поэтому такое надо править и в скриптах и в названиях файлов..
И лохализаторы тут не причем, это уже скриптеры РВ накосорезили..
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455
Спецсимвол, или обычный - для движка игры перпендикулярно, просто в отображении в разных кодировках символы разных локалей. Тоже самое видно при установке на русскую версию немецкий текстурных шрифтов, или наоборот. Но я тоже в своем моде упоролся и многие функции с немецкими названиями перевел на английский и длину названия функций где возможно подсократил, а также подрезал везде длину в именах файлов озвучки, т.к. при добавлении нескольких паков озвучки с большим количеством файлов от разных локализаций глючил VDFS, но это было еще до SystemPack. :D
З.Ы, Кстати материалы порталов в ZEN в Г1 тоже содержали спецсимволы, как в Г2 не помню.

И лохализаторы тут не причем, это уже скриптеры РВ накосорезили..
Тру локализаторы бы так сделали: AI_Output(self,other,"Диа_Аддон_Сатурас_Привет_Знаешь_14_00"); ....
 
Последнее редактирование:

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Спецсимвол, или обычный - для движка игры перпендикулярно, просто в отображении в разных кодировках символы разных локалей.
Это для немца, его Оси и игры перпендикулярно, а для нашего брата нет, иначе поставь игру в русский каталог и увидишь все прелести перпендикулярности, не говоря о том что VDF, с этим хозяйством тоже глючил, если файлы содержали спец символы.. Нарывался на это когда одиссею/в2 и т.д. собирал, приходилось все файлы шерстить на поиск по этой части и править..
В коде и в именованиях файлов должна быть только стандартная "англицкая" латиница и более ничего, все остальное потенциальные баги.. *ded*
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455
Путь к игре и внутренние данные в скриптах не одно и тоже, двадцать лет вышеуказанный диалог у всех на всех локализациях работал, а тут понимаешь беда :D
Есть реальные правки багов, а есть исправления ради исправлений и для удовлетворения эстетического удовольствия, чем я и сам бывает увлекаюсь, но называть фиксом, то что и так работает, язык не поворачивается.
Дальнейшее обсуждение этого вопроса считаю бессмысленным.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Путь к игре и внутренние данные в скриптах не одно и тоже, двадцать лет вышеуказанный диалог у всех на всех локализациях работал, а тут понимаешь беда :D
Эт я все понимаю, но ты удивишься, то что работало у вас, у меня никогда не работало.. Это же проявляется и в тестах Юни, у всех работает, а у меня нет, значит надо править баги.. :D

Дальнейшее обсуждение этого вопроса считаю бессмысленным.
Аналогично.. ;)
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.271
Благодарности
4.574
Баллы
625
Спецсимвол, или обычный - для движка игры перпендикулярно, просто в отображении в разных кодировках символы разных локалей.
Утверждение верно от части. Тут суть вот в чем. Когда ты скармливаешь код компилятору, то его парсер понимает слова как ряд символов, разделенных по конкретным группам.
И тут уже не имеет значения анся это или юникод, если символ априори не входит в допустимые группы для наименования функций или переменных.

Например некий символ ß имеет код 223(Decimal) ANSI, что соответствует нашей заглавной Я (реже ?). Известно, некоторые компиляторы вообще не считают за буквы неанглийские символы => ß будет воспринят как синтаксическая ошибка.

Теперь к сути. На уровне движка и скомпилированного скрипта тут есть такой нюанс. Именем переменной или функции может быть любая кракозябра, ведь эти данные хранятся как текст. НО движок обращается к символам без учёта регистра методом перевода их в верхний. Такой перевод доступен только для английского набора символов, все другие идут лесом (на уровне системы)... Соответственно полезут ошибки, баги.. Кароче не буду вдаваться в эстетику, писать надо только в ангельском. В противном случае код по умолчанию получит статус говнокода :)
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455
Известно, некоторые компиляторы вообще не считают за буквы неанглийские символы => ß будет воспринят как синтаксическая ошибка.
А игровой компилятор таки считает и ошибку не выдает, в т.ч. и GothicSourcer.

Соответственно полезут ошибки, баги.
В данном случае диалог всегда работал, значит движок умеет переваривать ß.

В противном случае код по умолчанию получит статус говнокода :)
Так в этом сомнений и не было, была интересна необходимость и целесообразность правки.
И кстати, что насчет говно-ß в названиях файлов озвучки, ведь тоже не кошерно и требует правки?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.271
Благодарности
4.574
Баллы
625
В данном случае диалог всегда работал, значит движок умеет переваривать ß.
Не исключаю что компиляторы GS & ZenGin могут учитывать некоторые спецсимволы в построении имен. Но проверять это я не собираюсь :)

И кстати, что насчет говно-ß в названиях файлов озвучки, ведь тоже не кошерно и требует правки?
Да, это касается всего ресурсного барахла. По хорошему имена должны быть ангельские, короткие и не содержать пробелов (вместо можно писать '_').

UPD: Но не слишком короткие. Для некоторых хеш таблиц (файловой системы например) иногда полезно поиметь более отличимые друг от друга имена для повышения производительности обращений.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
А игровой компилятор таки считает и ошибку не выдает, в т.ч. и GothicSourcer.
Игровой компиллер ничего не считает, он вообще это дело не проверяет, как писал когда-то Вам. А вот Сурсер проверяет, в том числе и синтаксис, а тк он забил в него расширенную англикацию Latin 1, вот оно и не выеживается..

В данном случае диалог всегда работал, значит движок умеет переваривать ?.
Так ни кто и не говорил что он не работает, тебе о другом талдычат, к чему приведет подобное в игре, где и как это всплывет.. мы можем только гадать..
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455
Так ни кто и не говорил что он не работает, тебе о другом талдычат, к чему приведет подобное в игре, где и как это всплывет.. мы можем только гадать..
Как показала 20-летняя практика - ни к чему в данном случае это не привело, в отличие от спецсимволов в пути установки, когда это сразу заметно :D
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Как показала 20-летняя практика - ни к чему в данном случае это не привело, в отличие от спецсимволов в пути установки, когда это сразу заметно :D
Хз, может оно где-то иначе потом всплывет ?! А вот их наличие в названиях у меня не раз вызывало проблемы, та же ВДФ не всегда собирала тома если в названиях файлов были спец символы, хотя у немцев оно все собирается. И вот фиг знает где тут собака порылась, в прогах, игре или в винде.. *gigi*

Зы, В целом по этому вопросу, я стараюсь следовать старому правилу, которому меня когда-то учили: "Комп с рождения англичанин и ничего другого кроме стандартного ангельского не знает". А посему, во всех тех. текстах, кодах и прочем подобном разрешено использовать символы: 1234567890, qwertyuiopasdfghjklzxcvbnm и некоторые символы пунктуации, все остальное идет лесом.. Как-то так.. :)
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455
Ну так я тоже этому следую, ибо выше уже писал, что еще сильнее упарывался с англификацией функций и имен для сокращения длины оных.
Выяснялась вероятность оставления уже существующих спорных решений, которые долгие десятилетия ждали своего часа.
Как оказалось, имена файлов со спецсимволами тоже не кошерны и могут привести к вызову Белиара, а значит также должны быть искоренены. *thumbs up*
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Ну так я тоже этому следую, ибо выше уже писал, что еще сильнее упарывался с англификацией функций и имен для сокращения длины оных.
И это гут.. :)

Как оказалось, имена файлов со спецсимволами тоже не кошерны и могут привести к вызову Белиара, а значит также должны быть искоренены. *thumbs up*
*lol*
 
Сверху Снизу