[JASSфак] Лекция 1. Первое знакомство с JASS.
|
|
Akvarium | Дата: Четверг, 19 Ноября 2009, 17:35:14 | Сообщение # 76 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Quote (|DUОS|) Ждём. Завтра обещаю 2-й урок. Quote (|DUОS|) Вчера, 18:24 (((((Ждеемм......((((
|
|
|
|
GooGLe | Дата: Четверг, 19 Ноября 2009, 18:05:41 | Сообщение # 77 |
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Блокировки:
| 0x4453, выпендриваясь пиши: local unit caster = GetSpellAbilityUnit() local real txx = GetSpellTargetX() - GetUnitX(caster) local real tyy = GetSpellTargetY() - GetUnitY(caster) local real r = SquareRoot(txx * txx + tyy * tyy) / 800 local timer t = CreateTimer() call TimerStart(t,r,false,function ActionsAfterTimer) set t = null Но это "Преждевременная оптимизация".
|
|
|
|
0x4453 | Дата: Четверг, 19 Ноября 2009, 18:16:15 | Сообщение # 78 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: 13
Блокировки:
| GooGLe, я не выпендриваюсь,я показываю лучший вариант
|
|
|
|
GooGLe | Дата: Четверг, 19 Ноября 2009, 18:34:26 | Сообщение # 79 |
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Блокировки:
| То есть мой вариант хуже приведенного тобой: Code local unit caster = GetSpellAbilityUnit() local real tx = GetSpellTargetX() local real ty = GetSpellTargetY() local real cx = GetUnitX(caster) local real cy = GetUnitY(caster) llocal real r = (SquareRoot((tx-cx)*(tx-cx)+(ty-cy)*(ty-cy)))/ 800 local timer t = CreateTimer() call TimerStart(t,r,false,function ActionsAfterTimer) set t = null set caster = null ?
|
|
|
|
[DUОS] | Дата: Четверг, 19 Ноября 2009, 19:01:05 | Сообщение # 80 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Quote (GooGLe) это "Преждевременная оптимизация". GooGLe, Согласен.
|
|
|
|
0x4453 | Дата: Четверг, 19 Ноября 2009, 20:36:32 | Сообщение # 81 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: 13
Блокировки:
| GooGLe, нет,не хуже,у тебя сгруппированно немного по другому
|
|
|
|
Proden | Дата: Четверг, 19 Ноября 2009, 21:29:34 | Сообщение # 82 |
4 уровень
Группа: Проверенные
Сообщений: 83
Награды: 0
Репутация: 21
Блокировки:
| Вот, что смог нацарапать.. Добавлено (19-11-2009, 21:29) ---------------------------------------------
Code function Trig_ini_Actions takes nothing returns nothing endfunction
//=========================================================================== function InitTrig_ini takes nothing returns nothing set gg_trg_ini = CreateTrigger( ) call TriggerAddAction( gg_trg_ini, function Trig_ini_Actions ) call KillUnit ( gg_unit_Hpal_0001 ) call DisplayTimedTextToForce( GetPlayersAll(), 10, "Наш герой погиб(" ) call SetTimeOfDay( 5.00 ) call SetTimeOfDayScalePercentBJ( 30.00 ) call CustomVictoryBJ( Player(0), true, true ) endfunction
|
|
|
|
[DUОS] | Дата: Четверг, 19 Ноября 2009, 21:31:49 | Сообщение # 83 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| function Trig_ini_Actions takes nothing returns nothing Все действия нужно публиковать здесь. То есть получится: Code function Trig_ini_Actions takes nothing returns nothing call KillUnit ( gg_unit_Hpal_0001 ) call DisplayTimedTextToForce( GetPlayersAll(), 10, "Наш герой погиб(" ) call SetTimeOfDay( 5.00 ) call SetTimeOfDayScalePercentBJ( 30.00 ) call CustomVictoryBJ( Player(0), true, true ) endfunction
//=========================================================================== function InitTrig_ini takes nothing returns nothing set gg_trg_ini = CreateTrigger( ) call TriggerAddAction( gg_trg_ini, function Trig_ini_Actions ) endfunction Попробуй по начинке развернуть BJ.
|
|
|
|
Akvarium | Дата: Четверг, 19 Ноября 2009, 21:32:47 | Сообщение # 84 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Proden, BJ
|
|
|
|
Junero | Дата: Четверг, 19 Ноября 2009, 21:37:26 | Сообщение # 85 |
1 уровень
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 3
Блокировки:
| -------- call SetTextTagTextBJ( t, "Привет", 10) -------- Вроде так получилась
|
|
|
|
Akvarium | Дата: Четверг, 19 Ноября 2009, 21:45:08 | Сообщение # 86 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Junero, ??? Напиши весь триг.
|
|
|
|
[DUОS] | Дата: Четверг, 19 Ноября 2009, 22:00:09 | Сообщение # 87 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Junero, Весь триг
|
|
|
|
Сорнемус | Дата: Четверг, 19 Ноября 2009, 23:46:11 | Сообщение # 88 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| Quote (|DUОS|) Все действия нужно публиковать здесь Вобще-то в функцию InitTrig_'название' можно заносить действия которые нужно выполнить сразу при загрузке карты (т.е. это как custom script, но в него обычно суют большие функции чтобы они не мешались).
|
|
|
|
[DUОS] | Дата: Пятница, 20 Ноября 2009, 00:03:51 | Сообщение # 89 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Quote (Сорнемус) Вобще-то в функцию InitTrig_'название' можно заносить действия которые нужно выполнить сразу при загрузке карты (т.е. это как custom script, но в него обычно суют большие функции чтобы они не мешались). ну, предпочтительнее в экшнс.
|
|
|
|
Leshii | Дата: Суббота, 21 Ноября 2009, 18:45:48 | Сообщение # 90 |
6 уровень
Группа: Заблокированные
Сообщений: 228
Награды: 1
Репутация: 23
Блокировки:
| [DUОS],У меня ничего не срабатывает.Хотя написал всё правильно(надеюсь) Там дальше продолжение где спецэффект
Он где-то тут углядел Порядок и присматривал за ним.
|
|
|
|
Akvarium | Дата: Суббота, 21 Ноября 2009, 18:52:09 | Сообщение # 91 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Leshii эмм...А где событие?
|
|
|
|
Leshii | Дата: Суббота, 21 Ноября 2009, 19:29:50 | Сообщение # 92 |
6 уровень
Группа: Заблокированные
Сообщений: 228
Награды: 1
Репутация: 23
Блокировки:
| Akvarium, Его что нету??? Я же перед тем как ковертировать в текст сделал его.Событие:Map initialization
Он где-то тут углядел Порядок и присматривал за ним.
|
|
|
|
Akvarium | Дата: Суббота, 21 Ноября 2009, 20:25:50 | Сообщение # 93 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Leshii, а что должно получиться?
|
|
|
|
GooGLe | Дата: Суббота, 21 Ноября 2009, 20:27:50 | Сообщение # 94 |
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Блокировки:
| http://warcraft3ft.info/forum/38-14043-722061-16-1258347867 Учитель так и не исправился. 1-kill: Действие - это функция.(Точка) 2-kil: ...типы переменных, которые нужно... 3-kil: call DisplayTimedTextToForce (GetPlayersAll(), 30, "hello")
|
|
|
|
Leshii | Дата: Суббота, 21 Ноября 2009, 20:42:12 | Сообщение # 95 |
6 уровень
Группа: Заблокированные
Сообщений: 228
Награды: 1
Репутация: 23
Блокировки:
| Quote (Akvarium) Leshii, а что должно получиться? Типа сначало разведует всю карту, потом ждёт 2 секунды, потом появляется сообщение"heloo" на 30 секунд всем игрокам, потом опять ждать 5 сек. и сделать спецэффект в середине карты громовая поступь.
Он где-то тут углядел Порядок и присматривал за ним.
|
|
|
|
[DUОS] | Дата: Суббота, 21 Ноября 2009, 21:26:43 | Сообщение # 96 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Leshii, Типа где у тебя TriggerAddAction в функции InitTrig?
|
|
|
|
Сорнемус | Дата: Суббота, 21 Ноября 2009, 21:33:09 | Сообщение # 97 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| Quote (Leshii) DUОS],У меня ничего не срабатывает.Хотя написал всё правильно(надеюсь) Ахтунг БЖ атакует D:
|
|
|
|
H_A_PK | Дата: Среда, 25 Ноября 2009, 17:22:39 | Сообщение # 98 |
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
| Quote function DisplayTimedTextToForce , real wait, string value returns nothing я в английском не Гуру ,но не пойму именно ето в джазе, чё за f (думаю там надо либо переменую игрока, а инт туда можно пихнуть ,а групу игроков переменную ))Добавлено (25-11-2009, 17:22) ---------------------------------------------
Code function Trig_KocTuHa9_6poH9_____________________u_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'A01C' ) ) then return false endif return true endfunction
function Trig_KocTuHa9_6poH9_____________________u_Func002C takes nothing returns boolean if ( not ( GetUnitAbilityLevelSwapped('A01C', udg_Hec[0]) == 1 ) ) then return false endif return true endfunction
function Trig_KocTuHa9_6poH9_____________________u_Func003C takes nothing returns boolean if ( not ( GetUnitAbilityLevelSwapped('A01C', udg_Hec[0]) == 2 ) ) then return false endif return true endfunction
function Trig_KocTuHa9_6poH9_____________________u_Func004C takes nothing returns boolean if ( not ( GetUnitAbilityLevelSwapped('A01C', udg_Hec[0]) == 3 ) ) then return false endif return true endfunction
function Trig_KocTuHa9_6poH9_____________________u_Actions takes nothing returns nothing set udg_Hec[0] = GetSpellAbilityUnit() if ( Trig_KocTuHa9_6poH9_____________________u_Func002C() ) then set udg_bronay[0] = 300 else endif if ( Trig_KocTuHa9_6poH9_____________________u_Func003C() ) then set udg_bronay[0] = 400 else endif if ( Trig_KocTuHa9_6poH9_____________________u_Func004C() ) then set udg_bronay[0] = 500 else endif call CreateTextTagLocBJ( I2S(udg_bronay[0]), GetUnitLoc(udg_Hec[0]), 30.00, 7.00, 0.00, 100, 0.00, 0 ) set udg_xz[0] = GetLastCreatedTextTag() call TriggerSleepAction( 40.00 ) set udg_bronay[0] = 0 call DestroyTextTagBJ( udg_xz[0] ) endfunction
//=========================================================================== function InitTrig_KocTuHa9_6poH9_____________________u takes nothing returns nothing set gg_trg_KocTuHa9_6poH9_____________________u = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_KocTuHa9_6poH9_____________________u, EVENT_PLAYER_UNIT_SPELL_CAST ) call TriggerAddCondition( gg_trg_KocTuHa9_6poH9_____________________u, Condition( function Trig_KocTuHa9_6poH9_____________________u_Conditions ) ) call TriggerAddAction( gg_trg_KocTuHa9_6poH9_____________________u, function Trig_KocTuHa9_6poH9_____________________u_Actions ) endfunction
Code function Trig_koct_6JIok_____________________u_Conditions takes nothing returns boolean if ( not ( GetAttackedUnitBJ() == udg_Hec[0] ) ) then return false endif return true endfunction
function Trig_koct_6JIok_____________________u_Func001Func004001 takes nothing returns boolean return ( GetUnitStateSwap(UNIT_STATE_LIFE, udg_Hec[0]) < I2R(udg_bronay[1]) ) endfunction
function Trig_koct_6JIok_____________________u_Func001C takes nothing returns boolean if ( not ( udg_bronay[0] > 0 ) ) then return false endif return true endfunction
function Trig_koct_6JIok_____________________u_Actions takes nothing returns nothing if ( Trig_koct_6JIok_____________________u_Func001C() ) then set udg_bronay[1] = R2I(GetUnitStateSwap(UNIT_STATE_LIFE, udg_Hec[0])) loop exitwhen ( Trig_koct_6JIok_____________________u_Func001Func004001() ) call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 0.10)) endloop set udg_bronay[2] = ( R2I(GetUnitStateSwap(UNIT_STATE_LIFE, udg_Hec[0])) - udg_bronay[1] ) call SetUnitLifeBJ( udg_Hec[0], ( GetUnitStateSwap(UNIT_STATE_LIFE, udg_Hec[0]) - I2R(udg_bronay[2]) ) ) set udg_bronay[0] = ( udg_bronay[0] + udg_bronay[2] ) call DestroyTextTagBJ( udg_xz[0] ) call CreateTextTagLocBJ( I2S(udg_bronay[0]), GetUnitLoc(udg_Hec[0]), 30.00, 7.00, 0.00, 100, 0.00, 0 ) set udg_xz[0] = GetLastCreatedTextTag() else call DestroyTextTagBJ( udg_xz[0] ) endif endfunction
//=========================================================================== function InitTrig_koct_6JIok_____________________u takes nothing returns nothing set gg_trg_koct_6JIok_____________________u = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_koct_6JIok_____________________u, EVENT_PLAYER_UNIT_ATTACKED ) call TriggerAddCondition( gg_trg_koct_6JIok_____________________u, Condition( function Trig_koct_6JIok_____________________u_Conditions ) ) call TriggerAddAction( gg_trg_koct_6JIok_____________________u, function Trig_koct_6JIok_____________________u_Actions ) endfunction
Вот короче , спелл на Гуи преведёный в код, как его упростить в джазз ? стереть все БЖ и убг
проклятье ляжет на любого кто дочитает до конца нет не дочитывай не надо остановись ну всё капец
|
|
|
|
0x4453 | Дата: Среда, 25 Ноября 2009, 17:34:38 | Сообщение # 99 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: 13
Блокировки:
| H_A_PK, читай лекции и статьи
|
|
|
|
H_A_PK | Дата: Среда, 25 Ноября 2009, 17:57:26 | Сообщение # 100 |
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
| 0x4453, OK
проклятье ляжет на любого кто дочитает до конца нет не дочитывай не надо остановись ну всё капец
|
|
|
|