×
Меню
Индекс

MSFD Информация о надетых объектах

 
GetWeaponType (returns short)
 
     If ( Player->GetWeaponType == 0 )
          ;Игрок использует короткие клинки
 
GetArmorType, armorPart_enum (returns short, -1 to 2)
 
     If ( Player->GetArmorType, 0 == 2 )
          ;Игрок носит тяжелый шлем
 
HasItemEquipped "item_ID" (returns short)
 
     If ( Player -> HasItemEquipped "chitin club" == 1 )
          ;ты жалок!
 
Эти функции вызываются на актере, чтобы собрать информацию об объектах, надетых на актере.
 
GetWeaponType возвращает тип текущего оружия актера (см Таблицу 1.1).
GetArmorType возвращает вес определенной части брони на актере (см Таблицу 1.3).
Номера частей брони даны в Таблице 1.2.
 
HasItemEquipped возвращает 1, если актер экипировался данным предметом и 0, если нет.
 
Типы оружия (Таблица 1.1):
Имя типа оружия
Номер типа
Unarmed (Рукопашная)
-1
Short blade, 1 hand (Короткие клинки)
0
Long blade, 1 hand (Длинные клинки, одноручное)
1
Long blade, 2 hand close (Длинные клинки, двуручное)
2
Blunt, 1 hand (Дробящее, одноручное)
3
Blunt, 2 hand close (Дробящее, двуручное)
4
Blunt, 2 hand wide (Дробящее, посохи)
5
Spear, 2 hand wide (Древковое)
6
Axe, 1 hand (Секиры, одноручное)
7
Axe, 2 close (Секиры, двуручное)
8
Bow (Луки)
9
Crossbow (Арбалеты)
10
Thrown weapon (Метательное)
11
Arrow<?> (Стрелы)
12
Bolt<?> (Болты)
13
 
Части брони (Таблица 1.2):
Имя части брони
Номер части
Helmet (Шлем)
0
Cuirass (Кираса)
1
Left Pauldron (Левый наплечник)
2
Right Pauldron (Правый наплечник)
3
Greaves (Штаны)
4
Boots (Ботинки)
5
Left Gauntlet (Левая рукавица)
6
Right Gauntlet (Правая рукавица)
7
Shield (Щит)
8
Left Bracer (Левый наруч)
9
Right Bracer (правый наруч)
10
 
Типы брони / вес (Таблица 1.3):
Имя типа брони
Номер типа
Unarmored (Бездоспешный)
-1
Light Armor (Легкая броня)
0
Medium Armor (Средняя броня)
1
Heavy Armor (Тяжелая броня)
2
 
 
Пример:
Когда этот скрипт добавлен к объекту, его активирование приводит к получению «повреждению» этого объект, в зависимости от текущего оружия и силы игрока.
Если оружие – особое оружие с ID “Rock Splitter” объект разрушается за один удар.
Когда объект полностью разрушен, он взрывается, посылая в лицо игроку осколки, если игрок не носит щит или шлем.
 
Begin breakme
 
float hitsleft
float hitpercent
short damage
short tempdamage
short weapon
 
short doOnce
short shieldType
short hasHammer
short hitRock
 
if ( doOnce == 0 )
     set hitsleft to 10000
     set doOnce to 1
endif
 
if ( OnActivate )
     set hasHammer to ( player->HasItemEquipped "RockSplitter" )
     if ( hasHammer == 1 )
          MessageBox "Разрушитель Скал показывает свю силу..."
          set hitsLeft to 0
     else
          MessageBox "Вы ударяете скалу своим оружием..."
          set weapon to ( player->GetWeaponType )
          set damage to ( player->getstrength )
          set tempdamage to 5
 
          if ( weapon == -1 )
               set tempdamage to 1
          endif
          if ( weapon >= 9 )
               set tempdamage to 2
          endif
          if ( weapon == 4 )
               set tempdamage to 10
          endif
          if ( weapon == 8 )
               set tempdamage to 8
          endif
    
          set damage to damage * tempdamage
 
          set hitsleft to hitsleft – damage
     endif
 
     if ( hitsleft <= 0 )
          disable
          set shieldType to ( player->GetArmorType 8 )
          if ( shieldType == -1 )
               set shieldType to ( player->GetArmorType 0 )
               if ( shieldType == -1 )
                    MessageBox "...и скала раскалывается, а осколки летят вам в лицо."
                    Player->ModHealth –50
               else
                    MessageBox "...и скала разрушается, но осколки отскакивают от вашего шлема."
               Endif
          else
               MessageBox "...и скала разрушается, но осколки отскакивают от вашего щита."
          Endif
     else
          set hitpercent to hitsleft / 100
          set hitpercent to 100 – hitpercent
          MessageBox "...и скала повреждается на %.2f процентов, хотя и остается целой.", hitpercent
     endif
 
endif