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