Q/A

Добавлен , опубликован
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
бог в помощь
native GroupEnumUnitsInRange                takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing
28
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 передёшь равкод спелла и равкод юнита которого надо призвать
9
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 извини за количество вопросов)
28
это скил
в функции 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
знак перепутал)
9
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 урока карта пошла, то и остальное получится
28
она пошла но если её пересохранить то ошибок кучу выдаст
24
Возможно то что я скажу кого-то поставит в тупик, но не лучше ли положиться в вопросе оживления трупов на движок вара и решить проблему дамми-кастом? Или банальной подменой способностей. Первое более сложное, второе чуть менее удобно в использовании.
Первый вариант - при применении заклинания-пустышки (желательно на основе канала) триггерно создается дамми с соответствующим заклинанием призыва и активирует его. Остается решить проблему перезарядки способности и возврата стоимости если призыв не удался.
Второй вариант - триггерно по а активации все тех-же способностей-пустышек юниту выдается одна из призывающих способностей, что позволяет иметь одну призывающую способность в один момент времени, но пользоваться столькими разными призывами, на сколько места хватит (учитывая возможность использования спеллбуков - это очень много). Этот вариант можно реализовать в двух видах - способность-пустышка заменяется настоящей способностью или все пустышки в наличии постоянно плюс еще одна способность для непосредственно призыва.
Оба эти варианта на мой взгляд лучше чем триггерно искать труп, удалять его и создавать вызванное существо.
UPD: было много опечаток, поправил
9
При запуске теста пишет wehack.lua:480 и что-то там дальше(
9
prog:
Возможно то что я скажу кого-то поставит в тупик, но не лучше ли положиться в вопросе оживления трупов на движок вара и решить проблему дамми-кастом? Или банальной подменой способностей. Первое более сложное, второе чуть менее удобно в использовании.
Первый вариант - при применении заклинания-пустышки (желательно на основе канала) триггерно создается дамми с соответствующим заклинанием призыва и активирует его. Остается решить проблему перезарядки способности и возврата стоимости если призыв не удался.
Второй вариант - триггерно по а активации все тех-же способностей-пустышек юниту выдается одна из призывающих способностей, что позволяет иметь одну призывающую способность в один момент времени, но пользоваться столькими разными призывами, на сколько места хватит (учитывая возможность использования спеллбуков - это очень много). Этот вариант можно реализовать в двух видах - способность-пустышка заменяется настоящей способностью или все пустышки в наличии постоянно плюс еще одна способность для непосредственно призыва.
Оба эти варианта на мой взгляд лучше чем триггерно искать труп, удалять его и создавать вызванное существо.
UPD: было много опечаток, поправил
Решительно ничего не понял. Дами-каст что такое? А 2 вариант это ты предлагаешь сделать способность по выбору способности? и чтобы если выбрал 1 то 2 удалялась?
Блин такая заморочная тема сделать скилы по вызову 4 видов скелетов из трупов. Когда думал над этой задумкой даже не ожитал что придётся так заморачиваться ради долбаных 4 скилов
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.