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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » Проверьте код новичка
Проверьте код новичка
Brut@lusДата: Пятница, 23 Декабря 2011, 16:26:49 | Сообщение # 1
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
Я вот новичок в JASS, и вот простой триггер, переведённый в текст. Я там подправил действие DisplayTextToForce (в триггерах приходилось использовать его + ф-цию конверта игрока в группу игроков), и заменил его на DisplayTextToPlayer. Ах да, ещё вместо GetConvertedPlayerId(udg_player) поставил GetPlayerId(udg_player) + 1
Code
function Trig_unitLimit_Func002Func001C takes nothing returns boolean
      if ( not ( udg_cou[GetPlayerId(udg_player) + 1] == 10 ) ) then
          return false
      endif
      return true
endfunction

function Trig_unitLimit_Func002C takes nothing returns boolean
      if ( not ( GetUnitTypeId(GetTrainedUnit()) == 'h01H' ) ) then
          return false
      endif
      return true
endfunction

function Trig_unitLimit_Func003Func001C takes nothing returns boolean
      if ( not ( udg_cod[GetPlayerId(udg_player) + 1] == 10 ) ) then
          return false
      endif
      return true
endfunction

function Trig_unitLimit_Func003C takes nothing returns boolean
      if ( not ( GetUnitTypeId(GetTrainedUnit()) == 'h004' ) ) then
          return false
      endif
      return true
endfunction

function Trig_unitLimit_Actions takes nothing returns nothing
      set udg_player = GetOwningPlayer(GetTrainedUnit())
      if ( Trig_unitLimit_Func002C() ) then
          if ( Trig_unitLimit_Func002Func001C() ) then
              call KillUnit( GetTrainedUnit() )
              call DisplayTextToPlayer(udg_player, 0, 0, TRIGSTR_1500)
          else
              set udg_cou[GetPlayerId(udg_player) + 1] = ( udg_cou[1] + 1 )
          endif
      else
      endif
      if ( Trig_unitLimit_Func003C() ) then
          if ( Trig_unitLimit_Func003Func001C() ) then
              call KillUnit( GetTrainedUnit() )
              call DisplayTextToPlayer(udg_player, 0, 0, TRIGSTR_1501)
          else
              set udg_cod[GetPlayerId(udg_player) + 1] = ( udg_cou[1] + 1 )
          endif
      else
      endif
endfunction

//===========================================================================
function InitTrig_unitLimit takes nothing returns nothing
      set gg_trg_unitLimit = CreateTrigger(  )
      call TriggerRegisterAnyUnitEventBJ( gg_trg_unitLimit, EVENT_PLAYER_UNIT_TRAIN_FINISH )
      call TriggerAddAction( gg_trg_unitLimit, function Trig_unitLimit_Actions )
endfunction

сам код. суть триггера в отлавливании количества построенных юнитов определённого типа (для каждого игрока в массиве своя ячейка в которой хранятся данные о количестве его построенных юнитов). если это больше десяти, то юнит убивается.

Помогите отшлифовать код.




Сообщение отредактировал Brut@lus - Пятница, 23 Декабря 2011, 16:27:10
 

[DUОS]Дата: Пятница, 23 Декабря 2011, 16:28:16 | Сообщение # 2
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Code
function Trig_unitLimit_Actions takes nothing returns nothing
      local unit u = GetTrainedUnit()
      local player p = GetOwningPlayer(u)   
      local integer ut = GetUnitTypeId(u)
      local integer id = GetPlayerId(p) + 1

      if ut == 'h01H' then
          if udg_cou[id] == 10 then
              call KillUnit(u)
              call DisplayTextToPlayer(p,0.,0.,"TRIGSTR_1500")
          else
              set udg_cou[id] = udg_cou[id] + 1
          endif
      elseif ut == 'h004' then
          if udg_cou[id] == 10 then
              call KillUnit(u)
              call DisplayTextToPlayer(p,0.,0.,"TRIGSTR_1501")
          else
              set udg_cou[id] = udg_cou[id] + 1
          endif      
      endif
         
      set u = null
      set p = null
endfunction

//===========================================================================
function InitTrig_unitLimit takes nothing returns nothing
       set gg_trg_unitLimit = CreateTrigger()
       call TriggerRegisterAnyUnitEventBJ(gg_trg_unitLimit,EVENT_PLAYER_UNIT_TRAIN_FINISH)
       call TriggerAddAction(gg_trg_unitLimit,function Trig_unitLimit_Actions)
endfunction

Вот. Знал бы о коде больше, сжал бы ещё больше.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)


Сообщение отредактировал [DUОS] - Пятница, 23 Декабря 2011, 16:28:57
 

Brut@lusДата: Пятница, 23 Декабря 2011, 16:32:05 | Сообщение # 3
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
[DUОS], Cпасибо!

Добавлено (23 Декабрь 2011, 16:32:05)
---------------------------------------------
[DUОS],

Quote
ТriggerRegisterAnyUnitEventBJ

А от этого не избавится?


 

HexingДата: Пятница, 23 Декабря 2011, 16:35:34 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Code
ТriggerRegisterAnyUnitEventBJ

=
Code
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(0), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(1), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(2), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(3), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(4), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(5), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(6), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(7), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(8), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(9), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(10), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)
call TriggerRegisterPlayerUnitEvent(gg_trg_unitLimit, Player(11), EVENT_PLAYER_UNIT_TRAIN_FINISH, null)


 

Brut@lusДата: Пятница, 23 Декабря 2011, 16:37:13 | Сообщение # 5
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
Hexing, однако, ... супер. Пусть так останется.

Добавлено (23 Декабрь 2011, 16:36:59)
---------------------------------------------
както близы тупанули

Добавлено (23 Декабрь 2011, 16:37:13)
---------------------------------------------
неужели эту гору циклом не запилить?


 

HexingДата: Пятница, 23 Декабря 2011, 16:44:33 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
можно, но цикл медленнее - зачем цикл(повторяющиеся действия) когда мы знаем колво воспроизводимых действия
кстати помойму у близзардов в этой функции циклом
но зачем лишняя переменная + лишняя проверка + лишнее присвоение переменной когда можно руками написать это скока нада раз
циклы нужны когда в них учавствует неизвестная переменная
но опять же это дело вкуса, и большинство впелл мейкеров и им подобных юзают просто
Code
ТriggerRegisterAnyUnitEventBJ
чтобы не замарачиваться
я же придерживаюсь идеализации кода в плане золотой середины среди читабельности и эффективности! buba


 

lawsonДата: Пятница, 23 Декабря 2011, 17:00:34 | Сообщение # 7
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Вот интересно, кода "крутые кодеры" типа дуоса фкофа , фаиона кричали вот вжасс и сжасс эффективнее и лучше чем обычный жасс2, я говорил зачем эти все примочки если все равно все компилируется в обычный жасс, теперь когда я использую вжасс и сжасс все говорят наоборот что это гавножассы и не стоит их использовать. Терпеть вас не могу!

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


Сообщение отредактировал lawson - Пятница, 23 Декабря 2011, 17:01:15
 

Ty3uKДата: Пятница, 23 Декабря 2011, 17:06:13 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Не плачь, Лавс, все как говорили, что cjass и vjass говно, так и будут говорить

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Пятница, 23 Декабря 2011, 17:07:22 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (lawson)
Вот интересно, кода "крутые кодеры" типа дуоса фкофа , фаиона кричали вот вжасс и сжасс эффективнее и лучше чем обычный жасс2, я говорил зачем эти все примочки если все равно все компилируется в обычный жасс, теперь когда я использую вжасс и сжасс все говорят наоборот что это гавножассы и не стоит их использовать. Терпеть вас не могу!

+1

Добавлено (23 Декабрь 2011, 17:07:22)
---------------------------------------------
Ty3uK, уходишь от ответа, как это похоже на тебя


 

lawsonДата: Пятница, 23 Декабря 2011, 17:10:36 | Сообщение # 10
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Ty3uK, ОК, чета наверное ты поздновато узнал правду или вообще ее не знал, как они тут себе глотки рвали кто какой жасс использует и какой лучше.

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

Ty3uKДата: Пятница, 23 Декабря 2011, 17:13:58 | Сообщение # 11
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Hexing, лолштоле? топай к себе на хгм, я уже показывал доказательства

lawson, правда для меня - печаль за тебя, когда ты сговножассился. Мне тебя жаль. Рли

Hexing, вот когда ты сможешь написать код на обычном жассе без C и V (как Драгон или Николас), тогда я тебя послушаю. А пока - ты не более чем Моська, гавкающая на слона. Окда?


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Пятница, 23 Декабря 2011, 17:14:09
 

HexingДата: Пятница, 23 Декабря 2011, 17:15:40 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Ty3uK, это не доказательство
не вижу ничего плохого в коде и если чтото и плохо то дело в авторах
Quote (Ty3uK)
к себе на хгм

хгм не мой и я там только статьи читаю, так что захлопни свой извергатель оскорблений и за ддось мой комп раз так злишься хз на чё

Добавлено (23 Декабрь 2011, 17:15:40)
---------------------------------------------

Quote (Ty3uK)
Hexing, вот когда ты сможешь написать код на обычном жассе без C и V (как Драгон или Николас), тогда я тебя послушаю. А пока - ты не более чем Моська, гавкающая на слона. Окда?

мне твоё признание не нужно, перед гавнарями не расхлёбываюсь в бутылочку


 

lawsonДата: Пятница, 23 Декабря 2011, 17:15:43 | Сообщение # 13
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Ty3uK)
когда ты сговножассился

Ладно Ty3uK, видать дуос теперь клизьмой не пользуется для промывки мозгов.
Quote (Ty3uK)
правда для меня - печаль за тебя

Обоснуй!


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

Ty3uKДата: Пятница, 23 Декабря 2011, 17:17:48 | Сообщение # 14
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Hexing, спеллмейкерство на Jass 2? Го?

lawson, я уже говорил - страшное дело фигачить доску на vJass. Перевод из гуи и его последующая правка намного лучше


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Пятница, 23 Декабря 2011, 17:17:57
 

lawsonДата: Пятница, 23 Декабря 2011, 17:19:29 | Сообщение # 15
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Ty3uK)
гавкающая на слона

Это было смешно и кто тут слон, у кого мания величия? Неужто Ty3uK, ты совсем одусился.


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

Ty3uKДата: Пятница, 23 Декабря 2011, 17:20:05 | Сообщение # 16
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Hexing, умник, да? Дошел до оскорблений на ровном месте?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Пятница, 23 Декабря 2011, 17:20:22 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Ty3uK, я повторяюсь, для меня нет не малейшей надобности кодить на Jass 2 когда есть vJass с его удобными макросами и другими фичами, а на твои предпочтения мне плевать в той мере, чтобы они не влияли на меня косвенно или прямо, словесно или физически!
Quote (Ty3uK)
Перевод из гуи и его последующая правка намного лучше
одно другому не мешает, тоже самое делают vJass-ники


 

Ty3uKДата: Пятница, 23 Декабря 2011, 17:20:58 | Сообщение # 18
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
lawson, пхахахахахаха. Вот если бы я с умным видом загонял про нееверные основы жасса, гоня на Векса, то тогда да - мания величия

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

lawsonДата: Пятница, 23 Декабря 2011, 17:22:16 | Сообщение # 19
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Ty3uK)
я уже говорил - страшное дело фигачить доску на vJass

Кароче я заканчиваю этот филиал неадекватов, Я уже тебе много раз писал по этому поводу, теперь что ты будешь всегда меня попрекать в этом? Мда как говорится: если делаешь чтото делай это правильно и не обращай что говорят другие. Так что надо брать пример с Николаса: делать и забить на всех остальных, дуосов(во множиственном числе так как их уже тут много).


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


Сообщение отредактировал lawson - Пятница, 23 Декабря 2011, 17:23:24
 

Ty3uKДата: Пятница, 23 Декабря 2011, 17:23:37 | Сообщение # 20
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Hexing, когда ты сможешь кодить одинаково хорошо на vJass и Jass 2, то претензий не будет (ибо Драгона и Николаса тут уважают все), а пока ты не более чем пустослов, который не может без JNGP вообще ничего

lawson, пхахахахаха. Николаса уважают за то (в частности), что он одинаково хорошо кодит и на vJass, cJass и на обычном Jass 2. Ты так сможешь?


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Пятница, 23 Декабря 2011, 17:23:44
 

HexingДата: Пятница, 23 Декабря 2011, 17:24:17 | Сообщение # 21
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Ty3uK, извени, опыта в холиваров немного поэтому срываюсь быстро
но ты не волнуйся, я тебя по прежнему люблю и уважаю


 

Ty3uKДата: Пятница, 23 Декабря 2011, 17:24:51 | Сообщение # 22
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Quote (lawson)
множиственном

закат русской нации близко...

Добавлено (23 Декабрь 2011, 17:24:51)
---------------------------------------------
Hexing, аналогично, сорри. Сорвался чуток, не люблю оскорбления ^_^


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

lawsonДата: Пятница, 23 Декабря 2011, 17:25:54 | Сообщение # 23
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Ty3uK)
закат русской нации близко...

Главное смысл понятен!

Добавлено (23 Декабрь 2011, 17:25:54)
---------------------------------------------

Quote (Ty3uK)
Ты так сможешь?

А нужно?


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

Ty3uKДата: Пятница, 23 Декабря 2011, 17:29:38 | Сообщение # 24
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
lawson, ну так производные же лучше учить в 11 классе, а не в 8

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Пятница, 23 Декабря 2011, 17:33:41 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)
Hexing, когда ты сможешь кодить одинаково хорошо на vJass и Jass 2, то претензий не будет (ибо Драгона и Николаса тут уважают все), а пока ты не более чем пустослов, который не может без JNGP вообще ничего

lawson, пхахахахаха. Николаса уважают за то (в частности), что он одинаково хорошо кодит и на vJass, cJass и на обычном Jass 2. Ты так сможешь?

полный бред


 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » Проверьте код новичка
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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