|
|
|
|
Утечки
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 07:44:21 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| Уважаемые модераторы форуму. Существует ли программа которая показывает в игре нагрузку на память компьютера? Ну это и так видно если в карте много утечек и всё лагает. Если существует то скиньте ссылку плз. Хочу увидеть с какого момента начинаются лаги.
Сообщение отредактировал Q1wAse - Воскресенье, 27 Января 2013, 07:44:41 |
|
|
|
Facering | Дата: Воскресенье, 27 Января 2013, 08:59:25 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 842
Награды: 0
Репутация: 50
Блокировки:
| Цитата (Q1wAse) Уважаемые модераторы форуму. Существует ли программа которая показывает в игре нагрузку на память компьютера? Ну это и так видно если в карте много утечек и всё лагает. Если существует то скиньте ссылку плз. Хочу увидеть с какого момента начинаются лаги. Ленивая Россия)) в том числе и я) такой программы нет насколько мне известно, тока ручками и желательно сразу.
Эх, береза..... мне бы столько почек.
|
|
|
|
Impregnable | Дата: Воскресенье, 27 Января 2013, 08:59:47 | Сообщение # 3 |
6 уровень
Группа: Проверенные
Сообщений: 231
Награды: 0
Репутация: 92
Блокировки:
| Task manager'а вполне хватает.
Если долго мучиться, то может, все равно нихуя не получится.
|
|
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 09:04:40 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| Impregnable что что? Цитата Task manager'а вполне хватает. Это и есть та прога?
|
|
|
|
Facering | Дата: Воскресенье, 27 Января 2013, 09:09:15 | Сообщение # 5 |
9 уровень
Группа: Проверенные
Сообщений: 842
Награды: 0
Репутация: 50
Блокировки:
| Цитата (Impregnable) Task manager'а вполне хватает. Это не то вообще он вроде имел, игровые утечки, а не конроль за всеми раб. прогами виндовса
Эх, береза..... мне бы столько почек.
|
|
|
|
Impregnable | Дата: Воскресенье, 27 Января 2013, 09:20:38 | Сообщение # 6 |
6 уровень
Группа: Проверенные
Сообщений: 231
Награды: 0
Репутация: 92
Блокировки:
| Цитата (Facering) Это не то => Цитата (Q1wAse) ...программа которая показывает в игре нагрузку на память компьютера?...
Цитата (Facering) игровые утечки Постоянно увеличивается потребляемая память => возникают утечки
Если долго мучиться, то может, все равно нихуя не получится.
|
|
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 09:24:23 | Сообщение # 7 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| Impregnable Кароче проблема. Я сделал таймер и при определённых условиях он включается и срабатывает каждые 0.10 сек. Каждые 0.10 сек пикаются юниты вокруг всех героев на карте на карте 12 героев карта маленькая. И очень большие лаги происходят. Утечки с точками удаляю вот так call RemoveLocation(название переменной с точкой) но видимо это не помогает?
|
|
|
|
Facering | Дата: Воскресенье, 27 Января 2013, 09:33:00 | Сообщение # 8 |
9 уровень
Группа: Проверенные
Сообщений: 842
Награды: 0
Репутация: 50
Блокировки:
| Цитата (Q1wAse) Impregnable Кароче проблема. Я сделал таймер и при определённых условиях он включается и срабатывает каждые 0.10 сек. Каждые 0.10 сек пикаются юниты вокруг всех героев на карте на карте 12 героев карта маленькая. И очень большие лаги происходят. Утечки с точками удаляю вот так call RemoveLocation(название переменной с точкой) но видимо это не помогает? Так у тя таймер надо удалять он наверное захлебывается излишками. все точки, всех игроков возьми под переменную и обнуляй. call DestroyTimer (udg_) удаление таймера call DestroyTimerDialog(udg_) удаление окна таймера set udg_ обнуление переменнойДобавлено (27 Января 2013, 09:33:00) ---------------------------------------------
Цитата (Facering) set udg_ обнуление переменной set udg_ = null
Эх, береза..... мне бы столько почек.
|
|
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 09:46:37 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| Facering окон таймера нету и его выключать нельзя он всё игру работает Обнулять переменные умею, а вот точки удалять через обнуление переменной ещё не слышал. Что за...? Вот скрин триггера
Сообщение отредактировал Q1wAse - Воскресенье, 27 Января 2013, 09:55:22 |
|
|
|
Impregnable | Дата: Воскресенье, 27 Января 2013, 09:58:34 | Сообщение # 10 |
6 уровень
Группа: Проверенные
Сообщений: 231
Награды: 0
Репутация: 92
Блокировки:
| Facering, все правильно написал, для удаления объекта необходимо убрать все ссылки на него.
Цитата (Q1wAse) И очень большие лаги происходят Возможно создается больше 1 таймера или вешается поток бесконечным циклом. (неплохо было бы увидеть код)
Если долго мучиться, то может, все равно нихуя не получится.
Сообщение отредактировал Impregnable - Воскресенье, 27 Января 2013, 10:00:43 |
|
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 10:03:23 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| Impregnable уже скинул скрин.
|
|
|
|
Facering | Дата: Воскресенье, 27 Января 2013, 10:05:52 | Сообщение # 12 |
9 уровень
Группа: Проверенные
Сообщений: 842
Награды: 0
Репутация: 50
Блокировки:
| Цитата (Q1wAse) Обнулять переменные умею, а вот точки удалять через обнуление переменной ещё не слышал. Что за...? чет ты не то сказал. И где сам таймер? set udg_AAUnit [AACycle]= null должен быть тоже тока не помню можно или нет
Эх, береза..... мне бы столько почек.
|
|
|
|
Impregnable | Дата: Воскресенье, 27 Января 2013, 10:09:14 | Сообщение # 13 |
6 уровень
Группа: Проверенные
Сообщений: 231
Награды: 0
Репутация: 92
Блокировки:
| В jass'е давай. На скрин я могу долго смотреть, а понять так и не смогу...
Если долго мучиться, то может, все равно нихуя не получится.
|
|
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 10:18:20 | Сообщение # 14 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| Impregnable я Джасс не знаю...
|
|
|
|
Facering | Дата: Воскресенье, 27 Января 2013, 10:18:47 | Сообщение # 15 |
9 уровень
Группа: Проверенные
Сообщений: 842
Награды: 0
Репутация: 50
Блокировки:
| Цитата (Q1wAse) Impregnable я Джасс не знаю... Дай скрин таймера.
Эх, береза..... мне бы столько почек.
|
|
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 10:21:25 | Сообщение # 16 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| Если хочешь мой триггер переведёный в код то вот пожалуйста - Код function Trig_Spell_SF_____________________u_Func002Func003Func001Func002Func001C takes nothing returns boolean if ( not ( IsUnitVisible(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( GetUnitLifePercent(udg_AAUnit[udg_AACycle]) >= GetUnitLifePercent(GetEnumUnit()) ) ) then return false endif if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_AAUnit[udg_AACycle]) > 0.00 ) ) then return false endif if ( not ( GetUnitTypeId(udg_AAUnit[udg_AACycle]) == 'H003' ) ) then return false endif if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif if ( not ( IsUnitAliveBJ(GetEnumUnit()) == true ) ) then return false endif if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( udg_AALogicSpell[udg_AACycle] == false ) ) then return false endif if ( not ( RAbsBJ(( GetUnitFacing(udg_AAUnit[udg_AACycle]) - AngleBetweenPoints(GetUnitLoc(udg_AAUnit[udg_AACycle]), GetUnitLoc(GetEnumUnit())) )) < 30.00 ) ) then return false endif return true endfunction
function Trig_Spell_SF_____________________u_Func002Func003Func001Func002A takes nothing returns nothing if ( Trig_Spell_SF_____________________u_Func002Func003Func001Func002Func001C() ) then call KillUnit( udg_AADummy[udg_AACycle] ) call IssueImmediateOrderBJ( udg_AAUnit[udg_AACycle], "stomp" ) set udg_AALogicSpell[udg_AACycle] = true set udg_AALogicMove[udg_AACycle] = false else endif endfunction
function Trig_Spell_SF_____________________u_Func002Func003Func001C takes nothing returns boolean if ( not ( IsUnitVisible(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( GetUnitLifePercent(udg_AAUnit[udg_AACycle]) >= GetUnitLifePercent(GetEnumUnit()) ) ) then return false endif if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_AAUnit[udg_AACycle]) > 0.00 ) ) then return false endif if ( not ( GetUnitTypeId(udg_AAUnit[udg_AACycle]) == 'H003' ) ) then return false endif if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif if ( not ( IsUnitAliveBJ(GetEnumUnit()) == true ) ) then return false endif if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( udg_AALogicSpell[udg_AACycle] == false ) ) then return false endif if ( not ( RAbsBJ(( GetUnitFacing(udg_AAUnit[udg_AACycle]) - AngleBetweenPoints(GetUnitLoc(udg_AAUnit[udg_AACycle]), GetUnitLoc(GetEnumUnit())) )) < 30.00 ) ) then return false endif return true endfunction
function Trig_Spell_SF_____________________u_Func002Func003A takes nothing returns nothing if ( Trig_Spell_SF_____________________u_Func002Func003Func001C() ) then call KillUnit( udg_AADummy[udg_AACycle] ) call IssueImmediateOrderBJ( udg_AAUnit[udg_AACycle], "stomp" ) set udg_AALogicSpell[udg_AACycle] = true set udg_AALogicMove[udg_AACycle] = false else set bj_wantDestroyGroup = true call ForGroupBJ( GetUnitsInRangeOfLocAll(270.00, udg_AAPointAAUnit[udg_AACycle]), function Trig_Spell_SF_____________________u_Func002Func003Func001Func002A ) endif endfunction
function Trig_Spell_SF_____________________u_Func002Func005Func001Func002Func001C takes nothing returns boolean if ( not ( IsUnitVisible(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( GetUnitLifePercent(udg_AAUnit[udg_AACycle]) >= GetUnitLifePercent(GetEnumUnit()) ) ) then return false endif if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_AAUnit[udg_AACycle]) > 0.00 ) ) then return false endif if ( not ( GetUnitTypeId(udg_AAUnit[udg_AACycle]) == 'H003' ) ) then return false endif if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif if ( not ( IsUnitAliveBJ(GetEnumUnit()) == true ) ) then return false endif if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( udg_AALogicSpell[udg_AACycle] == false ) ) then return false endif if ( not ( RAbsBJ(( GetUnitFacing(udg_AAUnit[udg_AACycle]) - AngleBetweenPoints(GetUnitLoc(udg_AAUnit[udg_AACycle]), GetUnitLoc(GetEnumUnit())) )) < 20.00 ) ) then return false endif if ( not ( DistanceBetweenPoints(udg_AAPointAAUnit[udg_AACycle], GetUnitLoc(GetEnumUnit())) >= 180.00 ) ) then return false endif return true endfunction
function Trig_Spell_SF_____________________u_Func002Func005Func001Func002A takes nothing returns nothing if ( Trig_Spell_SF_____________________u_Func002Func005Func001Func002Func001C() ) then call KillUnit( udg_AADummy[udg_AACycle] ) set udg_AALogicSpell[udg_AACycle] = true set udg_AALogicMove[udg_AACycle] = false call IssueImmediateOrderBJ( udg_AAUnit[udg_AACycle], "spiritwolf" ) else endif endfunction
function Trig_Spell_SF_____________________u_Func002Func005Func001C takes nothing returns boolean if ( not ( IsUnitVisible(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( GetUnitLifePercent(udg_AAUnit[udg_AACycle]) >= GetUnitLifePercent(GetEnumUnit()) ) ) then return false endif if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_AAUnit[udg_AACycle]) > 0.00 ) ) then return false endif if ( not ( GetUnitTypeId(udg_AAUnit[udg_AACycle]) == 'H003' ) ) then return false endif if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif if ( not ( IsUnitAliveBJ(GetEnumUnit()) == true ) ) then return false endif if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( udg_AALogicSpell[udg_AACycle] == false ) ) then return false endif if ( not ( RAbsBJ(( GetUnitFacing(udg_AAUnit[udg_AACycle]) - AngleBetweenPoints(GetUnitLoc(udg_AAUnit[udg_AACycle]), GetUnitLoc(GetEnumUnit())) )) < 20.00 ) ) then return false endif if ( not ( DistanceBetweenPoints(udg_AAPointAAUnit[udg_AACycle], GetUnitLoc(GetEnumUnit())) >= 180.00 ) ) then return false endif return true endfunction
function Trig_Spell_SF_____________________u_Func002Func005A takes nothing returns nothing if ( Trig_Spell_SF_____________________u_Func002Func005Func001C() ) then call KillUnit( udg_AADummy[udg_AACycle] ) set udg_AALogicSpell[udg_AACycle] = true set udg_AALogicMove[udg_AACycle] = false call IssueImmediateOrderBJ( udg_AAUnit[udg_AACycle], "spiritwolf" ) else set bj_wantDestroyGroup = true call ForGroupBJ( GetUnitsInRangeOfLocAll(720.00, udg_AAPointAAUnit[udg_AACycle]), function Trig_Spell_SF_____________________u_Func002Func005Func001Func002A ) endif endfunction
function Trig_Spell_SF_____________________u_Func002Func007Func001Func002Func001C takes nothing returns boolean if ( not ( IsUnitVisible(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( GetUnitLifePercent(udg_AAUnit[udg_AACycle]) >= GetUnitLifePercent(GetEnumUnit()) ) ) then return false endif if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_AAUnit[udg_AACycle]) > 0.00 ) ) then return false endif if ( not ( GetUnitTypeId(udg_AAUnit[udg_AACycle]) == 'H003' ) ) then return false endif if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif if ( not ( IsUnitAliveBJ(GetEnumUnit()) == true ) ) then return false endif if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( udg_AALogicSpell[udg_AACycle] == false ) ) then return false endif if ( not ( RAbsBJ(( GetUnitFacing(udg_AAUnit[udg_AACycle]) - AngleBetweenPoints(GetUnitLoc(udg_AAUnit[udg_AACycle]), GetUnitLoc(GetEnumUnit())) )) < 15.00 ) ) then return false endif if ( not ( DistanceBetweenPoints(udg_AAPointAAUnit[udg_AACycle], GetUnitLoc(GetEnumUnit())) >= 430.00 ) ) then return false endif return true endfunction
function Trig_Spell_SF_____________________u_Func002Func007Func001Func002A takes nothing returns nothing if ( Trig_Spell_SF_____________________u_Func002Func007Func001Func002Func001C() ) then call KillUnit( udg_AADummy[udg_AACycle] ) set udg_AALogicSpell[udg_AACycle] = true set udg_AALogicMove[udg_AACycle] = false call IssueImmediateOrderBJ( udg_AAUnit[udg_AACycle], "waterelemental" ) else endif endfunction
function Trig_Spell_SF_____________________u_Func002Func007Func001C takes nothing returns boolean if ( not ( IsUnitVisible(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( GetUnitLifePercent(udg_AAUnit[udg_AACycle]) >= GetUnitLifePercent(GetEnumUnit()) ) ) then return false endif if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_AAUnit[udg_AACycle]) > 0.00 ) ) then return false endif if ( not ( GetUnitTypeId(udg_AAUnit[udg_AACycle]) == 'H003' ) ) then return false endif if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif if ( not ( IsUnitAliveBJ(GetEnumUnit()) == true ) ) then return false endif if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( udg_AALogicSpell[udg_AACycle] == false ) ) then return false endif if ( not ( RAbsBJ(( GetUnitFacing(udg_AAUnit[udg_AACycle]) - AngleBetweenPoints(GetUnitLoc(udg_AAUnit[udg_AACycle]), GetUnitLoc(GetEnumUnit())) )) < 15.00 ) ) then return false endif if ( not ( DistanceBetweenPoints(udg_AAPointAAUnit[udg_AACycle], GetUnitLoc(GetEnumUnit())) >= 430.00 ) ) then return false endif return true endfunction
function Trig_Spell_SF_____________________u_Func002Func007A takes nothing returns nothing if ( Trig_Spell_SF_____________________u_Func002Func007Func001C() ) then call KillUnit( udg_AADummy[udg_AACycle] ) set udg_AALogicSpell[udg_AACycle] = true set udg_AALogicMove[udg_AACycle] = false call IssueImmediateOrderBJ( udg_AAUnit[udg_AACycle], "waterelemental" ) else set bj_wantDestroyGroup = true call ForGroupBJ( GetUnitsInRangeOfLocAll(970.00, udg_AAPointAAUnit[udg_AACycle]), function Trig_Spell_SF_____________________u_Func002Func007Func001Func002A ) endif endfunction
function Trig_Spell_SF_____________________u_Func002Func009Func001C takes nothing returns boolean if ( not ( IsUnitVisible(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( GetUnitLifePercent(udg_AAUnit[udg_AACycle]) >= GetUnitLifePercent(GetEnumUnit()) ) ) then return false endif if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_AAUnit[udg_AACycle]) > 0.00 ) ) then return false endif if ( not ( udg_RequiemSouls[udg_AACycle] > 0 ) ) then return false endif if ( not ( GetUnitTypeId(udg_AAUnit[udg_AACycle]) == 'H003' ) ) then return false endif if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif if ( not ( IsUnitAliveBJ(GetEnumUnit()) == true ) ) then return false endif if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( udg_AALogicSpell[udg_AACycle] == false ) ) then return false endif return true endfunction
function Trig_Spell_SF_____________________u_Func002Func009A takes nothing returns nothing if ( Trig_Spell_SF_____________________u_Func002Func009Func001C() ) then call KillUnit( udg_AADummy[udg_AACycle] ) set udg_AALogicSpell[udg_AACycle] = true set udg_AALogicMove[udg_AACycle] = false call IssueImmediateOrderBJ( udg_AAUnit[udg_AACycle], "thunderclap" ) else endif endfunction
function Trig_Spell_SF_____________________u_Func002Func011Func001C takes nothing returns boolean if ( not ( IsUnitVisible(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( GetUnitLifePercent(udg_AAUnit[udg_AACycle]) >= GetUnitLifePercent(GetEnumUnit()) ) ) then return false endif if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, udg_AAUnit[udg_AACycle]) > 0.00 ) ) then return false endif if ( not ( GetUnitTypeId(udg_AAUnit[udg_AACycle]) == 'H003' ) ) then return false endif if ( not ( IsUnitType(GetEnumUnit(), UNIT_TYPE_HERO) == true ) ) then return false endif if ( not ( IsUnitAliveBJ(GetEnumUnit()) == true ) ) then return false endif if ( not ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_AAUnit[udg_AACycle])) == true ) ) then return false endif if ( not ( udg_AALogicSpell[udg_AACycle] == false ) ) then return false endif return true endfunction
function Trig_Spell_SF_____________________u_Func002Func011A takes nothing returns nothing if ( Trig_Spell_SF_____________________u_Func002Func011Func001C() ) then call KillUnit( udg_AADummy[udg_AACycle] ) set udg_AALogicSpell[udg_AACycle] = true set udg_AALogicMove[udg_AACycle] = false call IssueTargetOrderBJ( udg_AAUnit[udg_AACycle], "chainlightning", GetEnumUnit() ) else endif endfunction
function Trig_Spell_SF_____________________u_Actions takes nothing returns nothing set udg_AACycle = 1 loop exitwhen udg_AACycle > 12 set udg_AAPointAAUnit[udg_AACycle] = GetUnitLoc(udg_AAUnit[udg_AACycle]) set bj_wantDestroyGroup = true call ForGroupBJ( GetUnitsInRangeOfLocAll(270.00, udg_AAPointAAUnit[udg_AACycle]), function Trig_Spell_SF_____________________u_Func002Func003A ) set bj_wantDestroyGroup = true call ForGroupBJ( GetUnitsInRangeOfLocAll(720.00, udg_AAPointAAUnit[udg_AACycle]), function Trig_Spell_SF_____________________u_Func002Func005A ) set bj_wantDestroyGroup = true call ForGroupBJ( GetUnitsInRangeOfLocAll(970.00, udg_AAPointAAUnit[udg_AACycle]), function Trig_Spell_SF_____________________u_Func002Func007A ) set bj_wantDestroyGroup = true call ForGroupBJ( GetUnitsInRangeOfLocAll(450.00, udg_AAPointAAUnit[udg_AACycle]), function Trig_Spell_SF_____________________u_Func002Func009A ) set bj_wantDestroyGroup = true call ForGroupBJ( GetUnitsInRangeOfLocAll(700.00, udg_AAPointAAUnit[udg_AACycle]), function Trig_Spell_SF_____________________u_Func002Func011A ) call RemoveLocation(udg_AAPointAAUnit[udg_AACycle]) set udg_AAPointAAUnit[udg_AACycle] = null set udg_AACycle = udg_AACycle + 1 endloop endfunction
//=========================================================================== function InitTrig_Spell_SF_____________________u takes nothing returns nothing set gg_trg_Spell_SF_____________________u = CreateTrigger( ) call DisableTrigger( gg_trg_Spell_SF_____________________u ) call TriggerRegisterTimerExpireEventBJ( gg_trg_Spell_SF_____________________u, udg_AATimerSpell ) call TriggerAddAction( gg_trg_Spell_SF_____________________u, function Trig_Spell_SF_____________________u_Actions ) endfunction Добавлено (27 Января 2013, 10:21:25) --------------------------------------------- Facering скрин таймера??? Всмысле?? Когда он включается?? Он включается когда проходит 10 сек от игры и он включается! Если не то, что я понял, то поясни.
|
|
|
|
Facering | Дата: Воскресенье, 27 Января 2013, 10:22:12 | Сообщение # 17 |
9 уровень
Группа: Проверенные
Сообщений: 842
Награды: 0
Репутация: 50
Блокировки:
| Цитата (Q1wAse) Facering скрин таймера??? Всмысле?? Когда он включается?? Он включается когда проходит 10 сек от игры и он включается! Если не то, что я понял, то поясни. да скрин вкл таймера.
Эх, береза..... мне бы столько почек.
|
|
|
|
sumert | Дата: Воскресенье, 27 Января 2013, 10:30:09 | Сообщение # 18 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| *посмотрев скрин* мать вашу в бога, в душу и святого духа! И это еще срабатывает 10 раз в секунду! Во-первых, с точками ты утечки не удалил: Позиция(Выбранный юнит) и Позиция (переменная какая-то) не удаляются => утечки => лаги. "Выбранный юнит" тоже создает утечки. Локацию ты удаляешь, а переменную тоже надо обнулять. После RemoveLocation добавить set "имя переменной локации"=null. А про отряды я даже заикаться не буду. И цикл лучше сделать local integer=1 loop...действия цикла exitwhen i>=12 set i=i+1 endloop С циклом, что у тебя есть, связано множество багов и неправильной работы.
Сообщение отредактировал sumert - Воскресенье, 27 Января 2013, 10:30:52 |
|
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 10:36:14 | Сообщение # 19 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| sumert Цитата С циклом, что у тебя есть, связано множество багов и неправильной работы. Учусь пока что) Цитата А про отряды я даже заикаться не буду. И цикл лучше сделать Скажи что сделать чтобы все утечки удалить? ПЛЗ
|
|
|
|
Imba_pvL | Дата: Воскресенье, 27 Января 2013, 10:38:26 | Сообщение # 20 |
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
| Q1wAse могу дать ссылку в ЛС напиши мне....там типо кодер сделал все не удаленные утечки показывает в таблице, может поможет
|
|
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 10:40:47 | Сообщение # 21 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| Imba_pvL что написать тебе в ЛС?)) Я не понял...Ну мен нужно чтобы утечек не было.Лаги ужасные...
|
|
|
|
[SeKtOR] | Дата: Воскресенье, 27 Января 2013, 11:14:06 | Сообщение # 22 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Вообщем тебе надо чтобы вокруг 12 героев появилось n юнитов без утечек?
|
|
|
|
Q1wAse | Дата: Воскресенье, 27 Января 2013, 11:25:46 | Сообщение # 23 |
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
| [SeKtOR]Цитата Вообщем тебе надо чтобы вокруг 12 героев появилось n юнитов без утечек? Нет. Там у меня идёт проверка вокруг N юнитов выбрать врагов и при определённых условиях кастануть способность юниту на врага. Кароче делаю ИИ Всё работает с ИИ, только одно НО ужасные лаги... Попробовал делать без таймера ничего не выходит. Компы просто бывает не юзают спелы...(
Сообщение отредактировал Q1wAse - Воскресенье, 27 Января 2013, 11:26:52 |
|
|
|
SirNikolas | Дата: Воскресенье, 27 Января 2013, 12:02:13 | Сообщение # 24 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата (Q1wAse) Цитата (Impregnable) Task manager'а вполне хватает. Это и есть та прога? Ctrl+Alt+Del нажми, переключись на вкладку "Процессы" и смотри на потребление памяти игрой. Естественно, war3 надо запускать с ключом -window. ЛибоКод function LeakChecker takes nothing returns nothing local timer t = CreateTimer() call BJDebugMsg(I2S(GetHandleId(t))) call DestroyTimer(t) set t = null endfunction Если числа будут увеличиваться на протяжении всей игры, значит, есть утечки.
|
|
|
|
|
|
|
|
|
|
|