[AGFC: Valley of Gothic] М:Декомпилятор скриптов Готики

Страница 24 из 31 « Первая 141718192021222324 25262728293031
Поиск в этой теме:

Расширенный поиск
Старый 05.12.2006, 11:22   #921
dixie

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
Есть проблема с VGS 3.10, так и не смог я декомпилировать DAT и OU - файлы, Готики 1 от Руссобита с Дикуриком.
Обрати таки внимание на пост #905 ;) - по нему видно, что диккурик нормально декомпилируется и никаких сложностей при самой декомпиляции не встречается.
Ответить с цитированием
Старый 05.12.2006, 14:36   #922
Xentar

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
Уже давно сообщил о Руссобите Vam'у и по моему он уже разобрался с этим. Остается ждать новой версии VGS
Но GS 2.40 с этим не плохо справляется, так что для дкомпиляции версии от Руссобита можешь использовать его.
Ответить с цитированием
Старый 05.12.2006, 22:23   #923
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

2Dixie:
Обрати таки внимание на пост #905 ;) - по нему видно, что диккурик нормально декомпилируется и никаких сложностей при самой декомпиляции не встречается.
- Угу, согласен, ток вот я говорил о самой Готике1, а не о моде Диккурик. ;)

2SubZero[X]:
Уже давно сообщил о Руссобите Vam'у и по моему он уже разобрался с этим. Остается ждать новой версии VGS
Но GS 2.40 с этим не плохо справляется, так что для дкомпиляции версии от Руссобита можешь использовать его.
- Спасибо, успокоили, а зачем он мне нужен этот GS 2.40?
Опять иконки юзать? Нет уж, - спасибо, я с этим(3.10) как-то больше свыкся, да и мод на нем лепить удобнее, не сподручно ща обратно перескакивать. ;D
И вообще если проблему решают, то она в будующих версиях по логике повториться не должна. Может Vam ею не занимался вовсе? ::)

====================
PS.
Всеже, если у кого есть компиленые или декомпиленые, датник и оу к Готе1, ну мона и к Диккурику, залейте на какой нибудь хост. плизз... и бросьте в долину линк. :)
Отправить личное сообщение для Ответить с цитированием
Старый 06.12.2006, 08:50   #924
Bleidd

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
А у тебя патч http://travel.ag.ru/gothic/files/g1/GIRussobit.exe
установлен? Проверил - декомпилируется и компилируется все нормально, версия 2.40
В конце концов можно декомпилировать GS 2.40, а потом натравить на src файл версию 3.10.
Ответить с цитированием
Старый 06.12.2006, 09:27   #925
Xentar

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
Может Vam ею не занимался вовсе?
Объясняю еще раз:
Я сообщил о проблеме, когда GS 3.10 только еще вышел, так что она будет исправлена в следующих версиях GS, а 3.10 уже вышла. Подожди новой версии - там этой проблемы не будет.
Ответить с цитированием
Старый 09.12.2006, 23:24   #926
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

Vam'u:

Ну собсно, это старо... *Опять 25. :(
При декомпиляции собранного и рабочего dat-файла, полезло следующее:

Вывод ошибок декомпиллером при первой компиляции, декомпилированного dat-файла:
1. AI\AI_Intern\Perception.d(4): Ошибка: Неизвестный идентификатор: READYWEAP
2. AI\AI_Intern\Perception.d(15): Ошибка: Неизвестный идентификатор: READYWEAP
3. AI\AI_Intern\Perception.d(16): Ошибка: Неизвестный идентификатор: READYWEAP

Вместо "READYWEAP", должно быть "9999".

Содержимое файла Perception.d:

Cпойлер(щелкните, чтобы прочесть):
Код:
func void InitPerceptions(){ * * *Perc_SetRange(PERC_ASSESSDAMAGE,READYWEAP); * * *Perc_SetRange(PERC_ASSESSOTHERSDAMAGE,PERC_DIST_INTERMEDIAT); * * *Perc_SetRange(PERC_ASSESSDEFEAT,WATCHFIGHT_DIST_MAX); * * *Perc_SetRange(PERC_ASSESSMURDER,PERC_DIST_ACTIVE_MAX); * * *Perc_SetRange(PERC_ASSESSTHREAT,PERC_DIST_INTERMEDIAT); * * *Perc_SetRange(PERC_DRAWWEAPON,PERC_DIST_DIALOG); * * *Perc_SetRange(PERC_ASSESSFIGHTSOUND,3000); * * *Perc_SetRange(PERC_ASSESSQUIETSOUND,PERC_DIST_INTERMEDIAT); * * *Perc_SetRange(PERC_ASSESSTHEFT,PERC_DIST_INTERMEDIAT); * * *Perc_SetRange(PERC_ASSESSUSEMOB,PERC_DIST_INTERMEDIAT); * * *Perc_SetRange(PERC_ASSESSENTERROOM,PERC_DIST_INTERMEDIAT); * * *Perc_SetRange(PERC_ASSESSMAGIC,READYWEAP); * * *Perc_SetRange(PERC_ASSESSSTOPMAGIC,READYWEAP); * * *Perc_SetRange(PERC_ASSESSTALK,PERC_DIST_DIALOG); * * *Perc_SetRange(PERC_ASSESSWARN,PERC_DIST_INTERMEDIAT); * * *Perc_SetRange(PERC_MOVEMOB,PERC_DIST_DIALOG); * * *Perc_SetRange(PERC_ASSESSSURPRISE,FIGHT_DIST_CANCEL); * * *Perc_SetRange(PERC_OBSERVEINTRUDER,100); * * *Perc_SetRange(PERC_ASSESSREMOVEWEAPON,100); * * *Perc_SetRange(PERC_CATCHTHIEF,100); * * *Perc_SetRange(PERC_ASSESSCALL,100); * * *Perc_SetRange(PERC_MOVENPC,100); * * *Perc_SetRange(PERC_ASSESSCASTER,100); * * *Perc_SetRange(PERC_NPCCOMMAND,100); * * *Perc_SetRange(PERC_OBSERVESUSPECT,100);};func void Perception_Set_Normal(){ * * *self.senses = SENSE_HEAR | SENSE_SEE; * * *self.senses_range = PERC_DIST_ACTIVE_MAX; * * *if(Npc_KnowsInfo(self,1) || C_NpcIsGateGuard(self)) * * *{ * * * * * *Npc_SetPercTime(self,0.3); * * *} * * *else * * *{ * * * * * *Npc_SetPercTime(self,1); * * *}; * * *Npc_PercEnable(self,PERC_ASSESSPLAYER,B_AssessPlayer); * * *Npc_PercEnable(self,PERC_ASSESSENEMY,B_AssessEnemy); * * *Npc_PercEnable(self,PERC_ASSESSMAGIC,B_AssessMagic); * * *Npc_PercEnable(self,PERC_ASSESSDAMAGE,B_AssessDamage); * * *Npc_PercEnable(self,PERC_ASSESSMURDER,B_AssessMurder); * * *Npc_PercEnable(self,PERC_ASSESSTHEFT,B_AssessTheft); * * *Npc_PercEnable(self,PERC_ASSESSUSEMOB,B_AssessUseMob); * * *Npc_PercEnable(self,PERC_ASSESSENTERROOM,B_AssessPortalCollision); * * *Npc_PercEnable(self,PERC_ASSESSTHREAT,B_AssessThreat); * * *Npc_PercEnable(self,PERC_DRAWWEAPON,B_AssessDrawWeapon); * * *Npc_PercEnable(self,PERC_ASSESSFIGHTSOUND,B_AssessFightSound); * * *Npc_PercEnable(self,PERC_ASSESSQUIETSOUND,B_AssessQuietSound); * * *Npc_PercEnable(self,PERC_ASSESSWARN,B_AssessWarn); * * *Npc_PercEnable(self,PERC_ASSESSTALK,B_AssessTalk); * * *Npc_PercEnable(self,PERC_MOVEMOB,B_MoveMob);};func void Perception_Set_Minimal(){ * * *self.senses = SENSE_HEAR | SENSE_SEE; * * *self.senses_range = PERC_DIST_ACTIVE_MAX; * * *Npc_PercEnable(self,PERC_ASSESSMAGIC,B_AssessMagic); * * *Npc_PercEnable(self,PERC_ASSESSDAMAGE,B_AssessDamage); * * *Npc_PercEnable(self,PERC_ASSESSMURDER,B_AssessMurder); * * *Npc_PercEnable(self,PERC_ASSESSTHEFT,B_AssessTheft); * * *Npc_PercEnable(self,PERC_ASSESSUSEMOB,B_AssessUseMob); * * *Npc_PercEnable(self,PERC_ASSESSENTERROOM,B_AssessPortalCollision);};func void B_ClearPerceptions(var C_Npc slf){ * * *Npc_PercDisable(slf,PERC_ASSESSPLAYER); * * *Npc_PercDisable(slf,PERC_ASSESSENEMY); * * *Npc_PercDisable(slf,PERC_ASSESSBODY); * * *Npc_PercDisable(slf,PERC_ASSESSMAGIC); * * *Npc_PercDisable(slf,PERC_ASSESSDAMAGE); * * *Npc_PercDisable(slf,PERC_ASSESSMURDER); * * *Npc_PercDisable(slf,PERC_ASSESSTHEFT); * * *Npc_PercDisable(slf,PERC_ASSESSUSEMOB); * * *Npc_PercDisable(slf,PERC_ASSESSENTERROOM); * * *Npc_PercDisable(slf,PERC_ASSESSTHREAT); * * *Npc_PercDisable(slf,PERC_DRAWWEAPON); * * *Npc_PercDisable(slf,PERC_ASSESSFIGHTSOUND); * * *Npc_PercDisable(slf,PERC_ASSESSQUIETSOUND); * * *Npc_PercDisable(slf,PERC_ASSESSWARN); * * *Npc_PercDisable(slf,PERC_ASSESSTALK); * * *Npc_PercDisable(slf,PERC_MOVEMOB); * * *Npc_PercDisable(slf,PERC_ASSESSOTHERSDAMAGE); * * *Npc_PercDisable(slf,PERC_ASSESSSTOPMAGIC); * * *Npc_PercDisable(slf,PERC_ASSESSSURPRISE);};func void perception_set_orc(){ * * *Npc_SetPercTime(self,1); * * *if((self.flags & NPC_FLAG_GHOST) == 0) * * *{ * * * * * *self.senses = SENSE_HEAR | SENSE_SEE; * * * * * *self.senses_range = PERC_DIST_ACTIVE_MAX; * * * * * *self.aivar[AIV_MM_FollowTime] = FOLLOWTIME_LONG; * * * * * *self.aivar[AIV_MM_FollowInWater] = TRUE; * * * * * *Npc_PercEnable(self,PERC_ASSESSENEMY,B_MM_AssessEnemy); * * * * * *Npc_PercEnable(self,PERC_ASSESSPLAYER,B_AssessPlayer); * * * * * *Npc_PercEnable(self,PERC_ASSESSMAGIC,B_AssessMagic); * * * * * *Npc_PercEnable(self,PERC_ASSESSDAMAGE,B_MM_AssessDamage); * * * * * *Npc_PercEnable(self,PERC_ASSESSOTHERSDAMAGE,B_MM_AssessOthersDamage); * * * * * *Npc_PercEnable(self,PERC_ASSESSMURDER,B_MM_AssessOthersDamage); * * * * * *Npc_PercEnable(self,PERC_ASSESSTALK,B_AssessTalk); * * *} * * *else * * *{ * * * * * *self.senses = 0; * * * * * *self.senses_range = 0; * * * * * *self.aivar[AIV_MM_FollowTime] = 0; * * * * * *self.aivar[AIV_MM_FollowInWater] = FALSE; * * * * * *Npc_PercEnable(self,PERC_ASSESSUSEMOB,B_AssessUseMob); * * * * * *Npc_PercEnable(self,PERC_MOVEMOB,B_MoveMob); * * * * * *Npc_PercDisable(self,PERC_ASSESSMURDER); * * * * * *Npc_PercDisable(self,PERC_ASSESSTALK); * * * * * *Npc_PercDisable(self,PERC_ASSESSPLAYER); * * * * * *Npc_PercDisable(self,PERC_ASSESSENEMY); * * * * * *Npc_PercDisable(self,PERC_ASSESSBODY); * * * * * *Npc_PercDisable(self,PERC_ASSESSMAGIC); * * * * * *Npc_PercDisable(self,PERC_ASSESSDAMAGE); * * * * * *Npc_PercDisable(self,PERC_ASSESSTHEFT); * * * * * *Npc_PercDisable(self,PERC_DRAWWEAPON); * * * * * *Npc_PercDisable(self,PERC_ASSESSENTERROOM); * * * * * *Npc_PercDisable(self,PERC_ASSESSTHREAT); * * * * * *Npc_PercDisable(self,PERC_ASSESSFIGHTSOUND); * * * * * *Npc_PercDisable(self,PERC_ASSESSQUIETSOUND); * * * * * *Npc_PercDisable(self,PERC_ASSESSWARN); * * * * * *Npc_PercDisable(self,PERC_ASSESSOTHERSDAMAGE); * * * * * *Npc_PercDisable(self,PERC_ASSESSSTOPMAGIC); * * * * * *Npc_PercDisable(self,PERC_ASSESSSURPRISE); * * *};};


После того как исправил ошибочные аргументы, запустил повторную компиляцию, и еще сюрпрайз... которого до этого не было. *:(

1. Story\B_Story\C_DiegoTooFar.d(25): Ошибка: Нельзя преобразовать тип int *в instance

Содержимое файла C_DiegoTooFar.d:

Cпойлер(щелкните, чтобы прочесть):
Код:
const int LOC_ANGAR = 1;const int LOC_ICE = 2;const int LOC_SWAMP = 4;const int LOC_FIRE = 3;const int LOC_LAKE = 5;const int LOC_XARDAS = 6;const int LOC_FAJETHMINE = 7;const int LOC_SILVESTROMINE = 8;const int LOC_GRIMESMINE = 9;const int LOC_BURG = 10;const int LOC_ORCBARRIER = 11;const int LOC_ORCBARRIER_FAR = 12;func int C_DiegoTooFar(var int tolerance){ * * *if(Npc_GetDistToWP(hero,"SPAWN_OW_SHADOWBEAST_10_01") < (4000 + tolerance)) * * *{ * * * * * *return LOC_ANGAR; * * *} * * *else if(Npc_GetDistToWP(hero,"OW_ICEREGION_ENTRANCE_01") < (3000 + tolerance)) * * *{ * * * * * *return LOC_ICE; * * *} * * *else if(Npc_GetDistToWP(hero,"OW_PATH_046") < (hero + tolerance)) * * *{ * * * * * *return LOC_SWAMP; * * *}
Вместо (hero + tolerance), долно быть (1800 + tolerance)

Код:
 * * *{ * * * * * *return LOC_FIRE; * * *} * * *else if((Npc_GetDistToWP(hero,"MT16") < (6500 + tolerance)) || (Npc_GetDistToWP(hero,"MT13") < (5500 + tolerance))) * * *{ * * * * * *return LOC_LAKE; * * *} * * *else if((Npc_GetDistToWP(hero,"DT_MAINGATE") < (500 + tolerance)) || (Wld_GetPlayerPortalGuild() == GIL_DMT) || ((Npc_GetDistToWP(hero,"DT_E3_03") < 1000) && (Npc_GetHeightToNpc(self,hero) > 1000))) * * *{ * * * * * *return LOC_XARDAS; * * *} * * *else if((Npc_GetDistToWP(hero,"OW_NEWMINE_03") < (2500 + tolerance)) || (Npc_GetDistToWP(hero,"OW_NEWMINE_03_B") < (2500 + tolerance))) * * *{ * * * * * *return LOC_FAJETHMINE; * * *} * * *else if(Npc_GetDistToWP(hero,"OW_MINE3_OUT") < (1200 + tolerance)) * * *{ * * * * * *return LOC_SILVESTROMINE; * * *} * * *else if(Npc_GetDistToWP(hero,"OW_PATH_266") < (3000 + tolerance)) * * *{ * * * * * *return LOC_GRIMESMINE; * * *} * * *else if((Npc_GetDistToWP(hero,"OC_CENTER_02") < (12000 + tolerance)) || (Npc_GetDistToWP(hero,"OC_CENTER_05") < (12000 + tolerance))) * * *{ * * * * * *return LOC_BURG; * * *} * * *else if((Npc_GetDistToWP(hero,"OC_ORCBARRIER_08") < (5000 + tolerance)) || (Npc_GetDistToWP(hero,"PATH_OC_PSI_01") < (5000 + tolerance))) * * *{ * * * * * *return LOC_ORCBARRIER; * * *} * * *else if(Npc_GetDistToWP(hero,"OW_PATH_BLOODFLY01_SPAWN01") < (5000 + tolerance)) * * *{ * * * * * *return LOC_ORCBARRIER_FAR; * * *}; * * *return FALSE;};


В файле, RedefinedFunc.dsc смотрел, там все вроде нормально, по первой ошибке, приведенных функций в этом файле не обнаружено.
Вопрос, а их самим туда нужно прописывать, если да то кагда это нужно делать, в каких случаях?

Содержимое файла CRedefinedFunc.dsc:

Cпойлер(щелкните, чтобы прочесть):
Код:
void B_PlayerFindItem(int#,int);int B_SetPlayerMap(int#);int# B_GetPlayerMap(void);int# PLAYER_HOTKEY_SCREEN_MAP(void);void B_RemoveNpc(int#);int B_GiveInvItems(instance,instance,int#,int);void B_UseItem(instance,int#);int# B_GetBestPlayerMap(void);int# B_GetAnyPlayerMap(void);void B_SetNpcVisual(instance,int,string,int,int,int#);void B_KillNpc(int#);int C_NpcHasAmmo(instance,int#);void B_ExchangeRoutine(int#,string);void B_SetPermAttitude(int#,int);void B_ClearImmortal(int#);void B_SetNpcType(int#,int);void B_ChangeGuild(int#,int);


Вот собсно, за сим усе. *;)
Удачи в отлове, этих мелких гаденышей... И скорейшем выходе новой версии ;D.
Отправить личное сообщение для Ответить с цитированием
Старый 11.12.2006, 11:14   #927
Vam

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

По умолчанию Re: М:Декомпилятор скриптов Готики

Новую версии инструмента Готического скриптёра и модельера:
Графическая среда разработки скриптов и моделей [glow=red,2,300]GothicSourcer V3.11[/glow] *для платформ Готики и Готики 2 можно скачать о
тсюда
.

Успехов! *;) *
Ответить с цитированием
Старый 11.12.2006, 16:16   #928
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

Вам!

Уй... Мля!!!! *
Не успел... * :'(
Баг выловил на днях еще один... *:(

При компиляции дат файла, все проходит отлично... Датник мода создан, а вот при обратной декомпиляции компилированного VGS дат-файла, она и проявляется.

Из папки _Intern исчезает в неизвестном направление файл с названием Constants. :o
Но самое странное, его содержимое оказывается в файле Story_Globals.
А содержимое Story_Globals, оказывается в папке _misk_ в файле под названием OCStoreKey...

Вот собсно и все ужасы, не знаю сам выловил ты его или нет, но лучше поздно чем никогда. *;D

А теперь о Хорошем... *:)
Бягу КАЧАТЬ *;D
А те очередной РЕСПЕКТ, от начинающего скриптолога... :pivo::pivo::pivo: *

=============================
PS.
Все подобное творится с модом заточенным под Готику 2.
Отправить личное сообщение для Ответить с цитированием
Старый 11.12.2006, 16:43   #929
Xentar

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
Такое иногда бывает. Но зачем тебе это понадобилось??? Если таких выкрутасов не делать, то всё нормально.

ЗЫ: Ведь в принципе можно и зайца научить курить... Вопрос зачем???
Ответить с цитированием
Старый 11.12.2006, 17:01   #930
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

Цитата:
Сообщение от SubZero[X
link=board=gothic&t=1095241429&start=925#928 date=12/11/06, в 15:43:14]
2MaGoth:
Такое иногда бывает. Но зачем тебе это понадобилось??? Если таких выкрутасов не делать, то всё нормально.

ЗЫ: Ведь в принципе можно и зайца научить курить... Вопрос зачем???
Зачем его курить учить :o???
Он от табака дохнет. ;D
А если серьезно, не правильно это...
Хотя он компилится а как в игре себя поведет вопрос.

Кстати сейчас проверил и в версии 3.11, тоже самое :'(

Vam!!!

И еще проблема которую пытаюсь решить третий день, при вставке своих файлов, в проект, т.е. готовых скриптов.. все нормально сохраняю, и зыкрываю проект, а потом открыть не могу...
При начале построенния дерева переменных VGS вылетает в винду с ошибкой:
AppName: gothicsourcerv3_11.exe * * * AppVer: 9.7.0.0 * * * ModName: gothicsourcerv3_11.exe
ModVer: 9.7.0.0 * * * Offset: 000cba5b


=========================
PS.
И причем тут накуренные зайцы? :(
   Этаже самая ошибка проявляется и в версии 3.10
Отправить личное сообщение для Ответить с цитированием
Старый 12.12.2006, 11:56   #931
Vam

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
Из папки _Intern исчезает в неизвестном направление файл с названием Constants.
Но самое странное, его содержимое оказывается в файле Story_Globals.
А содержимое Story_Globals, оказывается в папке misk в файле под названием OCStoreKey...
В dat файле информация об именах исходных файлов скриптов и директориях полностью отсутствует. Декомпилятор восстанавливает исходные имена эвристически, базируясь на оригинальных скриптах Г1 или Г2. Если эвристицизма ему не хватает, то имя файла формируется из имени первой встретившейся в файле (в порядке приоритета) - функции, инстанции, прототипа, класса, константы. Такие файлы создаются в директории _misk_, далее, если файл с именем, созданным декомпилятором уже находится в указанной директории, то файл именуется порядковым номером, соответствующим его позиции в src файле и создается в корневой директории.
Выводы:
1. На компиляцию имена файлов и раскладка их по директориям никак не влияют, датник создается в любом случае правильно.
2. Если вы хотите, чтобы при декомпиляции своих проектов имена соответствовали первоначальным, то рекомендуется файлы называть по имени первой фунции, находящейся в нём.

И еще проблема которую пытаюсь решить третий день, при вставке своих файлов, в проект, т.е. готовых скриптов.. все нормально сохраняю, и зыкрываю проект, а потом открыть не могу...
Эту ошибку получить мне не удается, всё нормально вставляется через проектов, записывается и загружается. Если можешь, вышли мне файлы проекта (gsc, gpc и src), файлы скриптов высылать не надо.


Добавление от 12/12/06, в 11:16:40
2MaGoth:
При начале построенния дерева переменных VGS вылетает в винду с ошибкой:
К присланным тобой файлам замечаний нет, в них всё нормально. Напиши конкретно, в каком режиме происходит вылет, это сообщение в строке статуса. Возможно в одном из вновь вставляемых файлов есть грубые синтаксические ошибки, на которых спотыкается программа при загрузке проекта (все файлы проекта при загрузке анализируются на синтаксис). Возможное исправление проблемы: после вставки файла в проект проверить его функцией Test of script on errors, если грубых ошибок в файле нет, то проект стаким файлом загрузится нормально.
Ответить с цитированием
Старый 12.12.2006, 17:03   #932
mir_age

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2Vam
ну что же, версия по г1 и г2 для разработки скриптов и моделей доросла до 3.11, может глубокоуважаемый джин:) попробует посмотреть что и как компилится на движке Готики 3?
Например файлы .tple, содержащие свойства объектов игры.
Ответить с цитированием
Старый 12.12.2006, 17:22   #933
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

Vam

В очередной раз запустил декомпиллер, жму: открыть проект выбираю файл проекта *.gsc, и жму ОК.

1. Создается дерево проектов.... * *Успешно!
2. Создается список переменных... * * На второй секунде Вылет!

==========================
PS.
Vam, если не трудно поясни как пользоваться этой функцией Test of script on errors, для проверки...
Я с ней не знаком совсем, и ни где описания не видел. :(
Отправить личное сообщение для Ответить с цитированием
Старый 13.12.2006, 11:24   #934
Vam

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
Vam, если не трудно поясни как пользоваться этой функцией Test of script on errors, для проверки...
Я с ней не знаком совсем, и ни где описания не видел.
Ну как же так..., страница 8 файла manual_ru.doc, пункт 12, руководство читать внимательнее надо.
Ответить с цитированием
Старый 13.12.2006, 17:27   #935
@Urizzel@

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

По умолчанию Re: М:Декомпилятор скриптов Готики

Почему, если я с помощью декомпилятора изменяю названия предметов, переименовываю, игра не запускается??? Я же не трогаю скрипты, тоько слова, новые строки не вставляю. И в любом другом редакторе такая же .....
Ответить с цитированием
Старый 13.12.2006, 19:48   #936
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

Уризель
Приведи пример, того что изменял и где. отпишись об этом в скриптовой долине отвечу. :)

========================
PS.
Vam, Мда... ее я и не заменил...
Сеня перештудирую все ридми по декомпиллеру по новой, глядищь еще пропажа найдется. *;D
Отправить личное сообщение для Ответить с цитированием
Старый 18.12.2006, 10:41   #937
Ipse_Sun

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2Vam: \
Соурсер 3.11 при компиляции оригинальных скриптов к Г2:НВ (пробовал пиратку, акеллу оригинальную, акелловские скрипты переработанные Нефариусом) выдает сначала предупреждение "Внимание: NBASE: Файл 'D:\GothicSourcer V3.11\GothicSourcer\RedefinedFunc.dsc'не найден." Хотя я готов поклясться что файл есть и именно по этому пути (платформа игры выбрана Готика 2). А дальше очень интересная ошибка: "\Story\B_Story\b_giveinvitems.d(22): Ошибка: Нельзя преобразовать тип instance в int"
вот эта самая строка: [pre]if(iteminstance == itmi_gold)[/pre] - все строго как в учебнике :-). Не могу понять, как эту ошибку ликвидировать.
Ответить с цитированием
Старый 18.12.2006, 11:55   #938
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

2Ipse San:
Если есть открытые исходные скрипты, посмотри что стояло там ранее...

Скорее всего вместо этого: iteminstance должно быть какое-то числовое значение. :)
Измени его на то что прописано в скриптах, и откомпиль.
Если исходных нет, приведи имя файла скрипта, и функцию где ошибка я в своих гляну и отпишу.
А по первому, не установил... платформу, забыл, а думаешь ставил.
У мня тоже такое было. ;)
Отправить личное сообщение для Ответить с цитированием
Старый 18.12.2006, 13:02   #939
Ipse_Sun

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
Да это и есть исходный скрипт. Я в нем ни чего не менял. Файл соответственно [pre]\Story\B_Story\b_giveinvitems.d[/pre] Там единственная функция [pre]func int b_giveinvitems(var C_NPC giver,var C_NPC taker,var int iteminstance,var int amount)[/pre]
Cпойлер(щелкните, чтобы прочесть):
func int b_giveinvitems(var C_NPC giver,var C_NPC taker,var int iteminstance,var int amount)
{
     var string concattext;
     var string itemname;
     if(Npc_IsPlayer(giver))
     {
           if(amount > Npc_HasItems(giver,iteminstance))
           {
                 return FALSE;
           };
     };
     if(amount == 0)
     {
           return TRUE;
     };
     Npc_RemoveInvItems(giver,iteminstance,amount) ;
     CreateInvItems(taker,iteminstance,amount);
     itemname = item.name;
     if(Npc_IsPlayer(giver))
     {
           if(iteminstance == itmi_gold)
           {
                 concattext = ConcatStrings(IntToString(amount),PRINT_GOLDGEGEBE N);
                 AI_PrintScreen(concattext,-1,YPOS_GOLDGIVEN,FONT_SCREENSMALL,2);
           }
           else if(amount == 1)
           {
                 concattext = ConcatStrings(itemname,PRINT_ADDON_GEGEBEN);
                 AI_PrintScreen(concattext,-1,YPOS_ITEMGIVEN,FONT_SCREENSMALL,2);
           }
           else
           {
                 concattext = ConcatStrings(IntToString(amount),PRINT_ITEMSGEGEB EN);
                 concattext = ConcatStrings(concattext,"(");
                 concattext = ConcatStrings(concattext,itemname);
                 concattext = ConcatStrings(concattext,")");
                 AI_PrintScreen(concattext,-1,YPOS_ITEMGIVEN,FONT_SCREENSMALL,2);
           };
     }
     else if(Npc_IsPlayer(taker))
     {
           if(iteminstance == itmi_gold)
           {
                 concattext = ConcatStrings(IntToString(amount),PRINT_GOLDERHALT EN);
                 AI_PrintScreen(concattext,-1,YPOS_GOLDTAKEN,FONT_SCREENSMALL,2);
           }
           else if(amount == 1)
           {
                 concattext = ConcatStrings(itemname,PRINT_ADDON_ERHALTEN);
                 AI_PrintScreen(concattext,-1,YPOS_ITEMTAKEN,FONT_SCREENSMALL,2);
           }
           else
           {
                 concattext = ConcatStrings(IntToString(amount),PRINT_ITEMSERHAL TEN);
                 concattext = ConcatStrings(concattext,"(");
                 concattext = ConcatStrings(concattext,itemname);
                 concattext = ConcatStrings(concattext,")");
                 AI_PrintScreen(concattext,-1,YPOS_ITEMTAKEN,FONT_SCREENSMALL,2);
           };
     };
     return TRUE;
};


P.S. Проблема решилась - не надо было менять папку проекта с умолчальной :-(
Ответить с цитированием
Старый 12.01.2007, 18:48   #940
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

Vam:

У меня возникла проблема, вопрос вот в чем.
Мне нужно, 5 файлов ASC зверья, В игре таких файлов нет.
Решил прибегнуть к твоей проге, (установлены как VGS 3.10, так и VGS 3.11).
Захожу в меню сервис: --> Декомпилляция --> (Динамическая MDS или MSB).
Платформа Г2.
В папке: E:\Program Files\Akella Games\Gothic II\_work\data\Anims\_compiled

Выбираю файл который мне нужен, и жму Ок...
После этого выходит ошибка в окне сообщений VGS:

Не могу найти файл или папку. (ENOENT) в Создание "Е:\PROGRAM FILES\AKELLA GAMES\GOTHIC II\_WORK\DATA\Gothic Tools2\GothicSourser 3.10\Gothic Rpoject\Anims\asc_alligator\ALLIGATOR.MDS"

Эта ошибка проявляется в обеих версиях, 3.10 и 3.11

Самое главное файл: ALLIGATOR.MDS есть, но он ошибку выдает... многие другие файлы пробовал, везде ошибка одна и таже, только имя файла меняется...

Что делать? И как с этим бороться ?

Использую программы:

VGS 3.10, 3.11 (декомпиллятор)
Готика 2 НВ, (косая Акелла)
GMDK2 Full (пропатченный)

Отправить личное сообщение для Ответить с цитированием
Старый 13.01.2007, 09:45   #941
Xentar

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

По умолчанию Re: М:Декомпилятор скриптов Готики

Все папки(из которой декомпилишь и в которую декомпилишь), должны находиться не выше основного каталога Готики, иначе декомпилер просто не сможет их адресовать. (В твоём случае основной каталог Е:\PROGRAM FILES\AKELLA GAMES\GOTHIC II\)
Ответить с цитированием
Старый 13.01.2007, 16:53   #942
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

2SubZero[X]:

Спасибо, но проблему разрешил иначе, а именно:
В Окне: "Декомпилятор динамических моделей", при выборе пути, я указал в строке: "Рабочая папка", на путь:
E:\Program Files\Akella Games\Gothic II\_work\data\Anims\_compiled
Там у мня Гота 2 установлена.

Выбирал платформу Г2;
Режим, "Безопасной вставки" не влияет проверил и так и так... все работает,
Получаются... ASC- файлы...

Декомпиллер, полученные ASC-файлы, сохраняет в папке с игрой, у меня он сохранил их здесь:
E:\Program Files\Akella Games\Gothic II\_work\data\Anims
Создав для каждого MDS свою папочку, например, я декомпильнул крысу.

Файл: Giant_rat.MDS
То получится эта папка: asc_giant_rat

Путь до готовых ASC-файлов сменится и станет:
E:\Program Files\Akella Games\Gothic II\_work\data\Anims\asc_giant_rat\

Но такой подход не всегда удобен, вот чем присоздание новых ASC, приходится заного прописывать пути, выход также нашелся.
Простым копированием папки *_compiled, со всем его содержимым, из дериктории игры Готика 2 НВ, в папку Anims, из дериктории декомипилятора, а именно:
D:\Gothic Tools2\GothicSourcer V3.11\Gothic Projects\Anims

Все работает, в обоих случаях. :)
Мучал Декомпиллер версии *3.11 *:D
Дериктории все прописаны, по соотношению с той установкой как у меня на машине, у вас может быть по другому. ;)

Для Vam'a:

Некоторые моменты, с путями сохранения в VGS:
Хотелось бы видеть в следующей версии декомпиллера, следующее:
Для декомпиляции и компиляции Gothic.Dat и Ou.bin файлов и декомпиллированных скриптов, отдельную папку и путь сохранения доступа до нее не зависимым, а именно:

Как было, скрипты:
D:\Gothic Tools2\GothicSourcer V3.11\Gothic Projects\Хотелось бы видеть таким, скрипты:
D:\Gothic Tools2\GothicSourcer V3.11\Gothic Projects Script\ ... Проекты создаваемые модмейкерами.
Также, чтобы декомпиллер, сохранял путь до проектов как и сейчас, отдельно, и независимо от других проектов. Это что касается скриптов.

Теперь что касается моделей:
Для декомпиляции и компиляции Моделей Готики, и их конвертирования, создать отдельную папку отдельную папку и путь сохранения доступа до нее не зависимым, а именно:

Как было, модели:
Толком, нихрена не работало, без предварительного копирования файлов MDS и прочих, в папку _compiled, или того способа что я выше описал. :(
Хотелось бы видеть таким, модели:
D:\Gothic Tools2\GothicSourcer V3.11\Gothic Projects Anims\Anims\_compiled

И чтобы к каждой папке и проекту, в зависимо от того что запускается, (скриптинг/моделлинг), сохранялся отдельно и независимо друг от друга путь, для последующего открытия, любого из двух проектов, и этот путь автоматом прописывался там где нужно, по состоянию последнего открытия.

Вот собсно, и все. ;)
Отправить личное сообщение для Ответить с цитированием
Старый 14.01.2007, 15:06   #943
Vam

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
В Окне: "Декомпилятор динамических моделей", при выборе пути, я указал в строке: "Рабочая папка", на путь:
E:\Program Files\Akella Games\Gothic II\_work\data\Anims\_compiled
Там у мня Гота 2 установлена.
1. В качестве рабочей папки во всех обработчиках моделей указывается папка проекта (созданная в декомпилятором по умолчанию или любая ваша), использовать папки игры в качестве рабочих не рекомендуется, возможна потеря данных!!!
2. Ничего и никуда копировать руками не нужно, при правильных настройках все эти функции выполняет сама программа.

Правильный алгоритм на примере декомпиляции моделей:
1. Выбираем режим: "Сервис - Декомпилятор моделей - Динамическая"
2. Выбор модели: "Путь в игре к нужному файлу модели". В нашем случае выбираем файл MSB (для Г2) или MDS (для Г1) в соответствующей папке игры. Все файлы, относыщиеся к модели будут найдены и обработаны относительно этого файла, только если сохранена правильная структура папок игры. Поясняю: если выбирать модель в игре, то вопросов не возникнет - т.к. структура папок здесь правильная, но если скопировать файл MDS куда-нибудь и попытаться его декомпилировать, то получим ошибку, т.к. копировать нужно не только файл MDS, но и все другие файлы взаимосвязанные с ним и не куда-нибудь а в структуру папок, соответствующую папкам игры.
3. Рабочая папка: "Указываем вашу рабочую папку проекта, можно оставить папку, которую программа предлагает по-умолчанию". Это не должна быть папка игры!!!
4. Платформа: "Г1 или Г2". Здесь всё понятно.
5. Давим ОК и получаем созданные файлы модели, которые находятся в рабочей папке.
Их можем изчать, изменять, обрабатывать редакторами и т.д., на игру это никакого влияния не окажет (в рабочей папке можно делать всё, что хотите).

Далее, если мы конвертируем модель, то все правила аналогичны, только добавляется возможность автоматической безопасной вставки созданных файлов в игру.
Поясняю: Если данный параметр включен и путь к игре задан правильно, то помимо создания всех файлов в рабочей папке они будут скопированы в нужные папки игры. Можно запуститиь игру или Спейсер и увидеть ваши изменения.
Пример: Конвертируем модель (MDS) из Г1 в Г2.
- Выбираем нужный файл модели в папке игры Готика.
- Рабочая папка - всё сказано выше.
- Конвертировать из Г1 и давим ОК.
- В рабочей паке получаем все нужные файлы модели, и если была включена опция вставки файлов в игру и указан путь к игре Готика2, то все эти файлы из рабочей папки будут скопированы в нужные папки игры.

Далее, если мы компилируем модель, то всё делается аналогично, только модель выбирается уже не в папке игры а в рабочей папке, также добавляется возможность автоматической безопасной вставки созданных файлов в игру.

Если придерживаться этих правил, то всё будет работать и не придется сожалеть об утерянных файлах.
P.S.: Никаких исправлений по папкам программы пока не планируется.


Добавление от 01/14/07, в 14:11:29
Извиняюсь, забыл дать ответ на твой вопрос по ошибке:
2MaGoth:
Захожу в меню сервис: --> Декомпилляция --> (Динамическая MDS или MSB).
Платформа Г2.
В папке: E:\Program Files\Akella Games\Gothic II\_work\data\Anims\_compiled

Выбираю файл который мне нужен, и жму Ок...
После этого выходит ошибка в окне сообщений VGS:

Не могу найти файл или папку. (ENOENT) в Создание "Е:\PROGRAM FILES\AKELLA GAMES\GOTHIC II\_WORK\DATA\Gothic Tools2\GothicSourser 3.10\Gothic Rpoject\Anims\asc_alligator\ALLIGATOR.MDS"

Эта ошибка проявляется в обеих версиях, 3.10 и 3.11

Самое главное файл: ALLIGATOR.MDS есть, но он ошибку выдает... многие другие файлы пробовал, везде ошибка одна и таже, только имя файла меняется...
Ошибка в том, что при выборе платформы Г1 указывать нужно файл MDS, а при выборе платформы Г2 - файл MSB, но никак не наоборот.
Ответить с цитированием
Старый 28.01.2007, 02:09   #944
Flexsemper

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

По умолчанию Re: М:Декомпилятор скриптов Готики

Здравствуйте. Сегодня решил поэкспериментировать со скриптами первой Готики. При декомпиляции Gothic.dat GS 3.11 выдал стандартную ошибку: 'gorn.aivar[AIV_FINDABLE]==TRUE'. Это я исправил. Потом при компиляции(в скриптах ничего не менял) выдал 65 ошибок и 50 вниманий. Почти все ошибки - "Функция должна возвращать значение", но здесь вроде бы понятно, как исправить. Но вот с этим не знаю что делать:
instance PC_SleepTime_Midnight(C_Info)
{
* * *npc = PC_Hero;
* * *condition = PC_SleepTime_Midnight_Condition;
* * *information = PC_SleepTime_Midnight_Info; <- * * *неизвестный идентификатор:  PC_SleepTime_Midnight_Info
* * *important = 0;
* * *permanent = 1;
* * *description = "Спать до полуночи.";
};
Это файл Story\Events\Sleepabit.d. Подскажите, пожалуйста, где нужно прописать этот идентификатор. Заранее спасибо.

Ответить с цитированием
Старый 29.01.2007, 09:59   #945
Vam

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2Flexsemper:
Но вот с этим не знаю что делать:
instance PC_SleepTime_Midnight(C_Info)
{
    npc = PC_Hero;
    condition = PC_SleepTime_Midnight_Condition;
    information = PC_SleepTime_Midnight_Info; <-      неизвестный идентификатор:  PC_SleepTime_Midnight_Info
    important = 0;
    permanent = 1;
    description = "Спать до полуночи.";
};
Вероятнее всего это твоя ошибка, возможно ты что-то неверно исправил. Функция func VOID PC_SleepTime_Midnight_Info() присутствует в конце файла Story\Events\Sleepabit.d
и компилятор на неё ругаться не должен.
Посмотри оригинальные скрипты из GMDK.
Ответить с цитированием
Старый 29.01.2007, 09:59   #946
Xentar

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

По умолчанию Re: М:Декомпилятор скриптов Готики

=) Добавить эту функцию, если лень, то могу завтра выложить исправленные скрипты на своём сайте. Ты, ведь как я понял декомпилируешь руссобитовскую версию. ;)
Ответить с цитированием
Старый 29.01.2007, 18:49   #947
Flexsemper

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

По умолчанию Re: М:Декомпилятор скриптов Готики

Цитата:
Сообщение от SubZero[X
link=board=gothic&t=1095241429&start=925#945 date=01/29/07, в 08:59:59]
=) Добавить эту функцию, если лень, то могу завтра выложить исправленные скрипты на своём сайте. Ты, ведь как я понял декомпилируешь руссобитовскую версию. ;)
Нет, это в снежковской версии. Добавил в конец скрипта func VOID PC_SleepTime_Midnight_Info()
{
     PC_Sleep (0);      
};
из GMDK, вроде перестал ругаться. А нельзя ли где найти исправленные снежковские скрипты?
Ответить с цитированием
Старый 31.01.2007, 17:54   #948
Jozef_Neri

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2Flexsemper: Да, например, здесь. (~430кб)

2Vam: Это так - компилятор версии 3.11 как бы обрезает этот файл. Проверил четыре раза - компилируешь скрипты в датник, декомпилируешь датник, компилируешь скрипты опять - выскакивает сообщение о "неизвестном идентификаторе".
Ну а функция PC_SleepTime_Midnight_Info() в скрипте sleepabit благополучно отсутствует :-)

В более ранних версиях компилятора такого безобразия не замечено)
Ответить с цитированием
Старый 31.01.2007, 20:23   #949
basilio58

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

По умолчанию Re: М:Декомпилятор скриптов Готики

Цитата:
Сообщение от Jоzef Nerino link=board=gothic&t=1095241429&start=925#947 date=01/31/07, в 16:54:19
В более ранних версиях компилятора такого безобразия не замечено)
Во-во...
Своего мнения не навязываю. Юзаю 2.40 + UltraEdit *;)
Ответить с цитированием
Старый 01.02.2007, 00:47   #950
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

2Vam:

Добавлю свои 5 копеек... *;)
Иногда при замене в файлах, VGS 3.11 виснет намертво, вернее работать можно, писать скрипт дальше и т.д., а вот воспользоваться поиском по файлам или заменой в файлах, уже не судьба.
Данный процесс становится вечным, пока не прихлопнишь прогу через диспетчера задач.
И еще, есть подозрение, что он скрипты как то не так собирает..

Например:
Я в дилоге прописал, для охранника фразу:
"Что ты здесь делаешь", она у него отображается только один раз.
А скомпилив и отдав тестерам, они пишут что там два таких диалога у Непеся.. :o
Полез в скрипты у обоих НПС, такое сообщение диалога, написано по одному разу.

Почему в игре стало их 2 не понятно.. *:(
Вот собсно и все, пасиб. *;)

=======================
PS.
Ждемс обновки... *;D
Отправить личное сообщение для Ответить с цитированием
Старый 01.02.2007, 01:30   #951
Jozef_Neri

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

По умолчанию Re: М:Декомпилятор скриптов Готики

+ещё пару моментов заметил.
Как-то странно реализована система "решений" (имхо, было бы лучше "проект" и подразделы "файл такой-то", "файл сякой-то", ну да ладно - это некритично :-))
А вот следующие моменты имхо нужно поправить:

Жму "создать новое решение", дальше выбираю src-файл.
Создать "новое решение" я могу только из оригинальной версии. Если же gothic.src отличается хоть на один файл, выскакивает ошибка "не удаётся скопировать файл. не удаётся произвести чтение из файла или с диска".
Ладно, скопировал вручную, открываться не хочет, говорить или "проект уже существует", или "файл такой-то зарегистрирован, но отсутствует в проекте, убрать регистрацию?", или ещё что-нибудь столь же нехорошее. После танцев с бубном запустилось.
В решении нет новых (добавленных к оригинальным) файлов - только стандартный набор. А при попытке добавить вручную (через контекстное меню) файл, компилятор ругается "файл уже суествует".

В общем, система решений несколько неудачна, имхо.

+присоединюсь к высказыванию в каком-то из более ранних постов: хорошо бы сделать так, чтобы можно было из проводника перетащить файл в компилятор, и он бы открылся вокне для редактирования. Потому что сейчас его удобно использовать только как редактор - вот он действительно получился хорошим :-)
Ответить с цитированием
Старый 02.02.2007, 10:42   #952
Xentar

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2Jоzef Nerino:
В решении нет новых (добавленных к оригинальным) файлов - только стандартный набор. А при попытке добавить вручную (через контекстное меню) файл, компилятор ругается "файл уже суествует".
Файл с таким именем валяется в каталоге проекта (удалри его).
В общем, система решений несколько неудачна, имхо.
Вполне удачно. ;) Руки выпрямляй =)
+присоединюсь к высказыванию в каком-то из более ранних постов: хорошо бы сделать так, чтобы можно было из проводника перетащить файл в компилятор, и он бы открылся вокне для редактирования. Потому что сейчас его удобно использовать только как редактор - вот он действительно получился хорошим
Ну, это вообще уж ламерство! :-/
Ответить с цитированием
Старый 02.02.2007, 11:03   #953
Jozef_Neri

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

По умолчанию Re: М:Декомпилятор скриптов Готики

Цитата:
Сообщение от Etlendio link=board=gothic&t=1095241429&start=950#951 date=02/02/07, в 09:42:50
2Jоzef Nerino:
Файл с таким именем валяется в каталоге проекта (удалри его).
Вполне удачно. ;) Руки выпрямляй =)
Угуть, "Чтобы собрать робота, вставьте шплинт А в гнездо Б..." :)))
Программа как-то странно работает с src-файлом (такое чувство, что в любом новом проекте заменяет его на оригинальный) => видимо и большинство проблем.
И зачем спрашивается вся эта система, если в конечном счёте приходится править ручками в проводнике?)
Ну, это вообще уж ламерство! :-/
Да хоть читерство :) Есть у вас желание последовательно выбирать все папки постепенно добираясь до нужного файла - пожалуйста :) А мне, пожалуйста, чего попроще, поудобнее...))
Ответить с цитированием
Старый 02.02.2007, 12:57   #954
Vam

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2Jоzef Nerino:
компилятор версии 3.11 как бы обрезает этот файл. Проверил четыре раза - компилируешь скрипты в датник, декомпилируешь датник, компилируешь скрипты опять - выскакивает сообщение о "неизвестном идентификаторе".
Если есть такая проблема, предлагаю решать её совместно (у себя я ничего такого не замечал). Предлагаю не компилить - декомпилить один проект одной и той же версией программы, а сделать следующее: компилируем версией 3.11, если есть подозрение, что датник и (или) оушник собраны неправильно, то ту же сборку скриптов компилим версией 2.4 (на работу которой нареканий нет) и бинарно сравниваем датник и (или) оушник от первой компиляции с результатом второй компиляции, если разницы в файлах нет, то претензий к компилятору тоже нет, если разница обнаружена, то просьба выслать мне эту сборку скриптов, которая компилиться по разному - буду разбираться.

2MaGoth:
Иногда при замене в файлах, VGS 3.11 виснет намертво, вернее работать можно, писать скрипт дальше и т.д., а вот воспользоваться поиском по файлам или заменой в файлах, уже не судьба.
Данный процесс становится вечным, пока не прихлопнишь прогу через диспетчера задач.
Вообще-то нажатие клавиши Esc (один или два раза) при активном окне поиска должно терминировать процесс поиска или замены, если это не происходит (у меня всегда работает нормально) просьба сообщить что делаем (ищем или заменяем) и с какими параметрами, а также указать конкретные параметры процесса (всё, что заполняется в форме). Только после этого буду разбираться с вопросом.

2Jоzef Nerino:
Жму "создать новое решение", дальше выбираю src-файл.
Создать "новое решение" я могу только из оригинальной версии. Если же gothic.src отличается хоть на один файл, выскакивает ошибка "не удаётся скопировать файл. не удаётся произвести чтение из файла или с диска".
Новое решение создается с любой версии игры или мода, а не только оригинальной, главное в том, что скрипты, в том числе и src файл, из которых создается новый проект решения (неважно одновременно с новым решением или добавлением нового проекта в существующее решение) не должны находиться в папке этого решения. Это это требование соблюдено, то в папке решения создается новый проект (при условии, что его там нет), который является 100% копией исходных скриптов. Ошибок копирования при этом не возникает. Если это не так, то просьба подробно сообщить: что, из какой папки и куда создаем и что уже есть в новом решении.

В решении нет новых (добавленных к оригинальным) файлов - только стандартный набор. А при попытке добавить вручную (через контекстное меню) файл, компилятор ругается "файл уже суествует".
Всё нормально добавляется, но только по одному файлу и в предварительно созданную папку при условии, что по этому пути файл с таким именем отсутствует, если же файл в папке есть, а в проекте по какой либо причине отсутствует, то необходимо его скопировать куда нибудь из папки проекта и добавить в проект через локальное меню.

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

И зачем спрашивается вся эта система, если в конечном счёте приходится править ручками в проводнике?
Любую систему, в первую очередь, нужно правильно использовать, тогда результат будет ожидаемым. Если кто-то хочет использовать систему по-своим правилам, то воэможны два исхода: отказаться от системы, так как она делает не так как нам надо; или пытаться адаптировать её под свои правила действиями, аналогичными этому "править ручками в проводнике".

P.S.: Я сейчас занят более важной задачей восстановления исходников движка Готик, за 4 месяца работа сделана на 50 процентов. Если есть хорошие программисты (с наличием свободного времени и желания), то от их помощи я не откажусь.
Требования:
- знание языка С++ (мультизадачность, объектная ориентированность), знание основ обработки 3D изображений и DirectX, как минимум версии 7.
- знание скриптов и функций Готики, а также представление всех основных процессов AI системы движка.
Предложения можно писать в приват.
Ответить с цитированием
Старый 07.02.2007, 22:45   #955
Ipse_Sun

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2Vam:
В соурсере 3.11 наблюдается интересное явление - я декомпилировал мод, потом опять его компилировал - новый gothic.dat стал чуть короче исходного. Этот файл я опять декомпилировал и снова компилировал - он стал еще короче... Дальше уже издеваться над модом не стал. В качестве подопытного выступал мод "Странник".

2.40 компилирует почти нормально, хотя докинул несколько лишних букв в новый датник (приводить примеры не буду, потому как слова поковерканы матные).

Добавление от 02/07/07, в 21:53:34
2Vam:
Похоже компиляция работает везде нормально, а вот при декомпиляции gothic.dat из wanderer_update.mod файлы ..\Story\Startup.d оказались различными: в файле декомпилированном GS 3.11 отсутствует функция

func void init_w()
{
     B_InitMonsterAttitudes();
     B_InitGuildAttitudes();
     B_InitNpcGlobals();
     if(ISPCBOBIKOWNER == TRUE)
     {
           BOBIKOWNER = Hlp_GetNpc(PC_Hero);
     };
};

Добавление от 02/07/07, в 22:05:41
2Vam:
Попробовал декомпилировать ночь ворона - такая же ботва - после 3.11 в файле Startup.d не хватает одной функции, которая в файле Startup.d после 2.40 прописана последней.
Ответить с цитированием
Старый 08.02.2007, 10:18   #956
Vam

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

По умолчанию Re: М:Декомпилятор скриптов Готики

Всем:
Похоже компиляция работает везде нормально, а вот при декомпиляции gothic.dat из wanderer_update.mod файлы ..\Story\Startup.d оказались различными: в файле декомпилированном GS 3.11 отсутствует функция
Локализована ошибка декомпиляции в GS 3.11 - В последнем декомпилируемом файле проекта всегда отсутствует последняя функция!!!
Работаю над устранением этой ошибки.
GS 2.4 файлы декомпилирует нормально, так что декомпиляцию можно выполнять этой программой.
Ответить с цитированием
Старый 08.02.2007, 12:10   #957
dixie

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2Vam:
Я сейчас занят более важной задачей восстановления исходников движка Готик, за 4 месяца работа сделана на 50 процентов.
Шайтан, однако ;) Опять же - не думал, что оно возможно.
Я бы помог, но ни с DX7, ни с AI так глубоко не разбирался. Если где по 2D помочь - но там такого нет явно ;) Вообще, задача, конечно. Скриптовый-то движок и написать - не проблема. А, вот, остальное вытянуть....
Заодно вопрос - не в курсе - какие там лимиты на количество вертексов и проч. в объекте? Или это тараканы исключительно спейсера? Когда он грузит нормальный 3ds, а пишет его же битым - вероятно, из-за переполнения внутреннего буфера?
Ответить с цитированием
Старый 08.02.2007, 14:21   #958
Vam

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2dixie:
Заодно вопрос - не в курсе - какие там лимиты на количество вертексов и проч. в объекте? Или это тараканы исключительно спейсера? Когда он грузит нормальный 3ds, а пишет его же битым - вероятно, из-за переполнения внутреннего буфера?
Некоторые ограничения на графику в движке конечно же есть, пока конкретно в этом не разбирался - пишу всё оптом (доработка и отладка потом). Все функции Спейсера по компиляции мира встроены в движок, но я их пока не смотрел.
Одно могу сказать точно при загрузке мира движком ограничений нет, на сколько хватит памяти.
Ответить с цитированием
Старый 08.02.2007, 18:32   #959
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

2Vam:

Эта проблема проявлялась, и при тестинге Глобала... когда весь мир оказался незаселенным, я тебе об этом писал, на мыло.
Возможно, мое письмо не дошло.. :(

Так же, есть следующие глюки.
При использовании функции, поиска в GS v3.11
Он находит файлы которые нужно, если я до этого сохранил весь проект, и нажимаю на строчку с найденным то появлятся сообщение, файл не найден или перенесен. и вылет в Винду.
Но это не критично, а критично следующее, при использовании функции меню "Поиск и завена в файла.", как я и до этого писал..
Случаются зависания GS, я пробывал сделать как ты писал выше. да это приводит его в чувство, НО он все-равно продожает процесс, и при выходе вносит не понятные строки кода в файлы.
Т.е. там где все нормально, могут появится или же удалится строчки кода.
Если, остановить процесс принудательно иногда нельзя найти где, и главное что он всунул или удалил. При компиляции, я нахожу ошибки и удаляю, но увы походу не все.
Компиляция заканчивается. 0 ошибок, 0 внимани.

Пример:
Мы оттестили Глобал многие квесты о которых ща пишут в Теме были проходными.
Вот пишут что некоторые, квесты не идут NPC не появляется, смотрим в исходник, инсерта в диалогах нет, в предыдущей версии все есть..
Короче не понятно, нуна чтото с этим, делать.
А работа GS v2.40, это не выход (имхо).
Отправить личное сообщение для Ответить с цитированием
Старый 09.02.2007, 13:41   #960
Vam

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

По умолчанию Re: М:Декомпилятор скриптов Готики

2MaGoth:
Он находит файлы которые нужно, если я до этого сохранил весь проект, и нажимаю на строчку с найденным то появлятся сообщение, файл не найден или перенесен. и вылет в Винду.
Конечно, из этого сложно понять, что ты имеешь в виду, но попробую прокомментировать:
1. Есть два типа содержимого файлов, первый тип - это то, что записано в сам файл, второй тип - это то, что находится в буфере редактора.
2. Поиск в файлах и замена в файлах выполняются только над содержимым первого типа, второй тип в этих процессах не участвует.
3. Если эти типы совпадают (т.е. файл записан в редакторе), проблем с поиском и заменой не возникает.
4. Если провести поиск до сохранения редактируемых файлов и получить результат (таблица в окне), а затем записать файлы и воспользоваться таблицей для перехода к найденной информации, то возможны ошибки (процессы уже рассинхронизованы, номера строк в таблице уже не являются истинными). Правда вылета быть не должно, редактор должен открыть файл, если он, конечно, не удален и указать на какую-нибудь строку, однако, реализовать все возможные проверки всех условий в программе не реально, можно только попробовать ограничить некоторые действия.
5. Предлагается такой вариант решения проблемы - при вызове функций поиска в файлах и поиска и замены будет сначала выполнено сохранение всех измененных файлов редактора (аналогично компиляции), а затем запущен сам процесс. Если это устроит, прошу сообщить.
6. Прошу соблюдать определенные правила при использовании этих функций:
- до вызова функции сохранить все файлы (если пожелаете будет выполняться автоматом).
- во время выполнения процессов не редактировать файлы, а тем более не записывать их.

Но это не критично, а критично следующее, при использовании функции меню "Поиск и завена в файла.", как я и до этого писал
Это конечно, критично, однако, если следовать вышесказанным правилам, то критичность в большей мере снимается. Я в своей работе стараюсь вообще не использовать функцию "Поиска и замены в файлах" ни в каких редакторах. Принцип такой - если не видишь, что правишь, то лучше не правь. Использую следующий, довольно быстрый и безопасный алгоритм: поиск в файлах, клик на таблице - файл открыт, далее функция замены в редакторе, но опция не во всём файле, а на каждый клик, далее сохранение.
В некоторых случаях это не есть хорошо, но тогда, соблюдая все предосторожности, запускаю поиск и замена в файлах и... иду курить.
Ответить с цитированием
Страница 24 из 31 « Первая 141718192021222324 25262728293031


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе

Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.


Текущее время: 19:59. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot

AGFC: Valley of Gothic © 2004-2022

Яндекс.Метрика