|
|
|
|
Проверьте код новичка
|
|
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 чтобы не замарачиваться я же придерживаюсь идеализации кода в плане золотой середины среди читабельности и эффективности!
|
|
|
|
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 говно, так и будут говорить
|
|
|
|
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 (как Драгон или Николас), тогда я тебя послушаю. А пока - ты не более чем Моська, гавкающая на слона. Окда?
Сообщение отредактировал 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. Перевод из гуи и его последующая правка намного лучше
Сообщение отредактировал 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, умник, да? Дошел до оскорблений на ровном месте?
|
|
|
|
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, пхахахахахаха. Вот если бы я с умным видом загонял про нееверные основы жасса, гоня на Векса, то тогда да - мания величия
|
|
|
|
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. Ты так сможешь?
Сообщение отредактировал 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, аналогично, сорри. Сорвался чуток, не люблю оскорбления
|
|
|
|
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
|
|
|
|
Hexing | Дата: Пятница, 23 Декабря 2011, 17:33:41 | Сообщение # 25 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (Ty3uK) Hexing, когда ты сможешь кодить одинаково хорошо на vJass и Jass 2, то претензий не будет (ибо Драгона и Николаса тут уважают все), а пока ты не более чем пустослов, который не может без JNGP вообще ничего
lawson, пхахахахаха. Николаса уважают за то (в частности), что он одинаково хорошо кодит и на vJass, cJass и на обычном Jass 2. Ты так сможешь? полный бред
|
|
|
|
|
|
|
|
|
|
|