0
9
11 лет назад
0

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

Не стоит трогать этот файл UPXом. А так - он должен лежать в папке JNGP\bin, а если его нет в папке с игрой - то при запуске JNGP он скопируется.
0
9
11 лет назад
0

» WarCraft 3 / StormLib - обертка для C#

Тем, кто хочет работать с такими масштабами. Библиотека относится не только к WarCraft 3. Там работа с MPQ даже последних версий.
0
9
11 лет назад
0

» WarCraft 3 / StormLib - обертка для C#

Весь раздел MPQ почитайте :)
1
9
11 лет назад
1

» WarCraft 3 / StormLib - обертка для C#

С каких пор написание API является велосипедом?
0
9
11 лет назад
0

» WarCraft 3 / StormLib - обертка для C#

Спортивным интересом.
0
9
11 лет назад
0

» WarCraft 3 / Помогите найти ошибку

Объясните, что должен делать код - перепишем и дадим объяснения.
1
9
11 лет назад
1

» WarCraft 3 / Юнит умирает с бафом

Я бы посоветовал регистрировать Юнит получает урон, ведь Юнит атакован регистрирует замах, то есть сам факт атаки. А при отслеживании урона, мы можем проверить, что юнит будет мертв (Жизнь - урон <= .405) и, соответственно, бафф получить. Могу набросать на JASS'е :)
1
9
11 лет назад
1

» WarCraft 3 / Два юнита в областях

Условие - Тип юнита (Вошедший юнит) равно Пеон.
Так будет справедливо для всех юнитов, а не только для тех, кто будет строго указан в условии.
2
9
11 лет назад
Отредактирован Ty3uK
2

» WarCraft 3 / Проблема с циклом

function CalculatePercentOfAttackers takes unit Point returns integer
    local integer p = 0
    local integer s = 0
    
    local integer A = 0
    local integer D = 0
   
    local group g = CreateGroup()
    local unit f
    
    GroupEnumUnitsInRange(g, GetWidgetX(Point), GetWidgetY(Point), 1280., null)
    if CountUnitsInGroup(g) > 0 then
        call Say("Loop starts")
        loop
            set f = FirstOfGroup(g)
            if f == null then
                call Say("Loop ends")
            endif
            exitwhen f == null
            if (IsUnitInForce(f, udg_Opposite) then
                if IsUnitAlly(Point, GetOwningPlayer(f)) then
                    set D = D + GetUnitLevel(f)
                    call Say(GetUnitName(f)+I2S(GetHandleId(f))+" is defender.")
                elseif IsUnitEnemy(Point, GetOwningPlayer(f)) then
                    set A = A + GetUnitLevel(f)
                    call Say(GetUnitName(f)+I2S(GetHandleId(f))+" is attacker.")
                else
                    call Say(GetUnitName(f)+I2S(GetHandleId(f))+" is neutral.")
                endif
            endif
            call GroupRemoveUnit(g, f)
        endloop
        call Say("Defenders level="+I2S(D)+"Attackers level="+I2S(A))
        set s = A + D
        if s == 0 then
            set s = 1
        endif    
        set p = A*100/s
    else    
        set p = 0    
    endif
    call Say(GetUnitName(Point)+I2S(GetHandleId(Point))+" calculations result = "+I2S(p))

    call DestroyGroup(g)
    set g = null
    set f = null
    
    return p
endfunction
Числовые и реальные переменные инициализируйте, иначе в качестве их значения выступит всякий числовой мусор. Поправил Вам код, по логике должен работать, проверить не могу :)
0
9
11 лет назад
Отредактирован Ty3uK
0

» WarCraft 3 / Иконки не ставятся куда надо

Дик, покажите куда Вам надо поставить кнопку (на скрине) и дайте Ваши координаты - посмотрим, может быть Вы де-то ошиблись.
0
9
11 лет назад
0

» WarCraft 3 / JNGP не запускается

Проблема решена установкой Вин x32 (не изящно, голову поломаю потом)
1
9
12 лет назад
1

» cJass (Adic Jass Helper) / Главная страница

Адодьф, Вы можете обновить и дополнить мануал?
0
9
12 лет назад
0

» Naruto - Nindogatari / Галерея.Old

Faion, скрины хороши, я, конечно, не фанат нарика, но антураж оценил - хорош
да и сама идея орпг в мире нарутятины - вкусняЖка
0
9
12 лет назад
0

» Warcraft III Первенство Ада / Главная страница

такой аос на инфо есть
уже два года как
название идентично
0
9
12 лет назад
Отредактирован Ty3uK
0

» Anime Sensou / Главная страница

Итак, я потихоньку начинаю заниматься своей любимой аренкой
Переписываю код, использую cJass, немного vJass и конечно же JASP
Теперь карта будет выпускаться в двух "вариациях" - открытая и закрытая (закрытая будет иметь меньший размер)
Ну и пример переписанного спелла Клауда с использованием уже перечисленных диалектов жасса
Хочу так же обратить внимание на то, что жасп теперь отлично ладит с cJass, что заметно улучшает жизнь и сам код
А с директивой var жасс и вовсе похож на C# :)
Cloud
scope SonicRave initializer Init {

     #define <trigger gg_trg_CSpells = null>
     #include "cj_types_priv.j"
      
     private void Timer() {
         var t = GetExpiredTimer();
         var hid = GetHandleId(t);
         var caster = LoadUnitHandle(hash, hid, 0);
         var target = LoadUnitHandle(hash, hid, 1);
         var dummy = LoadUnitHandle(hash, hid, 2);
         var dist = LoadReal(hash, hid, 4);
         var d = LoadReal(hash, hid, 5);
         var angle = Atan2(GetWidgetY(target) - GetWidgetY(caster), GetWidgetX(target) - GetWidgetX(caster));
         var x = GetWidgetX(caster) + 100. * Cos(angle);
         var y = GetWidgetY(caster) + 100. * Sin(angle);
         var lvl = GetUnitAbilityLevel(caster, 'A01E');
         var damage = 80. * lvl + GetHeroInt(caster, true) * lvl;
         if d >= dist
         {
             SetUnitPathing(caster, true);
             PauseUnit(caster, false);
             SetUnitInvulnerable(caster, false);
             SetUnitAnimation(dummy, "Birth");
             GroupEnumUnitsInRange(temp, GetWidgetX(caster), GetWidgetY(caster), 350., null);
             repeat
                 target = FirstOfGroup(temp);
                 if IsUnitEnemy(target, GetOwningPlayer(caster))
                 {
                     UnitDamageTarget(caster, target, d, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS);
                 }
                 GroupRemoveUnit(temp, target);
             until target == null;
             DestroyEffect(LoadEffectHandle(hash, hid, 3));
             DestroyEffect(AddSpecialEffect("FireNova.mdl", GetWidgetX(caster), GetWidgetY(caster)));
             DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl", GetWidgetX(caster), GetWidgetY(caster)));
             UnitApplyTimedLife(dummy, 'BTLF', 1.);
             FlushChildHashtable(hash, hid);
             PauseTimer(t);
             free t;
         } else {
             SetUnitFacing(caster, angle * 57.295);
             SetUnitPosition(caster, x, y);
             SetUnitPosition(dummy, x, y);
             SaveReal(hash, hid, 5, d + 80.);
         }
         flush t, caster, target, dummy;
     }
      
     private bool Act() {
         var t, hid, caster, target, dummy, dist
         if GetSpellAbilityId() == 'A01E'
         {
             t = CreateTimer();
             hid = GetHandleId(t);
             caster = GetTriggerUnit();
             target = GetSpellTargetUnit();
             dummy = CreateDummy(GetTriggerPlayer(), "FreezingRingas2.mdl", 1., GetWidgetX(caster), GetWidgetY(caster), 100., 0.);
             dist = VectorGetLenght(GetWidgetX(caster), GetWidgetY(caster), 0., GetWidgetX(target), GetWidgetY(target), 0.);
             SaveAgentHandle(hash, hid, 0, caster);
             SaveAgentHandle(hash, hid, 1, target);
             SaveAgentHandle(hash, hid, 2, dummy);
             SaveAgentHandle(hash, hid, 3, AddSpecialEffectTarget("Abilities\\Spells\\Orc\\Shockwave\\ShockwaveMissile.mdl", caster, "origin"));
             SaveReal(hash, hid, 4, dist);
             SetUnitPathing(caster, false);
             SetUnitPathing(dummy, false);
             SetUnitTimeScale(dummy, 5.);
             PauseUnit(caster, true);
             SetUnitInvulnerable(caster, true);
             TimerStart(t, .04, true, function Timer);
         }
         return false
     }
      
     private void Init() {
         new trigger t, global hashtable hash, global group temp;
         int i = 0;
         while (i < 12) {
             TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null);
             i++;
         }
         TriggerAddCondition(t, Condition(function Act))
         flush t;
     }

}
Всем добра, жду ваших комментариев по поводу всего :)
1
9
12 лет назад
Отредактирован Ty3uK
1

» Nano-survival / Главная страница

Ranger21, в начале играл конец Highway to Hell, после началась Shoot to Thrill (;
1
9
12 лет назад
1

» Nano-survival / Главная страница

Песня в видео называется Shoot To Thrill, а не Iron Man (:
0
9
12 лет назад
0

» Heartlove Labs / HeartLove Labs - unofficial OST

ScorpioT1000:
Вы получили разрешение у лейбла на публикацию продукции в открытый доступ?
А Скорпи дело говорит, кстати
2
9
12 лет назад
2

» Heartlove Labs / HeartLove Labs - unofficial OST

Получил огромное удовольствие от первой песни
Спасибо :3
0
9
12 лет назад
0

» Anime Sensou / Главная страница

Достаточно странно. Ну да пофиг - работу возобновлю после сдачи экзаменов, там и поправим :)
0
9
12 лет назад
0

» Jass++ / Главная страница

сдам экзамены и сяду учить, давно уже собирался
0
9
12 лет назад
0

» Jass++ / v0.2 beta

Заметил только сейчас - изерфунки и методы криво подбираются с директивами public, private и остальными. Надо поправить...
0
9
12 лет назад
0

» Jass++ / Главная страница

для такого неуча как я делфи - самое то :D
0
9
12 лет назад
0

» Jass++ / Главная страница

я не шарю в плюсах, док. и подсветку их пилил в делфи (на нем и теш написан)
и опять же - такой редактор позволяет писать код без варика
и в хорусе, бтв, только добавлен лексер для жасса и пока он остается только подключаемой библиотекой ибо все кейворды, стили и прочее находятся в теше
0
9
12 лет назад
0

» Jass++ / Главная страница

мне не в тягость :)