Сейчас 13:18:13 Вторник, 19 марта, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помощь с кодом
Помощь с кодом
[SomeOne]Дата: Воскресенье, 30 Января 2011, 17:25:44 | Сообщение # 1
5 уровень
Группа: Пользователи
Сообщений: 106
Награды: 0
Репутация: 17
Блокировки:
Мне нужно для каждого игрока сложить здоровье всех юнитов типа "золото" в области 512 от всех юнитов взятого игрока типа "сокровищница" и затем установить золото текущее взятого игрока равному полученной сумме

Сделать ето на триггерах никак не выходит. В попытках это сделать я сотворил триггер и перевел его в код, попытался довести до ума уже код но не вышло.

Code
function Trig_Gold_Deposit_Func001Func001001002 takes nothing returns boolean
     return ( GetUnitTypeId(GetFilterUnit()) == 'h000' )
endfunction

function Trig_Gold_Deposit_Func001Func001Func001001003 takes nothing returns boolean
     return ( GetUnitTypeId(GetFilterUnit()) == 'o001' )
endfunction

function Trig_Gold_Deposit_Func001Func001Func001A takes nothing returns nothing
     call SetPlayerStateBJ( GetEnumPlayer(), PLAYER_STATE_RESOURCE_GOLD, ( GetPlayerState(GetEnumPlayer(), PLAYER_STATE_RESOURCE_GOLD) + R2I(GetUnitStateSwap(UNIT_STATE_LIFE, GetEnumUnit())) ) )
endfunction

function Trig_Gold_Deposit_Func001Func001A takes nothing returns nothing
     call ForGroupBJ( GetUnitsInRangeOfLocMatching(512, GetUnitLoc( "ЮНИТ" ), Condition(function Trig_Gold_Deposit_Func001Func001Func001001003)), function Trig_Gold_Deposit_Func001Func001Func001A )
endfunction

function Trig_Gold_Deposit_Func001A takes nothing returns nothing
     call ForGroupBJ( GetUnitsOfPlayerMatching(GetEnumPlayer(), Condition(Trig_Gold_Deposit_Func001Func001Func001001003)), function Trig_Gold_Deposit_Func001Func001A )
endfunction

function Trig_Gold_Deposit_Actions takes nothing returns nothing
     call ForForce( GetPlayersAll(), function Trig_Gold_Deposit_Func001A )
endfunction

//===========================================================================
function InitTrig_Gold_Deposit takes nothing returns nothing
     set gg_trg_Gold_Deposit = CreateTrigger(  )
     call TriggerRegisterTimerEventPeriodic( gg_trg_Gold_Deposit, 1.00 )
     call TriggerAddAction( gg_trg_Gold_Deposit, function Trig_Gold_Deposit_Actions )
endfunction


Фильм "Ёлки" 2010
 

DreiiДата: Воскресенье, 30 Января 2011, 17:43:51 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
[SomeOne], О БОЖЕ МОЙ!!!!!!!!!!НЕ пиши на JASS

Добавлено (30-01-2011, 17:43)
---------------------------------------------
[SomeOne],

Code
local group g=CreateGroup()
local integer i=0
local unit e
local unit u=[b]"Юнит"[/b]
call GroupEnumUnitsInRange(g,GetWidgetX(u),GetWidgetY(u),512,null)  
     loop  
         set e=FirstOfGroup(g)  
         exitwhen e==null and i==11
         if GetWidgetLife(e)>.0 then          
         call SetPlayerState(Player(i),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(Player(i),PLAYER_STATE_RESOURCE_GOLD) + R2I(GetWidgetLife(e)))
          set i=i+1
         endif  
         call GroupRemoveUnit(g,e)  
     endloop  
     call DestroyGroup(g)
     set u=null


 

lawsonДата: Воскресенье, 30 Января 2011, 20:07:07 | Сообщение # 3
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Dreii
Да ладно тебе я тоже так начинал JASS изучать.

Добавлено (30-01-2011, 20:03)
---------------------------------------------
exitwhen e==null and i==11
Чета я не понял а зачем i == 11
если можно так e==null

Добавлено (30-01-2011, 20:07)
---------------------------------------------
А потом сумму золота у всех юнитов занести в переменную сделать так
i = сумма золота
o = i / кол-во игроков


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Воскресенье, 30 Января 2011, 20:05:42
 

DreiiДата: Воскресенье, 30 Января 2011, 20:39:41 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
lawson,
Quote (lawson)
i == 11

Для все игроков)


 

lawsonДата: Воскресенье, 30 Января 2011, 20:46:37 | Сообщение # 5
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
А ты не подумал если в группе взятых юнитов будет больше 11 тогда что i станет 12? и loop твой на числе 11 остановитсья и возьмет только 11 юниов вокруг. Или вообще не остановиться так как e еще не будет равен null а i уже будет равен 11.

Добавлено (30-01-2011, 20:46)
---------------------------------------------
Ладно тма как раз подходящая мне тоже нада помощь с кодом. Так вот мне надо как в доте воскрещение крипов мне что надо группу крипов занести в переменную и если юнит умирает и являеться одним из группы юнитов то ставить эту группу как i[номер группы юнитов] = i - 1 а когда врем придет проверит если все юниты из этой группы мертвы то воскресить их?


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Воскресенье, 30 Января 2011, 20:43:53
 

DreiiДата: Воскресенье, 30 Января 2011, 21:01:49 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
lawson, мм да насчет юнитав неподумал))

 

lawsonДата: Воскресенье, 30 Января 2011, 21:03:41 | Сообщение # 7
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Так что придеться создавать второй loop внутри этого или отдельно и там каждому игроку пихать деньги.

Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

DreiiДата: Воскресенье, 30 Января 2011, 21:14:42 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
lawson, я сначло и создавал)Но потому подумал что так проще,теряю хзватку

 

lawsonДата: Воскресенье, 30 Января 2011, 21:18:30 | Сообщение # 9
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Хех :)

Добавлено (30-01-2011, 21:18)
---------------------------------------------
от автора ни звука значит его все утраивает.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помощь с кодом
  • Страница 1 из 1
  • 1
Поиск:

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