Ty3uK | Дата: Пятница, 23 Марта 2012, 09:20:56 | Сообщение # 51 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Итак, многабукаф. Апи:Code function GetTrackableX takes trackable tc returns real return LoadReal(udg_Track_Hash, GetHandleId(tc), 1) endfunction
function GetTrackableY takes trackable tc returns real return LoadReal(udg_Track_Hash, GetHandleId(tc), 2) endfunction
function GetTrackableDescription takes trackable tc returns string return LoadStr(udg_Track_Hash, GetHandleId(tc), 3) endfunction
function GetTrackableOwner takes trackable tc returns player return Player(LoadInteger(udg_Track_Hash, GetHandleId(tc), 4)) endfunction
function CreateTrackableEx takes player owner, string path, real x, real y, integer utype, string desc returns trackable local string tpath = path local trackable tc if GetLocalPlayer() != owner then set tpath = "" endif set tc = CreateTrackable(tpath, x, y, 0.) call SaveInteger(udg_Track_Hash, GetHandleId(tc), 0, utype) call SaveReal(udg_Track_Hash, GetHandleId(tc), 1, x) call SaveReal(udg_Track_Hash, GetHandleId(tc), 2, y) call SaveStr(udg_Track_Hash, GetHandleId(tc), 3, desc) call SaveInteger(udg_Track_Hash, GetHandleId(tc), 4, GetPlayerId(owner)) return tc endfunction
function CreateHeroIcon takes string model, real x, real y, integer utype, string desc returns nothing local trackable tc local integer i = 1 loop exitwhen i > 10 if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then set tc = CreateTrackableEx(Player(i), model, x, y, utype, desc) call SaveAgentHandle(udg_Track_Hash, 0, GetPlayerId(Player(i)), CreateUnit(Player(i), 'e00C', -8158., 8158., 0)) call TriggerRegisterTrackableTrackEvent(gg_trg_TrackTrackables, tc) call TriggerRegisterTrackableHitEvent(gg_trg_HitTrackable, tc) if GetLocalPlayer() != Player(i) then call ShowUnit(LoadUnitHandle(udg_Track_Hash, 0, GetPlayerId(Player(i))), false) endif endif set i = i + 1 endloop endfunction Триггер создания:Code function Trig_InitTrackables_Actions takes nothing returns nothing local integer hid = GetHandleId(gg_trg_InitTrackables) local string array model local string array desc local integer array utype local integer i = 1 local real x = -865. local real y = -7883. local trackable tc set model[1] = "IconSasuke.mdx" set model[2] = "IconLina.mdx" set model[3] = "IconIchigo.mdx" set model[4] = "IconVergil.mdx" set model[5] = "IconCloud.mdx" set model[6] = "IconVash.mdx" set model[7] = "IconKenshin.mdx" set model[8] = "IconNagi.mdx" set model[9] = "IconSaeko.mdx" set model[10] = "IconBlackStar.mdx" set utype[1] = 'E000' set utype[2] = 'H000' set utype[3] = 'H009' set utype[4] = 'H00H' set utype[5] = 'E001' set utype[6] = 'E005' set utype[7] = 'H003' set utype[8] = 'H008' set utype[9] = 'H00E' set utype[10] = 'E003' set desc[1] = "|cffffcc00Имя:|r Саске Учиха |cffffcc00Аниме:|r Наруто
|cffffcc00Способности:|r Огненный шар, Чидори, Шаринган, Кирин
|cffffcc00Сила:|r 20 +1.7 с уровнем |cffffcc00Ловкость:|r 20 +2.0 с уровнем |cffffcc00Интеллект:|r 20 +1.8 с уровнем
|cffffcc00Скорость передвижения:|r 300 |cffffcc00Тип атаки:|r Ближний бой" set desc[2] = "|cffffcc00Имя:|r Лина Инверс |cffffcc00Аниме:|r Рубаки
|cffffcc00Способности:|r Огненные птицы, Огненный столб, Восстановление маны, Разряд молнии
|cffffcc00Сила:|r 20 +1.8 с уровнем |cffffcc00Ловкость:|r 20 +1.0 с уровнем |cffffcc00Интеллект:|r 20 +3.0 с уровнем
|cffffcc00Скорость передвижения:|r 300 |cffffcc00Тип атаки:|r Дальний бой, 600" set desc[3] = "|cffffcc00Имя:|r Ичиго Куросаки |cffffcc00Аниме:|r Блич
|cffffcc00Способности:|r Гетсуга Теншо, Шунко, Банкай: Тенса Зангетсу, Маска Пустого
|cffffcc00Сила:|r 20 +2.5 с уровнем |cffffcc00Ловкость:|r 20 +1.7 с уровнем |cffffcc00Интеллект:|r 20 +1.7 с уровнем
|cffffcc00Скорость передвижения:|r 300 |cffffcc00Тип атаки:|r Ближний бой" set desc[4] = "|cffffcc00Имя:|r Верджил |cffffcc00Аниме:|r Дьявол может плакать
|cffffcc00Способности:|r Шаг, Призванные мечи, Ямато, Судный день
|cffffcc00Сила:|r 20 +1.5 с уровнем |cffffcc00Ловкость:|r 20 +2.5 с уровнем |cffffcc00Интеллект:|r 20 +1.9 с уровнем
|cffffcc00Скорость передвижения:|r 300 |cffffcc00Тип атаки:|r Ближний бой" set desc[5] = "|cffffcc00Имя:|r Клауд Страйф |cffffcc00Аниме:|r Последняя фантазия
|cffffcc00Способности:|r Звуковой удар, Прорыв, Падение метеорита, Омнислэш
|cffffcc00Сила:|r 20 +2.0 с уровнем |cffffcc00Ловкость:|r 20 +1.7 с уровнем |cffffcc00Интеллект:|r 20 +1.8 с уровнем
|cffffcc00Скорость передвижения:|r 320 |cffffcc00Тип атаки:|r Ближний бой" set desc[6] = "|cffffcc00Имя:|r Паникер Вэш |cffffcc00Аниме:|r Триган
|cffffcc00Способности:|r Пистолет-пулемет, Мощный выстрел, Выстрел в голову, Ангельская пушка
|cffffcc00Сила:|r 20 +2.0 с уровнем |cffffcc00Ловкость:|r 20 +2.0 с уровнем |cffffcc00Интеллект:|r 20 +2.3 с уровнем
|cffffcc00Скорость передвижения:|r 310 |cffffcc00Тип атаки:|r Дальний бой, 600" set desc[7] = "|cffffcc00Имя:|r Кеншин Химура |cffffcc00Аниме:|r Бродяга Кеншин (Самурай Икс)
|cffffcc00Способности:|r Кровавый меч, Способность ботусая, Критический удар, Молниеносная атака
|cffffcc00Сила:|r 20 +1.9 с уровнем |cffffcc00Ловкость:|r 20 +2.1 с уровнем |cffffcc00Интеллект:|r 20 +1.9 с уровнем
|cffffcc00Скорость передвижения:|r 300 |cffffcc00Тип атаки:|r Ближний бой" set desc[8] = "|cffffcc00Имя:|r Наги Соичиро |cffffcc00Аниме:|r Небо и Земля
|cffffcc00Способности:|r Таншин Ко, Боевое безумие, Аура дракона, Сила экзорциста
|cffffcc00Сила:|r 20 +2.3 с уровнем |cffffcc00Ловкость:|r 20 +2.0 с уровнем |cffffcc00Интеллект:|r 20 +1.8 с уровнем
|cffffcc00Скорость передвижения:|r 315 |cffffcc00Тип атаки:|r Ближний бой" set desc[9] = "|cffffcc00Имя:|r Саеко Бусиджима |cffffcc00Аниме:|r Школа мертвяков
|cffffcc00Способности:|r Стремительный клинок, Мощный удар, Безумие, Мастер кендо
|cffffcc00Сила:|r 20 +1.6 с уровнем |cffffcc00Ловкость:|r 20 +2.2 с уровнем |cffffcc00Интеллект:|r 20 +1.5 с уровнем
|cffffcc00Скорость передвижения:|r 320 |cffffcc00Тип атаки:|r Ближний бой" set desc[10] = "|cffffcc00Имя:|r Блэк Стар |cffffcc00Аниме:|r Пожиратель душ
|cffffcc00Способности:|r Теневой сюрикен, Прыжок, Темные клоны, Бесконечность.
|cffffcc00Сила:|r 20 +2.0 с уровнем |cffffcc00Ловкость:|r 20 +1.7 с уровнем |cffffcc00Интеллект:|r 20 +1.8 с уровнем
|cffffcc00Скорость передвижения:|r 310 |cffffcc00Тип атаки:|r Ближний бой"
set udg_Track_Hash = InitHashtable() call CameraSetupApply(gg_cam_HeroPick, false, false) call SetCameraTargetController(gg_unit_e00B_0008, 0., 0., false) //call SetCameraField(CAMERA_FIELD_TARGET_DISTANCE, 400., 0.) loop exitwhen i > 5 call CreateHeroIcon(model[i], x, y, utype[i], desc[i]) set x = x + 40. set i = i + 1 endloop set x = -865. set y = -7923. loop exitwhen i > 10 call CreateHeroIcon(model[i], x, y, utype[i], desc[i]) set x = x + 40. set i = i + 1 endloop call SetCameraBoundsToRect(gg_rct_HeroPick) call FogMaskEnable(false) call FogEnable(false) set tc = null endfunction
function InitTrig_InitTrackables takes nothing returns nothing set gg_trg_InitTrackables = CreateTrigger() call TriggerAddAction(gg_trg_InitTrackables, function Trig_InitTrackables_Actions) endfunction Триггер наведенияCode function Trig_TrackTackables_Actions takes nothing returns nothing local trackable tc = GetTriggeringTrackable() local real x = GetTrackableX(tc) + 18. local real y = GetTrackableY(tc) + 7. local player p = GetTrackableOwner(tc) call SetUnitPosition(LoadUnitHandle(udg_Track_Hash, 0, GetPlayerId(p)), x, y) call ClearTextMessagesForPlayer(p) call DisplayTimedTextToPlayer(p, -1., 0., 5., GetTrackableDescription(tc)) set tc = null set p = null endfunction
function InitTrig_TrackTrackables takes nothing returns nothing set gg_trg_TrackTrackables = CreateTrigger() call TriggerAddAction(gg_trg_TrackTrackables, function Trig_TrackTackables_Actions) endfunction Триггер нажатияCode function Trig_HitTrackable_Timer takes nothing returns nothing local timer t = GetExpiredTimer() local player p = Player(LoadInteger(udg_Hashtable, GetHandleId(t), 0)) if GetLocalPlayer() == p then call SetCameraField(CAMERA_FIELD_TARGET_DISTANCE, 2000., 0.) endif set p = null set t = null endfunction
function Trig_HitTrackable_Actions takes nothing returns nothing local timer t = CreateTimer() local trackable tc = GetTriggeringTrackable() local integer utype = LoadInteger(udg_Track_Hash, GetHandleId(tc), 0) local player p = GetTrackableOwner(tc) local unit u if LoadBoolean(udg_Track_Hash, utype, 0) == false then set u = CreateUnit(p, utype, GetStartLocationX(GetPlayerStartLocation(p)), GetStartLocationY(GetPlayerStartLocation(p)), 0.) call DisplayTextToPlayer(GetLocalPlayer(), 0., 0., GetPlayerNameColored(p) + " выбрал " + GetUnitName(u)) call SaveBoolean(udg_Track_Hash, utype, 0, true) if GetLocalPlayer() == p then call SetCameraField(CAMERA_FIELD_TARGET_DISTANCE, 2000., 0.) call SetCameraPosition(GetStartLocationX(GetPlayerStartLocation(p)), GetStartLocationY(GetPlayerStartLocation(p))) call SetCameraBoundsToRect(bj_mapInitialPlayableArea) call FogEnable(true) call FogMaskEnable(true) call ClearSelection() call SelectUnit(u, true) endif else call ClearTextMessagesForPlayer(p) call DisplayTextToPlayer(p, 0., 0., "|cFFFF0000Этот герой уже выбран другим игроком|r") endif call RemoveUnit(LoadUnitHandle(udg_Track_Hash, 0, GetPlayerId(p))) call RemoveSavedHandle(udg_Track_Hash, 0, GetPlayerId(p)) call SetMultiboardIcon(p, utype) if udg_mods_check == false then set udg_mods_check = true call DisplayTextToPlayer(GetLocalPlayer(), 0., 0., udg_Player_Colors[2] + GetPlayerName(Player(1)) + "|r" + " включил " + "|cffffcc00Normal Mode|r") endif if LoadBoolean(udg_Hashtable, GetHandleId(gg_trg_FUN), 0) then call SetHeroLevel(u, 25, false) endif call SaveInteger(udg_Hashtable, GetHandleId(t), 0, GetPlayerId(p)) call TimerStart(t, .01, true, function Trig_HitTrackable_Timer) set p = null set u = null set tc = null set t = null endfunction
function InitTrig_HitTrackable takes nothing returns nothing set gg_trg_HitTrackable = CreateTrigger() call TriggerAddAction(gg_trg_HitTrackable, function Trig_HitTrackable_Actions) endfunction Изучай, что непонятно - спрашивай
Сообщение отредактировал Ty3uK - Пятница, 23 Марта 2012, 09:22:33 |
|
|
|
Dreii | Дата: Пятница, 23 Марта 2012, 20:37:51 | Сообщение # 54 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
| Странная вещь. Сохраняйу декор в хэш Code call SaveDestructableHandle(Hash,GetHandleId(tr),8,CreateDestructable(Icon,x,y,0,1,0))
Потом делайу ф-иу отлова декора-трекабля Code function GetTrackableDestr takes trackable tr returns destructable return LoadDestructableHandle(Hash,GetHandleId(tr),8) endfunction А в триггере отлова клика мыши хочу удалить декор Code RemoveDesstructable(GetTrackableDestr(tr)) где tr=GetTriggeringTrackable()Добавлено (23 Март 2012, 16:34:28) --------------------------------------------- GetTrackableDestr(tr) - невозвращает декорацийу( Добавлено (23 Март 2012, 20:37:51) --------------------------------------------- Разобрался.
|
|
|
|