[AGFC: Valley of Gothic] М: Скриптинг в Готике

Страница 13 из 65 « Первая 3678910111213 141516171819202363 Последняя »
Поиск в этой теме:

Расширенный поиск
Старый 25.06.2005, 13:53   #481
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Начинаю компиляцию декомпилированного файла
А попробуй начать просто компиляцию, т.е. режим
Код:
zcomp:1,0
Отправить личное сообщение для Ответить с цитированием
Старый 25.06.2005, 14:43   #482
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Если просто компиляция,вылезает та же ошибка.А обязательно нужно прописывать в Gorhic src? И выше приводились  описание исправления 3 ошибок а в каких папках их нужно исправлять?И ещё никто б не мог попытаться у себя вставить NPC(NONE_666_Leo) с помощью проги от Vama и потом описать подробно что нужно делать и где и как исправить ошибки
при компиляции если они есть?и ещё есть ли ещё способ сделать игру русской после вставления NPC или диалогов кроме проги от Vama?  
Ответить с цитированием
Старый 25.06.2005, 16:05   #483
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
А обязательно нужно прописывать в Gorhic src?
Гм, если хочешь, чтобы файл скомпилировался, то да. Если не хочешь - нет. Чего тут непонятного?

И выше приводились *описание исправления 3 ошибок а в каких папках их нужно исправлять?
Чувак, хватит называть все подряд папками. Есть такое специальное понятие - файл. Это такая штука, в которой инфа хранится. А папка - это такая штука, где файлы хранятся. А винчестер - это такая штука, в которой папки хранятся. Это понятно, чувак? ;D

Пройдемся по теории. Странная и ничего не значащая на твой взгляд надпись, которую выдает zSpy, на самом деле имеет вполне конкретное значение.
Код:
00:08 Fatal:-1 U: PAR::File *STORY/NPC/NONE_666_Leo.d not found.(line 58)…<zParser.cpp,#599>
Это значит, что файл STORY/NPC/NONE_666_Leo.d , прописанный в файле GOTHIC.SRC, на самом деле не существует. Тебе кажется, что существует, но его там нет. Удали все из папки _decompiled/, потом зайди в папку content/STORY/NPC/ и проверь, есть ли там файл NPC/NONE_666_Leo.d. Потом скомпилируй в режиме zcomp:1,0.

И ещё никто б не мог попытаться у себя вставить NPC(NONE_666_Leo) с помощью проги от Vama и потом описать подробно что нужно делать и где и как исправить ошибки при компиляции если они есть?
Тут все научились вставлять НПС, да не какого-то жалкого NONE_666_Leo, а любых, уже год назад. И описывать подробно никто тут ничего не будет, тем более это описано подробно уже сотни раз.

и ещё есть ли ещё способ сделать игру русской после вставления NPC или диалогов кроме проги от Vama?
Чувак, игра русская, если русские скрипты, все очень просто. Ты можешь сделать русские скрипты как угодно - сам написать :), декомпилировать прогой Vam'a, попросить у кого-нибудь, в конце концов.
Отправить личное сообщение для Ответить с цитированием
Старый 26.06.2005, 19:00   #484
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Установил Готику 2(от Акелы).Потом взял OU.BIN и Gothic.DAT из мода
Alternative_G2a(там по идее исправлены все ошибки) вставил в
C:\Decompiler\_work\data\Scripts\_compiled и в C:\Decompiler\_work\data\Scripts\content\Cutscene
Потом декомпелировал DAT файл. Вставил своего NPC(приведённый выше)
В _decompiled и content(вставил все папки которые находились в  _decompiled).
Потом удолил всё из _decompiled.Зашёл в content там мой NPC был и везде был прописан(т.е в Npc_Globals, Startup, gothic.src( после Story\NPC\NONE_100_Xardas.d прорисал Story\NPC\NONE_666_Leo.d
.Начал компиляцию но в конце выдаёт ошибку
00:04 Fatal:-1 U: PAR::File content /story/npc/none_666_Leo.d not found.(line 58)…<zParser.cpp,#599>
Почему компиляция не видит?


Добавление от 06/25/05, в 20:53:07
И ещё когда я вставлял NPC я называл файл NONE_666_Leo.d
и когда компелировал о н фактически сразу выдавл ошибку
00:04 Fatal:-1 U: PAR::File content /story/npc/none_666_Leo.d not found.(line 5…<zParser.cpp,#599> и компиляция останавливалась
а сейчас я попробывад назвать файл NONE_666_Leo(без .d)
и когда начал компиляцию то он эту ошибку не выдавал и красных ошибок не было только синии.По идее нужно только исправить синии ошибки и компиляция завершится до конца.Могло ли из-за .d выдавать ошибку 00:04 Fatal:-1 U: PAR::File content /story/npc/none_666_Leo.d not found.(line 5…<zParser.cpp,#599>?


Добавление от 06/26/05, в 13:35:57
Всем кто мне помог разобраться с прогой от Vama и встаквки NPC и диалогов ОГРОМНОЕ спосибо!Наконец то у меня всё получилось!А
не выходило из-за какой-то глупой ошибки.Ещё раз всем спосибо.


Добавление от 06/26/05, в 19:20:56
Когда вставляешь диалог в игру,и когда начинаешь говорить с NPC то начинаются глюки(начинает говорить только через секунд 30).так же у меня было с модом  dunklemagie.А когда установил мод
Alternative_G2a то там было всё нормально. Как это можно исправить?
Ответить с цитированием
Старый 28.06.2005, 13:16   #485
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Хотел создать амулет восстоновление маны(онуже расматривался в этой ветки):
Вот что я делал В папке AI\Human\TA_Human создал файл ZS_Recharger
В нём прописал
func void ZS_Recharger()
{
    B_ResetAll (self);
    B_ClearPerceptions (self);
};

func int ZS_Recharger_loop()
{
    if (Npc_GetStateTime(self) > 3)
    {
          Npc_SetStateTime (self, 0);

          if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX])
          {
                      hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1;
          };

          AI_Teleport (self, Npc_GetNearestWP (hero));
         
    };

    return LOOP_CONTINUE;
};

func void ZS_Recharger_end()
{
    AI_PlayAni (self,"T_LGUARD_2_STAND");      
};
Далее в файле TA.d дописываем следующую строчку:
func void TA_Recharger      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)      {TA_Min            (self,      start_h,start_m, stop_h, stop_m, ZS_Recharger,                        waypoint);};
Потом создал NPC(None_999_Recharger)
instance None_999_Recharger (Npc_Default)  
{
name                             = "";
guild                            = GIL_NONE;
npctype                          = NPCTYPE_AMBIENT;
flags                            = NPC_FLAG_IMMORTAL&#124;NPC_FLAG_GHOST;
level                            = 999;
voice                            = 0;
id                               = 999;
noFocus                          = 1;
bodyStateInterruptableOverride       = 1;

damagetype                          = DAM_EDGE;
damage [DAM_INDEX_EDGE]            = 0;


//-------- visuals --------
B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M);
Mdl_SetModelScale (self, 0.01, 0.01, 0.01);


//-------- talents --------
B_SetFightSkills (self, 0);  


//------------- ai -------------
fight_tactic    = FAI_HUMAN_COWARD;

// ------ TA anmelden ------
daily_routine    = Rtn_start_999;
};
     TA_Stand_Eating    (08,00,23,00,"NW_FARM1_OUT_03");
TA_Stand_ArmsCrossed   (23,00,08,00,"NW_FARM1_OUT_03");
};
Его везде прописал(т.е в глобалсе в статупе и в Gothic src).
Потом дописал в файле It_Amulette.d следующее:
INSTANCE  ItAm_Mana_Regener(C_Item)
{
    name                   =      NAME_Amulett;

    mainflag             =      ITEM_KAT_MAGIC;
    flags                   =      ITEM_AMULET;

    value                   =      Value_Mana_Regener;

    visual                   =      "ItAm_Strg_01.3ds";

    visual_skin       =      0;
    material             =      MAT_METAL;
    on_equip            =      Equip_ItAm_Mana_Regener;
    on_unequip            =      UnEquip_ItAm_Mana_Regener;

    wear                  =       WEAR_EFFECT;
    effect                  =      "SPELLFX_ITEMGLIMMER";

    description            = "Амулет регенерации маны";
   
   
    TEXT[5]                  = NAME_Value;
    COUNT[5]            = value;

    INV_ZBIAS                        = INVCAM_ENTF_AMULETTE_STANDARD;
   
};

FUNC VOID Equip_ItAm_Mana_Regener()
{
    Npc_ExchangeRoutine      (None_999_Recharger,"Regeneration");
};

FUNC VOID UnEquip_ItAm_Mana_Regener()
{
    Npc_ExchangeRoutine      (None_999_Recharger,"Start");
};
Но когда компелирую то прога(Vama) выдаёт 3 ошибки
1)00:14 Fault:0 U: PAR:ITEMS/IT_AMMULETTED.D:VALUE_MANA_REGENER undeclfred name (line 427)…<zParser.cpp,#447
2) 00:14 Fault:0 U: PAR:ITEMS/IT_AMMULETTED.D:NONE_999_Recharger undeclfred name (line 427)…<zParser.cpp,#447
3) 00:14 Fault:0 U: PAR:ITEMS/IT_AMMULETTED.D:NONE_999_Recharger undeclfred name (line 427)…<zParser.cpp,#447
Вроде бы всё делал как было написано кроме NPC а то если как там было написано то он выдавл ошибки.
Как их можно исправить?


Добавление от 06/28/05, в 12:51:47
Подправил непися
instance None_999_Recharger (Npc_Default)  
{
name                             = "";
guild                            = GIL_NONE;
npctype                          = NPCTYPE_AMBIENT;
flags                            = NPC_FLAG_IMMORTAL;
level                            = 999;
voice                            = 0;
id                               = 999;
noFocus                          = 1;
bodyStateInterruptableOverride       = 1;

damagetype                          = DAM_EDGE;
damage [DAM_INDEX_EDGE]            = 0;


//-------- visuals --------
B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M);
Mdl_SetModelScale (self, 0.01, 0.01, 0.01);


//-------- talents --------
B_SetFightSkills (self, 0);  


//------------- ai -------------
fight_tactic    = FAI_HUMAN_COWARD;

// ------ TA anmelden ------
daily_routine    = Rtn_start_999;
};


func void Rtn_Regeneration_999 ()
{
 TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero));
};

func void Rtn_start_999 ()
{
 TA_Stand_Eating    (08,00,23,00,"NW_FARM1_OUT_01");
TA_Stand_ArmsCrossed   (23,00,08,00,"NW_FARM1_OUT_01");
};
Теперь прога от Vama касательно непися ошибок не выдавала.
Теперь выдаёт только одну ошибку
00:14 Fault:0 U: PAR:ITEMS/IT_AMULETTED.D:VALUE_MANAREGENER undeclared name (line 428)…<zError.cpp,#477>
Как можно исправить эту ошибку?  


Добавление от 06/28/05, в 13:36:19
И ещё прописал омулет в Gothic src.Всё равно выдаёт ту же ошибку.
И ещё в IT_Amulette.d прописаны другие амулеты например
const int Value_Am_ProtFire = 600;А мой амулет который я вставил нужно так прописываьь если да то как?И ещё что означает эта часть
func void Rtn_Regeneration_999 ()
{
TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero));
TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero));
};
Я её изменил во втором случае на веппоинт.может быть из-за этого ошибка?
И вобще что я не правильно делаю?
Ответить с цитированием
Старый 28.06.2005, 14:28   #486
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Просто поменяй везде
VALUE_MANA_REGENER
на любое число, например на 100.

Я её изменил во втором случае на веппоинт.может быть из-за этого ошибка?
Изменил зря, но ошибка не из-за этого.
Отправить личное сообщение для Ответить с цитированием
Старый 28.06.2005, 15:38   #487
Vam

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

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
И вобще что я не правильно делаю?
Сначала, вообще-то разбираются - что для чего и зачем, а потом делают, ты же пытаешься сделать наоборот, сначала что-то напишешь, а потом разбираешься (да еще и не сам) что же в результате получилось.
Первоначально нужно выучить синтаксис и грамматику языка скриптов.
Ответить с цитированием
Старый 29.06.2005, 19:17   #488
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Попытался всё сделать сначала,вот что я делал:
1)Созал непися(NONE_999_Recharger):
instance None_999_Recharger (Npc_Default)  
{
name                             = "";
guild                            = GIL_NONE;
npctype                          = NPCTYPE_AMBIENT;
flags                            = NPC_FLAG_IMMORTAL;
level                            = 999;
voice                            = 0;
id                               = 999;
noFocus                          = 1;
bodyStateInterruptableOverride       = 1;

damagetype                          = DAM_EDGE;
damage [DAM_INDEX_EDGE]            = 0;


//-------- visuals --------
B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M);
Mdl_SetModelScale (self, 0.01, 0.01, 0.01);


//-------- talents --------
B_SetFightSkills (self, 0);  


//------------- ai -------------
fight_tactic    = FAI_HUMAN_COWARD;

// ------ TA anmelden ------
daily_routine    = Rtn_start_999;
};


func void Rtn_Regeneration_999 ()
{
 TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero));
};

func void Rtn_start_999 ()
{
 TA_Stand_Eating    (08,00,23,00,"NW_FARM1_OUT_01");
TA_Stand_ArmsCrossed   (23,00,08,00,"NW_FARM1_OUT_01");
};
Потом его прописал Глобалсе var C_Npc Recharger; и Recharger = Hlp_GetNpc(NONE_999_Recharger);
Потом в статупе Wld_InsertNpc(NONE_999_Recharger,"NW_FARM1_OUT_01" );
Всё это я прописывал после Лобарта.
И ещё прописал в Gothic src
Story\NPC\NONE_999_Recharger.d
Прописал ниже ксардаса.
Потом начал вставлять амулет:
Сначала зашёл AI\Human\TA_Human и создал там  ZS_Recharger
В нём прописал
func void ZS_Recharger()
{
    B_ResetAll (self);
    B_ClearPerceptions (self);
};

func int ZS_Recharger_loop()
{
    if (Npc_GetStateTime(self) > 3)
    {
          Npc_SetStateTime (self, 0);

          if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX])
          {
                      hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1;
          };

          AI_Teleport (self, Npc_GetNearestWP (hero));
         
    };

    return LOOP_CONTINUE;
};

func void ZS_Recharger_end()
{
    AI_PlayAni (self,"T_LGUARD_2_STAND");      
};
Потом зашёл в TA.D и прописал в самом конце
func void TA_Recharger                  (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)      {TA_Min            (self,      start_h,start_m, stop_h, stop_m, ZS_Recharger,                        waypoint);};
Потом зашёл в IT_Amulette.D и после этого
instance ItAm_Hp_Mana_01(C_Item)
{
     name = "Амулет просвещения";
     mainflag = ITEM_KAT_MAGIC;
     flags = ITEM_AMULET;
     value = Value_Am_HpMana;
     visual = "ItAm_Hp_Mana_01.3ds";
     visual_skin = 0;
     material = MAT_METAL;
     on_equip = Equip_ItAm_Hp_Mana_01;
     on_unequip = UnEquip_ItAm_Hp_Mana_01;
     wear = WEAR_EFFECT;
     effect = "SPELLFX_ITEMGLIMMER";
     description = "Амулет просвещения";
     text[2] = NAME_Bonus_HP;
     count[2] = Am_HpMana_Hp;
     text[3] = NAME_Bonus_Mana;
     count[3] = Am_HpMana_Mana;
     text[5] = NAME_Value;
     count[5] = value;
     inv_zbias = INVCAM_ENTF_AMULETTE_STANDARD;
};
прописал это
INSTANCE  ItAm_Mana_Regener(C_Item)
{
    name                   =      NAME_Amulett;

    mainflag             =      ITEM_KAT_MAGIC;
    flags                   =      ITEM_AMULET;

    value                   =      100;(здесь ИЗМЕНИЛ как и сказа Tycooon)

    visual                   =      "ItAm_Strg_01.3ds";

    visual_skin       =      0;
    material             =      MAT_METAL;
    on_equip            =      Equip_ItAm_Mana_Regener;
    on_unequip            =      UnEquip_ItAm_Mana_Regener;

    wear                  =       WEAR_EFFECT;
    effect                  =      "SPELLFX_ITEMGLIMMER";

    description            = "Амулет регенерации маны";
   
   
    TEXT[5]                  = NAME_Value;
    COUNT[5]            = value;

    INV_ZBIAS                        = INVCAM_ENTF_AMULETTE_STANDARD;
   
};

FUNC VOID Equip_ItAm_Mana_Regener()
{
    Npc_ExchangeRoutine      (None_999_Recharger,"Regeneration");
};

FUNC VOID UnEquip_ItAm_Mana_Regener()
{
    Npc_ExchangeRoutine      (None_999_Recharger,"Start");
};
Потом его прописал в Gothic src
После AI\Human\TA_Human\ZS_Wash_FP.d
Прописал AI\Human\TA_Human\ZS_Recharger.d
Потом начал компиляцию и прога от Vama выдаёт ошибку(красным это после того как я исправил value    =      Value_Mana_Regener; на  value  = 100;а раньше ошибка была синяя приведена выше)
Ошибка:00:01 Fatal:-1 U: PAR:ITEMS/IT_AMULETTED.D:Suntax error INSTANCE (line 420)…<zPARSER.cpp,#599>
Как можно исправить эту ошибку(вроде бы заменил  Value_Mana_Regener  на 100(исправил в одном месте))?Заранее спосибо.




Добавление от 06/28/05, в 20:45:12
И ещё хотел попробывать сделать точь в точь как написал Finch.
func void Rtn_Regeneration_999 ()
{
 TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero));
};

func void Rtn_start_999 ()
{
 TA_Stand_WP (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Stand_WP (13,00,0,00, Npc_GetNearestWP (hero));
};
Но не знаю после кого в Startup.d и Npc_Globals.d нужно прописывать(незнаю где находится веппоинт)Никто бы не могсказать
после кого нужно прописывать в глобалсе и стаупе?

Добавление от 06/29/05, в 19:37:34
Пытался вставить просто амулет без непися(а потом просто вставит его в инвентарь NPC), вот что я делал:
В папке AI\Human\TA_Human создал файл ZS_Recharger
Вот его содержимое:
func void ZS_Recharger()
{
    B_ResetAll (self);
    B_ClearPerceptions (self);
};

func int ZS_Recharger_loop()
{
    if (Npc_GetStateTime(self) > 3)
    {
          Npc_SetStateTime (self, 0);

          if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX])
          {
                      hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1;
          };

          AI_Teleport (self, Npc_GetNearestWP (hero));
         
    };

    return LOOP_CONTINUE;
};

func void ZS_Recharger_end()
{
    AI_PlayAni (self,"T_LGUARD_2_STAND");      
};
Далее в файле TA.d дописывал следующую строчку:
func void TA_Recharger      (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)      {TA_Min            (self,      start_h,start_m, stop_h, stop_m, ZS_Recharger,                        waypoint);};
Ну и в конце-концов вставил в файле It_Amulette.d следующее:
INSTANCE  ItAm_Mana_Regener(C_Item)
{
    name                   =      NAME_Amulett;

    mainflag             =      ITEM_KAT_MAGIC;
    flags                   =      ITEM_AMULET;

    value                   =      Value_Mana_Regener;

    visual                   =      "ItAm_Strg_01.3ds";

    visual_skin       =      0;
    material             =      MAT_METAL;
    on_equip            =      Equip_ItAm_Mana_Regener;
    on_unequip            =      UnEquip_ItAm_Mana_Regener;

    wear                  =       WEAR_EFFECT;
    effect                  =      "SPELLFX_ITEMGLIMMER";

    description            = "Амулет регенерации маны";
   
   
    TEXT[5]                  = NAME_Value;
    COUNT[5]            = value;

    INV_ZBIAS                        = INVCAM_ENTF_AMULETTE_STANDARD;
   
};
Но в компиляцие выдаёт ошибку:
00:00 Fatal:-1 U: PAR:ITEMS/IT_AMYLETTED.D:Syntax error:INSTANCE(line 421)…<zParser.cpp,#599>
Указывает на эту строчку      name   =      NAME_Amulett;
Что я делаю не правильно?

Я попытался вставить амулет (защита от магии 50)
всё получилось
Просто вставил в папку IT_Amulette.d(_decompiled\Items):
INSTANCE ItAm_Prot_Fire(C_Item)
{
name = "Амулет из жерла вулкана";

mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;

value = 10000;

visual = "ItAm_Prot_Fire_01.3ds";

visual_skin = 0;
material = MAT_METAL;

wear = WEAR_EFFECT;
on_equip = Equip_Prot_Fire;
on_unequip = UnEquip_Prot_Fire;

description = name;

TEXT[2] = "Защита от огня";
COUNT[2] = 50;
TEXT[5] = NAME_Value;
COUNT[5] = 10000;

INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD;
};

FUNC VOID Equip_Prot_Fire()
{
self.protection [PROT_FIRE] += 50;
};


FUNC VOID UnEquip_Prot_Fire()
{
self.protection [PROT_FIRE] -= 50;
};
потом вставил его в инвентарь( CreateInvItems (self,ItAm_Prot_Fire,1)Компелирую и всё.
А с омулетом востоновления маны не получается какую я делаюошибку?

Ответить с цитированием
Старый 29.06.2005, 20:19   #489
XyylPex

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

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Попробуй написать так: name = "Амулет регенерации маны";
Ответить с цитированием
Старый 29.06.2005, 21:19   #490
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
У меня такой же амулет скомпилировался нормально... ::)
Отправить личное сообщение для Ответить с цитированием
Старый 29.06.2005, 21:33   #491
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Я создал амулет,вот что я делал:
В AI\Human\TA_Human создал файл ZS_Recharger
В нём прописал
func void ZS_Recharger()
{
* * B_ResetAll (self);
* * B_ClearPerceptions (self);
};

func int ZS_Recharger_loop()
{
* * if (Npc_GetStateTime(self) > 3)
* * {
* * * * * Npc_SetStateTime (self, 0);

* * * * * if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX])
* * * * * {
* * * * * * * * * * * hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1;
* * * * * };

* * * * * AI_Teleport (self, Npc_GetNearestWP (hero));
* * * * *
* * };

* * return LOOP_CONTINUE;
};

func void ZS_Recharger_end()
{
* * AI_PlayAni (self,"T_LGUARD_2_STAND"); * * *
};
потом TA.D вставил в конце следующее:
func void TA_Recharger (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint){TA_Min(self,start_h,start_m, stop_h, stop_m, ZS_Recharger,waypoint);};
Потом создал непися(NONE_666_Leo):
INSTANCE NONE_666_Leo(Npc_Default)
{
* * *// ------ NSC ------
* * *name ** * * * * *= "Лео";
* * *guild ** * * * * *= GIL_NONE;
* * *id ** * * * * * * * *= 666;
* * *voice ** * * * * *= 6;
* * *flags * * * = FALSE; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *npctype * * * * * *= NPCTYPE_MAIN;
* * *
* * *// ------ Attribute ------
* * *B_SetAttributesToChapter (self, 2); * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * *
* * *// ------ Kampf-Taktik ------
* * *fight_tactic * * * * * *= FAI_HUMAN_NORMAL; * * *
* * *
* * *// ------ Equippte Waffen ------ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *// ------ Inventory ------
* * *CreateInvItems (self,ITWr_Addon_William_01,1);//Joly: nicht austauschen oder umbenennen.
* * *CreateInvItems (self,ITKe_Lockpick,2);
* * *CreateInvItems (self,ITFo_Apple,1);
* * * * * * * * * * CreateInvItems (self, ItAm_Mana_Regener,1);
* * *// ------ visuals ------ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *B_SetNpcVisual ** * * * * *(self, MALE, "Hum_Head_Thief", Face_N_Homer, BodyTex_N, ITAR_BAU_L); * * * *
* * *Mdl_SetModelFatness * * *(self, 0.9);
* * *Mdl_ApplyOverlayMds * * *(self, "Humans_Relaxed.mds");
* * *
* * *// ------ NSC-relevante Talente vergeben ------
* * *B_GiveNpcTalents (self);
* * *
* * *// ------ Kampf-Talente ------ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *B_SetFightSkills (self,30);

* * *// ------ TA anmelden ------
* * *daily_routine ** * * * * *= Rtn_Start_666;
};

FUNC VOID Rtn_Start_666 ()
{ * * *
* * *TA_Stand_Eating * *(08,00,23,00,"NW_FARM1_OUT_01");

TA_Stand_ArmsCrossed * (23,00,08,00,"NW_FARM1_OUT_01");
};
Везде его прописал, потом прописал амулет в Gothic src:
(AI\Human\TA_Human\ZS_Recharger.d)
и прописал амулет IT_Amulette.D:
INSTANCE *ItAm_Mana_Regener(C_Item)
{
* * name * * * * * * * * * = * * *NAME_Amulett;

* * mainflag * * * * * * = * * *ITEM_KAT_MAGIC;
* * flags * * * * * * * * * = * * *ITEM_AMULET;

* * value * * * * * * * * * = * * *10000;

* * visual * * * * * * * * * = * * *"ItAm_Strg_01.3ds";

* * visual_skin * * * = * * *0;
* * material * * * * * * = * * *MAT_METAL;
* * on_equip * * * * * *= * * *Equip_ItAm_Mana_Regener;
* * on_unequip * * * * * *= * * *UnEquip_ItAm_Mana_Regener;

* * wear * * * * * * * * *= * * * WEAR_EFFECT;
* * effect * * * * * * * * *= * * *"SPELLFX_ITEMGLIMMER";

* * description * * * * * *= "Амулет регенерации маны";
* *
* *
* * TEXT[5] * * * * * * * * *= NAME_Value;
* * COUNT[5] * * * * * *= value;

* * INV_ZBIAS * * * * * * * * * * * *= INVCAM_ENTF_AMULETTE_STANDARD;
* *
};

FUNC VOID Equip_ItAm_Mana_Regener()
{
* * Npc_ExchangeRoutine * * *(None_666_Leo,"Regeneration");
};

FUNC VOID UnEquip_ItAm_Mana_Regener()
{
* * Npc_ExchangeRoutine * * *(None_666_Leo,"Start");
};
Закомпилировал,ошиок не было.Вставляю датник и оушник в игру.
Потом захожу в игру убиваю Лео беру амулет с помощью кодов становлюсь
Паладином,трачу Ману потом одеваю амулет а он не прибавляет манны.
Почему амулет не работает? *
TycoooN а не мог ли ты написать как ты вставлял амулет если можно по подробней.Был бы очень благодарен!
Ответить с цитированием
Старый 29.06.2005, 21:55   #492
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Я не говорил, что он у меня не работает, я всего лишь дописал в IT_Amulette.d это:

Код:
INSTANCE  ItAm_Mana_Regener(C_Item){    name                   =      NAME_Amulett;    mainflag             =      ITEM_KAT_MAGIC;    flags                   =      ITEM_AMULET;    value                   =      10000;    visual                   =      "ItAm_Strg_01.3ds";    visual_skin       =      0;    material             =      MAT_METAL;    on_equip            =      Equip_ItAm_Mana_Regener;    on_unequip            =      UnEquip_ItAm_Mana_Regener;    wear                  =       WEAR_EFFECT;    effect                  =      "SPELLFX_ITEMGLIMMER";     description            = "Амулет регенерации маны";            TEXT[5]                  = NAME_Value;    COUNT[5]            = value;    INV_ZBIAS                        = INVCAM_ENTF_AMULETTE_STANDARD;    };
и скомпировал, ошибок не выдало :)
Отправить личное сообщение для Ответить с цитированием
Старый 29.06.2005, 22:08   #493
Vam

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

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Но в компиляцие выдаёт ошибку:
00:00 Fatal:-1 U: PAR:ITEMS/IT_AMYLETTED.D:Syntax error:INSTANCE(line 421)…<zParser.cpp,#599>
Указывает на эту строчку      name   =      NAME_Amulett;
Что я делаю не правильно?
У меня такое ощущение, что ты компилируешь одни скрипты, а ошибки ищешь в других.
Ключ -zcomp:1,0 - компиляция скриптов в директории Content.
Ключ -zcomp:1,1 - компиляция скриптов в директории _decompiled.
Результат же (дат и оу файлы) в любом случае находится в директории _decompiled.
Ответить с цитированием
Старый 30.06.2005, 12:35   #494
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Я тоже просто попытался вставить в IT_Amulette.D следующее:
INSTANCE  ItAm_Mana_Regener(C_Item)
{
  name                   =      NAME_Amulett;

  mainflag             =      ITEM_KAT_MAGIC;
  flags                   =      ITEM_AMULET;

  value                   =      10000;

  visual                   =      "ItAm_Strg_01.3ds";

  visual_skin       =      0;
  material             =      MAT_METAL;
  on_equip            =      Equip_ItAm_Mana_Regener;
  on_unequip            =      UnEquip_ItAm_Mana_Regener;

  wear                  =       WEAR_EFFECT;
  effect                  =      "SPELLFX_ITEMGLIMMER";

  description            = "Амулет регенерации маны";
 
 
  TEXT[5]                  = NAME_Value;
  COUNT[5]            = value;

  INV_ZBIAS                        = INVCAM_ENTF_AMULETTE_STANDARD;
 
};
Но когда компилирую декомпилированные файлы прога вадаёт 2 ошибки(синие):
1)00:14 Fault:0 U: PAR:ITEMS/IT_AMYLETTED.D:’EQUIP_ITAM_MANA_REGENER’undeclared name (line 434)…<zError.cpp,#477>  
2) 00:14 Fault:0 U: PAR:ITEMS/IT_AMYLETTED.D:’UNEQUIP_ITAM_MANA_REGRNER’ undeclared name (line 435)…<zError.cpp,#477>
Как их можно исправить? И почему у тебя TycoooN без ошибок а у меня эти 2 ведь сделал тоже самое что у тебя написано в посте 491.

Ответить с цитированием
Старый 30.06.2005, 12:37   #495
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Тьфу сорри, не до конца скопировал :)
Вот что я вставлял:

Код:
INSTANCE *ItAm_Mana_Regener(C_Item){ * *name * * * * * * * * * = * * *NAME_Amulett; * *mainflag * * * * * * = * * *ITEM_KAT_MAGIC; * *flags * * * * * * * * * = * * *ITEM_AMULET; * *value * * * * * * * * * = * * *100; * *visual * * * * * * * * * = * * *"ItAm_Strg_01.3ds"; * *visual_skin * * * = * * *0; * *material * * * * * * = * * *MAT_METAL; * *on_equip * * * * * *= * * *Equip_ItAm_Mana_Regener; * *on_unequip * * * * * *= * * *UnEquip_ItAm_Mana_Regener; * *wear * * * * * * * * *= * * * WEAR_EFFECT; * *effect * * * * * * * * *= * * *"SPELLFX_ITEMGLIMMER";  * *description * * * * * *= "Амулет регенерации маны"; * * * * * *TEXT[5] * * * * * * * * *= NAME_Value; * *COUNT[5] * * * * * *= value; * *INV_ZBIAS * * * * * * * * * * * *= INVCAM_ENTF_AMULETTE_STANDARD; * *};FUNC VOID Equip_ItAm_Mana_Regener(){ * *//Npc_ExchangeRoutine * * *(None_999_Recharger,"Regeneration");};FUNC VOID UnEquip_ItAm_Mana_Regener(){ * *//Npc_ExchangeRoutine * * *(None_999_Recharger,"Start");};
З.Ы. На строки
Код:
Npc_ExchangeRoutine(None_999_Recharger,"Start");
и
Код:
Npc_ExchangeRoutine(None_999_Recharger,"Regeneration");
он у меня ругался, потому что None_999_Recharger нигде не прописан, поэтому эти строки я закомментировал ;)
Отправить личное сообщение для Ответить с цитированием
Старый 30.06.2005, 15:45   #496
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

TycoooN спосибо,попробывал закомпелировать то что ты написал выше.
Закомпелировалось всё без ошибок.Ща попробую вставить оушник и
датник в игру и проверить работает амуле или нет!

Добавление от 06/30/05, в 16:05:31
TycoooN скажи, а ты только вставил, что привёл выше в IT_Amulette.d.
Ты больше ничего не создавал в AI\Human\TA_Human(как приводил финч например ZS_Recharger),ничего не прописывал в TA.D?А то я сделал как ты написал в посте
494 просто вставил в IT_Amulette.d то что ты написал выше потом вставил амулет в инвентарь к моему неписю(NONE_666_Leo),захожу в игру вселяюсь в него трачу Ману а она не востонавливается.Скажи а ты не создавал непися(NONE_999_Recharger) если создавал то не мог ли ты написать его содержимое,может быть в непися не так нужно вставлять амулет?Короче кроме того что ты вставил в  IT_Amulette.d ты что нибудь ещё делал?  
Ответить с цитированием
Старый 30.06.2005, 16:29   #497
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Млин, я вовсе и не пытался сделать, чтобы амулет заработал! Конечно, ничего не будет работать без всех этих ZS_Recharger и прочего...
Я просто попробовал скомпилировать код, на котором у тебя почему-то выдавало ошибку, и ВСЁ!
Отправить личное сообщение для Ответить с цитированием
Старый 30.06.2005, 16:58   #498
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Вот NPC(NONE_99_Recharger):
instance None_999_Recharger (Npc_Default)  
{
name                             = "";
guild                            = GIL_NONE;
npctype                          = NPCTYPE_AMBIENT;
flags                            = NPC_FLAG_IMMORTAL&#124;NPC_FLAG_GHOST;
level                            = 999;
voice                            = 0;
id                               = 999;
noFocus                          = 1;
bodyStateInterruptableOverride       = 1;

damagetype                          = DAM_EDGE;
damage [DAM_INDEX_EDGE]            = 0;


//-------- visuals --------
B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M);
Mdl_SetModelScale (self, 0.01, 0.01, 0.01);


//-------- talents --------
B_SetFightSkills (self, 0);  


//------------- ai -------------
fight_tactic    = FAI_HUMAN_COWARD;


daily_routine    = Rtn_start_999;
};


func void Rtn_Regeneration_999 ()
{
 TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero));
};

func void Rtn_start_999 ()
{
 TA_Stand_WP (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Stand_WP (13,00,0,00, Npc_GetNearestWP (hero));
};

Кто-нибудь может сказать после кого в Startup.D нужно прописать
вот это:
Wld_InsertNpc   (None_999_Recharger,Npc_GetNearestWP (hero));
Просто полностью пытаюся делать как делал Finch а вот где веппоинт находится не знаю он просто указал
Wld_InsertNpc   (None_999_Recharger,Npc_GetNearestWP (hero));
а где его прописывать не знаю?
Ответить с цитированием
Старый 30.06.2005, 17:01   #499
Nifarius

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

По умолчанию Re: Скриптинг в Готике

Что нужно писать в диалоговом скрипте, чтобы во время разговора предмет был удален из инвентаря?
Ответить с цитированием
Старый 30.06.2005, 17:53   #500
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Нефариус:
Что нужно писать в диалоговом скрипте, чтобы во время разговора предмет был удален из инвентаря?
void Npc_RemoveInvItems (c_npc owner, int itemInstance, int amount); - указанное кол-во amount предметов itemInstance удаляется из инвентаря НПС owner и из игры.

2Bliz@rd:
Wld_InsertNpc   (None_999_Recharger,Npc_GetNearestWP (hero));
Просто полностью пытаюся делать как делал Finch а вот где веппоинт находится не знаю он просто указал
Wld_InsertNpc   (None_999_Recharger,Npc_GetNearestWP (hero));
а где его прописывать не знаю?
Да какая разница где прописывать-то (в данном случае)? ::)
Отправить личное сообщение для Ответить с цитированием
Старый 30.06.2005, 20:21   #501
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Сделал полностью как описал финч т.е:
В TA_Human создал ZS_Recharger и прописал там:
func void ZS_Recharger()
{
    B_ResetAll (self);
    B_ClearPerceptions (self);
};

func int ZS_Recharger_loop()
{
    if (Npc_GetStateTime(self) > 3)
    {
          Npc_SetStateTime (self, 0);

          if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX])
          {
                      hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1;
          };

          AI_Teleport (self, Npc_GetNearestWP (hero));
         
    };

    return LOOP_CONTINUE;
};

func void ZS_Recharger_end()
{
    AI_PlayAni (self,"T_LGUARD_2_STAND");      
};
Потом в TA.D прописал в конце:

func void TA_Recharger(var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint)      
{
                TA_Min(self,      start_h,start_m, stop_h, stop_m, ZS_Recharger,waypoint);
};
И в IT_Amulette.D прописал:
INSTANCE  ItAm_Mana_Regener(C_Item)
{
    name                   =      NAME_Amulett;

    mainflag             =      ITEM_KAT_MAGIC;
    flags                   =      ITEM_AMULET;

    value                   =      10000;

    visual                   =      "ItAm_Strg_01.3ds";

    visual_skin       =      0;
    material             =      MAT_METAL;
    on_equip            =      Equip_ItAm_Mana_Regener;
    on_unequip            =      UnEquip_ItAm_Mana_Regener;

    wear                  =       WEAR_EFFECT;
    effect                  =      "SPELLFX_ITEMGLIMMER";

    description            = "Амулет регенерации маны";
   
   
    TEXT[5]                  = NAME_Value;
    COUNT[5]            = value;

    INV_ZBIAS                        = INVCAM_ENTF_AMULETTE_STANDARD;
   
};

FUNC VOID Equip_ItAm_Mana_Regener()
{
    Npc_ExchangeRoutine      (None_999_Recharger,"Regeneration");
};

FUNC VOID UnEquip_ItAm_Mana_Regener()
{
    Npc_ExchangeRoutine      (None_999_Recharger,"Start");
};
И прописал в Gothic src следующее:
Прописал после AI\Human\TA_Human\ZS_Wash_FP.d это AI\Human\TA_Human\ZS_Recharger.d
Потом создал непися (NONE_999_Recharger):
instance None_999_Recharger (Npc_Default)  
{
name                             = "";
guild                            = GIL_NONE;
npctype                          = NPCTYPE_AMBIENT
flags                            = NPC_FLAG_IMMORTAL; ;(здесь было NPC_FLAG_IMMORTAL&#124;NPC_FLAG_GHOST; надеюсь если я убрал&#124;NPC_FLAG_GHOST; ошибки не будет?)
level                            = 999;
voice                            = 0;
id                               = 999;
noFocus                          = 1;
bodyStateInterruptableOverride       = 1;

damagetype                          = DAM_EDGE;
damage [DAM_INDEX_EDGE]            = 0;


//-------- visuals --------
B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M);
Mdl_SetModelScale (self, 0.01, 0.01, 0.01);


//-------- talents --------
B_SetFightSkills (self, 0);  


//------------- ai -------------
fight_tactic    = FAI_HUMAN_COWARD;


daily_routine    = Rtn_start_999;
};

// ------ TA anmelden ------
func void Rtn_Regeneration_999 ()
{
 TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero));
};

func void Rtn_start_999 ()
{
 TA_Stand_WP (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Stand_WP (13,00,0,00, Npc_GetNearestWP (hero));
};
Прописал в статупе после этого
Wld_InsertNpc      (BAU_950_Lobart,            "NW_FARM1_OUT_01");
это
Wld_InsertNpc      (None_999_Recharger,Npc_GetNearestWP (hero));
И прописал в Gothic src следующее:
Story\NPC\NONE_999_Recharger.d(прописал после ксардаса)
Закомпемпелировал без ошибок.А где теперь в игре искать None_999_Recharger?
Потом создал второго непися(NONE_666_Leo)
И поместил амулет ему в инвентарь(CreateInvItems (self,ItAm_Mana_Regener,1),Закомпелировал,без ошибок.
Захожу в игру вселяюсь в него трачу Ману а амулет опять не работает.Почему?
Что нужно чтобы он зароботал?Или нужно что-то прописать у безымянного(PC_HERO.d)
Чтобы он зароботал?(посмотрел в моде манареолад)Кроме всего что я привёл выше где нибудь ещё надо прописывать чтобы амулет зароботал?Заранее спосибо.
Ответить с цитированием
Старый 30.06.2005, 21:58   #502
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
По идее, должно работать. К сожалению, даже и не знаю, чего тебе посоветовать, кроме того, чтобы ты забил на этот амулет и перешел к изучению других скриптов, к примеру квестов ::)
Отправить личное сообщение для Ответить с цитированием
Старый 01.07.2005, 20:20   #503
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Скажите вот я разархивировал(с помощь проги от Vama) датник мода Манареолад.
Потом перенёс от туда из папки NPC  следующее:PC_Hero.d, KDF_512_Jarek,
NONE_999_Recharger.Из папки System Menu_Status.d, из папки диалогов DIA_KDF_512_Jarek,из папки B_Story перенёс B_GetLearnCostTalent и
B_TeachPlayerTalentRegenerate.А так же перенёс Text.d,всех неписей и амулет прописал в Gothic src и статупе(только неписей).Только изменил веппоинт
KDF_512_Jarek и в PC_HERO.D изменил там где было slf на self.В оригинальном моде маг учит регенерации.Но когда я всё
Скомпелировал что я привёл выше и перенёс датник и оушник в игру то
Маг почему-то ничего не говорит.почему?Что нужно ещё перенести чтобы маг мог
Учить меня регенерации?
И ещё извините что не в тему а есть ли руский перевод к моду ManaReload?

Добавление от 07/01/05, в 20:40:35
1)Когда вставляешь диалог в игру,и когда начинаешь говорить с NPC то начинаются глюки(начинает говорить только через секунд 30).так же у меня было с модом dunklemagie.А когда установил мод
Alternative_G2a то там было всё нормально. Как это можно исправить чтобы глюка не было(после того как вставляешь непися и диалог к нему?
2)Вот допустим я создал мод а как сделать чтобы в готик стартёре он отображалась никак игра а как мод?
Ответить с цитированием
Старый 02.07.2005, 03:52   #504
finch

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

По умолчанию Re: Скриптинг в Готике

Сделал полностью как описал финч т.е
Ну, в общем-то не полностью...

создал второго непися(NONE_666_Leo)
И поместил амулет ему в инвентарь(CreateInvItems (self,ItAm_Mana_Regener,1),Закомпелировал,без ошибок.
Захожу в игру вселяюсь в него трачу Ману а амулет опять не работает.Почему?
Не работает, потому что амулет работает только у ГГ. Млин, читай скрипт! Там же все написано! Фишка в том, что амулет работает только тогда, когда речаджер появляется рядом с ГГ. А Лео, которого ты создал ГГ не является. Т.е. речарджер "типа" появляется возле ГГ, и у ГГ "типа" восстанавливается мана, но на самом деле этого не происходит!

Или нужно что-то прописать у безымянного(PC_HERO.d)
Да! =) Пропиши амулет в инвентаре ГГ и попробуй одеть его!

Вот допустим я создал мод а как сделать чтобы в готик стартёре он отображалась никак игра а как мод?
Создай отдельный инишник отталкиваясь от gothic.ini *;)
Удачи, короче!
Ответить с цитированием
Старый 02.07.2005, 11:10   #505
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Finch а как прописать амулет в инвенторе ГГ? И ещё то что я написал выше это правильно(пост 500)?И ещё я чё то не понял а как сделать чтобы речаджер появился рядом с ГГ?
Можешь вот эту часть по подробней расписать?
Ответить с цитированием
Старый 02.07.2005, 11:50   #506
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Finch а как прописать амулет в инвенторе ГГ?
Так же, как у других НПС.

И ещё я чё то не понял а как сделать чтобы речаджер появился рядом с ГГ?
У тебя УЖЕ это сделано, зачем по твоему все эти скрипты нужны были? :lol:
Отправить личное сообщение для Ответить с цитированием
Старый 02.07.2005, 12:49   #507
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Я опять всё пробывал сделать заново:
1)в AI\Human\TA_Human создал файл ZS_Recharger
вот его содержимое:
func void ZS_Recharger()
{
    B_ResetAll (self);
    B_ClearPerceptions (self);
};

func int ZS_Recharger_loop()
{
    if (Npc_GetStateTime(self) > 3)
    {
          Npc_SetStateTime (self, 0);

          if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX])
          {
                      hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1;
          };

          AI_Teleport (self, Npc_GetNearestWP (hero));
         
    };

    return LOOP_CONTINUE;
};

func void ZS_Recharger_end()
{
    AI_PlayAni (self,"T_LGUARD_2_STAND");      
};
Потом в TA.D прописал после этого
func void TA_Guard_Hammer(var int start_h,var int start_m,var int stop_h,var int stop_m,var string waypoint)
{
     TA_Min(self,start_h,start_m,stop_h,stop_m,ZS_Guar d_Hammer,waypoint);
};
прописал это
func void ta_recharger(var int start_h,var int start_m,var int stop_h,var int stop_m,var string waypoint)
{
     TA_Min(self,start_h,start_m,stop_h,stop_m,zs_rech arger,waypoint);
};
И прописал в IT_Amulette после этого
instance ItAm_Dex_Strg_01(C_Item)
{
     name = "Амулет мощи";
     mainflag = ITEM_KAT_MAGIC;
     flags = ITEM_AMULET;
     value = Value_Am_DexStrg;
     visual = "ItAm_Dex_Strg_01.3ds";
     visual_skin = 0;
     material = MAT_METAL;
     on_equip = Equip_ItAm_Dex_Strg_01;
     on_unequip = UnEquip_ItAm_Dex_Strg_01;
     wear = WEAR_EFFECT;
     effect = "SPELLFX_ITEMGLIMMER";
     description = "Амулет мощи";
     text[2] = NAME_Bonus_Dex;
     count[2] = Am_DexStrg_Dex;
     text[3] = NAME_Bonus_Str;
     count[3] = Am_DexStrg_Strg;
     text[5] = NAME_Value;
     count[5] = value;
     inv_zbias = INVCAM_ENTF_AMULETTE_STANDARD;
};


func void Equip_ItAm_Dex_Strg_01()
{
     Npc_ChangeAttribute(self,ATR_DEXTERITY,Am_DexStrg _Dex);
     Npc_ChangeAttribute(self,ATR_STRENGTH,Am_DexStrg_ Strg);
};

func void UnEquip_ItAm_Dex_Strg_01()
{
     Npc_ChangeAttribute(self,ATR_DEXTERITY,-Am_DexStrg_Dex);
     Npc_ChangeAttribute(self,ATR_STRENGTH,-Am_DexStrg_Strg);
};
вставил это
INSTANCE  ItAm_Mana_Regener(C_Item)
{
  name                   =      NAME_Amulett;

  mainflag             =      ITEM_KAT_MAGIC;
  flags                   =      ITEM_AMULET;

  value                   =      100;

  visual                   =      "ItAm_Strg_01.3ds";

  visual_skin       =      0;
  material             =      MAT_METAL;
  on_equip            =      Equip_ItAm_Mana_Regener;
  on_unequip            =      UnEquip_ItAm_Mana_Regener;

  wear                  =       WEAR_EFFECT;
  effect                  =      "SPELLFX_ITEMGLIMMER";

  description            = "Амулет регенерации маны";
 
 
  TEXT[5]                  = NAME_Value;
  COUNT[5]            = value;

  INV_ZBIAS                        = INVCAM_ENTF_AMULETTE_STANDARD;
 
};

FUNC VOID Equip_ItAm_Mana_Regener()
{
  //Npc_ExchangeRoutine      (None_999_Recharger,"Regeneration");
};

FUNC VOID UnEquip_ItAm_Mana_Regener()
{
  //Npc_ExchangeRoutine      (None_999_Recharger,"Start");
};
потто создал непися(NONE_999_Recharger) вот его содержимое:
instance None_999_Recharger (Npc_Default)  
{
name                             = "";
guild                            = GIL_NONE;
npctype                          = NPCTYPE_AMBIENT;
flags                            = NPC_FLAG_IMMORTAL;
level                            = 999;
voice                            = 0;
id                               = 999;
noFocus                          = 1;
bodyStateInterruptableOverride       = 1;

damagetype                          = DAM_EDGE;
damage [DAM_INDEX_EDGE]            = 0;


//-------- visuals --------
B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M);
Mdl_SetModelScale (self, 0.01, 0.01, 0.01);


//-------- talents --------
B_SetFightSkills (self, 0);  


//------------- ai -------------
fight_tactic    = FAI_HUMAN_COWARD;

// ------ TA anmelden ------
daily_routine    = Rtn_start_999;
};

func void Rtn_Regeneration_999 ()
{
 TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero));
};

func void Rtn_start_999 ()
{
 TA_Stand_WP (0,00,13,00, Npc_GetNearestWP (hero));
 TA_Stand_WP (13,00,0,00, Npc_GetNearestWP (hero));
};
Потом прописал его в статупе после этого
Wld_InsertNpc(BAU_950_Lobart,"NW_FARM1_OUT_01");
Прописал это
Wld_InsertNpc      (None_999_Recharger,Npc_GetNearestWP (hero));
Потом амуле прописал в Gothic src
После этого
AI\Human\TA_Human\ZS_Wash_FP.d
Прописал это
AI\Human\TA_Human\ZS_Recharger.d
И прописал непися после
После этого
Story\NPC\NONE_100_Xardas.d
Прописал в это
Story\NPC\NONE_999_Recharger.d
Потом в PC_Hero.d прописал в самом начале амулет
CreateInvItems(self, ItAm_Mana_Regener,1);
Вот как это выглядит  
instance PC_Hero(Npc_Default)
{
     name[0] = "Я";
     guild = GIL_NONE;
     id = 0;
     voice = 15;
     level = 0;
     npcType = npctype_main;
     bodyStateInterruptableOverride = TRUE;
     exp = 0;
     exp_next = 500;
     lp = 0;
     attribute[ATR_STRENGTH] = 10;
     attribute[ATR_DEXTERITY] = 10;
     attribute[ATR_MANA_MAX] = 10;
     attribute[ATR_MANA] = 10;
     attribute[ATR_HITPOINTS_MAX] = 40;
     attribute[ATR_HITPOINTS] = 40;
     Mdl_SetVisual(self,"HUMANS.MDS");
     Mdl_SetVisualBody(self,"hum_body_Naked0",9,0,"Hum _Head_Pony",Face_N_Player,0,NO_ARMOR);
CreateInvItems(self, ItAm_Mana_Regener,1);
     B_SetFightSkills(self,10);
};
Закомпелировал.Вставил оушник и датник в игру.начал игру.поболтал с Ксардосом
Взял из сондука магию огненный шар стрельнул,одел амулет а она всёравно не восстанавливается.Что я опять делаю не правильно?  

Ответить с цитированием
Старый 02.07.2005, 13:12   #508
XyylPex

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

По умолчанию Re: Скриптинг в Готике

Подскажите,что отвечает за игровое время?Этот вопрос ,вроде,кто то уже задавал,но наийти я его не смог. :)
Ответить с цитированием
Старый 02.07.2005, 14:53   #509
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Вспомните пожайлуста мод ManaReload там где маг учит регенерации.
Я попробывал тоже селать так.Перенёс непися,диалог.Непися прописал в Gothic src.
Потом перенёс из Constants.d а так же перенёс B_GetLearnCostTalent и B_TeachPlayerTalentRegenerate и ещё перенёс Text.d.Закомпелировал без ошибок.
Но диалога не было потом прописал диалог в Gothic src.Но когда компилирую выдаёт такую ошибку.
00:14 Fatal:-1 U: PAR:STORY/DIALOGE/DIA_KDF_512_JAREK.D:Unknown identifier:B_TEACHPLAYERTALENTREGENERATE(line 160)…<zParser.cpp,#599>
Как её можно исправить?Может что-то ещё нужно перенести  чтобы непись учил регенерации?
Ответить с цитированием
Старый 02.07.2005, 15:05   #510
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
00:14 Fatal:-1 U: PAR:STORY/DIALOGE/DIA_KDF_512_JAREK.D:Unknown identifier:B_TEACHPLAYERTALENTREGENERATE(line 160)…<zParser.cpp,#599>
Написано же всё. Ты что, совсем ничего по-английски не понимаешь?  >:( :o
Отправить личное сообщение для Ответить с цитированием
Старый 02.07.2005, 21:43   #511
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Вопрос к Финчу.Амулет ни в какую не хочет работать и речарджер не появляется?Почему?

Добавление от 07/02/05, в 19:19:34
Решил не мучится с регенерацией. Просто распоковал датник мода манареолад
Потом решил сделать его русским. Сделал. А потом просто возьму датник и оушник и буду вставлять то что мне нужно. Начал компиляцию из 50 ошибок исправил
49.А вот эту не могу:
00:10 Fatal:-1 U: PAR:STORY/DIALOGE/DIA_PAL_258_KEROLOTH.D:Expected (line 110)…<zParser.cpp,#599>
Как можно исправить эту ошибку я просто сам бы попытался но у меня прога(uedit32) глючит?


Добавление от 07/02/05, в 19:22:38
TycoooN а обязательно нужно было ставить минус?Я просто пытался что-то сделать,не всё получается.

Добавление от 07/02/05, в 22:03:29
Кто-нибудь может сказать какие файлы отвечают за регенерацию маны в моде манареолад.а то я разархивировал датник9с помощью проги от Vama) исправил все ошибки при компиляции.Захожу в игру маг разговаривает учит регенерации,запись в дневник добовляется.но когда начинаешь пользоваться магией,мана не востонавливается.Кто-нибудь может сказать в чём проблема?  
Ответить с цитированием
Старый 03.07.2005, 01:38   #512
finch

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

По умолчанию Re: Скриптинг в Готике

2Bliz@rd: Просто забей на скриптинг... =( Больше посоветовать нечего...
Ответить с цитированием
Старый 03.07.2005, 16:49   #513
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
00:10 Fatal:-1 U: PAR:STORY/DIALOGE/DIA_PAL_258_KEROLOTH.D:Expected (line 110)…<zParser.cpp,#599>
Ты чего, руками что ли сообщения zSpy переписываешь? Сомневаюсь, что ты не пропустил несколько символов ::)

Как можно исправить эту ошибку я просто сам бы попытался но у меня прога(uedit32) глючит?
1. Интересно, каким это образом ::)
2. А Блокнот aka Нотепад поюзать не дано?
3. Очень похоже на отмазку, ты уж извини.
4. Даже если кто-то тебе скажет, как исправить, как ты это сделаешь, если у тебя
прога(uedit32) глючит?
;D :lol:

Полностью согласен с Финчем.
Отправить личное сообщение для Ответить с цитированием
Старый 03.07.2005, 20:00   #514
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

TycoooN эту ошибку я давно исправил!А насчёт символов я действительно пропустил .А спрогой я разобрался.Насчёт забивания скриптинга,забивать не буду,что я месяц просто так разбирался.И то что ты говорил что я ничего не пытаюсь
делать сам ты ошибаешься,извине конечно,но как я уже говорил многое не получается,так что приходится обращаться сюда!


Добавление от 07/03/05, в 20:20:32
Я знаю что вопрос этот я задавал,но тогда у меня только получилось переименовать гильдию,но сейчас я попробывал вставить гильдию вот что я делал:
В _Intern/Constants.d вместо const int GIL_EMPTY_X вставил const int GIL_GUR= 63;потом в B_SetMonsterAttitude прописал
после
Wld_SetGuildAttitudefromGuild,attitude,GIL_KDW);пр описал
это
Wld_SetGuildAttitude(fromGuild,attitude,GIL_GUR);
потом после этого
Wld_SetGuildAttitude(GIL_KDW,attitude,toGuild);
прописал это
Wld_SetGuildAttitude(fromGuild,attitude,GIL_GUR);
То что я написал выше это правильно?
Нужно ли прописывать в Species,если да то что и после чего?
Ответить с цитированием
Старый 03.07.2005, 21:06   #515
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
В _Intern/Constants.d вместо const int GIL_EMPTY_X вставил const int GIL_GUR= 63;
Это неправильно, т.к. если гильдия "человеческая", то ее номер должен быть меньше величины константы GIL_SEPERATOR_HUM, которая равна 16, и которую нельзя менять.
Так что советую переделать под свои нужды гильдию GIL_EMPTY_D = 15;
Тебе надо будет еще изменить файл AI/Human/Guilds.d, там в массиве GIL_ATTITUDES нужно прописать отношения твоей гильдии с другими.
Ну и изменть в story/text.d массив TXT_GUILDS.
Отправить личное сообщение для Ответить с цитированием
Старый 03.07.2005, 22:12   #516
Vam

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

По умолчанию Re: Скриптинг в Готике

2TycoooN:
Так что советую переделать под свои нужды гильдию GIL_EMPTY_D = 15
GIL_EMPTY_D трогать нельзя, её номер совпадает с GIL_PUBLIC. А чтобы переделать GIL_PUBLIC под другую гильдию людей придется изменять скрипты AI системы. Чтобы не было заблуждений лучше строку GIL_EMPTY_D = 15 вообще удалить.
Ответить с цитированием
Старый 04.07.2005, 13:33   #517
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Vam но я сделал как написал TycoooN и всё работает.Вот что я делал  в _Intern/Constants.d вместо GIL_EMPTY_D = 15;
поставил const int GIL_GUR=15;//Гуру.Потом AI/Human/Guilds.d
в конце прописал(вместо /* D  */):
/* GUR  */      ATT_NEUTRAL,      ATT_NEUTRAL,      ATT_NEUTRAL,      ATT_NEUTRAL,      /* GUR   */      ATT_NEUTRAL,      ATT_NEUTRAL,      /* GUR   */      ATT_NEUTRAL,      ATT_NEUTRAL,      ATT_NEUTRAL,      /* GUR   */      ATT_NEUTRAL,      ATT_NEUTRAL,      ATT_NEUTRAL,      /* GUR  */      ATT_NEUTRAL,      ATT_NEUTRAL,      ATT_NEUTRAL,      ATT_NEUTRAL      
};
Потом в story/text.d после "Wassermagier", //Addon поставил
"Гуру",      Дальше сделал непися(GUR_666_Leo) прописал его везде
закомпелировал зашёл в игру вселился в гильдии было написано Гуру.
Поидее всё работает нормально?
Ответить с цитированием
Старый 04.07.2005, 13:56   #518
Vam

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

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Поидее всё работает нормально?
Да оно работать и будет, только теперь GIL_PUBLIC ты заменил на GIL_GUR, в итоге все отношения других гильдий с публичной гильдией исчезли, вернее заменились отношениями с GIL_GUR.
Ответить с цитированием
Старый 04.07.2005, 14:53   #519
Bliz@rd

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

По умолчанию Re: Скриптинг в Готике

Т.е теперь к GIL_GUR относятся *так же как относились раньше к
GIL_PUBLIC?Я правильно понял я просто в принципе изменил название GIL_PUBLIC на *GIL_GUR ,а в остольном осталось всё так же?
Ответить с цитированием
Старый 04.07.2005, 18:01   #520
Vam

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

По умолчанию Re: Скриптинг в Готике

2Bliz@rd:
Т.е теперь к GIL_GUR относятся  так же как относились раньше к
GIL_PUBLIC?Я правильно понял я просто в принципе изменил название GIL_PUBLIC на  GIL_GUR ,а в остольном осталось всё так же?
Если ты не правил таблицу в файле AI/Human/Guilds.d, то - да, если правил, то теперь к GIL_PUBLIC будут относиться, как к твоей GIL_GUR.
Ответить с цитированием
Страница 13 из 65 « Первая 3678910111213 141516171819202363 Последняя »


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

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

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

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


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

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

AGFC: Valley of Gothic © 2004-2020

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