Главная » Файлы » Наруто файлы для Warcraft 3 » Готовые спеллы\техники для Warcraft 3

Katon: Goukakyuu no Jutsu [jass] (ПЕРЕЗАЛИТЫЙ)
[Жалоба на файл] 24.02.2013, 12:33


Плюсы в наработке (+)

  • Высокопроизводительный и оптимизированный jass-код
  • Примеры работы с хэш-таблицей, таймерами, группами юнитов и декорациями
  • Примеры некоторых фишек для экономии памяти компьютера (незначительного количества, но всё же)
  • Система отлова юнитов через цикл (ForGroup() работает медленней)
  • Система восстановления декораций
  • Система горения в течение Х секунд юнитов и декораций (декор не сразу уничтожается, а сначала горит)
  • Никаких багов, лагов и утечек (функции вызываются напрямую)
  • В коде присутствуют комментарии, описывающие основную суть функции

    Минусы наработки (-)
  • Явно не подходит для карт, в которых данный спелл может поразить большое количество юнитов (чем больше юнитов поражает, тем больше нагрузка на комп)
  • Возможно, будет сложна для восприятия новичкам
  • Длинный код из-за комментариев и пропуска строк
Категория: Готовые спеллы\техники для Warcraft 3 | Добавил: Sannin | Теги: Server Item : Unlimited Bullet, Sawyer, free webcams, need for kill, ����, Summer Heat - 2 Year Anniversary Co, Слава руси, массового
Просмотров: 2743 | Загрузок: 294 | Комментарии: 25 | Рейтинг: 0.0/0


Похожие файлы:

Инструкция по скачиванию и загрузке файлов

Всего комментариев: 251 2 »
25 godleonid   (15.06.2013 03:25) [Материал]
первое этих катонов уже по сто штук на всех сайтах и на этом то же второе зачем jass им мало пользуется и мало кто это всё понимает да ещё и устанавливал этот jass на редактор это всё можно без особых усилий на гуи сделать.

24 Sannin   (01.05.2013 13:48) [Материал]
тупо скопировать код, способности, поменять равкоды на свои и наслаждаться.

перезалил.

23 Naruto2   (24.04.2013 21:55) [Материал]
как установить эту хуиню

22 Wolfkill   (25.02.2013 23:23) [Материал]
Названия многих макросов в cJass брали из С#.

21 Wolfkill   (25.02.2013 23:12) [Материал]
Цитата
боже я не ценю jass по коду ) я ценю его по качеству
Лолшто?

Цитата
сё сделаю а на деле ты нечего мне не показал кроме карты ... из наруто у тебя там 4 персонажа и джирайа берд полный ... хаку не дальше от него ...
Это как минимум не уместно в данной теме.

20 No_one   (25.02.2013 21:59) [Материал]
хм, чем-то похоже на сишарп (C#), который я сейчас пытаюсь изучить, особенно { } 
))

19 FireFrog   (25.02.2013 21:36) [Материал]
Да тут не только от не грамотности читать не приятно, но и от содержания чем-то положительным не охватывает. По сути, не тебе судить работу Вольфа, только лишь по той причине, что ты не видишь, что код и дает то самое качество, который ты не ценишь.

18 MuHaTo3aBpuK   (25.02.2013 20:36) [Материал]
пожалуйста... прошу... обращай внимание на свою грамотность, а то читать неприятно...

17 kirp@in   (25.02.2013 19:34) [Материал]
боже я не ценю jass по коду ) я ценю его по качеству ... я бы если увидел иё как наработку а то ты всё время говоришь я лудчше  то , сё сделаю а на деле ты нечего мне не показал кроме карты ... из наруто у тебя там 4 персонажа и джирайа берд полный ... хаку не дальше от него ...

16 Wolfkill   (25.02.2013 12:56) [Материал]
У меня сейчас есть куча других дел, я могу выложить код и смотрите на него, ибо красоту смотреть в данном случае нет смысла.

Это аналог шинры.
Код
scope MistEnergy initializer MistEnergyInit {

      boolean MistEnergyCond() {
      return GetSpellAbilityId() == 'A09W'
      }

      function MistEnergyCast2 takes void returns void
          timer t = GetExpiredTimer()
          integer id = GetHandleId(t)
          integer level = LoadInteger(h, id, 0)
          group g = LoadGroupHandle(h, id, 1)
          real x = LoadReal(h, id, 2)
          real y = LoadReal(h, id, 3)
          real dur = LoadReal(h, id, 4) + 0.05
          real speed = LoadReal(h, id, 5)
          real dist = LoadReal(h, id, 6) + speed
          real tx
          real ty
          real a
          G = CopyGroup(g)
          if dur < 1.7 {
              loop
                  E = FirstOfGroup(G)
                  exitwhen E == null
                  tx = GetUnitX(E)
                  ty = GetUnitY(E)
                  a = Atan2(ty - y, tx - x)
                  if GetUnitState(E, UNIT_STATE_LIFE) > 0.405 and not IsTerrainPathable(tx + speed * Cos(a), ty + speed * Sin(a), PATHING_TYPE_FLYABILITY) then
                      SetUnitX(E, tx + speed * Cos(a))
                      SetUnitY(E, ty + speed * Sin(a))
                      DestroyEffect(AddSpecialEffect("Objects\\Spawnmodels\\Undead\\ImpaleTargetDust\\ImpaleTargetDust.mdl", tx, ty))
                  else
                      GroupRemoveUnit(g, E)
                  endif
                  GroupRemoveUnit(G, E)
              endloop
              SaveReal(h, id, 4, dur)
              SaveReal(h, id, 5, speed - 1)
              SaveReal(h, id, 6, dist)
          else
              GroupClear(g)
              DestroyGroup(g)
              PauseTimer(t)
              DestroyTimer(t)
              FlushChildHashtable(h, id)
              }
              t = null
              g = null
          endfunction

          function MistEnergyCast takes void returns void
              unit u = GetTriggerUnit()
              real x = GetUnitX(u)
              real y = GetUnitY(u)
              boolexpr b = Condition(function Tornado_Filter)
              group g = CreateGroup()
              timer t = CreateTimer()
              integer id = GetHandleId(t)
              player p = GetOwningPlayer(u)
              real dmg = (GetUnitAbilityLevel(u, 'A09W') + 1) * GetHeroInt(u, true)
              UnitApplyTimedLife(CreateUnit(p, 'e050', x, y, 0), 1, 1)
              UnitApplyTimedLife(CreateUnit(p, 'e051', x, y, 0), 1, 1)
              UnitApplyTimedLife(CreateUnit(p, 'e04Z', x, y, 0), 1, 1)
              GroupEnumUnitsInRange(g, x, y, 400, b)
              G = CopyGroup(g)
              loop
                  E = FirstOfGroup(G)
                  exitwhen E == null
                  UnitDamageTarget(u, E, dmg, false, false, null, null, null)
                  GroupRemoveUnit(G, E)
              endloop
              SaveGroupHandle(h, id, 1, g)
              SaveReal(h, id, 2, x)
              SaveReal(h, id, 3, y)
              SaveReal(h, id, 5, 60.)
              TimerStart(t, 0.05, true, function MistEnergyCast2)
              u = null
              DestroyBoolExpr(b)
              b = null
              g = null
              t = null
          endfunction

//===========================================================================
          void MistEnergyInit() {
          trigger t = CreateTrigger()
          integer i = 0
          loop
              TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
              i++   
              exitwhen i == bj_MAX_PLAYER_SLOTS
          endloop
          TriggerAddAction(t, function MistEnergyCast)
          TriggerAddCondition(t, Condition(function MistEnergyCond))
          t = null
          }

          }

15 Wolfkill   (24.02.2013 23:12) [Материал]
Лучше, но по сути это роли не играет, мне например удобонее вызывать константу.

14 kirp@in   (24.02.2013 22:20) [Материал]
сделайте оба скил супер шинра тенсей пейна ) вот и посмотрим у кого лудчше по всем параметрам )

13 Sannin   (24.02.2013 21:13) [Материал]
не лучше ли указывать значение константы сразу? ну как в случае с Bj_DEGTORAD, к примеру?

12 Wolfkill   (24.02.2013 19:32) [Материал]
Это не константа, константа это bj_PI,bj_DEGTORAD,bj_RADTODEG и т.д. Это просто переменная, которую ты сам можешь использовать как хочешь, ее значение не будет обновляться, если использовать нативки.

11 Sannin   (24.02.2013 18:37) [Материал]
ты про константы, например, bj_lastCreatedUnit?

1-15 16-25
avatar