Q/A

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
берёшь хп юнита и сравниваешь больше нуля или нет
не надо пикать всех юнитов
просто берёшь 1 юнита в группе
    bool filt1(){
        return GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE)>=0
    }
вот фильтр
в ро жмёшь
вид-показать названия переменных
9
nvc123:
берёшь хп юнита и сравниваешь больше нуля или нет
не надо пикать всех юнитов
просто берёшь 1 юнита в группе
Я наверно дебил но я не знаю как взять юнита не пикая его и ещё чтобы в радиусе от применившего заклинания.
28
и названия меняются на равкоды
берёшь группу юнитов
group a=CreateGroup()
я сейчас системку напишу
9
nvc123:
и названия меняются на равкоды
берёшь группу юнитов
group a=CreateGroup()
я сейчас системку напишу
Напиши пожалуйста. Вот пытаюсь что-то сделать и пока не особо понимаю как взять значение из группы и создать группу только из 1 юнита. Будет наглядно
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
она пошла но если её пересохранить то ошибок кучу выдаст
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.