Показать сообщение отдельно
Старый 27.08.2005, 19:08   #828
Finsernis

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

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

2TSYLin:

Вот один из способов создать огненно – магический меч.

Вот инстанция меча:
instance ITMW_Fire_Magic_Sword(C_Item)
{
     name = "Огненно - магический меч";
     mainflag = ITEM_KAT_NF;
     flags = ITEM_2HD_SWD;
     material = MAT_METAL;
     value = 5000;
     wear = WEAR_EFFECT;
     effect = "SPELLFX_FIREARROW";
     damageTotal = 200;
     damagetype = DAM_EDGE;
     range = 120;
     cond_atr[2] = ATR_STRENGTH;
     cond_value[2] = 100;
     visual = "ItMw_025_2h_Sword_old_01.3DS";
     description = name;
};


Вот функция специального повреждения:
func void B_FireMagicSwordSpecialDamage(var C_Npc oth,var C_Npc slf)
{
     var C_Item ReadyWeap;
     ReadyWeap = Npc_GetReadiedWeapon (oth);
     var int hlp_haotic_damage;
     if (Hlp_IsItem (ReadyWeap, ITMW_Fire_Magic_Sword) == TRUE)
     {
           hlp_haotic_damage =  Hlp_Random (100);
           if (hlp_haotic_damage < 50)
           {
                 Wld_PlayEffect ("VOB_MAGICBURN", slf, slf, 0, 0, 0, FALSE);
           }
           else if (hlp_haotic_damage >= 50)
           {
                 Wld_PlayEffect ("spellFX_BELIARSRAGE", self, self, 0, 0, 0, FALSE);
           };                  
     };
};


Далее в скриптах
AI\Human\B_Human\B_AssessDamage.d
AI\Monster\B_Monster\B_MM_AssessDamage.d

после B_BeliarsWeaponSpecialDamage (other, self);
напиши B_FireMagicSwordSpecialDamage(other, self);

Откомпилируй и все.

Сори за краткость, спешу! Если не поймешь, скажи. Вечером обьясню!
Ответить с цитированием