Показать сообщение отдельно
Старый 11.10.2006, 16:36   #902
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

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

Уважаемый Vam!

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

Наблюдаются следующие ошибки, которые выдает VGS при остановке процесса компиляции:
1. Story\Dialoge\DIA_DJG_705_Angar_NW.d(513): Ошибка неизвестный идентификатор: *SLF
2. Story\Dialoge\DIA_DJG_714_Jan.d(825): Ошибка неизвестный идентификатор: *SLF
3. Story\Dialoge\DIA_vlk_9696_vornesh.d(970): Ошибка неизвестный идентификатор: *SLF
4. Story\Dialoge\DIA_PAL_201_Ingmar.d(550): Ошибка неизвестный идентификатор: *SLF
5. Story\Dialoge\DIA_SLD_800_Lee.d(2104): Ошибка неизвестный идентификатор: *SLF
6. Story\Dialoge\DIA_SLD_800_Lee.d(2370): Ошибка неизвестный идентификатор: *SLF
7. Story\Dialoge\DIA_sek_6005_darion.d(364): Ошибка неизвестный идентификатор: *SLF
8. Story\Dialoge\DIA_gur_6024_cadar.d(501): Ошибка неизвестный идентификатор: *SLF
9. Story\Dialoge\DIA_tpl_6017_vid.d(266): Ошибка неизвестный идентификатор: *SLF

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

Пример 1.
func void dia_angar_teachsmith_weapon_itar_tpl_hplus()
{
* * *if(Npc_HasItems(hero,ItMi_Gold) >= 10000)
* * *{
* * * * * *Npc_RemoveInvItems(hero,ItMi_Gold,slf);
* * * * * *if(B_TeachPlayerTalentSmith(self,other,WEAPON_ITA R_TPL_HPLUS))
* * * * * *{
* * * * * * * * *AI_Output(self,other,"DIA_Angar_TeachSmith_WEAPON _ItMw_1h_Rapier9_01_
02"); * * *//(Показывает)Хорошо, смотри внимательно как это делается.
* * * * * *};
* * *}
* * *else
* * *{
* * * * * *Print("Найди 10000 золотых для учебы ...");
* * *};
* * *b_angarsmithchoices();
};

Пример 2.
func void dia_jan_teachsmith_weapon_itar_djg_mplus()
{
* * *if(Npc_HasItems(hero,ItMi_Gold) >= 10000)
* * *{
* * * * * *Npc_RemoveInvItems(hero,ItMi_Gold,slf);
* * * * * *if(B_TeachPlayerTalentSmith(self,other,WEAPON_ITA R_DJG_MPLUS))
* * * * * *{
* * * * * * * * *AI_Output(self,other,"DIA_Jan_TeachSmith_WEAPON_I tMw_1h_Rapier10_01_0
2"); * * *//(Показывает)Хорошо, смотри внимательно как это делается.
* * * * * *};
* * *}
* * *else
* * *{
* * * * * *Print("Найди 10000 золотых для учебы ...");
* * *};
* * *b_jansmithchoices();
};

Пример 3.
func void dia_vornesh_zwork_b_info()
{
* * *AI_Output(self,other,"DIA_Vornesh_Zwork_B_03_00") ; * * *//Я слышал, ты хочешь отплыть на материк.
* * *AI_Output(other,self,"DIA_Vornesh_Zwork_B_15_00") ; * * *//Да, у меня там дела.
* * *AI_Output(self,other,"DIA_Vornesh_Zwork_B_03_01") ; * * *//Вот, возьми 10000 монет. Это поможет тебе организовать торговлю на материке.
* * *B_GiveInvItems(self,other,ItMi_Gold,slf);
* * *B_GivePlayerXP(2500);
};


Пример 4.
func void dia_ingmar_teachsmith_weapon_itar_pal_mplus()
{
* * *if(Npc_HasItems(hero,ItMi_Gold) >= 10000)
* * *{
* * * * * *Npc_RemoveInvItems(hero,ItMi_Gold,slf);
* * * * * *if(B_TeachPlayerTalentSmith(self,other,WEAPON_ITA R_PAL_MPLUS))
* * * * * *{
* * * * * * * * *AI_Output(self,other,"DIA_Ingmar_TeachSmith_WEAPO N_ItMw_1h_Rapier9_01
_02"); * * *//(Показывает)Хорошо, смотри внимательно как это делается.
* * * * * *};
* * *}
* * *else
* * *{
* * * * * *Print("Найди 10000 золотых для учебы ...");
* * *};
* * *b_ingmarsmithchoices();
};


Пример 4.
func void dia_lee_kill_mill_info()
{
* * *AI_Output(other,self,"DIA_Lee_Kill_Mill_15_00"); * * *//Я Грохнул ментов!
* * *AI_Output(self,other,"DIA_Lee_Kill_Mill_08_01"); * * *//Молодец!
* * *MIS_KILL_MILL = FALSE;
* * *B_GivePlayerXP(slf);
* * *B_StartOtherRoutine(Torlof,"q6");
* * *B_StartOtherRoutine(Buster,"q6");
* * *B_StartOtherRoutine(Cord,"q6");
* * *B_StartOtherRoutine(shtorus,"q6");
* * *B_StartOtherRoutine(Jarvis,"q6");
* * *B_StartOtherRoutine(Dar,"q6");
* * *B_StartOtherRoutine(Sentenza,"q6");
* * *B_StartOtherRoutine(Fester,"q6");
* * *B_StartOtherRoutine(Raoul,"q6");
* * *B_StartOtherRoutine(khaled,"q6");
* * *B_StartOtherRoutine(soeldner9,"q6");
* * *B_StartOtherRoutine(soeldner10,"q6");
* * *B_StartOtherRoutine(soeldner3,"q6");
* * *B_StartOtherRoutine(soeldner4,"q6");
* * *B_StartOtherRoutine(soeldner5,"q6");
* * *B_StartOtherRoutine(soeldner6,"q6");
* * *B_StartOtherRoutine(soeldner7,"q6");
* * *B_StartOtherRoutine(soeldner8,"q6");
* * *B_StartOtherRoutine(GornNW_nach_DJG,"q6");
* * *djg_bullco_nw.aivar[AIV_PARTYMEMBER] = FALSE;
* * *djg_rod_nw.aivar[AIV_PARTYMEMBER] = FALSE;
* * *djg_cipher_nw.aivar[AIV_PARTYMEMBER] = FALSE;
* * *kurgan_nw.aivar[AIV_PARTYMEMBER] = FALSE;
* * *kjorn_nw.aivar[AIV_PARTYMEMBER] = FALSE;
* * *godar_nw.aivar[AIV_PARTYMEMBER] = FALSE;
* * *hokurn_nw.aivar[AIV_PARTYMEMBER] = FALSE;
* * *Torlof.aivar[AIV_PARTYMEMBER] = FALSE;
* * *Cord.aivar[AIV_PARTYMEMBER] = FALSE;
* * *Buster.aivar[AIV_PARTYMEMBER] = FALSE;
* * *Jarvis.aivar[AIV_PARTYMEMBER] = FALSE;
* * *Dar.aivar[AIV_PARTYMEMBER] = FALSE;
* * *Sentenza.aivar[AIV_PARTYMEMBER] = FALSE;
* * *Fester.aivar[AIV_PARTYMEMBER] = FALSE;
* * *soeldner3.aivar[AIV_PARTYMEMBER] = FALSE;
* * *soeldner4.aivar[AIV_PARTYMEMBER] = FALSE;
* * *soeldner5.aivar[AIV_PARTYMEMBER] = FALSE;
* * *soeldner6.aivar[AIV_PARTYMEMBER] = FALSE;
* * *Raoul.aivar[AIV_PARTYMEMBER] = FALSE;
* * *khaled.aivar[AIV_PARTYMEMBER] = FALSE;
* * *soeldner7.aivar[AIV_PARTYMEMBER] = FALSE;
* * *soeldner8.aivar[AIV_PARTYMEMBER] = FALSE;
* * *soeldner9.aivar[AIV_PARTYMEMBER] = FALSE;
* * *soeldner10.aivar[AIV_PARTYMEMBER] = FALSE;
* * *Lee.aivar[AIV_PARTYMEMBER] = FALSE;
* * *shtorus.aivar[AIV_PARTYMEMBER] = FALSE;
* * *GornNW_nach_DJG.aivar[AIV_PARTYMEMBER] = FALSE;
};

Пример 6.
func void dia_lee_buyarmorh_1_info()
{
* * *AI_Output(other,self,"DIA_Lee_BuyArmorH_15_00_1") ; * * *//Дай мне доспех.
* * *if(B_GiveInvItems(other,self,ItMi_Gold,slf))
* * *{
* * * * * *AI_Output(self,other,"DIA_Lee_BuyArmorH_04_01_1") ; * * *//Держи. Очень хорошие доспехи. Они такие же, как и у меня.
* * * * * *CreateInvItems(other,itar_sldh,1);
* * * * * *AI_EquipArmor(other,itar_sldh);
* * * * * *Lee_SldHGiven = TRUE;
* * *}
* * *else
* * *{
* * * * * *AI_Output(self,other,"DIA_Lee_BuyArmorH_04_02_1") ; * * *//Ты же знаешь, как это делается. Сначала золото!
* * *};
};


Пример 7.
func void dia_darion_teachsmith_weapon_itmw_sek_2haxe_01()
{
* * *if(Npc_HasItems(hero,ItMi_Gold) >= 10000)
* * *{
* * * * * *Npc_RemoveInvItems(hero,ItMi_Gold,slf);
* * * * * *if(B_TeachPlayerTalentSmith(self,other,WEAPON_ITM W_SEK_2HAXE_01))
* * * * * *{
* * * * * * * * *AI_Output(self,other,"DIA_DARION_TeachSmith_WEAPO N_ItMw_1h_Rapier7_01
_01"); * * *//Этот топор не доступен никому, только истинному избранному.
* * * * * * * * *AI_Output(self,other,"DIA_DARION_TeachSmith_WEAPO N_ItMw_1h_Rapier7_01
_02"); * * *//(Колдует над руками) Теперь твои руки заполнили рецепт, ты должен попытаться создать этот топор.
* * * * * * * * *AI_Output(self,other,"DIA_DARION_TeachSmith_WEAPO N_ItMw_1h_Rapier7_01
_03"); * * *//Для изготовления возьми теже ресурсы, но на одну еденицу больше всего, чем в прошлый раз
* * * * * *};
* * *}
* * *else
* * *{
* * * * * *Print("Найди 10000 золотых для учебы ...");
* * *};
* * *b_darionsmithchoices();
};


Пример 8.
func void dia_cadar_teachsmith_weapon_itar_guruplus()
{
* * *if(Npc_HasItems(hero,ItMi_Gold) >= 10000)
* * *{
* * * * * *Npc_RemoveInvItems(hero,ItMi_Gold,slf);
* * * * * *if(B_TeachPlayerTalentSmith(self,other,WEAPON_ITA R_GURUPLUS))
* * * * * *{
* * * * * * * * *AI_Output(self,other,"DIA_cadar_TeachSmith_WEAPON _ItMw_1h_Rapier9_01_
02"); * * *//(Показывает)Хорошо, смотри внимательно как это делается.
* * * * * *};
* * *}
* * *else
* * *{
* * * * * *Print("Найди 10000 золотых для учебы ...");
* * *};
* * *b_cadarsmithchoices();
};


Пример 9.
func void dia_cadar_teachsmith_weapon_itar_guruplus()
{
* * *if(Npc_HasItems(hero,ItMi_Gold) >= 10000)
* * *{
* * * * * *Npc_RemoveInvItems(hero,ItMi_Gold,slf);
* * * * * *if(B_TeachPlayerTalentSmith(self,other,WEAPON_ITA R_GURUPLUS))
* * * * * *{
* * * * * * * * *AI_Output(self,other,"DIA_cadar_TeachSmith_WEAPON _ItMw_1h_Rapier9_01_
02"); * * *//(Показывает)Хорошо, смотри внимательно как это делается.
* * * * * *};
* * *}
* * *else
* * *{
* * * * * *Print("Найди 10000 золотых для учебы ...");
* * *};
* * *b_cadarsmithchoices();
};

Самое странное в том что везде где стоит ошибка “slf”, должно быть прописано значение равное “10000”.
Исходя из этого у меня складывается впечатление, что декомпилятор берет это значение из какого-то другого места, а откуда непонятно???

Вот собственно и все, заранее спасибо… * ;)
Отправить личное сообщение для Ответить с цитированием