XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Mental

offline
Опыт: 1,472
Активность:
Fatal утечки
» Вобщем происходит фатал еррр из за утчечек в этом триггере, не знаю как его оптимизировать.
[cut]function Trig_exp_and_bounty_Conditions takes nothing returns boolean[/cut]
if ( not ( IsUnitType(GetKillingUnit(), UNIT_TYPE_STRUCTURE) == false ) ) then
return false
endif
return true
endfunction
function Trig_exp_and_bounty_Actions takes nothing returns nothing
local integer i
local integer p
local unit d
local unit k
set d = GetDyingUnit()
set k = GetKillingUnit()
set i = 1
loop
exitwhen i > 10
if IsUnitInGroup(d, udg_UG[i]) == true then
call GroupRemoveUnitSimple( d, udg_UG[i] )
else
endif
if IsUnitInGroup(k, udg_UG[i]) == true then
set p = i
else
endif
set i = i + 1
endloop
1
if GetUnitTypeId(d) == 'n000' then
call AdjustPlayerStateBJ( 2, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 2, udg_InitHero[p], true )
endif
if GetUnitTypeId(d) == 'n00D' then
call AdjustPlayerStateBJ( 1, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 1, udg_InitHero[p], true )
endif
2
if (GetUnitTypeId(d) == 'e000') or (GetUnitTypeId(d) == 'n001') or (GetUnitTypeId(d) == 'h02I') then
call AdjustPlayerStateBJ( 4, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 4, udg_InitHero[p], true )
endif
if GetUnitTypeId(d) == 'n00C' then
call AdjustPlayerStateBJ( 2, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 2, udg_InitHero[p], true )
endif
3
if (GetUnitTypeId(d) == 'h000') or (GetUnitTypeId(d) == 'e003') or (GetUnitTypeId(d) == 'h02J') then
call AdjustPlayerStateBJ( 8, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 8, udg_InitHero[p], true )
endif
if GetUnitTypeId(d) == 'h001' then
call AdjustPlayerStateBJ( 4, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 4, udg_InitHero[p], true )
endif
4
if (GetUnitTypeId(d) == 'h002') or (GetUnitTypeId(d) == 'e002') or (GetUnitTypeId(d) == 'h01L') or (GetUnitTypeId(d) == 'h02K') then
call AdjustPlayerStateBJ( 14, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 14, udg_InitHero[p], true )
endif
if GetUnitTypeId(d) == 'z000' then
call AdjustPlayerStateBJ( 7, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 7, udg_InitHero[p], true )
endif
5
if (GetUnitTypeId(d) == 'h003') or (GetUnitTypeId(d) == 'h01F') or (GetUnitTypeId(d) == 'h012') or (GetUnitTypeId(d) == 'h004') then
call AdjustPlayerStateBJ( 22, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 22, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'e004') or (GetUnitTypeId(d) == 'e001') then
call AdjustPlayerStateBJ( 22, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 22, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'z003') or (GetUnitTypeId(d) == 'z002') or (GetUnitTypeId(d) == 'z005') then
call AdjustPlayerStateBJ( 11, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 11, udg_InitHero[p], true )
endif
6
if (GetUnitTypeId(d) == 'h021') or (GetUnitTypeId(d) == 'h00Z') or (GetUnitTypeId(d) == 'h02E') or (GetUnitTypeId(d) == 'h005') then
call AdjustPlayerStateBJ( 32, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 32, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'h00W') or (GetUnitTypeId(d) == 'h02L') or (GetUnitTypeId(d) == 'h00J') or (GetUnitTypeId(d) == 'e005') then
call AdjustPlayerStateBJ( 32, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 32, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'z001') or (GetUnitTypeId(d) == 'z006') or (GetUnitTypeId(d) == 'z007') then
call AdjustPlayerStateBJ( 16, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 16, udg_InitHero[p], true )
endif
7
if (GetUnitTypeId(d) == 'h01A') or (GetUnitTypeId(d) == 'h01G') or (GetUnitTypeId(d) == 'h01I') or (GetUnitTypeId(d) == 'h015') then
call AdjustPlayerStateBJ( 44, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 44, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'h011') or (GetUnitTypeId(d) == 'h02M') or (GetUnitTypeId(d) == 'h00K') or (GetUnitTypeId(d) == 'e01U') then
call AdjustPlayerStateBJ( 44, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 44, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'h02U') or (GetUnitTypeId(d) == 'h01W') or (GetUnitTypeId(d) == 'z00D') or (GetUnitTypeId(d) == 'h02D') then
call AdjustPlayerStateBJ( 44, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 44, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'z004') or (GetUnitTypeId(d) == 'z009') or (GetUnitTypeId(d) == 'z00B') then
call AdjustPlayerStateBJ( 22, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 22, udg_InitHero[p], true )
endif
8
if (GetUnitTypeId(d) == 'h024') or (GetUnitTypeId(d) == 'h01H') or (GetUnitTypeId(d) == 'h01J') or (GetUnitTypeId(d) == 'h023') then
call AdjustPlayerStateBJ( 58, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 58, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'h022') or (GetUnitTypeId(d) == 'h02N') or (GetUnitTypeId(d) == 'h01T') or (GetUnitTypeId(d) == 'h00V') then
call AdjustPlayerStateBJ( 58, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 58, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'h00X') or (GetUnitTypeId(d) == 'h01X') or (GetUnitTypeId(d) == 'h01K') or (GetUnitTypeId(d) == 'h02G') then
call AdjustPlayerStateBJ( 58, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 58, udg_InitHero[p], true )
endif
if (GetUnitTypeId(d) == 'z008') or (GetUnitTypeId(d) == 'z00A') or (GetUnitTypeId(d) == 'z00C') then
call AdjustPlayerStateBJ( 29, ConvertedPlayer(p), PLAYER_STATE_RESOURCE_GOLD )
call AddHeroXPSwapped( 29, udg_InitHero[p], true )
endif

set d = null
set k = null
endfunction
===========================================================================
function InitTrig_exp_and_bounty takes nothing returns nothing
set gg_trg_exp_and_bounty = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_exp_and_bounty, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_exp_and_bounty, Condition( function Trig_exp_and_bounty_Conditions ) )
call TriggerAddAction( gg_trg_exp_and_bounty, function Trig_exp_and_bounty_Actions )
endfunction

Отредактировано Mental, 04.10.2010 в 18:32.
Старый 02.10.2010, 15:31
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
выучи jass для начала. ну и код под кат засунь.
Старый 02.10.2010, 15:34
Mental

offline
Опыт: 1,472
Активность:
Как код под кат засовывать не знаю. [cut] [/cut] не работает.
А "для начала" это не ответ на вопрос, коструктивно указать не можешь проблемы, лучше тогда не писать, бесполезный треп.

Отредактировано Mental, 02.10.2010 в 15:48.
Старый 02.10.2010, 15:37
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
не знаю как его оптимизировать
Оптимизация-_утечки_памяти
Осваиваем_JASS_-_исправления_и_дополнения
Как код под кат засовывать не знаю.
способ_форматирования_текстов
Mental, зря ты так пишешь.. тебе дело говорят
Старый 02.10.2010, 16:28
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 16:27.