NoX World - форум об игре NoX

 
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  
Сейчас онлайн стрима нет!
Сейчас на сервере никого нет!

Обязательно все ознакомьтесь с новыми Правилами Портала!

Актуальные новости:
IP сервера изменён! Новый IP: 45.144.64.229. Сервер также доступен через Westwood Online (XWIS, игру через сервер)


Важные темы:
Как играть по сети? Понятное руководство!
Правила Сервера NoxWorld.
Как помочь форуму финансово?

Автор Тема: Руководство по моддингу  (Прочитано 49061 раз)

0 Пользователей и 3 Гостей смотрят эту тему.

KirConjurer

  • Постоялец
  • ***
  • Карма: 67
  • Оффлайн Оффлайн
  • Сообщений: 246
  • User #1234!
    • Просмотр профиля
    • Awards

Неиспользуемые зачарования предметов
Большинство из них представляет собой простые заглушки (увы...), кроме двух, имеющих реальное воздействие.
(SympathyEffect и InversionEffect)
Первый - имеет три пустых объявления в файле modifier.bin (Sympathy1, Sympathy2, Sympathy3)
Однако, если дописать в Sympathy1 строчку "ATTACKPREHITEFFECT = SympathyEffect 0.25"
и создать в игре оружие, зачарованное Sympathy1, то при каждом ударе им по мобу или игроку атакующий будет терять здоровье в размере 25% от наносимого урона.
Код: (псевдокод 004E08E0) [Выделить]
void __cdecl sympathyEffect(enchantDesc *enchantData, int a2, bigUnitStruct *Unit1, bigUnitStruct *Unit2, signed int *baseDmg)
{
  bigUnitStruct *attacker; // edi@1
  signed int targetHP; // eax@4
  bigUnitStruct *target; // ST00_4@4
  signed int baseDmg1; // esi@4
  signed int baseDmg2; // [sp+10h] [bp+Ch]@4
  float amplifier; // [sp+14h] [bp+10h]@4

  attacker = Unit1;
  if ( Unit1 )
  {
    if ( Unit2 )
    {
      if ( Unit2->Class & (clPlayer|clMonster) )
      {
        target = Unit2;
        amplifier = enchantData->attackPredamageEffectParamFloat;
        baseDmg1 = *baseDmg;
        baseDmg2 = *baseDmg;
        targetHP = unitGetHP(target);
        if ( targetHP < baseDmg1 )
          baseDmg2 = targetHP;
        unitDamageClear(attacker, (baseDmg2 * amplifier));
      }
    }
  }
}
Далее идет InversionEffect, и это ещё более забавный чар.
По своей природе он защитный, имеет пустые объявления в modifier.bin (MagicReflection[1/2/3/4])
Если дописать в одну из них строчку "DEFENDCOLLIDEEFFECT = InversionEffect 1", и создать в игре плащ, имеющий зачарование с таким именем, то ВСЕ автонаводимые заклинания (включая пикси и ракеты) автоматически со 100% шансом отражаются обратно в того, кто их направил.
« Последнее редактирование: 16/04/2014 15:08:30 от KirConjurer »
Записан
Расширенный поиск  
 

Страница сгенерирована за 0.141 секунд. Запросов: 25.