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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

ArchDarth

Участник форума
Регистрация
13 Фев 2010
Сообщения
8
Благодарности
0
Баллы
145
Собственно вот что в G_CanNotUse.d

func void G_CanNotUse(var int bIsPlayer,var int nAttribute,var int nValue)
{
var int nAttributeValue;
var string strAttribute;
var int nDifference;
var string strDifference;
var string strMessage;
if(nAttribute == ATR_HITPOINTS)
{
strAttribute = _STR_ATTRIBUTE_HITPOINTS;
nAttributeValue = self.attribute[ATR_HITPOINTS];
}
else if(nAttribute == ATR_HITPOINTS_MAX)
{
strAttribute = _STR_ATTRIBUTE_HITPOINTS_MAX;
nAttributeValue = self.attribute[ATR_HITPOINTS_MAX];
}
else if(nAttribute == ATR_MANA)
{
strAttribute = _STR_ATTRIBUTE_MANA;
nAttributeValue = self.attribute[ATR_MANA];
}
else if(nAttribute == ATR_MANA_MAX)
{
strAttribute = _STR_ATTRIBUTE_MANA_MAX;
nAttributeValue = self.attribute[ATR_MANA_MAX];
}
else if(nAttribute == ATR_STRENGTH)
{
strAttribute = _STR_ATTRIBUTE_STRENGTH;
nAttributeValue = self.attribute[ATR_STRENGTH];
}
else if(nAttribute == ATR_DEXTERITY)
{
strAttribute = _STR_ATTRIBUTE_DEXTERITY;
nAttributeValue = self.attribute[ATR_DEXTERITY];
}
else
{
strAttribute = _STR_INVALID;
nAttributeValue = 0;
};
nDifference = nValue - nAttributeValue;
strDifference = IntToString(nDifference);
if(bIsPlayer)
{
strMessage = _STR_CANNOTUSE_PRE_PLAYER;
}
else
{
return;
};
strMessage = ConcatStrings(self.name,_STR_CANNOTUSE_PRE_NPC);
strMessage = ConcatStrings(strMessage,IntToString(self.id));
strMessage = ConcatStrings(strMessage,_STR_CANNOTUSE_POST_NPC);
strMessage = ConcatStrings(strMessage,strDifference);
strMessage = ConcatStrings(strMessage," ");
strMessage = ConcatStrings(strMessage,strAttribute);
strMessage = ConcatStrings(strMessage,_STR_CANNOTUSE_POINTS);
strMessage = ConcatStrings(strMessage,_STR_CANNOTUSE_POST);
if(bIsPlayer)
{
G_PrintScreen(strMessage);
};
};

а вот кусок из Text.d

const string _STR_CANNOTUSE_PRE_PLAYER = "Недостаточно ";
const string _STR_CANNOTUSE_POINTS = "";
const string _STR_CANNOTUSE_LEVELS = "Круга магии ";
const string _STR_CANNOTUSE_POST = "для использования.";
const string _STR_CANNOTUSE_PRE_NPC = " (";
const string _STR_CANNOTUSE_POST_NPC = ") отсутствует.";

В итоге "Я (0) отсутствует. ловкости для использования."
Поправил PRE и POST NPC (Сделал "Мне не хватает")- всё равно остаётся "Я" и "0", если убрать self.name и strMessage=ConcatStrings(strMessage,IntToString(self.id));
то получится вообще Недостаточно Мне не хватает ----- для использования. Что не так сделал?
Что за self.name и blsPlayer?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.158
Благодарности
6.138
Баллы
1.565
Вот оригинал этого файла:
func void G_CanNotUse( var int bIsPlayer, var int nAttribute, var int nValue )
{
//
// DETERMINE ATTIBUTE
//
var int nAttributeValue ;
var string strAttribute ;

if ( nAttribute == ATR_HITPOINTS ) { strAttribute = _STR_ATTRIBUTE_HITPOINTS ; nAttributeValue = self.attribute[ ATR_HITPOINTS ]; }
else if ( nAttribute == ATR_HITPOINTS_MAX ) { strAttribute = _STR_ATTRIBUTE_HITPOINTS_MAX ; nAttributeValue = self.attribute[ ATR_HITPOINTS_MAX ]; }
else if ( nAttribute == ATR_MANA ) { strAttribute = _STR_ATTRIBUTE_MANA ; nAttributeValue = self.attribute[ ATR_MANA ]; }
else if ( nAttribute == ATR_MANA_MAX ) { strAttribute = _STR_ATTRIBUTE_MANA_MAX ; nAttributeValue = self.attribute[ ATR_MANA_MAX ]; }
else if ( nAttribute == ATR_STRENGTH ) { strAttribute = _STR_ATTRIBUTE_STRENGTH ; nAttributeValue = self.attribute[ ATR_STRENGTH ]; }
else if ( nAttribute == ATR_DEXTERITY ) { strAttribute = _STR_ATTRIBUTE_DEXTERITY ; nAttributeValue = self.attribute[ ATR_DEXTERITY ]; }
else { strAttribute = _STR_INVALID ; nAttributeValue = 0 ; };

//
// COMPOSE MESSAGE
//
var int nDifference ;
var string strDifference;
var string strMessage ;

nDifference = nValue - nAttributeValue;
strDifference = IntToString( nDifference );

if ( bIsPlayer )
{
strMessage = _STR_CANNOTUSE_PRE_PLAYER;
}
else
{
return; //SN: Nur fьr Debugzwecke!
strMessage = ConcatStrings( self.name, _STR_CANNOTUSE_PRE_NPC );
strMessage = ConcatStrings( strMessage, IntToString(self.id) );
strMessage = ConcatStrings( strMessage, _STR_CANNOTUSE_POST_NPC );
};

strMessage = ConcatStrings( strMessage, strDifference );
strMessage = ConcatStrings( strMessage, " " );
strMessage = ConcatStrings( strMessage, strAttribute );
strMessage = ConcatStrings( strMessage, _STR_CANNOTUSE_POINTS );
strMessage = ConcatStrings( strMessage, _STR_CANNOTUSE_POST );

//
// PRINT MESSAGE
//
if ( bIsPlayer )
{
G_PrintScreen( strMessage );
};
};
 

ArchDarth

Участник форума
Регистрация
13 Фев 2010
Сообщения
8
Благодарности
0
Баллы
145
Спасибо, я даже и не подумал оригинал вскрывать.
После компиляции 3 внимания- это нормально?
И для чего Gothic.src нужен?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.158
Благодарности
6.138
Баллы
1.565
Внимание - это нормально, ничего страшного, поправить конечно желательно(ГС сам говорит что нужно), но не обязательно.
В Gothic.src прописаны все файлы которые будут включены в Gothic.dat и OU.BIN, если будешь дальше ковыряться в модостроении, то с коро сам все поймешь.*flowers*
 

ArchDarth

Участник форума
Регистрация
13 Фев 2010
Сообщения
8
Благодарности
0
Баллы
145
Ещё небольшой вопрос- а как узнать что править? где-то файл с ворнингами сохраняется?
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455
Ещё небольшой вопрос- а как узнать что править? где-то файл с ворнингами сохраняется?
В "Окне сообщений (Message Window)" ГотикСорсера двойной клик мышкой на ворнинге откроет файл на строчке (или под строчкой) с ошибкой.
 

Je00Ka

Участник форума
Регистрация
16 Авг 2008
Сообщения
65
Благодарности
0
Баллы
160
Помогите новичку!

Создал новую тему так как считаю, что не стоит мне засорять старые...
Проблема вот в чем:
Я создаю новый мод(Остров Белого Кита), и при его запуске происходят странные вещи:D окошко сворачивается и игра повисает...
В чем дело не знаю...
Ссылка на crash-файл здесь
 

ВоинИнтернета

Участник форума
Регистрация
29 Апр 2010
Сообщения
752
Благодарности
3
Баллы
200
помощь модостройщикам

Давайте в эту тему вкладывать советы , ссылки на 3ds файлы полезные, ссылки на модостроительные программы и.т.д. Самому интересно!
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455

Vitalik

Участник форума
Регистрация
30 Май 2010
Сообщения
108
Благодарности
0
Баллы
165
Неизвестный идентификатор: SLF

Вот что я увидел при компиляции GOTHIC.dat

Story\B_Story\C_DiegoTooFar.d(53): Ошибка: Неизвестный идентификатор: SLF

Операция преврана:mad:, кто-нибудь раскажет мне что это за дребедень*???*? Есть ли решение этой проблемы?:mad:
 

Je00Ka

Участник форума
Регистрация
16 Авг 2008
Сообщения
65
Благодарности
0
Баллы
160
Re: Неизвестный идентификатор: SLF

Ты в этом скрипте что-нибудь менял?
если нет то:
У меня в декомпилированных скриптах Аккелы эта строчка выглядит так:
else if((Npc_GetDistToWP(hero,"OC_CENTER_02") < (12000 + tolerance)) || (Npc_GetDistToWP(hero,"OC_CENTER_05") < (12000 + tolerance)))
если да то:
нужно объявить эту переменную где-нибудь в начале, например в Story_globals.d
 

Magmatic Imperius

Участник форума
Регистрация
21 Апр 2009
Сообщения
85
Благодарности
10
Баллы
160
Re: Неизвестный идентификатор: SLF

SLF - это просто ошибка в строке скрипта, надо вместо него (т.е. SLF) написать self.
 

Бодрячек

Участник форума
Регистрация
14 Июн 2010
Сообщения
16
Благодарности
0
Баллы
150

Je00Ka

Участник форума
Регистрация
16 Авг 2008
Сообщения
65
Благодарности
0
Баллы
160
Re: Неизвестный идентификатор: SLF

Вот нормальный файл, компилируется запросто
 

Вложения

  • C_DiegoTooFar.zip
    698 байт · Просмотры: 134

Vitalik

Участник форума
Регистрация
30 Май 2010
Сообщения
108
Благодарности
0
Баллы
165
Re: Неизвестный идентификатор: SLF

А изменения в игре какие будут??????
 

marazmus

★★★★★★★★★★★
Основатель
Регистрация
7 Янв 2003
Сообщения
2.117
Благодарности
912
Баллы
385
Re: Неизвестный идентификатор: SLF

Vitalik, убедительно прошу - заканчивай флудить, писать бессмысленную фигню, и бегом отправляйся учить Уроки Вама. Проштудируй 3-4 раза, потом приходи обратно и задавай нормальные вопросы. Продолжишь тупить - отправишься на премодерацию.

Если это для тебя жестко, то это твои проблемы. Готические модостроители - люди суровые, и если хочешь стать одним из них, сделай сперва квест с изучением уроков Вама.

Ферштейн, камраден?
 

Торрез

Участник форума
Регистрация
2 Авг 2009
Сообщения
102
Благодарности
0
Баллы
165
Можно ли менять цены в игре по определенной причине допустим ГГ становится учеником торговца, а тот обучает его торговли?
И можно ли сделать ключ "от всех дверей"?
 

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
932
Благодарности
130
Баллы
225
Регис
Если очень захотеть , то все можно, но придется достаточно глубоко лезть в скрипты.
например можно продублировать предметы, прописав им разные цены. Каждому дублю в инстанции дописать к примеру Prise. А по команде скрипта заменить инвентарь торговца. Но это, скорее всего будет муторно. Возможно есть другие варианты::)
Ключ от всех дверей, в принципе можно, но я не помню, можно ли задать 2 инстанции ключа мобу. Если нельзя, тогда один ключ и будет открываь все двери и ни как по другому
 

Солве

Участник форума
Регистрация
2 Июл 2010
Сообщения
16
Благодарности
0
Баллы
150
у меня вопрос, вот у меня сейчас стоит возвращение 1.1 допустим я хочу изменить количество силы для доспеха, что мне делать? я поступил так... с помошью проги GothicVDFS распоковал файл ADDON_RETURNING.vdf, в Соурсе создал новый проект для дикопиляции и включил в него распакованный файл Gothic.dat декомпилировал, изменил нужные мне параметры, компилировал, кинул Gothic.dat и OU.bin в папку, куда я распоковал ADDON_RETURNING.vdf , что мне делать дальше что бы мои изменения вступили в силу? Запаковать мод? Или допустим я хочу дать мои изменения другу, как мне поступить?
 

Солве

Участник форума
Регистрация
2 Июл 2010
Сообщения
16
Благодарности
0
Баллы
150
Объясните новичку...

у меня вопрос, вот у меня сейчас стоит возвращение 1.1 допустим я хочу изменить количество силы для доспеха, я поступил так... с помошью проги GothicVDFS распоковал файл ADDON_RETURNING.vdf, в Соурсе создал новый проект для дикопиляции и включил в него распакованный файл Gothic.dat декомпилировал, изменил нужные мне параметры, компилировал, кинул Gothic.dat и OU.bin в папку, куда я распоковал ADDON_RETURNING.vdf , что мне делать дальше что бы мои изменения вступили в силу? Запаковать мод? Или допустим я хочу дать мои изменения другу, как мне поступить?
 
Сверху Снизу