Сейчас 17:50:42 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] Создание из трупов
SmartarosДата: Понедельник, 31 Декабря 2012, 03:28:02 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
ммм, видать я недоспал, но не могу найти, почему в этом коде из одного трупа создаются два миньена вместо нужного одного
Код
scope Henchmen
{
     include "cj_types_priv.j"
      
     define
     {
         private ABILITY = 'A029'
         private AOE(lvl) = 90.0 + 10.0 * lvl
         private EFFECT = "Abilities\\Weapons\\ChimaeraAcidMissile\\ChimaeraAcidMissile.mdl"
         private SUMMONS = 4
         private SUM1 = 'n00P'
         private SUM2 = 'n00Q'
         private SUM3 = 'n00R'
         private SUM4 = 'n00S'
         private SUM5 = 'n00T'
         private SUM6 = 'n00U'
     }
      
     private int Summon(int lvl)
     {
         if lvl < 4
         {
             if lvl == 1
             {
                 return SUM1
             } elseif lvl == 2 {
                 return SUM2
             } elseif lvl == 3 {
                 return SUM3
             }
         } else {
             if lvl == 4
             {
                 return SUM4
             } elseif lvl == 5 {
                 return SUM5
             }
         }
         return SUM6
     }

     callback onUnitSpellEffect(ABILITY)
     {
         unit u = GetTriggerUnit()
         real x = GetSpellTargetX()
         real y = GetSpellTargetY()
         int lvl = GetUnitAbilityLevel(u, ABILITY)
         int i = 0
         group g = new group
         unit b = null; unit d = null
          
         GroupEnumUnitsInRange(g, x, y, AOE(lvl), null)
          
         loop
         {
             b = FirstOfGroup(g)
             exitwhen (b == null)
             if GetWidgetLife(b) <= 0.405 && i < SUMMONS
             {
                 x = GetWidgetX(b)
                 y = GetWidgetY(b)
                 RemoveUnit(b)
                 DestroyEffect(AddSpecialEffect(EFFECT, x, y))
                 d = CreateUnit(GetOwningPlayer(u), Summon(lvl), x, y, GetRandomReal(0.0, 359.9))
                 i++
                  
                 if (GetLocalPlayer() == GetOwningPlayer(u))
                 {
                     call SelectUnit(d, true)
                 }
             }
             GroupRemoveUnit(g, b)
         }
         DestroyGroup(g)
          
         flush locals
     }
}
 

Ty3uKДата: Понедельник, 31 Декабря 2012, 13:40:31 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ты проверку-то в лупе делай. Ах да, а for для лупе религия не позволяет юзать? D:

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SmartarosДата: Понедельник, 31 Декабря 2012, 20:58:36 | Сообщение # 3
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
в лупе иф как бы, проверка трупа, чтоб создавалось не больше 4, потом труп удаляется, но из него почему то еще 1 создается
 

Ty3uKДата: Понедельник, 31 Декабря 2012, 21:23:37 | Сообщение # 4
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Я исправлял, но интернет тупил.
Попробуй удалять юнита из групы раньше, чем из игры. Трабла может крыться в этом.


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz