9

» Блог им. DerMax1000 / WinterUMSM

Андреич:
есть какие-нибудь скриншоты..?
нету, рановато пока для скриншотов по моему
9

» Блог им. nvc123 / Q/A

nvc123:
dermax1000, поставь нод32
если после сохранения открывал редактор триггеров то надо пересохранять
да лан забей. Во первых у меня лицуха нортона, дорого стоил, а во вторых он не мой а отчима)
9

» Блог им. nvc123 / Q/A

nvc123:
dermax1000, СНАЧАЛА СОХРАНИТЬ ПОТОМ ТЕСТ
читать научись
а джнгп добавь в исключения антивируса
Да сохранил я. Нортон тупой он всё сам делает из я как там что в исключения добавить. Он мне почти всё за вирусы считает
9

» Блог им. nvc123 / Q/A

Блин в жопу этот джнгп, как только антивирус запустился он сново удалил какой-то файл и он сново перестал запускать тест
9

» Блог им. nvc123 / Q/A

Ладно в общем понял я. Идея с призывом армии скелетов из 1 юнита изначально была плохая идея. Но спасибо что объяснил что такое дами каст интересная вещица надо будет попробовать что-нибудь с этим поделать. А по поводу той наработки вообщем переустановил джгнп с выключеным антивирусом, нажал на тест ошибки не вылезло запустился варик и всё варик просто запустился в главном меню
9

» Блог им. nvc123 / Q/A

nvc123:
При запуске теста пишет wehack.lua:480 и что-то там дальше(
непонял
установи джнгп
запусти его
открой карту
скопируй мой код
сохрани
и не забудь include "cj_types.j"
Я установил джпнг скопировал код вставил рав коды скилов и скелета в конце инит запускаю тест и вылезает эта ошибка.
А всё проблема с самим джпнг друге карты тоже не запускаются. видимо антивирус удалил что-то при установке
9

» Блог им. nvc123 / Q/A

prog:
Возможно то что я скажу кого-то поставит в тупик, но не лучше ли положиться в вопросе оживления трупов на движок вара и решить проблему дамми-кастом? Или банальной подменой способностей. Первое более сложное, второе чуть менее удобно в использовании.
Первый вариант - при применении заклинания-пустышки (желательно на основе канала) триггерно создается дамми с соответствующим заклинанием призыва и активирует его. Остается решить проблему перезарядки способности и возврата стоимости если призыв не удался.
Второй вариант - триггерно по а активации все тех-же способностей-пустышек юниту выдается одна из призывающих способностей, что позволяет иметь одну призывающую способность в один момент времени, но пользоваться столькими разными призывами, на сколько места хватит (учитывая возможность использования спеллбуков - это очень много). Этот вариант можно реализовать в двух видах - способность-пустышка заменяется настоящей способностью или все пустышки в наличии постоянно плюс еще одна способность для непосредственно призыва.
Оба эти варианта на мой взгляд лучше чем триггерно искать труп, удалять его и создавать вызванное существо.
UPD: было много опечаток, поправил
Решительно ничего не понял. Дами-каст что такое? А 2 вариант это ты предлагаешь сделать способность по выбору способности? и чтобы если выбрал 1 то 2 удалялась?
Блин такая заморочная тема сделать скилы по вызову 4 видов скелетов из трупов. Когда думал над этой задумкой даже не ожитал что придётся так заморачиваться ради долбаных 4 скилов
9

» Блог им. nvc123 / Q/A

nvc123:
это скил
в функции init в конце пишешь
add(равкод скила,равкод скелета)
у тебя джнгп?
ты 1 урок читал?
и 2
в нестандартном коде написал include "cj_types.j"
группа создаётся со всеми труппами в радиусе но из неё берётся только 1 юнит(b=FirstOfGroup(a))
ой
там ошибочка
return GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE)>=0
замени на
return GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE)<=0
знак перепутал)
Нет я обычны редактор юзал. Я думал раз у меня из 1 урока карта пошла, то и остальное получится
9

» Блог им. nvc123 / Q/A

nvc123:
Buulichkaa, ты раскрыл страшный секрет
теперь масоны убьют тебя
сейчас открою блокнот
library lib initializer init{
 private hashtable hash=InitHashtable()
 define{
 radius=300
 }

    private bool filt1(){
        return GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE)>=0
    }
    
    private void act(){
     group a=CreateGroup()
     unit b=GetTriggerUnit()
     player c=GetOwningPlayer(b)
     float x
     float y
      GroupEnumUnitsInRange(a,GetUnitX(b),GetUnitY(b),radius,function filt1)
      b=FirstOfGroup(a)
      x=GetUnitX(b)
      y=GetUnitY(b)
      RemoveUnit(b)
      b=CreateUnit(c,LoadInteger(hash,GetSpellAbilityId(),0),x,y,0)
      DestroyGroup(a)
      b=null
      a=null
    }
    
    private void add(int a,int b){
      SaveInteger(hash,a,0,b)
    }
    
    private bool cond(){
        return LoadInteger(hash,GetSpellAbilityId(),0)>0
    }
    
    private void init(){
     trigger a=CreateTrigger()
      TriggerAddAction(a,function act)
      TriggerAddCondition(a,function cond)
      TriggerRegisterAnyUnitEventBJ(a,EVENT_PLAYER_UNIT_SPELL_EFFECT)
    }
    
}
писал по памяти
в функцию add передёшь равкод спелла и равкод юнита которого надо призвать
То есть эта библиотека создаёт нам группу из 1 игрока жизни которого меньше или равны 0 в радиусе 300? А при каком условии она её создаёт? И вопрос как задействовать эту библиотеку при использовании скила? И почему редактор блокирет её при попытке сохранить или запустить тест карты.
PS извини за количество вопросов)
9

» Блог им. nvc123 / Q/A

nvc123:
и названия меняются на равкоды
берёшь группу юнитов
group a=CreateGroup()
я сейчас системку напишу
Напиши пожалуйста. Вот пытаюсь что-то сделать и пока не особо понимаю как взять значение из группы и создать группу только из 1 юнита. Будет наглядно
9

» Блог им. nvc123 / Q/A

nvc123:
берёшь хп юнита и сравниваешь больше нуля или нет
не надо пикать всех юнитов
просто берёшь 1 юнита в группе
Я наверно дебил но я не знаю как взять юнита не пикая его и ещё чтобы в радиусе от применившего заклинания.
9

» Блог им. nvc123 / Q/A

Созрел вопрос) как посмотреть рав код спела)
Собственно создал скилл на гуи, далее его перевёл на джазз посмотреть как это вообще сделать. Ну как бы всё более менее понятно, но вопрос такой почему Pick юнитов в джаззе происходит вообще в конце кода
function Trig_Skelet_GUI_____________________u_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A000' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Skelet_GUI_____________________u_Func001Func001C takes nothing returns boolean
    if ( not ( IsUnitDeadBJ(GetEnumUnit()) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_Skelet_GUI_____________________u_Func001A takes nothing returns nothing
    if ( Trig_Skelet_GUI_____________________u_Func001Func001C() ) then
        call RemoveUnit( GetEnumUnit() )
        call AddSpecialEffectLocBJ( GetUnitLoc(GetEnumUnit()), "Abilities\\Spells\\Undead\\RaiseSkeletonWarrior\\RaiseSkeleton.mdl" )
        call CreateNUnitsAtLoc( 1, 'uske', Player(0), GetUnitLoc(GetEnumUnit()), bj_UNIT_FACING )
        call DestroyEffectBJ( GetLastCreatedEffectBJ() )
    else
        call DoNothing(  )
    endif
endfunction

function Trig_Skelet_GUI_____________________u_Actions takes nothing returns nothing
    call ForGroupBJ( GetUnitsInRangeOfLocAll(512, GetUnitLoc(GetTriggerUnit())), function Trig_Skelet_GUI_____________________u_Func001A )
endfunction

//===========================================================================
function InitTrig_Skelet_jass takes nothing returns nothing
    set gg_trg_Skelet_jass = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Skelet_jass, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Skelet_jass, Condition( function Trig_Skelet_GUI_____________________u_Conditions ) )
    call TriggerAddAction( gg_trg_Skelet_jass, function Trig_Skelet_GUI_____________________u_Actions )
endfunction
Далее если не трудно скажите как сделать чтобы он создавал из 1 трупа скелета, а не из всех. Почему делал так скажу просто я не особо понял какая функция отвечает за то чтобы проверить жив юнит или мертв и не знал как пропикать юнитов
И ещё вопрос. Как избавиться от утечет тобеж чтобы если рядом было 2 игрока он не создавал для обоих игроков 2 скелетов (думаю так и будет если в 2 проверить)
9

» Блог им. nvc123 / Q/A

Ну и следовательно вопрос) Какое условие нужно ставить чтобы тригер срабатывал только в случае если в округе 300 есть труп и какое действие будет удалять труп после создания. И есть ли такая функция которая будет создавать юнита конкретно на месте трупа
9

» Блог им. nvc123 / набор в школу jass

nvc123:
dermax1000, а тебе надо мёртвого поднять
тогда выход 1
триггерно делать
и да
там я отвечаю на вопросы
Окей спасибо. Тригерно значит тригерно
9

» Блог им. nvc123 / набор в школу jass

И ещё я попробовал сделать на основе духа воды. Указал разрешённые цели "мертвые" а он всё равно создаёт скелета из неоткуда (не использует труп)
9

» Блог им. nvc123 / набор в школу jass

nvc123:
dermax1000, делай на основе разных скилов
то есть 2 делай на основе призыва духа воды
Проблема только в том что мне нужен скил также призыва скелета огра и скелета рабочего и всё в одной боевой еденице
Точно никак нельзя сделать на основе 1?
9

» Блог им. nvc123 / набор в школу jass

Вопрос по части редактора варкрафт.
В общем суть такова я создал скилл призыва скелета. Потом скопировал его и поменял на лучника. Поменял клавиши быстрого использования.
Но. Но очень большое но. Я добавил оба скила 1 персонажу (войну, не герою) И когда я нажимаю на призыв лучника он призывает скелета обычного. Чтобы призвать лучника мне нужно призвать скелета и в промежутке кулдауна скелета я могу призвать лучника. Я надеюсь меня поняли. Скажите пожалуйста как это исправить?
Sergant1000:
сделай им разный порядок строк(команда вызова) и будет тебе щастье
Собственно сделал так как говорил Sergant1000, но у меня не вышло. Что я не так делаю?
ребят ну помогите а
Загруженные файлы
9

» WarCraft 3 / Attack in the dark v1.3a

Скачал поиграл. Карта приемлемая но больно медленное развитие. Мне кажется стоит увеличит доход у рабочих хотя бы на 2
9

» Tactical Techno-Magical War - Battle for the World / Tactical Techno-Magical War - Battle for the World

Vampir1991:
dermax1000, текстуры на максимум включены были?
Я заметил что в мой карте нужно текстуры на максимум ставить, ото зависаешь на загрузке.
Хз не проверял) Спасибо буду знать
9

» Tactical Techno-Magical War - Battle for the World / Tactical Techno-Magical War - Battle for the World

Я хз что за дела. Очень понравилась карта сыгранул в одиночку. На следующий день с кланом решили сыграть. Хоставали 2 раза. Оба я вылетел из варика. 3 раз хостанул соклан и Варик завис на загрузке у меня. Даже не вылетел а завис. А вообще карта очень понравилась когда в одиночку играл. Жаль по сети не тянет