да чё тут париться еси я понел так что те над от 225 отнять 33 процента то просто 225-225*0.33
я надеюсь ты понел что это формула оставшегося хп тоесть присвоишь юниту
в гуи триггерах я не бум бум,но пробни сделать 2 триггера 1 который запуляет и выкл 2й ,а 2й уже сам таймер с периудом 0.025 и в нем должно быть полярные координаты,и функция отслеживающая юнитов вокруг твоего фростбола,для эффектности удаляй фростбол при ударе и (не забудь выкл триггер с периудом в 0.025)
дело в коде так запускаю и выкл его
NocnoySlon A = NocnoySlon.create()
A.b=true
A.NochnoyBoy(u,'e004',330,200,100,25)
TriggerSleepAction(5)
A.b=false
A.destroy()
А вот и сам код структуры
(
struct NocnoySlon{
unit u
int speed =10
float rad=0
int s=0,icount=0,raznica=0
unit array shar[100]
effect ef =null
int destr = 0,lifeunit=0,regshar=5
int rcount=0,damage=0,typeunit=0
bool b = true
void Destroy(){
int i = 0
if(.destr>.lifeunit){
RemoveUnit(.shar[i])
.icount--
while(i<.icount){
.shar[i]=.shar[i+1]
.shar[i+1]=null
i++
}
.destr=.destr-.regshar-1
}
.destr++
i=0
}
void Mahach(){
int i = 0
group g = CreateGroup()
unit n = null
while(i<.icount){
SetUnitX(.shar[i],GetUnitX(.shar[i])+speed*Cos(GetUnitFacing(.shar[i])*0.0174))
SetUnitY(.shar[i],GetUnitY(.shar[i])+speed*Sin(GetUnitFacing(.shar[i])*0.0174))
GroupEnumUnitsInRange(g,GetUnitX(.shar[i]),GetUnitY(.shar[i]),50,null)
do {
n = FirstOfGroup(g)
exitwhen n == null
if(IsUnitEnemy(n,GetOwningPlayer(.shar[i]))==true&&GetUnitState(n,UNIT_STATE_LIFE)>0&&IsUnitIdType(GetUnitTypeId(n),UNIT_TYPE_MAGIC_IMMUNE)==false){
UnitDamageTarget(.shar[i],n,.damage,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_MAGIC,WEAPON_TYPE_WHOKNOWS)
.ef=AddSpecialEffect("Fire1.mdx",GetUnitX(.shar[i]),GetUnitY(.shar[i]))
DestroyEffect(ef)
ef=null
RemoveUnit(.shar[i])
}
GroupRemoveUnit(g,n)
} whilenot(n==null)
i++
}
i=0
DestroyGroup(g)
g=null
n=null
}
SetUnitFasing(юнит,radius)
юнит - твою боевую единицу
radius- радиус куда хош повернуть
а если хош повернуть юнита в какую то область то,
radius=Atan2(BY-AY,BX-BX)*57.32
где "BY,AY" кординаты по игрику,а "BX,AX" координаты по иксу
BY,BX координаты цели
AY,AX координаты твоей боевой единицы
метод Lvl я так понял возвращает уровень спелла, но еси спел у перса есть он автоматом 1 уровня а вы в методе SetUnitAbilityLevel(u,abil,lvl+1) устанавливаете +1 от лвл способности
struct Struct1{
unit u
// и куча переменных
static void function(){
// этот метот запускает не статические методы
}
static timmer t = null
static Struct1 struct1[]
static int count = 0
static void Method(что принимает метод){
// тут всякие операции типо
struct1[count++] = Struct1.create()
if(t==null){
t = CreateTimer()
TimerStart(t,0.025,true,function Struct1.function)
}
}
}
//а 2й почти идентичен с ним но и ещё разное название структур
Struct1 A = Srtuct1.create
Struct2 B = Srtuct2.create
A.method(переменные)
B.method(переменные)
получаеться потом что если их по раздельно запускать то всё норм а вместе на разных юнитах то каша
Ред. ledoed
» WarCraft 3 / Как изменить(с наземной на воздушн. или наоборот)анимацию юнита
SetUnitAnimationByIndex(u,8)
2 это прописываешь когда те анимация нужна поэкспериментируй от 0 до 30
а чтобы поднять это дело в воздух
UnitAddAbility(u, 'Arav')
UnitRemoveAbility(u,'Arav')
SetUnitFlyHeight(u,150,0)
» WarCraft 3 / Поворот не так как надо
» WarCraft 3 / Как наносить процентный урон?
я надеюсь ты понел что это формула оставшегося хп тоесть присвоишь юниту
» WarCraft 3 / клик
всё разобрался
» WarCraft 3 / клик
» WarCraft 3 / вращение
» Unity / Мёртвый объект
» WarCraft 3 / Еще вопрос по способностям.)
» WarCraft 3 / Абсолютное игнорирование приказа
» WarCraft 3 / Dooble Free
NocnoySlon A = NocnoySlon.create()
A.b=true
A.NochnoyBoy(u,'e004',330,200,100,25)
TriggerSleepAction(5)
A.b=false
A.destroy()
struct NocnoySlon{
unit u
int speed =10
float rad=0
int s=0,icount=0,raznica=0
unit array shar[100]
effect ef =null
int destr = 0,lifeunit=0,regshar=5
int rcount=0,damage=0,typeunit=0
bool b = true
int i = 0
if(.destr>.lifeunit){
RemoveUnit(.shar[i])
.icount--
while(i<.icount){
.shar[i]=.shar[i+1]
.shar[i+1]=null
i++
}
.destr=.destr-.regshar-1
}
.destr++
i=0
}
if(.icount<0){
RemoveUnitSlon(.u)
}
}
if(b){
if(.s>regshar&&.icount<.rcount){
SetUnitAnimation(.u,"attack")
.shar[.icount++]=CreateUnit(GetOwningPlayer(.u),.typeunit,GetUnitX(u)+50*Cos((GetUnitFacing(.u))*0.0174),GetUnitY(.u)+50*Sin((GetUnitFacing(.u))*0.0174),(GetUnitFacing(.u))+.raznica)
.s=0
.raznica+=GetRandomInt(10,20)
if(.raznica>60){.raznica=-60}
}
.s++
}
Destroy()
Remove()
}
int i = 0
group g = CreateGroup()
unit n = null
while(i<.icount){
SetUnitX(.shar[i],GetUnitX(.shar[i])+speed*Cos(GetUnitFacing(.shar[i])*0.0174))
SetUnitY(.shar[i],GetUnitY(.shar[i])+speed*Sin(GetUnitFacing(.shar[i])*0.0174))
do {
n = FirstOfGroup(g)
exitwhen n == null
if(IsUnitEnemy(n,GetOwningPlayer(.shar[i]))==true&&GetUnitState(n,UNIT_STATE_LIFE)>0&&IsUnitIdType(GetUnitTypeId(n),UNIT_TYPE_MAGIC_IMMUNE)==false){
UnitDamageTarget(.shar[i],n,.damage,true,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_MAGIC,WEAPON_TYPE_WHOKNOWS)
.ef=AddSpecialEffect("Fire1.mdx",GetUnitX(.shar[i]),GetUnitY(.shar[i]))
DestroyEffect(ef)
ef=null
RemoveUnit(.shar[i])
}
GroupRemoveUnit(g,n)
} whilenot(n==null)
i++
}
i=0
DestroyGroup(g)
g=null
n=null
}
int i=0
while(i<count){
nocnoyslon[i].Sosdanie()
nocnoyslon[i].Mahach()
i++
}
if(count<=0){
DestroyTimer(taimer)
taimer=null
DisplayTextToPlayer(Player(0), 0, 0,"всё")
}
}
i=0
}
static NocnoySlon nocnoyslon[]
static int count = 0
if(Unitproverka(u)!=-1){return}
nocnoyslon[count++] = UnitMovie1.create()
nocnoyslon[count-1].u=u
nocnoyslon[count-1].typeunit=id
nocnoyslon[count-1].damage=damage
nocnoyslon[count-1].rcount=rcount
nocnoyslon[count-1].lifeunit=rad
nocnoyslon[count-1].speed=speed
unit /idunit /damage /max idunit kol snarad/raddeistvia/speed
if(taimer==null){
taimer = CreateTimer()
TimerStart(taimer,0.025,true,function NocnoySlon.Update)
}
int i = Unitproverka(u)
if(i==-1){return}
count--
while(i<count){
nocnoyslon[i]=nocnoyslon[i+1]
nocnoyslon[i+1].destroy()
i++
}
}
int i = 0
while(i<count){
if(nocnoyslon[i].u==u){return i}
i++
}
i=0
return -1
}
» WarCraft 3 / Dooble Free
Первый каст проходит как надо а второй не запускается выдавая эту ошибку
» WarCraft 3 / Dooble Free
» WarCraft 3 / Помогите повернуть здания.)
» WarCraft 3 / Помогите повернуть здания.)
SetUnitFacing(gg_unit_hgra_0007, 45)
если на гуи то это примерно на скрине
» WarCraft 3 / Помогите повернуть здания.)
» WarCraft 3 / Помогите повернуть здания.)
» WarCraft 3 / Помогите повернуть здания.)
» WarCraft 3 / Помогите повернуть здания.)
юнит - твою боевую единицу
radius- радиус куда хош повернуть
а если хош повернуть юнита в какую то область то,
radius=Atan2(BY-AY,BX-BX)*57.32
где "BY,AY" кординаты по игрику,а "BX,AX" координаты по иксу
BY,BX координаты цели
AY,AX координаты твоей боевой единицы
» WarCraft 3 / маcсив в структуре
» WarCraft 3 / прыжки
» WarCraft 3 / Некорректное увеличение здоровья зданию
» WarCraft 3 / установки анимации
» WarCraft 3 / Переменные одной структуры перенимают значения другой
Ред. Кет
» WarCraft 3 / Переменные одной структуры перенимают значения другой
» WarCraft 3 / илюзии
Так прикол в том что анимация тени замирает в том положении что анимация юнита за 0.2 сек