22

» WarCraft 3 / Перевод карты без предоставления исходников

я всегда удаляю wts файл и после компиляции в файде j удаляю где прописано STR_001 и так далее на свой строка чтобы не сылал на wts
22

» WarCraft 3 / Анимированный Куст

помню что если точка 1х1 черные то не потребляет нагрузку учитивая анимации так как лаги если много ракурс будете рисовать тем потребляет много....
22

» WarCraft 3 / Эффект страха

давно все знают как игнорить приказы... Ловите приказ паузите потом отдаете приказ стоп и убираете паузу так герой не будет прерывать анимацию
22

» WarCraft 3 / Не перемещается область для события. Что делать?

от позиция точек вычесть ширину и высоту если они входят и всяких изврашеных способов
22

» WarCraft 3 / Что выгоднее?

1 раз события а потом уже сылать на Execute функции из базы равкода способности и толкаем функция чем ифов
22

» WarCraft 3 / Как пофиксить проблему с дуэлью

нормально оформи заголовок и причину.. Всякие "помоги" "как"
Например "Как пофиксить проблему с дуэлью" Тогда люди придут и нормально ответят..
22

» WarCraft 3 / Способности и алгоритмы на заказ

garklavs, это значит надо иметь детект урона физ и маг урона
чтобы манипулировать свой урон на крит то резист браслет 200%, а потом уже триггерно наносите урон если шанс на крит магического то умножаем урона иначе просто снять хп.
22

» WarCraft 3 / Как сделать триггер, из-за которого все слова игрока появляются

вроде Substr не помню забыл есть в гуи, просто век не заходил в редактор забываю((
8gabriel8:
Как циклом по букве проходить? На GUI)
Вот так примерно гуи реализовал и конвентировал в jass
set udg_t = GetEventPlayerChatString()
set bj_forLoopAIndex = 0
set bj_forLoopAIndexEnd = StringLength(udg_t)
loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        set udg_b = SubStringBJ(udg_t, bj_forLoopAIndex, IMinBJ((bj_forLoopAIndex + 1), bj_forLoopAIndexEnd))
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
где udg_b это 1 букв каждый цикл и проверяете что хотите узнай что это
Вот хороший библиотека выровняет текст над головой
//==============================================================================
//  TEXT TAG - Floating text system by Cohadar - v4.0
//==============================================================================
//
//  PURPOUSE:
//       * Displaying floating text - the easy way
//       * Text is automatically centered depending on it's length
//
//  FUNCTION LIST:
//       * TextTag_XY(x, y, text, color)
//       * TextTag_Unit(unit, text, color)
//       * TextTag_GoldBounty(unit, text, killer)
//       * TextTag_LumberBounty(unit, text, killer)
//
//         color is a color string, example: "|c00FFCC00"
//         killer is a killing player, usually: GetOwningPlayer(GetKillingUnit())
//         (bounty text is visible only to killer)
//
//  HOW TO IMPORT:
//       * Just create a trigger named TextTag
//         convert it to text and replace the whole trigger text with this one
//==============================================================================

library TextTag

globals    
    private constant integer MEAN_CHAR_WIDTH = 8
    private constant integer MAX_TEXT_SHIFT = 32    
    
    private constant real    FONT_SIZE = 0.025
    private constant real    VELOCITY_X = 0
    private constant real    VELOCITY_Y = .04
    private constant real    LIFESPAN = 4
    private constant real    HEIGHT = 16
    private constant real    FADE_POINT = 2.5
endglobals


//===========================================================================
public function XY takes real x, real y, string text, string color returns nothing
    local texttag t = CreateTextTag()
    local integer shift = IMinBJ(StringLength(text), MAX_TEXT_SHIFT) * MEAN_CHAR_WIDTH
   
    call SetTextTagText(t, color+text, FONT_SIZE)
    call SetTextTagPos(t, x-shift, y, HEIGHT)
    call SetTextTagVelocity(t, VELOCITY_X, VELOCITY_Y)
    call SetTextTagVisibility(t, true)
    call SetTextTagFadepoint(t, FADE_POINT)
    call SetTextTagLifespan(t, LIFESPAN)
    call SetTextTagPermanent(t, false)
   
    set t = null
endfunction

//===========================================================================
public function Unit takes unit whichUnit, string text, string color returns nothing
    local texttag t = CreateTextTag()
    local integer shift = IMinBJ(StringLength(text), MAX_TEXT_SHIFT) * MEAN_CHAR_WIDTH
   
    call SetTextTagText(t, color+text, FONT_SIZE)
    call SetTextTagPos(t, GetUnitX(whichUnit)-shift, GetUnitY(whichUnit), HEIGHT)
    call SetTextTagVelocity(t, VELOCITY_X, VELOCITY_Y)
    call SetTextTagVisibility(t, true)
    call SetTextTagFadepoint(t, FADE_POINT)
    call SetTextTagLifespan(t, LIFESPAN)
    call SetTextTagPermanent(t, false)    
   
    set t = null
endfunction

//===========================================================================
public function GoldBounty takes unit whichUnit, string text, player killer returns nothing
    local texttag t = CreateTextTag()
    local integer shift = IMinBJ(StringLength(text), MAX_TEXT_SHIFT) * MEAN_CHAR_WIDTH
   
    call SetTextTagText(t, text, FONT_SIZE)
    call SetTextTagPos(t, GetUnitX(whichUnit)-shift, GetUnitY(whichUnit), HEIGHT)
    call SetTextTagColor(t, 255, 220, 0, 255)
    call SetTextTagVelocity(t, VELOCITY_X, VELOCITY_Y)
    call SetTextTagVisibility(t, GetLocalPlayer()==killer)
    call SetTextTagFadepoint(t, FADE_POINT)
    call SetTextTagLifespan(t, LIFESPAN)
    call SetTextTagPermanent(t, false)
   
    set t = null
endfunction

//==============================================================================
public function LumberBounty takes unit whichUnit, string text, player killer returns nothing
    local texttag t = CreateTextTag()
    local integer shift = IMinBJ(StringLength(text), MAX_TEXT_SHIFT) * MEAN_CHAR_WIDTH
   
    call SetTextTagText(t, text, FONT_SIZE)
    call SetTextTagPos(t, GetUnitX(whichUnit)-shift, GetUnitY(whichUnit), HEIGHT)
    call SetTextTagColor(t, 0, 196, 0, 255)
    call SetTextTagVelocity(t, VELOCITY_X, VELOCITY_Y)
    call SetTextTagVisibility(t, GetLocalPlayer()==killer)
    call SetTextTagFadepoint(t, FADE_POINT)
    call SetTextTagLifespan(t, LIFESPAN)
    call SetTextTagPermanent(t, false)
   
    set t = null
endfunction

endlibrary
22

» WarCraft 3 / Как сделать триггер, из-за которого все слова игрока появляются

8gabriel8, получаем длину строк и проходим циклом по 1 букв выдергивая и снова цикл ишем в альфавит русского языка если нет то 1 байт а если есть 2 байт и так расчитиваем и свдиг позиции... Геморой конечно но зная лимита текст над головой не актуально если и будет урон появлять и чат.
Короче неактуально как бы!
22

» WarCraft 3 / Никак не заработает SharpCraft

зачем вам сдались 1.30 когда идет мертвый поток.. сидите 1.26 и не мучай через 10 лет перейдете 1.30-1.50
22

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

и путь не должен русский (А бывает что реестр заносит оригинальный путь варика который не все варик указан путь конечного) не открывает что пришлось папку переминовать в оригинал Warcraft III и открылось много чего нет в инструкции.. либо администрации не допускает...
22

» WarCraft 3 / Как сделать эту способность триггерами?

але ребята уже описали делай 1,2,4,8 так как они никогда не повторяют способность что легче определить какие способности например герой получает 11% скорость то вручаем героя 8% это 1 абилка, а другой 2% абилка и 1% абилка так как повтор не будет никогда, и все запоминаем равкод в массив который герой получил, если сброс или изменение тупо по массиву проходим и удаляем и заново дает новый процент и это до 100% вполне несколько абилок
1,2,4,8,16,32,64 вот и все а если выше 100 то увеличиваем 124 248 и так далее
22

» WarCraft 3 / Как сделать эту способность триггерами?

вы че курите делаете 1,2,4,8 и так далее способности при добавлении заносите в группу добалвеных способностей, при удаление всех удаляем в группе и заново выдаем через power шаг двигаем чем 10000 уровневный абилки
22

» WarCraft 3 / Как сделать эту способность триггерами?

.юнит получает урон
получаем текуший отнимает текуший урон если урон уходит за пределами ниже 0.405 то игнорировать инае расчитать от максхп / (текушего здоровья - урон) * 100 = получаем процент и шаманим со способности!!!
а таймер вполне 2 сек чтобы востановить скорость если реген быстрый!!!
22

» WarCraft 3 / Изменить информацию в реплее?

есть же шторм который читает реплей мб и подменить двухбайтовый в местах
22

» WarCraft 3 / Jass код

для актуальной исползуем GetRandomInt(1, 10000) <= 400
400 это равен 4% бывает нужды для 0.02% = 2 шанса так вот если рандом ниже или равен то срабатываем действия иначе игнорировать