Тема: Скриптинг
Показать сообщение отдельно
Старый 06.07.2006, 14:30   #23
Готоман
Новичок
 
Аватар для Mengos
 
Регистрация: 25.02.2006
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию Скриптинг

В туторе про амулет превращения в скелета есть одна ошибка - амулет нельзя снять!

Исправленный тутор:

var int old_humans_guilden;

instance ITAM_2(C_Item)
{
name = "Амулет";
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_AMULET;
value = 8000;
visual = "ItAm_Hp_01.3ds";
material = MAT_STONE;
on_equip = Equip_ITAM_2;
on_unequip = UnEquip_ITAM_2;
wear = WEAR_EFFECT;
effect = "SPELLFX_ITEMGLIMMER";
description = name;
text[5] = NAME_Value;
count[5] = value;
inv_zbias = INVCAM_ENTF_AMULETTE_STANDARD;
};

func void Equip_ITAM_2()
{
old_humans_guilden = self.guild;
if(old_humans_guilden != GIL_DMT) // нужно, чтобы old_humans_guilden = hero.guild срабатывало раньше, чем self.guild = GIL_DMT
{
Npc_SetTrueGuild(self,GIL_DMT);
self.guild = GIL_DMT;// здесь есть один недочет - никто не будит нападать на гг, нужно менять онтношения между гильдиями людей/монстров и ищущий.
AI_UnequipArmor(self);
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_SetVisualBody(self,"Ske_Body",DEFAUL T,DEFAULT,"",DEFAULT,DEFAULT,-1);
Mdl_SetModelFatness(self,0);
Mdl_ApplyOverlayMds(self,"Humans_skeleton.mds ");
Wld_PlayEffect("spellFX_LIGHTSTAR_ORANGE&quot ;,hero,hero,0,0,0,FALSE);
Snd_Play("SKE_DIE_A1");
};
};

func void UnEquip_ITAM_2()
{
Npc_SetTrueGuild(self,old_humans_guilden);
self.guild = old_humans_guilden;
AI_UnequipArmor(self);
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_SetVisualBody(self,"hum_body_Naked0" ,9,0,"Hum_Head_Pony",Face_N_Player,0,NO_ ARMOR);
Mdl_SetModelFatness(self,0);
Mdl_RemoveOverlayMds(self,"Humans_skeleton.md s");
Wld_PlayEffect("spellFX_LIGHTSTAR_ORANGE&quot ;,hero,hero,0,0,0,FALSE);
Snd_Play("SFX_HealObsession");
};

Mengos вне форума   Ответить с цитированием