Показать сообщение отдельно
Старый 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 а не мог ли ты написать как ты вставлял амулет если можно по подробней.Был бы очень благодарен!
Ответить с цитированием