Показать сообщение отдельно
Старый 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)
Чтобы он зароботал?(посмотрел в моде манареолад)Кроме всего что я привёл выше где нибудь ещё надо прописывать чтобы амулет зароботал?Заранее спосибо.
Ответить с цитированием