Сейчас 08:21:02 Пятница, 29 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
утечка... утечка...
HexingДата: Пятница, 05 Августа 2011, 15:34:20 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Code
globals
    boolean array Selected
    boolean array preSelected
    unit array Heroes
    real array HeroesInt
    real array HeroesAgi
    real array HeroesStr
    real array HeroesMgHeal
    real array HeroesMgDmg
    leaderboard array LeaderBoards
    trigger heroRespawn = CreateTrigger()
    trigger LevelUp = CreateTrigger()
    integer array prevLvl
      
endglobals

library mainLib initializer mainInit
    private function heroResp takes nothing returns nothing
       local unit u = GetDyingUnit()
       call ReviveHero(u,GetRectCenterX(gg_rct_spawnLoc),GetRectCenterY(gg_rct_spawnLoc), true )
       call PauseUnit(u,true)
       call TriggerSleepAction(3.00)
       call PauseUnit(u,false)
       set u = null
    endfunction
    private function UpdateLeaderboard takes nothing returns nothing
       integer i = 0
       /*loop
          call LeaderboardSetSizeByItemCount(LeaderBoards[i], 2)
          call LeaderboardSetLabel(LeaderBoards[i], "|c00FF0101Х|r|c00FF4908а|r|c00FF900Fр|r|c00FEC808а|r|c00FEFF01к|r|c008FDF00т|r|c0021C000е|r|c0014D580р|r|c0007EAFFи|r|c000475FFс|r|c000201F Fт|r|c002C01D5и|r|c005500AAк|r|c007F0080и|r
          \n|c00FE8DFFС|r|c00F280F3и|r|c00E773E8л|r|c00DB67DCа|r|c00D05AD1 |r|c00C44DC5м|r|c00B940BAа|r|c00AD33AEг|r|c00A226A3и|r|c00961A97и|r|c008B0D8C:|r|c007F0080 |r" + I2S(R2I(HeroesMgDmg[i]))+"\n|c0083FF69С|r|c007CFB62и|r|c0076F75Bл|r|c006FF254а|r|c0069EE4D |r|c0062EA46и|r|c005CE63Fс|r|c0055E238ц|r|c004FDD31е|r|c0048D92Aл|r|c0042D523е|r|c003BD11Cн|r|c0035CD15и|r|c002EC80Eя|r|c0028C407:|r|c0021C0 00 |r" + I2S(R2I(HeroesMgHeal[i])))
          set i = i+1
          exitwhen i == 8
       endloop   */
    endfunction
    private function HeroUpAstralMage takes unit hero returns nothing
       local integer lvl = GetUnitLevel(hero)
       /////// 'A003' = актив книга
       /////// 'A007' = пассив книга
       if(lvl == 1) then  
          call SetUnitAbilityLevel(hero, 'A003', 2)
          return
       endif    
       if(lvl == 3) then  
          call SetUnitAbilityLevel(hero, 'A003', 3)
          return
       endif    
       if(lvl == 2) then
          call SetUnitAbilityLevel(hero, 'A007', 2)
          return
       endif
    endfunction
     
    private function onSelectUp takes unit hero returns nothing
       local player pl = GetOwningPlayer(hero)
       local integer utype = GetUnitTypeId(hero)
       call SetPlayerState(pl, PLAYER_STATE_RESOURCE_LUMBER, GetPlayerState(pl, PLAYER_STATE_RESOURCE_LUMBER) + 5)
       if(utype == 'H001') then
          call HeroUpAstralMage(hero)
       endif    
    endfunction
     
    private function SelectHim takes nothing returns nothing
       local integer id = GetPlayerId(GetTriggerPlayer())
       local integer u = GetUnitTypeId(GetTriggerUnit())
       if(Selected[id] == true) then
          return
       endif  
       if(preSelected[id] == true) then
          set Selected[id] = true;
          set Heroes[id] = CreateUnit(Player(id),u ,GetRectCenterX(gg_rct_spawnLoc),GetRectCenterY(gg_rct_spawnLoc),180)  
          set bj_lastCreatedUnit = Heroes[id]
          //  set bj_lastCreatedUnit = CreateUnit(Player(id),u ,GetRectCenterX(gg_rct_spawnLoc),GetRectCenterY(gg_rct_spawnLoc),180)  
          //set Heroes[id] = bj_lastCreatedUnit
          call TriggerRegisterUnitEvent(heroRespawn, Heroes[id], EVENT_UNIT_DEATH )
          call TriggerRegisterUnitEvent(LevelUp,Heroes[id], EVENT_UNIT_HERO_LEVEL)
          SetPlayerState(Player(id),PLAYER_STATE_RESOURCE_LUMBER,5)
          if(u == 'H001') then
             call HeroUpAstralMage(Heroes[id])
          endif    
          //call onSelectUp(Heroes[id])
          call SetCameraRotateMode(0, 0, 0, 0)
           
          if (GetLocalPlayer() == Player(id)) then  
             call PanCameraToTimed(GetUnitX(Heroes[id]),GetUnitY(Heroes[id]),0)
             call ClearSelection()
          endif
       //LB
       /*set LeaderBoards[id] = CreateLeaderboard()
       local player pl = GetOwningPlayer(Heroes[id])
       call LeaderboardSetLabel(LeaderBoards[id], "|c00FF0101Х|r|c00FF4908а|r|c00FF900Fр|r|c00FEC808а|r|c00FEFF01к|r|c008FDF00т|r|c0021C000е|r|c0014D580р|r|c0007EAFFи|r|c000475FFс|r|c000201F Fт|r|c002C01D5и|r|c005500AAк|r|c007F0080и|r\n\n")
       call PlayerSetLeaderboard(pl, LeaderBoards[id])
       call LeaderboardDisplay(LeaderBoards[id], true)
       call UpdateLeaderboard()*/
       //end LB
       else
          set preSelected[id] = true
          call DisplayTimedTextToPlayer(GetTriggerPlayer(),0,0, 5.00, "|cFF0080FF"+GetUnitName(GetTriggerUnit())+"|r")
          if(u == 'H001') then
             call DisplayTimedTextToPlayer(GetTriggerPlayer(),0,0, 5.00, "Путь грации,\nПуть мудрости,\nПуть хаоса.")
          endif
       endif    
    endfunction
    private function deSelectHim takes nothing returns nothing
       local integer id = GetPlayerId(GetTriggerPlayer())
       if(Selected[id] == true) then
          return
       endif  
       set preSelected[id] = false
    endfunction
    private function ShowSelectHelpMessage takes nothing returns nothing
       if not(Selected[GetPlayerId(GetLocalPlayer())] == true)
          call DisplayTimedTextToPlayer( GetLocalPlayer(),0,0, 10.00, "Щелкните по герою, чтобы узнать его хар-ки. Щелкните 2-ой раз чтобы выбрать героя.")
       endif
    endfunction
    function GiveXpGold takes integer xp, integer gold, player who returns nothing
       local integer index = 0
       loop  
          call AddHeroXP(Heroes[index], xp, true)
          //
          local texttag xtag = CreateTextTag()
          call SetTextTagText(xtag,"+" + I2S(xp)+" опыта", 0.0184)
          call SetTextTagPosUnit(xtag, Heroes[index], 0)
          call SetTextTagColor(xtag, 255, 0, 255, 100)
          call SetTextTagPermanent(xtag, false)
          call SetTextTagLifespan( xtag, 2.00 )
          call SetTextTagVelocity(xtag,0,0.02)
          //
          set index = index + 1
          exitwhen (index == 8)
       endloop
       call SetPlayerState(who, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(who, PLAYER_STATE_RESOURCE_GOLD) + gold)  
    endfunction
    private function DeathActs takes nothing returns nothing
       local real gold = I2R( GetUnitLevel(GetDyingUnit()) + 7 ) * I2R( GetUnitLevel(GetDyingUnit()) + 7 ) * GetRandomReal(0.1, 0.2)
       local real xp = I2R( GetUnitLevel(GetDyingUnit()) + 2 ) * I2R(GetUnitLevel(GetDyingUnit()) + 2 ) * GetRandomReal(0.7,1.3)
       call GiveXpGold(R2I(xp),R2I(gold),GetOwningPlayer(GetKillingUnit()))
       local texttag gtag = CreateTextTag()
       call SetTextTagText(gtag,"+" + I2S(R2I(gold))+" золота", 0.0184)
       call SetTextTagPosUnit(gtag, GetDyingUnit(), 0)
       call SetTextTagColor(gtag, 255, 255, 0, 100)
       call SetTextTagPermanent(gtag, false)
       call SetTextTagLifespan( gtag, 2.00 )
       call SetTextTagVelocity(gtag,0,0.03)
       //**************\\
        
    endfunction
    private function onPick takes nothing returns nothing
       local unit picker = GetTriggerUnit()
       local item picked = GetManipulatedItem()
       local integer level = GetItemLevel(picked)
       local integer pos = 0
       local integer i = 0
       loop
          if(UnitItemInSlot(picker,i) == picked) then
             pos = i
          endif    
          set i = i+1
          exitwhen(i==6)
       endloop
       set i = 0
       loop
          if not(i == pos) then
             if(GetItemLevel(UnitItemInSlot(picker,i)) == level) then
                call UnitDropItemPoint(picker,picked,GetItemX(picked),GetItemY(picked))  
                call DisplayTimedTextToPlayer( GetOwningPlayer(picker),0,0, 4.00, "У вас уже есть предмет этого типа." )
             endif
          endif    
          set i = i+1
          exitwhen(i==6)
       endloop
    endfunction
     
    private function HeroModify takes player pl, real Int, real Agi, real Str, real MgDmg, real MgHeal returns nothing
       local integer id = GetPlayerId(pl)
       set HeroesStr[id] = HeroesStr[id] + Str
       set HeroesInt[id] = HeroesInt[id] + Int
       set HeroesAgi[id] = HeroesAgi[id] + Agi
       call SetHeroInt(Heroes[id], R2I(HeroesInt[id]),true)
       call SetHeroStr(Heroes[id], R2I(HeroesStr[id]),true)
       call SetHeroAgi(Heroes[id], R2I(HeroesAgi[id]),true)
       set HeroesMgDmg[id] = HeroesMgDmg[id]+MgDmg
       set HeroesMgHeal[id] = HeroesMgHeal[id]+MgHeal
    endfunction
     
    private function onSkillPick takes nothing returns nothing
       local unit hero = GetLearningUnit()
       local integer skill = GetLearnedSkill()
       local player owner = GetOwningPlayer(hero)
       local effect ef
       call UnitRemoveAbility(hero,skill)
       call UnitModifySkillPoints(hero,1)
       if(GetPlayerState(owner,PLAYER_STATE_RESOURCE_LUMBER) == 0) then
          call DisplayTimedTextToPlayer( owner,0,0, 4.00, "Недостаточно очков способностей(дерево)" )
          return
       endif
       SetPlayerState(owner,PLAYER_STATE_RESOURCE_LUMBER,GetPlayerState(owner,PLAYER_STATE_RESOURCE_LUMBER)-1)
       if(skill == 'A002') then //int .92 agi .31 str .27 dmg 1.1 heal 1.1// мудрость
          call HeroModify(owner,0.92,0.31,0.27,1.1,1.1)
          set ef = AddSpecialEffect("Abilities\\Spells\\Items\\TomeOfRetraining\\TomeOfRetrainingCaster.mdl", GetUnitX(hero), GetUnitY(hero))
       elseif(skill == 'A004') then //int .79 agi .20 str .51 dmg 2.05 heal 0.15// хаос
          call HeroModify(owner,0.79,0.20,0.51,2.05,0.15)
          set ef = AddSpecialEffect("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl", GetUnitX(hero), GetUnitY(hero))
       elseif(skill == 'A005') then //int .75 agi .34 str .41 dmg 0.75 heal 1.45// грация
          call HeroModify(owner,0.75,0.34,0.41,0.75,1.45)
          set ef = AddSpecialEffect("Objects\\Spawnmodels\\NightElf\\EntBirthTarget\\EntBirthTarget.mdl", GetUnitX(hero), GetUnitY(hero))
       endif  
        
       call UpdateLeaderboard()
        
       set ef = null
       set hero = null
    endfunction
     
     
     
    private function onLevelUp takes nothing returns nothing
       local unit hero = GetTriggerUnit()
       local player pl = GetOwningPlayer(hero)
       local integer utype = GetUnitTypeId(hero)
       local integer lvl = GetUnitLevel(hero)
       local integer id = GetPlayerId(pl)
       call SetPlayerState(pl, PLAYER_STATE_RESOURCE_LUMBER, GetPlayerState(pl, PLAYER_STATE_RESOURCE_LUMBER) + 5*(lvl-prevLvl[id]))
       set prevLvl[id] = lvl
       if(utype == 'H001') then
          call HeroUpAstralMage(hero)
       endif    
        
       set hero = null
    endfunction
     
    private function floatDamage takes real x, real y, string text returns nothing
       local texttag gtag = CreateTextTag()
       call SetTextTagText(gtag,text, 0.0184)
       call SetTextTagPosUnit(gtag, GetDyingUnit(), 0)
       call SetTextTagColor(gtag, 255, 0, 0, 100)
       call SetTextTagPermanent(gtag, false)
       call SetTextTagLifespan( gtag, 2.00 )
       call SetTextTagVelocity(gtag,0,0.03)
       set gtag = null
    endfunction
     
    private function CastZabvShar takes unit caster, unit target, integer id returns nothing
       local real dmg = HeroesMgDmg[id]*1.4
       call floatDamage(GetUnitX(target),GetUnitY(target),R2S(dmg))
       call UnitDamageTarget(caster, target, dmg,true,false,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
       call PauseUnit(target, true)
       call TriggerSleepAction(GetRandomReal(0.5,1.25))
       call PauseUnit(target, false)
    endfunction
    private function CastFrostBoom takes unit caster, unit target, integer id returns nothing
       local real dmg = HeroesMgDmg[id]*0.7
       call floatDamage(GetUnitX(target),GetUnitY(target),R2S(dmg))
       call UnitDamagePoint(caster, 0, 250, GetUnitX(target),GetUnitY(target), dmg,true,false,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
    endfunction
    private function onCastActs takes nothing returns nothing
       local integer spl = GetSpellAbilityId()
       local unit caster = GetSpellAbilityUnit()
       local unit target = GetSpellTargetUnit()
       local player owner = GetOwningPlayer(caster)
       local integer id = GetPlayerId(owner)
        
       if(spl == 'A006') then //140%
          call CastZabvShar(caster,target,id)
       endif
       if(spl == 'A007') then //70%
          call CastFrostBoom(caster,target,id)
       endif
        
    endfunction
     
    private function SelectHeroActions takes nothing returns nothing
       local integer index = 0
       local timer PeriodicMessage = CreateTimer()
       call ShowSelectHelpMessage()
       call TimerStart(PeriodicMessage, 25, true,function ShowSelectHelpMessage)  
       local trigger SelectHeroHim = CreateTrigger()
       local trigger deSelectHeroHim = CreateTrigger()
       local trigger PickItem = CreateTrigger()
       local trigger StatsControl = CreateTrigger()
       local trigger onCast = CreateTrigger()
        
       call TriggerAddAction(SelectHeroHim,function SelectHim)
       call TriggerAddAction(deSelectHeroHim,function deSelectHim)
       call TriggerAddAction(PickItem,function onPick)
       call TriggerAddAction(StatsControl,function onSkillPick)
       call TriggerAddAction(heroRespawn, function heroResp )
       call TriggerAddAction(LevelUp, function onLevelUp )
       call TriggerAddAction(onCast, function onCastActs)
        
       loop
          set Selected[index]=false
          set preSelected[index]=false
          set HeroesAgi[index]=5
          set HeroesStr[index]=5
          set HeroesInt[index]=5
          set HeroesMgHeal[index]=10
          set HeroesMgDmg[index]=10
          set prevLvl[index] = 1
          call TriggerRegisterPlayerUnitEvent(onCast, Player(index), EVENT_PLAYER_UNIT_SPELL_CAST, null)
          call TriggerRegisterPlayerUnitEvent( StatsControl,Player(index), EVENT_PLAYER_HERO_SKILL ,null)
          call TriggerRegisterPlayerUnitEvent(SelectHeroHim, Player(index), EVENT_PLAYER_UNIT_SELECTED, null)
          call TriggerRegisterPlayerUnitEvent(deSelectHeroHim, Player(index), EVENT_PLAYER_UNIT_DESELECTED, null)
          call TriggerRegisterPlayerUnitEvent( PickItem,Player(index) , EVENT_PLAYER_UNIT_PICKUP_ITEM, null )
          set index = index+1
           
          exitwhen(index == 8)
       endloop   
        
        
        
       call PanCameraToTimed(GetRectCenterX(gg_rct_spawnLoc),GetRectCenterY(gg_rct_spawnLoc),0)
       call TriggerSleepAction(0.001)
       call SetCameraRotateMode(GetRectCenterX(gg_rct_spawnLoc), GetRectCenterY(gg_rct_spawnLoc), 0, 36000)
        
       set PeriodicMessage = null
       set SelectHeroHim = null
       set deSelectHeroHim = null
    endfunction
    private function mainInit takes nothing returns nothing
       call DisplayTimedTextToPlayer( GetLocalPlayer(),0,0, 4.00, "Добро пожаловать в мир рпг!" )
       call SetFloatGameState(GAME_STATE_TIME_OF_DAY, 18.00)
        
       call SetPlayerState(Player(PLAYER_NEUTRAL_AGGRESSIVE), PLAYER_STATE_NO_CREEP_SLEEP, 1)
       call WakePlayerUnits(Player(PLAYER_NEUTRAL_AGGRESSIVE))
        
       local trigger CreepDie = CreateTrigger()
        
       call TriggerRegisterPlayerUnitEvent(CreepDie,Player(PLAYER_NEUTRAL_AGGRESSIVE),EVENT_PLAYER_UNIT_DEATH,null)
       call TriggerAddAction(CreepDie,function DeathActs )
       call SelectHeroActions()
       set CreepDie = null
    endfunction
endlibrary

function GiveReward takes integer xp, integer gold returns nothing
    local integer index = 0
    loop
       call AddHeroXP(Heroes[index], xp, true)
       call SetPlayerState(Player(index), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(Player(index), PLAYER_STATE_RESOURCE_GOLD) + gold)
       set index = index+1
       exitwhen (index == 8)
    endloop    
endfunction


Найдите утечку пожалуйста, уже голову сломал... лидерборд повытыкал, функции слепил в одну, getlocalplayer()-ы проверил, ни одна функция внутри не возвращает хендлов... но как только кто-то выберает гера, всех кроме хоста выбрасывает(десинхрон). Вот как такое может быть, у меня же хендлов и локало не создается между GetLocalPlayer()... шо такое?
исходники только в личку, проект долго делал)
Спойлер не робит почему то, поэтому без него код.
За криворукасть кода и бесполезное использование library по губам не бить... я тоже видите-ли настрадался


 

SirNikolasДата: Пятница, 05 Августа 2011, 15:48:56 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Ты хоть объясни, что делает код и на какой функции он вылетает.

 

HexingДата: Пятница, 05 Августа 2011, 16:04:44 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
В начале всё работает. Перед нами 3 героя, они нейтрально пассивные и их можно выделить. Больше рядом ничего выделяемого нет.
глобалки:
Code
globals
boolean array Selected
boolean array preSelected
endglobals

Code
local trigger SelectHeroHim = CreateTrigger()
        local trigger deSelectHeroHim = CreateTrigger()

Триггеры отвечающие за выделение героя.
Code
call TriggerAddAction(SelectHeroHim,function SelectHim)
        call TriggerAddAction(deSelectHeroHim,function deSelectHim)

собственно их действия
Code
loop
           set Selected[index]=false //отвечает за то, что герой уже выбран.(тип boolean)
           set preSelected[index]=false//отвечает за то, что герой уже выделен(тип boolean, так как не нужно следить какой именно юнит выделен, ведь выделить несколько пассивных нельзя, а при десселекте, серавно preSelected = false)
           call TriggerRegisterPlayerUnitEvent(SelectHeroHim, Player(index), EVENT_PLAYER_UNIT_SELECTED, null) //при выделении...
           call TriggerRegisterPlayerUnitEvent(deSelectHeroHim, Player(index), EVENT_PLAYER_UNIT_DESELECTED, null) //при "отпускании"
           set index = index+1
             
           exitwhen(index == 8)
        endloop   

тута мы лупим ивенты и обнуляем коечто
--
а вот и функции
Code
private function SelectHim takes nothing returns nothing
       local integer id = GetPlayerId(GetTriggerPlayer())
       local integer u = GetUnitTypeId(GetTriggerUnit())
       if(Selected[id] == true) then
          return
       endif  
       if(preSelected[id] == true) then
          set Selected[id] = true;
          set Heroes[id] = CreateUnit(Player(id),u ,GetRectCenterX(gg_rct_spawnLoc),GetRectCenterY(gg_rct_spawnLoc),180)  
          set bj_lastCreatedUnit = Heroes[id]
          //  set bj_lastCreatedUnit = CreateUnit(Player(id),u ,GetRectCenterX(gg_rct_spawnLoc),GetRectCenterY(gg_rct_spawnLoc),180)  
          //set Heroes[id] = bj_lastCreatedUnit
          call TriggerRegisterUnitEvent(heroRespawn, Heroes[id], EVENT_UNIT_DEATH )
          call TriggerRegisterUnitEvent(LevelUp,Heroes[id], EVENT_UNIT_HERO_LEVEL)
          SetPlayerState(Player(id),PLAYER_STATE_RESOURCE_LUMBER,5)
          if(u == 'H001') then
             call HeroUpAstralMage(Heroes[id])
          endif    
          //call onSelectUp(Heroes[id])
          call SetCameraRotateMode(0, 0, 0, 0)
           
          if (GetLocalPlayer() == Player(id)) then  
             call PanCameraToTimed(GetUnitX(Heroes[id]),GetUnitY(Heroes[id]),0)
             call ClearSelection()
          endif
       //LB
       set LeaderBoards[id] = CreateLeaderboard()
       local player pl = GetOwningPlayer(Heroes[id])
       call LeaderboardSetLabel(LeaderBoards[id], "|c00FF0101Х|r|c00FF4908а|r|c00FF900Fр|r|c00FEC808а|r|c00FEFF01к|r|c008FDF00т|r|c0021C000е|r|c0014D580р|r|c0007EAFFи|r|c000475FFс|r|c000201F Fт|r|c002C01D5и|r|c005500AAк|r|c007F0080и|r\n\n")
       call PlayerSetLeaderboard(pl, LeaderBoards[id])
       call LeaderboardDisplay(LeaderBoards[id], true)
       call UpdateLeaderboard()
       //end LB
       else
          set preSelected[id] = true
          call DisplayTimedTextToPlayer(GetTriggerPlayer(),0,0, 5.00, "|cFF0080FF"+GetUnitName(GetTriggerUnit())+"|r")
          if(u == 'H001') then
             call DisplayTimedTextToPlayer(GetTriggerPlayer(),0,0, 5.00, "Путь грации,\nПуть мудрости,\nПуть хаоса.")
          endif
       endif    
    endfunction
    private function deSelectHim takes nothing returns nothing
       local integer id = GetPlayerId(GetTriggerPlayer())
       if(Selected[id] == true) then
          return
       endif  
       set preSelected[id] = false
    endfunction


это всё что может вызвать десинхрон(на мой взгляд)

Добавлено (05-08-2011, 16:03)
---------------------------------------------

Code
call HeroUpAstralMage(Heroes[id])

в этом ничего страшного точно нет.

Добавлено (05-08-2011, 16:04)
---------------------------------------------

Code
call SetCameraRotateMode(0, 0, 0, 0)
это я вытащил из getlocalplayer-а так как нету бж аналога для одного игрока. Но кажется не помогло


 

FkoFFДата: Пятница, 05 Августа 2011, 19:25:01 | Сообщение # 4
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
ммм, скажи мне, а зачем все эти извращения? сделать выбор героев кликом? тогда уж следовало писать систему а не вот это... Плюс ко всему жнпг? аль просто глобалки выбросил нам, что б мы видели?

function Preselect takes player who, unit target returns nothing

if Selected(who,target) then
call CreateHero(who,target)
else
call SetSelected(who,target)
endif

endif

как то так это должно выглядеть, тебе не кажется ?)


 

HexingДата: Суббота, 06 Августа 2011, 09:26:40 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
я знаю это супег-гипер мега извращение... но это моя 1 серьезная мапа, напишу уже кривобока какнибудь, а там кже буду разбираться в след. проэктах, норм писать. Мне бы помощи

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz