• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Скрипты заклинаний...

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
  • Первое сообщение
  • #1
Так вот, я могу делать довольно неплохие заклинания, вопрос только в другом - у меня плохая фантазия(очень). Так что, от Вас граждане модмейкеры, требуется описание заклинания которое нужно сделать, и тд, а я его буду делать, и выкладывать тут, как идея?
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.227
Благодарности
1.910
Баллы
370
Реально ли сделать заклинание невидимости, чтоб сам гг пропадал и нпс на него не реаигировали?
 

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.667
Баллы
305
Можно, в Дикурике было кольцо невидимости, если довести до ума: сделать чтобы в бою невидемость пропадала, сделать прозрачной текстуру гг, все будет довольно прилично выглядеть.
 

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.667
Баллы
305
Если еще можно делать заказы: что-то атакующее для Гуру.
Облако мошек с прокачкой. Вначале на одну цель, потом на стоящих рядом.
Видимый эффект при попадании: животные крутятся, орки и люди-ящеры отмахиваются руками. Размер насекомых мелкий, можно зеленые шарики, летящие от ГГ к цели. Или поиграть с уменьшенным огоньком Mst_Default_Wisp. Цели не агрятся на ГГ.
Есть похожее заклинание, посмотри заклинание "Рой" может подойдет?
 

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.667
Баллы
305
Так что там с огненной волной?
 

Жоршш

Участник форума
Регистрация
8 Мар 2014
Сообщения
72
Благодарности
27
Баллы
180
Как насчет "каменного кулака" как в Dragon Age? К примеру: добавить свойство сбивания ГГ с ног, иль вроде того, и в конце концов вооружить каменных големов этим заклинанием. Можно еще сделать, что бы орки камнями кидались...:) ( это я так, к слову )
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Как насчет "каменного кулака" как в Dragon Age? К примеру: добавить свойство сбивания ГГ с ног, иль вроде того, и в конце концов вооружить каменных големов этим заклинанием.
А этого нет?

Так, народ. Прежде чем что-то спрашивать, сначала оригинальные заклы посмотрите! Хватит уже подобную ч... нести.
Дальше, за подобное, буду "награждать".
 
Последнее редактирование модератором:

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.667
Баллы
305

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Если есть то как називается?
Не поверишь. "Кулак ветра" называется, а еще есть кулак шторма. - это в первой
Во второй не помню этого, но сделать не проблема, просто портировать заклы из первой.
А огненой волны в первых двух частях нет
ну тут уж я не знаю..... взять наверно "Волна смерти" и оп... просто эффект переписать...
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.227
Благодарности
1.910
Баллы
370
Если есть то как називается?А огненой волны в первых двух частях нет, только в третей появилась, а хотелось бы и в первую добавить.
Да, возьми за основу ледяную волну или волну смерти, затем в pfx и visualfx
Скопируй их действие и немного Измени , там количество частиц , текстуру частицы, размер частицы, скорость и цвет самое главное. После этого в acssessmagic тоже скопируй, но Измени анимацию с замарозки на горение , в файлах траты маны пропиши все, и ещё в файле где указывается урон тоже пропиши действие руны. Ну и последние штрихи создать Logic файл и прописать руну в константах (заменить неиспользуемый раздел) , создать саму руну в Итемс и всё, огненная волна готова. Это самый быстрый способ. Но есть один небольшой минус ,придётся частенько переделывать pfx и проверять чтобы хорошо смотрелся эффект
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Orc Hunter
Если нужно, могу на следующей неделе(если ни кто не опередит) выложить скрипты огненной волны. А там уже, наверно, сам думай что-куда запихивать, где и как объявлять функции.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
За пол часа наваял:
Gothic.dat - Spell_MassFire.d
Daedalus:
const int SPL_Cost_MassFire = 150;
const int SPL_Damage_MassFire = 1000;

instance Spell_MassFire(C_Spell_Proto)
{
   time_per_mana = 0;
   damage_per_level = SPL_Damage_MassFire;
   targetCollectAlgo = TARGET_COLLECT_NONE;
};


func int Spell_Logic_MassFire(var int manaInvested)
{
   if(Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
   {
     return SPL_SENDCAST;
   }
   else if(self.attribute[ATR_MANA] >= SPL_Cost_MassFire)
   {
     return SPL_SENDCAST;
   };
   return SPL_SENDSTOP;
};

func void Spell_Cast_MassFire()
{
   if(Npc_GetActiveSpellIsScroll(self))
   {
     self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll;
   }
   else
   {
     self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_MassFire;
   };
   self.aivar[AIV_SelectSpell] += 1;
};
Gothic.dat - Spell_ProcessMana.d
Daedalus:
  if(activeSpell == SPL_MassFire)
   {
     return Spell_Logic_MassFire(manaInvested);
   };
Gothic.dat - IT_Runen.d
Daedalus:
instance ItRu_MassFire(C_Item)
{
   name = NAME_Rune;
   mainflag = ITEM_KAT_RUNE;
   flags = 0;
   value = Value_Ru_MassDeath;
   visual = "ItRu_MassDeath.3ds";
   material = MAT_STONE;
   spell = SPL_MassFire;
   mag_circle = 0;
   wear = WEAR_EFFECT;
   effect = "SPELLFX_WEAKGLIMMER_YELLOW";
   description = "Огненная волна";
   text[0] = NAME_Mag_Circle;
   count[0] = mag_circle;
   text[1] = NAME_Manakosten;
   count[1] = SPL_Cost_MassFire;
   text[2] = NAME_Dam_Magic;
   count[2] = SPL_Damage_MassFire;
   text[5] = NAME_Value;
   count[5] = value;
};
В Constants.d и Text.d сам добавишь

PARTICLEFX.DAT - PfxinstMagic.d
Daedalus:
instance MFX_MASSFIRE_INIT(C_PARTICLEFX)
{
   ppsvalue = 50;
   ppsscalekeys_s = "1";
   ppsislooping = 1;
   shptype_s = "SPHERE";
   shpfor_s = "object";
   shpoffsetvec_s = "0 0 0";
   shpdistribtype_s = "RAND";
   shpdim_s = "8";
   shpscalekeys_s = "1";
   shpscaleislooping = 1;
   shpscaleissmooth = 1;
   shpscalefps = 5;
   dirmode_s = "RAND";
   dirfor_s = "object";
   dirmodetargetfor_s = "OBJECT";
   dirmodetargetpos_s = "0 0 0";
   dirangleheadvar = 180;
   dirangleelevvar = 180;
   velavg = 0.01;
   velvar = 0.0001;
   lsppartavg = 1000;
   flygravity_s = "0 0 0";
   visname_s = "MFX_MAGICCLOUD.TGA";
   visorientation_s = "VELO";
   vistexisquadpoly = 1;
   vistexanifps = 25;
   vistexaniislooping = 1;
   vistexcolorstart_s = "255 255 50";
   vistexcolorend_s = "255 0 0";
   vissizestart_s = "10 10";
   vissizeendscale = 5;
   visalphafunc_s = "ADD";
   visalphastart = 255;
   useemittersfor = 1;
};

instance MFX_MASSFIRE_LEFTHAND(C_PARTICLEFX)
{
   ppsvalue = 10;
   ppsscalekeys_s = "1 1 1 1 1 1 1";
   ppsissmooth = 1;
   ppsfps = 2;
   shptype_s = "SPHERE";
   shpfor_s = "object";
   shpoffsetvec_s = "0 0 0";
   shpdistribtype_s = "RAND";
   shpdim_s = "3";
   shpscalekeys_s = "1";
   shpscaleislooping = 1;
   shpscaleissmooth = 1;
   shpscalefps = 5;
   dirmode_s = "DIR";
   dirfor_s = "OBJECT";
   dirmodetargetfor_s = "OBJECT";
   dirmodetargetpos_s = "0 0 0";
   dirangleelev = 90;
   velavg = 0.001;
   lsppartavg = 1000;
   flygravity_s = "0 -0.0000001 0";
   visname_s = "MFX_LIGHT_RAY.TGA";
   visorientation_s = "NONE";
   vistexisquadpoly = 1;
   vistexanifps = 2;
   vistexaniislooping = 1;
   vistexcolorstart_s = "255 220 220";
   vistexcolorend_s = "255 220 220";
   vissizestart_s = "2 35";
   vissizeendscale = 10;
   visalphafunc_s = "ADD";
   visalphastart = 255;
   useemittersfor = 1;
};

instance MFX_MASSFIRE_RIGHTHAND(C_PARTICLEFX)
{
   ppsvalue = 10;
   ppsscalekeys_s = "1";
   ppsislooping = 1;
   ppsissmooth = 1;
   ppsfps = 6;
   shptype_s = "SPHERE";
   shpfor_s = "object";
   shpoffsetvec_s = "0 0 0";
   shpdistribtype_s = "RAND";
   shpdim_s = "3";
   shpscalekeys_s = "1";
   shpscaleislooping = 1;
   shpscaleissmooth = 1;
   shpscalefps = 5;
   dirmode_s = "DIR";
   dirfor_s = "OBJECT";
   dirmodetargetfor_s = "OBJECT";
   dirmodetargetpos_s = "0 0 0";
   dirangleelev = 90;
   lsppartavg = 1000;
   flygravity_s = "0 -0.0000001 0";
   visname_s = "MFX_LIGHT_RAY.TGA";
   visorientation_s = "NONE";
   vistexisquadpoly = 1;
   vistexanifps = 2;
   vistexaniislooping = 1;
   vistexcolorstart_s = "255 220 220";
   vistexcolorend_s = "255 220 220";
   vissizestart_s = "2 35";
   vissizeendscale = 10;
   visalphafunc_s = "ADD";
   visalphastart = 255;
   useemittersfor = 1;
};

instance MFX_MASSFIRE_INIT_GLOW(C_PARTICLEFX)
{
   ppsvalue = 100;
   ppsscalekeys_s = "1";
   ppsislooping = 1;
   shptype_s = "POINT";
   shpfor_s = "object";
   shpoffsetvec_s = "0 0 0";
   shpdistribtype_s = "RAND";
   shpdim_s = "5";
   shpscalekeys_s = "1 2 1 2";
   shpscaleislooping = 1;
   shpscaleissmooth = 1;
   shpscalefps = 0.5;
   dirmode_s = "RAND";
   dirfor_s = "object";
   dirmodetargetfor_s = "OBJECT";
   dirmodetargetpos_s = "0 0 0";
   dirangleheadvar = 180;
   dirangleelevvar = 180;
   velavg = 0.6;
   velvar = 0.02;
   lsppartavg = 2000;
   flygravity_s = "0 0 0";
   flycolldet_b = 0;
   visname_s = "MFX_Spell_Star.tga";
   visorientation_s = "NONE";
   vistexisquadpoly = 1;
   vistexanifps = 25;
   vistexaniislooping = 1;
   vistexcolorstart_s = "255 220 220";
   vistexcolorend_s = "255 220 220";
   vissizestart_s = "1 1";
   vissizeendscale = 1;
   visalphafunc_s = "ADD";
   visalphastart = 255;
   trlfadespeed = 0.8;
   trltexture_s = "MFX_FIRERAIN_RAINTRAIL.TGA";
   trlwidth = 1;
};

instance MFX_MASSFIRE_EXPLOSION(C_PARTICLEFX)
{
   ppsvalue = 1000;
   ppsscalekeys_s = "1";
   ppsissmooth = 1;
   ppsfps = 5;
   shptype_s = "POINT";
   shpfor_s = "object";
   shpoffsetvec_s = "0 0 0";
   shpdistribtype_s = "RAND";
   shpdim_s = "5";
   shpscalekeys_s = "1";
   shpscaleislooping = 1;
   shpscaleissmooth = 1;
   shpscalefps = 2;
   dirmode_s = "RAND";
   dirfor_s = "OBJECT";
   dirmodetargetfor_s = "OBJECT";
   dirmodetargetpos_s = "0 0 0";
   dirangleheadvar = 180;
   dirangleelev = -90;
   velavg = 0.01;
   lsppartavg = 500;
   lsppartvar = 200;
   flygravity_s = "0";
   visname_s = "HEAVENLIGHT.TGA";
   visorientation_s = "VELO";
   vistexanifps = 2;
   vistexaniislooping = 2;
   vistexcolorstart_s = "255 255 50";
   vistexcolorend_s = "255 0 0";
   vissizestart_s = "1 30";
   vissizeendscale = 20;
   visalphafunc_s = "ADD";
   visalphastart = 255;
};

instance MFX_MASSFIRE_CAST(C_PARTICLEFX)
{
   ppsvalue = 60;
   ppsscalekeys_s = "1 1 2 2 2 3 3 4 4 5";
   ppsissmooth = 1;
   ppsfps = 3;
   shptype_s = "CIRCLE";
   shpfor_s = "WORLD";
   shpoffsetvec_s = "0 0 0";
   shpdistribtype_s = "RAND";
   shpdim_s = "120";
   shpscalekeys_s = "1 2 3 4 5 6 7 8 9 10";
   shpscaleissmooth = 1;
   shpscalefps = 3;
   dirmode_s = "RAND";
   dirfor_s = "object";
   diranglehead = 90;
   dirangleheadvar = 45;
   dirangleelev = 90;
   dirangleelevvar = 45;
   velavg = 0.1;
   lsppartavg = 1500;
   lsppartvar = 300;
   flygravity_s = "0 0.00008 0";
   visname_s = "MFX_MAGICCLOUD.TGA";
   visorientation_s = "VELO";
   vistexisquadpoly = 1;
   vistexanifps = 25;
   vistexaniislooping = 2;
   vistexcolorstart_s = "255 255 50";
   vistexcolorend_s = "255 0 0";
   vissizestart_s = "20 20";
   vissizeendscale = 20;
   visalphafunc_s = "ADD";
   visalphastart = 255;
   trltexture_s = "LIGHTNING_BIG_A0.TGA";
};

instance MFX_MASSFIRE_TARGET(C_PARTICLEFX)
{
  ppsvalue = 1500;
   ppsscalekeys_s = "1 1 1 1 1 1 1 1 0.8 0.8 0.8 0.6 0.6 0.3";
   ppsissmooth = 1;
   ppsfps = 1;
   shptype_s = "SPHERE";
   shpfor_s = "object";
   shpdistribtype_s = "RAND";
   shpdistribwalkspeed = 0.0003;
   shpdim_s = "40";
   dirmode_s = "RAND";
   dirfor_s = "OBJECT";
   dirmodetargetfor_s = "OBJECT";
   velavg = 0.001;
   lsppartavg = 200;
   flygravity_s = "0";
   visname_s = "WHITECLOUD.TGA";
   visorientation_s = "VELO";
   vistexisquadpoly = 1;
   vistexanifps = 10;
   vistexaniislooping = 1;
   vistexcolorstart_s = "200 100 0";
   vistexcolorend_s = "0 0 0";
   vissizestart_s = "100 100";
   vissizeendscale = 1;
   visalphafunc_s = "ADD";
   visalphaend = 255;
   trltexture_s = "MFX_BREATHOFDEATH.TGA";
};


instance Spell_MassFire(C_PARTICLEFX)
{
   ppsvalue = 100;
   ppsislooping = 1;
   shptype_s = "SPHERE";
   shpfor_s = "object";
   shpdistribtype_s = "UNIFORM";
   shpdistribwalkspeed = 0.04;
   shpisvolume = 1;
   shpdim_s = "20";
   shpscalekeys_s = "1 ";
   shpscaleislooping = 1;
   shpscaleissmooth = 1;
   shpscalefps = 3;
   dirmode_s = "=";
   dirfor_s = "OBJECT";
   dirangleheadvar = 360;
   lsppartavg = 699;
   flygravity_s = "0";
   flycolldet_b = 0;
   visname_s = "ELECTRICBLUE0000.TGA";
   vistexisquadpoly = 1;
   vistexanifps = 10;
   vistexaniislooping = 1;
   vistexcolorstart_s = "255 255 255";
   vistexcolorend_s = "0 0 255";
   vissizestart_s = "8 8 ";
   vissizeendscale = 8;
   visalphafunc_s = "ADD";
   visalphastart = 100;
   trlfadespeed = 0.2;
   trltexture_s = "ZPLASMA0.TGA";
};

instance SPELL_MASSFIRE_INVEST(C_PARTICLEFX)
{
   ppsvalue = 30;
   ppsislooping = 0;
   shptype_s = "POINT";
   shpfor_s = "object";
   shpdim_s = "10";
   shpscalekeys_s = "1 ";
   shpscaleislooping = 1;
   shpscaleissmooth = 1;
   shpscalefps = 3;
   dirmode_s = "=";
   dirfor_s = "OBJECT";
   dirangleheadvar = 360;
   velavg = 0.3;
   lsppartavg = 3000;
   flygravity_s = "0 -0.0001 0 ";
   flycolldet_b = 1;
   visname_s = "ELECTRICBLUE0000.TGA";
   vistexisquadpoly = 1;
   vistexanifps = 10;
   vistexaniislooping = 1;
   vistexcolorstart_s = "255 255 255";
   vistexcolorend_s = "0 0 255";
   vissizestart_s = "5 5";
   vissizeendscale = 8;
   visalphafunc_s = "ADD";
   visalphastart = 150;
   trlfadespeed = 0.2;
   trltexture_s = "ZPLASMA0.TGA";
   trlwidth = 10;
};
VISUALFX.DAT - VisualFxinst.d
Daedalus:
instance SPELLFX_MASSFIRE(CFX_BASE_PROTO)
{
   visname_s = "MFX_MassFIRE_INIT";
   emtrjmode_s = "FIXED";
   emtrjoriginnode = "ZS_RIGHTHAND";
   emtrjloopmode_s = "NONE";
   emfxcreatedowntrj = 0;
};

instance SPELLFX_MASSFIRE_KEY_INIT(C_PARTICLEFXEMITKEY)
{
   visname_s = "MFX_MassFIRE_INIT";
};

instance SPELLFX_MASSFIRE_KEY_INVEST_1(C_PARTICLEFXEMITKEY)
{
   visname_s = "MFX_MASSFIRE_RIGHTHAND";
   emcreatefxid = "spellFX_MassFIRE_LEFTHAND";
};

instance SPELLFX_MASSFIRE_KEY_CAST(C_PARTICLEFXEMITKEY)
{
   emcreatefxid = "spellFX_MassFIRE_EXPLOSION";
   pfx_ppsisloopingchg = 1;
};

instance SPELLFX_MASSFIRE_EXPLOSION(CFX_BASE_PROTO)
{
   visname_s = "MFX_MASSFIRE_EXPLOSION";
   emtrjmode_s = "FIXED";
   emtrjoriginnode = "Bip01 L Hand";
   emfxcreate_s = "spellFX_MassFIRE_GROUND";
};

instance SPELLFX_MASSFIRE_GROUND(CFX_BASE_PROTO)
{
   visname_s = "MFX_MassFIRE_CAST";
   emtrjoriginnode = "BIP01 R Foot";
   emactioncolldyn_s = "CREATEONCE";
   emfxcolldyn_s = "spellFX_MassFIRE_COLLIDEDYNFX";
   emfxcolldynalign_s = "COLLISIONNORMAL";
   emcheckcollision = 1;
   lightpresetname = "REDAMBIENCE";
   sfxid = "MFX_MassFIRE_Cast";
   sfxisambient = 1;
};

instance SPELLFX_MASSFIRE_LEFTHAND(CFX_BASE_PROTO)
{
   visname_s = "MFX_MASSFIRE_LEFTHAND";
   visalpha = 1;
   emtrjmode_s = "FIXED";
   emtrjoriginnode = "Bip01 L Hand";
   emfxcreate_s = "FX_EARTHQUAKE";
};

instance SPELLFX_MASSFIRE_SUB(CFX_BASE_PROTO)
{
   visname_s = "";
   emtrjmode_s = "FIXED";
   emtrjoriginnode = "BIP01 HEAD";
};

instance SPELLFX_MASSFIRE_COLLIDEDYNFX(CFX_BASE_PROTO)
{
   visname_s = "MFX_MASSFIRE_TARGET";
   emtrjoriginnode = "BIP01";
   emfxcreatedowntrj = 1;
   emtrjmode_s = "FIXED";
   sfxid = "MFX_MASSFIRE_TARGET";
};
 
Последнее редактирование:

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.667
Баллы
305
Спасибо большое)
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Изменил эффект остаточного горения, в функции MFX_MASSFIRE_TARGET. так по моему красивее будет.
в верхнем посте поправил.
 

iFenix

Участник форума
Регистрация
28 Окт 2013
Сообщения
365
Благодарности
56
Баллы
200
Сатурас когда-то делала заклинания)) а как насчет лазеров?
44jhiao2.jpg 91658516.jpg 05544421.jpg
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Ну вроде даже есть стандартный такой эффект, телекинез называется.
Прикрутить его к боевому заклу и будет счастье))
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.770
Благодарности
557
Баллы
275
За пол часа наваял:

Решил посмотреть, как выглядит. Вставил в игру. Руна есть, руна работает, но только, как эффект. Специально телепортнулся в порт, но ни один непись не пострадал))
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Решил посмотреть, как выглядит. Вставил в игру. Руна есть, руна работает, но только, как эффект. Специально телепортнулся в порт, но ни один непись не пострадал))
Вот ты некропостер :D
а в Constants.d че прописал?
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.770
Благодарности
557
Баллы
275

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
const int SPL_MassFire = 69;
69 - это же зарезервированное - SPL_Reserved_69
Там свободные начинаются с 101го номера
+ ниже в spellFxInstanceNames[тут номер 101 если их у тебя 101] не помню уже что нужно прописывать, вроде "MassFire" в конце
+ ниже в spellFxAniLetters[тут номер 101 если их у тебя 101] в конце прописать "MSD"
 
Сверху Снизу