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 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Enein
Silenced by ZlaYa1000
offline
Опыт:
43,453Активность: |
выучи jass для начала. ну и код под кат засунь. |
02.10.2010, 15:34 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Mental
offline
Опыт:
1,472Активность: |
Как код под кат засовывать не знаю. [cut] [/cut] не работает. А "для начала" это не ответ на вопрос, коструктивно указать не можешь проблемы, лучше тогда не писать, бесполезный треп. Отредактировано Mental, 02.10.2010 в 15:48. |
02.10.2010, 15:37 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
Оптимизация-_утечки_памяти Осваиваем_JASS_-_исправления_и_дополнения способ_форматирования_текстов Mental, зря ты так пишешь.. тебе дело говорят |
02.10.2010, 16:28 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|