Сейчас 23:12:34 Пятница, 21 июня, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: PUVer, SirNikolas, Ty3uK  
Вопросы по трекаблям
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

Изучай, что непонятно - спрашивай


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


Сообщение отредактировал Ty3uK - Пятница, 23 Марта 2012, 09:22:33
 

DreiiДата: Пятница, 23 Марта 2012, 10:12:39 | Сообщение # 52
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Все спасибо разобрался,вроде работает.

 

Ty3uKДата: Пятница, 23 Марта 2012, 10:29:08 | Сообщение # 53
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Не за что :)

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

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)
---------------------------------------------
Разобрался.


 

  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

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