эм, а джнгп скачать слабо?
и в паузеюнит местами поменяй юнит и булеан
там тупо скопировать вставить не получится ибо событие не прочитается,используй библиотеку или событие сам пиши
это твой 1 скил
создаётся новая точка,а старая не удаляется,таким образом у тебя получается лишняя точка которая тебе не нужна
в том что я кинул нету хэша
то есть твой 1 скил ужасно не оптимален(остальные не смотрел мне и его хватило),а я скинул тебе его исправленную версию
глобалки там где должны быть локалки и прочее
Gnusik,твой спел был не муи,я сделал его муи
когда ты используешь полярные координаты то ты создаёшь точку и не удаляешь её,если использовать их очень часто то их станет очень много и будут лаги
PauseUnit
кат
struct sword_sp
unit caster
unit target
endstruct
function TimerStartEx takes timer whichTimer, real period, code handlerFunc, integer userData returns nothing
call TimerStart(whichTimer, I2R(userData), false, null) // timer exploit, xgm 2007
call PauseTimer(whichTimer)
call TimerStart(whichTimer, period,false, handlerFunc ) // start timer
endfunction
function TimerGetUserData takes timer whichTimer returns integer
return R2I(TimerGetRemaining(whichTimer )+0.5) // get user data from timer
endfunction
function Sword_Attack_Action takes nothing returns nothing
local timer a=GetExpiredTimer()
local sword_sp b=TimerGetUserData(a)
local unit caster=b.caster
local unit target=b.target
local real facing=GetUnitFacing(target)*bj_DEGTORAD
local real sin=Sin(facing)
local real cos=Cos(facing)
local real x1=GetUnitX(target)
local real y1=GetUnitY(target)
local real x2=GetUnitX(caster)
local real y2=GetUnitY(caster)
local real x3=x1+GetRandomReal(-80,80)
local real y3=y1+GetRandomReal(-80,80)
call SetUnitX(caster,x3)
call SetUnitY(caster,y3)
call SetUnitFacing(caster,bj_RADTODEG * Atan2(y1-y3,x1-x3))
call UnitDamageTarget(caster,target,5,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
call SetUnitAnimation(caster, "attack" )
call SetUnitAnimation(target, "death" )
set caster=null
set target=null
call TimerStartEx(a,.06,function Sword_Attack_Action,b)
endfunction
function Trig_Sword_Attack_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A000'
endfunction
function Trig_Sword_Attack_Actions takes nothing returns nothing
local unit caster=GetSpellAbilityUnit()
local unit target=GetSpellTargetUnit()
local real x1
local real y1
local real x2
local real y2
local real dx
local real dy
local real cos
local real sin
local real facing
local real x3
local real y3
local timer a=CreateTimer()
local sword_sp b=sword_sp.create()
call PauseUnit(caster,true)
call PauseUnit(target,true)
call SetUnitInvulnerable(caster, true )
call SetUnitPathing(caster, false )
set b.caster=caster
set b.target=target
call TimerStartEx(a,.06,function Sword_Attack_Action,b)
call TriggerSleepAction( 2.50 )
call PauseTimer(a)
call DestroyTimer(a)
set b.caster=null
set b.target=null
call b.destroy()
set facing=GetUnitFacing(target)*bj_DEGTORAD
set sin=Sin(facing)
set cos=Cos(facing)
set x1=GetUnitX(target)
set y1=GetUnitY(target)
set x2=GetUnitX(caster)
set y2=GetUnitY(caster)
set x3=x1+cos*165
set y3=y1+sin*165
set dx=x1+cos*256
set dy=y1+sin*256
call SetUnitX(caster,x3)
call SetUnitY(caster,y3)
call SetUnitFacing(caster,bj_RADTODEG * Atan2(dy-y3,dx-x3))
call TriggerSleepAction( 1.20 )
call UnitDamageTarget(caster,target,200,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
call SetUnitAnimation(target, "death" )
call TriggerSleepAction( 0.35 )
call SetUnitPathing(caster, true )
call SetUnitInvulnerable(caster, false )
call PauseUnit(caster,false)
call PauseUnit(target,false)
set caster=null
set target=null
endfunction
//===========================================================================
function InitTrig_Sword_Attack takes nothing returns nothing
local integer index=0
set gg_trg_Sword_Attack = CreateTrigger( )
loop
call TriggerRegisterPlayerUnitEvent(gg_trg_Sword_Attack, Player(index),EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
set index = index + 1
exitwhen index == 15
endloop
call TriggerAddCondition( gg_trg_Sword_Attack, Condition( function Trig_Sword_Attack_Conditions ) )
call TriggerAddAction( gg_trg_Sword_Attack, function Trig_Sword_Attack_Actions )
endfunction
Gnusik, дай дами юнитам из цепи пассивную способность москиты,тогда у них не будет хп бара
хотя странный у вас интернет,я качаю торрент, сижу на сайте и играю в гарене и мне хватает его Nerevar, я понял свою ошибку и хотел отредактировать но ты написал(
Gnusik, утечек очень много
например функция полярных координат вызывает утечки
используй геометрию(7 класс по моему)
так же ненужные бж например PauseUnitBJ
используешь глобалки там где надо локалки
и не надо делать новый ресурс,можно просто обновить старый
в принципе оптимизировал только условия что неплохо
но зачем делать кучу триггеров которые кроме того изначально неактивны я не понимаю,ведь можно просто по триггеру на способность а так получилось не оптимально
Про цвета не знаю ибо не юзаю некогда.Наработку кидай ,как раз посмотрю что там у тя.Я работаю с системами которые едят очень очень много оперативки так что я привык оптимизировать всё(от бж нужно избавляться в любом случае ибо бж зло)
я решил строить перпендикуляр почти к каждой плоскости и проверять находится ли точка в кубе,хотя это затратно(5 плоскостей на куб,более 10 кубов каждые .04 секунды)
Ledon, лкм на триггер и конвертировать в текст,потом код кидаеш мне,это хоть и ужас но лучше чем гуи,а ответ я кину либо такой чтобы можно было через кс запустить либо автономный
function Trig_Dark_Wave_Conditions takes nothing returns boolean
if ( not ( UnitHasBuffBJ(GetAttacker(), 'BOac') == true ) ) then
return false
endif
return true
endfunction
на
function Trig_Dark_Wave_Conditions takes nothing returns boolean
return GetUnitAbilityLevel(GetAttacker(),'BOac')>0
endfunction
это заменить
function Trig_Dark_Wave_Actions takes nothing returns nothing
set udg_Attacker[1] = GetOrderedUnit()
set udg_Cell_Attack[1] = GetOrderTargetUnit()
if ( Trig_Dark_Wave_Func003C() ) then
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 10
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call CreateNUnitsAtLocFacingLocBJ( 1, 'dumm', GetOwningPlayer(udg_Attacker[1]), PolarProjectionBJ(GetUnitLoc(udg_Cell_Attack[1]), 150.00, ( 60.00 * udg_r )), GetUnitLoc(udg_Cell_Attack[1]) )
set udg_i = ( udg_i + 1 )
set udg_r = ( udg_r + 1 )
set udg_dummy[udg_i] = GetLastCreatedUnit()
call IssuePointOrderLocBJ( udg_dummy[udg_i], "shockwave", GetUnitLoc(udg_Cell_Attack[1]) )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
else
endif
call TriggerSleepAction( 0.50 )
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 10
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call RemoveUnit( udg_dummy[udg_i] )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
endfunction
частично оптимизировал,остальное лень
function Trig_Dark_Wave_Actions takes nothing returns nothing
local integer a=10
local integer b
local unit d=GetOrderedUnit()
local unit e=GetOrderTargetUnit()
if GetRandomReal(1.00,10.00)<=4.00 then
loop
exitwhen 1> a
call CreateNUnitsAtLocFacingLocBJ( 1, 'dumm', GetOwningPlayer(d), PolarProjectionBJ(GetUnitLoc(e), 150.00, ( 60.00 * udg_r )), GetUnitLoc(e) )
set udg_i = ( udg_i + 1 )
set udg_r = ( udg_r + 1 )
set b=udg_i
set udg_dummy[b] = GetLastCreatedUnit()
call IssuePointOrderLocBJ( udg_dummy[b], "shockwave", GetUnitLoc(e) )
set a=a-1
endloop
else
endif
call TriggerSleepAction( 0.50 )
set a=10
loop
exitwhen 1>a
call RemoveUnit( udg_dummy[udg_i] )
set a=a-1
endloop
endfunction
код под кат суй и выделяй что это код xgm.ru/p/help/txt2
был бы редактор оптимизировал бы всё
если хочеш жди до 31 когда буду дома
jngp скачай
там бж выделены красным а нативки синим
зажимаеш контрл и лкм на бж - появются её внутрености(тоесть то из чего она состоит,как правило это нативки и локалки)
пример кинуть немогу так как редактора нету
а бж я непомню
нативки часть помню,а бж нет
Ред. nvc123
» WarCraft 3 / Наработка персонажа Ассасин (ReNew)
и в паузеюнит местами поменяй юнит и булеан
там тупо скопировать вставить не получится ибо событие не прочитается,используй библиотеку или событие сам пиши
» WarCraft 3 / Наработка персонажа Ассасин (ReNew)
создаётся новая точка,а старая не удаляется,таким образом у тебя получается лишняя точка которая тебе не нужна
в том что я кинул нету хэша
то есть твой 1 скил ужасно не оптимален(остальные не смотрел мне и его хватило),а я скинул тебе его исправленную версию
глобалки там где должны быть локалки и прочее
» WarCraft 3 / Наработка персонажа Ассасин (ReNew)
когда ты используешь полярные координаты то ты создаёшь точку и не удаляешь её,если использовать их очень часто то их станет очень много и будут лаги
PauseUnit
Ред. nvc123
» XGM Конкурсы / Конкурс ландшафта «32x32»
Nerevar, я понял свою ошибку и хотел отредактировать но ты написал(
» XGM Конкурсы / Конкурс ландшафта «32x32»
» WarCraft 3 / Машинима
» WarCraft 3 / Модели из StarCraft
читай статьи короче
» Tides of Darkness / Tides of Darkness
» WarCraft 3 / Наработка персонажа Ассасин (ReNew)
например функция полярных координат вызывает утечки
используй геометрию(7 класс по моему)
так же ненужные бж например PauseUnitBJ
используешь глобалки там где надо локалки
и не надо делать новый ресурс,можно просто обновить старый
в принципе оптимизировал только условия что неплохо
но зачем делать кучу триггеров которые кроме того изначально неактивны я не понимаю,ведь можно просто по триггеру на способность а так получилось не оптимально
» WarCraft 3 / Наработка персонажа Ассасин
» Tides of Darkness / Tides of Darkness
» Diablo II.5 / Diablo II.5
» WarCraft 3 / Машинима
» WarCraft 3 / формула
» XGM Конкурсы / Конкурс ландшафта «32x32»
» Земли Бога: Перезагрузка / Земли Бога v0.7e(t) [Reload]
правдо прошло уже 3 месяца помойму
» Elven Union / Летсплей демо-версии
сало ненадо,лучше курнуть дай и тимуру и мне
» Земли Бога: Перезагрузка / Земли Бога v0.7e(t) [Reload]
» WarCraft 3 / Наработка персонажа Ассасин
талка нету и в платном вай фай сижу бесплатно
» WarCraft 3 / Наработка персонажа Ассасин
а вобще либо пиши сюда либо в Q/A
» WarCraft 3 / Kick system проблема
» WarCraft 3 / Kick system проблема
» WarCraft 3 / Наработка персонажа Ассасин
как и соц сетей,есть xgm есть гарена и всё
» WarCraft 3 / Наработка персонажа Ассасин
был бы редактор оптимизировал бы всё
если хочеш жди до 31 когда буду дома
» WarCraft 3 / Наработка персонажа Ассасин
там бж выделены красным а нативки синим
зажимаеш контрл и лкм на бж - появются её внутрености(тоесть то из чего она состоит,как правило это нативки и локалки)
пример кинуть немогу так как редактора нету
а бж я непомню
нативки часть помню,а бж нет