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