15

» WarCraft 3 / Dota imba 3.81 AI ENG

Перечитай описание и еще раз поправь все, про удар чака ты(см. выше мое сообщение), видимо, не читал
Где ты подчеркнул прямую связь с DotA Allstars?
...мда... Думал скрины как скрины, а тут барабан 500х500
Ты так не уважаешь хгмовцев, что хочешь чтобы такое было на главной?)
15

» WarCraft 3 / Dota imba 3.81 AI ENG

Имба дота на XGM'е не популярна, но я думаю, что кому-то она придётся по вкусу.
А где она популярна? Она нигде не пользуется популярностью
Для тех кто не в курсе: в имба доте все способности героев (и некоторых предметов) стали во много раз мощнее, или вовсе приобрели новые свойства.
Стали мощнее по сравнению с чем? С ударом чака?
Кроме того, в имба доте есть система рун, добавлен интресный мод -ak и многое другое. Боты имеются!
Напиши описание не как дотер, а как автор карты, если по-другому никак
скриншоты процентрируй, если есть возможность
15

» Teranozaur's workshop / XGM Logo: New EDGE

Mihahail:
Мне кажется, все привыкли к геометричному стилю, типо такого
Да ну)
Для сравнения выше показана пародия на стиль "хХх"
У трех иксов был спец. эффект - линии по бокам иксов, а не кривизна
посмотри hq.dpics.org/wallpapers/57i/XXX_(Triple_X)%2C_2002%2C_Vin_Diesel...
За что минусуем то?
за бред
15

» WarCraft 3 / Библиотека функций

alexprey:
alpha, по мойму такой изврат не стоит этих жалких 10 мкс
quq_CCCP:
alpha, да уж 10 мкс это очень мало, чтобы так раздувать код...
думал выигрыш во времени будет больше =)
ScorpioT1000:
Он неверно тестил, тестируют при выполнении n запросов
дня может три уже хотел написать эту функцию, писал ее не для использования, хотел просто увидеть какого она будет масштаба, кстати, думал она будет меньше
функция из 161 строки
сам тест проводил так как думал она себя хорошо покажет, результат так то уныл, но функцию можно использовать)
15

» WarCraft 3 / Библиотека функций

Самая быстрая функция расчета числа однотипных предметов в шестислотном инвентаре.
работа через (GetItemTypeId(UnitItemInSlot(u, slot ))== typeId))
Ошибок нет, написано под перенасыщением мозга кровью для толстых алгоритмов дабы снизить затраты ресурсов машины.
Слабым не изучать
Возможен всплеск неконтролируемой агрессии.
function
function CountItemInInventory takes unit u, integer a returns integer
  if GetItemTypeId(UnitItemInSlot(u,0))==a then
    if GetItemTypeId(UnitItemInSlot(u,1))==a then
      if GetItemTypeId(UnitItemInSlot(u,2))==a then
        if GetItemTypeId(UnitItemInSlot(u,3))==a then
          if GetItemTypeId(UnitItemInSlot(u,4))==a then
            if GetItemTypeId(UnitItemInSlot(u,5))==a then
              return 6
            endif
            return 5
          elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
            return 5
          endif
          return 4
        elseif GetItemTypeId(UnitItemInSlot(u,4))==a then
          if GetItemTypeId(UnitItemInSlot(u,5))==a then
            return 5
          endif
          return 4
        elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,3))==a then
        if GetItemTypeId(UnitItemInSlot(u,4))==a then
          if GetItemTypeId(UnitItemInSlot(u,5))==a then
            return 5
          endif
          return 4
        elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,4))==a then
        if GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,2))==a then
      if GetItemTypeId(UnitItemInSlot(u,3))==a then
        if GetItemTypeId(UnitItemInSlot(u,4))==a then
          if GetItemTypeId(UnitItemInSlot(u,5))==a then
            return 5
          endif
          return 4
        elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,4))==a then
        if GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,3))==a then
      if GetItemTypeId(UnitItemInSlot(u,4))==a then
        if GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,4))==a then
      if GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
      return 2
    endif
    return 1
  elseif GetItemTypeId(UnitItemInSlot(u,1))==a then
    if GetItemTypeId(UnitItemInSlot(u,2))==a then
      if GetItemTypeId(UnitItemInSlot(u,3))==a then
        if GetItemTypeId(UnitItemInSlot(u,4))==a then
          if GetItemTypeId(UnitItemInSlot(u,5))==a then
            return 5
          endif
          return 4
        elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,4))==a then
        if GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,3))==a then
      if GetItemTypeId(UnitItemInSlot(u,4))==a then
        if GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,4))==a then
      if GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
      return 2
    endif
    return 1
  elseif GetItemTypeId(UnitItemInSlot(u,2))==a then
    if GetItemTypeId(UnitItemInSlot(u,3))==a then
      if GetItemTypeId(UnitItemInSlot(u,4))==a then
        if GetItemTypeId(UnitItemInSlot(u,5))==a then
          return 4
        endif
        return 3
      elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,4))==a then
      if GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
      return 2
    endif
    return 1
  elseif GetItemTypeId(UnitItemInSlot(u,3))==a then
    if GetItemTypeId(UnitItemInSlot(u,4))==a then
      if GetItemTypeId(UnitItemInSlot(u,5))==a then
        return 3
      endif
      return 2
    elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
      return 2
    endif
    return 1
  elseif GetItemTypeId(UnitItemInSlot(u,4))==a then
    if GetItemTypeId(UnitItemInSlot(u,5))==a then
      return 2
    endif
    return 1
  elseif GetItemTypeId(UnitItemInSlot(u,5))==a then
    return 1
  endif
  return 0
endfunction
Результаты теста функции на скорость (Warcraft 1.24e):
Тела участников:
Function with loop
...
  local integer b = 0
  local integer c = 0
  loop
    if GetItemTypeId(UnitItemInSlot(u,b))==a then
      set c = c + 1
    endif
    set b = b + 1
    exitwhen b > 5
  endloop
  return c
...
Function without loop
...
  local integer c
  if GetItemTypeId(UnitItemInSlot(u,0))==a then
    set c = 1
  else
    set c = 0
  endif
  if GetItemTypeId(UnitItemInSlot(u,1))==a then
    set c = c + 1
  endif
  if GetItemTypeId(UnitItemInSlot(u,2))==a then
    set c = c + 1
  endif
  if GetItemTypeId(UnitItemInSlot(u,3))==a then
    set c = c + 1
  endif
  if GetItemTypeId(UnitItemInSlot(u,4))==a then
    set c = c + 1
  endif
  if GetItemTypeId(UnitItemInSlot(u,5))==a then
    set c = c + 1
  endif
  return c
...
my func
Выше код же
Таблица результатов
Функция Мин. средняя скорость, сек Макс. средняя скорость, сек Соотношение
with loop 0.0000 64 0.0000 67 1
without loop 0.0000 56 0.0000 58 0.88
my func 0.0000 54 0.0000 57 0.85
Время, необходимое для записи результата - 0.0000 033
Тест выполнялся с тремя одинаковыми предметами в первых трех слотах, остальные слоты были пусты
тест-код

   integer LounchCount = 0

function testfunc takes nothing returns nothing
   local integer w
   local real o
   
   set LounchCount = LounchCount + 1
   
   if LounchCount < 20 then

     set w = StopWatchCreate()
       call CountItemInInventory0(gg_unit_Hblm_0000, 'rat6')
     set o = StopWatchMark(w)
     call StopWatchDestroy(w)
     
     call BJDebugMsg( "test_myfunc " + I2S(CountItemInInventory0(gg_unit_Hblm_0000, 'rat6')))

   elseif LounchCount > 19 and LounchCount < 40 then

     set w = StopWatchCreate()
       call CountItemInInventory1(gg_unit_Hblm_0000, 'rat6')
     set o = StopWatchMark(w)
     call StopWatchDestroy(w)
     
     call BJDebugMsg( "test_withloop " + I2S(CountItemInInventory1(gg_unit_Hblm_0000, 'rat6')))
     
   else
     
     set w = StopWatchCreate()
       call CountItemInInventory2(gg_unit_Hblm_0000, 'rat6')
     set o = StopWatchMark(w)
     call StopWatchDestroy(w)
     
     call BJDebugMsg( "test_withoutloop " + I2S(CountItemInInventory2(gg_unit_Hblm_0000, 'rat6')))
     
     if LounchCount > 59 then
       set LounchCount = 0
     endif
     
   endif
   
   call DisplayTimedTextToPlayer( Player(0), 0., 0., 45., R2SW(o,10,10))

   set w = StopWatchCreate()
   set o = StopWatchMark(w)
   call StopWatchDestroy(w)
   call DisplayTimedTextToPlayer( Player(0), 0., 0., 45., "difference " + R2SW(o,10,10))

endfunction

//===========================================================================
function InitTrig_batest2 takes nothing returns nothing
  local trigger t = CreateTrigger()
  call TriggerRegisterPlayerChatEvent(t,Player(0),"a",true)
  call TriggerAddAction(t,function testfunc)
  set t = null
  
  call DoNotSaveReplay()
  
endfunction
15

» Teranozaur's workshop / Other

Так как ты так учел мои советы из будущего еще в прошлом, интересно)
15

» Teranozaur's workshop / XGM Logo: New EDGE

Стиль не новый) он заезжаный, после фильма "три икса" его используют везде(по крайней мере у нас) изображая "три икса" или др. символы
15

» Teranozaur's workshop / Other

Клоуну еще улыбку сделать двустороннюю(одна часть лица с улыбкой, другая с грустью), так есть впечатление, что это робот-клоун, также есть минус в дитализации, почему бы не поседеть 20-30 минут делая яснее всю форму?
15

» Teranozaur's workshop / Teranozaur's workshop

Какой тут талант, вернитесь на землю, в хгме талантливы на рисование два-четыре
15

» Блог Кета Голосова / Патитайм

Дай волю своему воображению, а не занимай его ресурсы у других =)
15

» Teranozaur's workshop / Winter Wars

Рожа хорошо показана хулиганской, еще с бровями поработать)
15

» WarCraft 3 / Freelancer

Описание сделай достойное, пример можешь увидеть в соседних картах
Скриншоты попроси сделать друзей
15

» Teranozaur's workshop / landscape

школьно слишком, рисуй на обычной белой(чистой) бумаге, а не на тетрадном листе.
Возьми карандаш в руки .7 и больше ММ диаметром и твори, само то для новичка
Я раньше рисовал карандашом и фотографировал на зеркальный, ловил аргазм когда отблеск от графита был на снимке, нереально красиво, имхо
15

» Teranozaur's workshop / Teranozaur's workshop

Никогда не рисуй цветными карандашами, если у тебя одна толстота, выглядит некачественно
Посмотри на твой "арт" нарисованный ручкой, он выглядит качественнее из-за тонкой "кисти"
15

» Teranozaur's workshop / Other

Единственный "арт", который мне понравился из твоей коллекции, хоть тут смешан чистый "труд" с потоком мыслей
Понравилась прорисоква "Джакиро", хоть и у него зад от "Висейдж"
Урса жостко получился) только с ногами шлак