|
|
|
|
[JASSфак] Лекция 5. Функция GetLocalPlayer()
|
|
[DUОS] | Дата: Пятница, 01 Января 2010, 21:42:46 | Сообщение # 1 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Сегодняшняя лекция написана здесь. Я описывал там функцию H2I, знаменитую своей "Ошибкой возвращения". На 1.24 её убрали, поэтому вместо неё используем GetHandleId(). Но знать эту функцию вам не помешает. Итак, задания: 1. Потренироваться в обращении с функцией GetLocalPlayer(). Также можно обсудить статью. 2. Карты-примеры выкладывать в этой теме. Я укажу на ошибки и начиная с этого урока оценки начну выставлять в дневник.
Сообщение отредактировал [DUОS] - Суббота, 02 Января 2010, 00:37:36 |
|
|
|
H_A_PK | Дата: Четверг, 07 Января 2010, 02:27:43 | Сообщение # 2 |
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
| что так, темка пустует )) Code local integer i = 0 loop exiwhen i==12 then If (GetLocalPlaye() == i) and ( GetPlayerSlotState(GetLocalPlaye()) == PLAYER_SLOT_STATE_PLAYING ) call CameraSetupApplyForPlayer( true, gg_cam_Camera_001, GetLocalPlaye(), 1 ) set i = i + 1 endif endloop
проклятье ляжет на любого кто дочитает до конца нет не дочитывай не надо остановись ну всё капец
Сообщение отредактировал H_A_PK - Пятница, 08 Января 2010, 15:50:33 |
|
|
|
Akvarium | Дата: Воскресенье, 10 Января 2010, 00:10:49 | Сообщение # 3 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Code function Center takes nothing returns location return Location(GetRectCenterX(gg_rct_A), GetRectCenterY(gg_rct_A)) endfunction function Trig_A_Actions takes nothing returns boolean local location l = Center() return IssuePointOrderLoc( gg_unit_nemi_0001, "patrol", l ) endfunction
//=========================================================================== function InitTrig_INI0D2 takes nothing returns nothing set gg_trg_INI0D2 = CreateTrigger( ) call TriggerAddAction( gg_trg_INI0D2, function Trig_A_Actions ) endfunction Че он ругается?О_о Лог ошибки: Code Undeclared variable gg_trg_INI0D2 Undeclared variable gg_rct_A Undeclared variable gg_unit_nemi_0001 На карте стоит посол и область "A". На имя триггера всегда ругается. Мб че исправить в настройках? Есть такой же триг: Code function Center takes nothing returns location return Location(GetRectCenterX(gg_rct_A), GetRectCenterY(gg_rct_A)) endfunction function Trig_A_Actions takes nothing returns boolean local location l = Center() return IssuePointOrderLoc( gg_unit_nemi_0002, "patrol", l ) endfunction
//=========================================================================== function InitTrig_INI takes nothing returns nothing set gg_trg_INI = CreateTrigger( ) call TriggerAddAction( gg_trg_INI, function Trig_A_Actions ) endfunction Скопировал нижний триггер и поменял 0002 на 0001 и такая вот хрень...
Сообщение отредактировал Akvarium - Воскресенье, 10 Января 2010, 00:12:29 |
|
|
|
ctpaxm | Дата: Воскресенье, 10 Января 2010, 00:38:13 | Сообщение # 4 |
7 уровень
Группа: Проверенные
Сообщений: 418
Награды: 0
Репутация: 60
Блокировки:
| на Undeclared variable необращай внимания... ругаться будет, но на целостность карты невлияет, и всё будет работать
Dead Girls can't say NOT! Делаю свой ORPG проект, нужны триггерщики(JASS-еры) и идейщики... Все подробности в ЛС
Сообщение отредактировал ctpaxm - Воскресенье, 10 Января 2010, 00:41:51 |
|
|
|
Сорнемус | Дата: Воскресенье, 10 Января 2010, 01:07:53 | Сообщение # 5 |
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
| Quote (Akvarium) Че он ругается?О_о Джасскрафтом проверял? Естественно будет ругаться, ибо он не обращает внимания на дефолтные переменные. ЗЫ: А как твой триггер относиться к GetLocalPlayer?
Сообщение отредактировал Сорнемус - Воскресенье, 10 Января 2010, 01:10:47 |
|
|
|
H_A_PK | Дата: Воскресенье, 10 Января 2010, 04:22:32 | Сообщение # 6 |
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
| Сорнемус, у мну вкрно хоть ?
проклятье ляжет на любого кто дочитает до конца нет не дочитывай не надо остановись ну всё капец
|
|
|
|
Akvarium | Дата: Воскресенье, 10 Января 2010, 12:26:05 | Сообщение # 7 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Сорнемус, 1. это триггер относящийся к дз (вспомогательный) 2. Что он просто так ругается это ясно. Но проблема что карта с первым триггером НЕ ЗАПУСКАЕТСЯ. Добавлено (10-01-2010, 11:56) --------------------------------------------- Ладно. Пошел делать другую версию ДЗ Добавлено (10-01-2010, 12:26) --------------------------------------------- Ээээээ..... А теперь в чем ошибка? Code function Effect takes nothing returns effect return bj_lastCreatedEffect endfunction function Trig_A_Actions takes nothing returns nothing local effect e local string s if GetLocalPlayer() == Player(1) then set s = "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" elseif GetLocalPlayer() == Player(0) then set s = "Abilities\\Spells\\Human\\Polymorph\\PolyMorphDoneGround.mdl" endif call AddSpecialEffect(s, GetLocationX(gg_unit_hpea_0001), GetLocationY(gg_unit_hpea_0001)) set e = Effect() call TriggerSleepAction(2.00) call DestroyEffect(e) endfunction
//=========================================================================== function InitTrig_A takes nothing returns nothing local integer i set gg_trg_A = CreateTrigger( ) loop exitwhen i == 12 call TriggerRegisterPlayerChatEvent( gg_trg_A, Player(i), "G", true ) set i = i + 1 endloop call TriggerAddAction( gg_trg_A, function Trig_A_Actions ) endfunction Возможно я туплю. Тогда сори =). ___________________________________ H_A_PK, у тя эдитора нет? Неразбирая код видно что Quote (H_A_PK) GetLocalPlaye() он сочтет за ошибку.
Сообщение отредактировал Akvarium - Воскресенье, 10 Января 2010, 12:29:37 |
|
|
|
[DUОS] | Дата: Воскресенье, 10 Января 2010, 13:26:29 | Сообщение # 8 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Akvarium, Code function Trig_A_Actions takes nothing returns nothing local effect e local string s if GetLocalPlayer() == Player(1) then set s = "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" elseif GetLocalPlayer() == Player(0) then set s = "Abilities\\Spells\\Human\\Polymorph\\PolyMorphDoneGround.mdl" endif set e = AddSpecialEffect(s,GetUnitX(gg_unit_hpea_0001),GetUnitY(gg_unit_hpea_0001)) call DestroyEffect(e) set e = null endfunction
//=========================================================================== function InitTrig_A takes nothing returns nothing local integer i set gg_trg_A = CreateTrigger() loop exitwhen i == 12 call TriggerRegisterPlayerChatEvent( gg_trg_A, Player(i), "G", true ) set i = i + 1 endloop call TriggerAddAction( gg_trg_A, function Trig_A_Actions ) endfunction А теперь то, что я сделал: 1) GetLocationX() и GetLocationY() ты применял к gg_unit_.... Подумай, разве юнит является локацией-точкой? Оо 2) Обнуляй эффект. 3) bj_lastcreatedeffect тут не нужна. Просто сети переменную сразу как создаёшь эффект.
|
|
|
|
Akvarium | Дата: Воскресенье, 10 Января 2010, 13:59:50 | Сообщение # 9 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| [DUОS], понял. Спс. Добавлено (10-01-2010, 13:59) --------------------------------------------- Оо Странно... Не работает... Code function Trig_A_Actions takes nothing returns nothing local effect e local string s if GetLocalPlayer() == Player(1) then set s = "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" elseif GetLocalPlayer() == Player(0) then set s = "Abilities\\Spells\\Human\\Polymorph\\PolyMorphDoneGround.mdl" endif set e = AddSpecialEffect(s,GetUnitX(gg_unit_hpea_0001),GetUnitY(gg_unit_hpea_0001)) call DestroyEffect(e) set e = null endfunction
//=========================================================================== function InitTrig_A takes nothing returns nothing local integer i set gg_trg_A = CreateTrigger() loop exitwhen i == 12 call TriggerRegisterPlayerChatEvent( gg_trg_A, Player(i), "G", true ) set i = i + 1 endloop call TriggerAddAction( gg_trg_A, function Trig_A_Actions ) endfunction На карте 2 работника... Выдает меню вара О_о
|
|
|
|
[DUОS] | Дата: Воскресенье, 10 Января 2010, 16:48:05 | Сообщение # 10 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| gg_unit_hpea_0001 Совершенно забыл... рабочих в джассе создавать лучше триггерно. Добавлено (10-01-2010, 16:48) ---------------------------------------------
Code function Trig_A_Actions takes nothing returns nothing local effect e local string s local unit u = CreateUnit(Player(0),'hpea',2.4,3.5,270.) if GetLocalPlayer() == Player(1) then set s = "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" elseif GetLocalPlayer() == Player(0) then set s = "Abilities\\Spells\\Human\\Polymorph\\PolyMorphDoneGround.mdl" endif set e = AddSpecialEffect(s,GetUnitX(u),GetUnitY(u)) set e = null set u = null endfunction
//=========================================================================== function InitTrig_A takes nothing returns nothing set gg_trg_A = CreateTrigger() call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(0),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(1),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(2),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(3),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(4),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(5),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(6),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(7),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(8),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(9),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(10),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(11),"G",true) call TriggerAddAction(gg_trg_A,function Trig_A_Actions) endfunction
|
|
|
|
Akvarium | Дата: Среда, 13 Января 2010, 22:22:15 | Сообщение # 11 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| Сдаю дз: Code function Trig_A_Actions takes nothing returns nothing local effect e local string s local integer i = GetRandomInt(0, 1) local unit u = CreateUnit(Player(0),'hpea',2.4,3.5,270.) if GetLocalPlayer() == Player(1) then set s = "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" elseif GetLocalPlayer() == Player(0) then set s = "Abilities\\Spells\\Human\\Polymorph\\PolyMorphDoneGround.mdl" elseif GetLocalPlayer() == Player(10) then call KillUnit(u) endif if i == 1 then set e = AddSpecialEffect(s,GetUnitX(u),GetUnitY(u)) else call KillUnit(u) endif set e = null set u = null endfunction
//=========================================================================== function InitTrig_A takes nothing returns nothing set gg_trg_A = CreateTrigger() call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(0),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(1),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(2),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(3),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(4),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(5),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(6),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(7),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(8),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(9),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(10),"G",true) call TriggerRegisterPlayerChatEvent(gg_trg_A,Player(11),"G",true) call TriggerAddAction(gg_trg_A,function Trig_A_Actions) endfunction Добавлено (11-01-2010, 16:24) --------------------------------------------- 2 версия ДЗ: Code function Trig_A_Actions takes nothing returns nothing local real minX = GetRectMinX(gg_rct_A) local real minY = GetRectMinY(gg_rct_A) local real maxX = GetRectMaxX(gg_rct_A) local real maxY = GetRectMaxY(gg_rct_A) if (GetLocalPlayer() == Player(0)) then call SetCameraBounds(minX, minY, minX, maxY, maxX, maxY, maxX, minY) endif endfunction
//=========================================================================== function InitTrig_A takes nothing returns nothing set gg_trg_A = CreateTrigger( ) call TriggerAddAction( gg_trg_A, function Trig_A_Actions ) endfunction Добавлено (13-01-2010, 22:22) --------------------------------------------- Дуос ты где?
Сообщение отредактировал Akvarium - Понедельник, 11 Января 2010, 16:22:14 |
|
|
|
[DUОS] | Дата: Среда, 13 Января 2010, 23:37:38 | Сообщение # 12 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Quote (Akvarium) call SetCameraBounds(minX, minY, minX, maxY, maxX, maxY, maxX, minY) Akvarium, Гораздо проще сделать call PanCameraTo(GetRectCenterX(gg_rct_A),GetRectCenterY(gg_rct_A))
|
|
|
|
Akvarium | Дата: Четверг, 14 Января 2010, 16:02:11 | Сообщение # 13 |
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
| [DUОS], учту.
|
|
|
|
|
|
|
|
|
|
|