Логин:
Пароль:

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: MaHBe  
Форум » WarCraft3 » Разное » Наработка: Указатели SoI
Наработка: Указатели SoI
War-Cry Дата: Вторник, 20.10.2009, 18:30 | Сообщение # 1
Ночные эльфы
Системный АдминчеГ
Группа: Администраторы
Сообщений: 453
Награды: 14
Статус: Offline
Эта наработка очень проста в использовании, требует мозг с КПД > 60%
Эта достаточно интересная система (System of Index\Система Указателей) сделана на основе простых стандартных функциях варкрафта. Очень гибкая система, подходит для мультиплеера! Текст правда будет отображаться для всех, но это можно исправить если вам это нужно! Система создана специально для проекта World of Fariell
Не работает с 1.24
Импорт:
1. Создаете переменную типа Кеш с название "gc" и инициализируете его при загрузке карты
2. Импортируете этот код в нестандартный код сценария:
[jass]
function H2I takes handle h returns integer
      return h
      return 0
endfunction
function I2Time takes integer i returns timer
      return i
      return null
endfunction
function I2TT takes integer i returns texttag
      return i
      return null
endfunction
function I2T takes integer i returns trigger
      return i
      return null
endfunction
function I2U takes integer i returns unit
      return i
      return null
endfunction
//Return Bugs
function SetIParam takes handle h, string key, integer i returns nothing
      call StoreInteger(udg_gc, I2S(H2I(h)), key, i)
endfunction
function GetIParam takes handle h, string key returns integer
      return GetStoredInteger(udg_gc, I2S(H2I(h)), key)
endfunction
function SetRParam takes handle h, string key, real i returns nothing
      call StoreReal(udg_gc, I2S(H2I(h)), key, i)
endfunction
function GetRParam takes handle h, string key returns real
      return GetStoredReal(udg_gc, I2S(H2I(h)), key)
endfunction
function SetSParam takes handle h, string key, string i returns nothing
      call StoreString(udg_gc, I2S(H2I(h)), key, i)
endfunction
function GetSParam takes handle h, string key returns string
      return GetStoredString(udg_gc, I2S(H2I(h)), key)
endfunction
function Flush takes handle h returns nothing
      call FlushStoredMission(udg_gc, I2S(H2I(h)))
endfunction
// System of Index
function HideIndexText takes nothing returns nothing
      local timer t = GetExpiredTimer()
      local texttag tt = I2TT(GetIParam(t,"texttag"))
      call DestroyTextTag(tt)
      call Flush(t)
      call DestroyTimer(t)
      set t = null
      set tt = null
endfunction
function ShowIndexText takes nothing returns nothing
      local trackable index = GetTriggeringTrackable()
      local timer t = I2Time(GetIParam(index,"timer"))
      local real life = GetRParam(index,"time")
      local string text = GetSParam(index,"text")
      local real x = GetRParam(index,"x")
      local real y = GetRParam(index,"y")
      local texttag tt = I2TT(GetIParam(index,"texttag"))
      if t == null then
       set t = CreateTimer()
       set tt = CreateTextTag()
       call TimerStart(t,life,false,function HideIndexText)
       call SetTextTagPos(tt,x,y,150)
       call SetTextTagText(tt,text,10*0.023 / 10)
       call SetIParam(t,"texttag",H2I(tt))
       call SetIParam(index,"texttag",H2I(tt))
      endif
      set x = 0
      set y = 0
      set text = null
      set life = 0
      set t = null
      set tt = null
      set index = null
endfunction
function CreateIndex takes string text, string model, real x, real y, real rotate, real textlife returns nothing
      local trackable index = CreateTrackable(model,x,y,rotate)
      local trigger t = CreateTrigger()
      call SetRParam(index,"x",x)
      call SetRParam(index,"y",y)
      call SetSParam(index,"text",text)
      call SetRParam(index,"time",textlife)
      call TriggerRegisterTrackableTrackEvent(t,index)
      call TriggerAddAction(t,function ShowIndexText)
      set t = null
      set index = null
endfunction
[/jass]
3. Затем чтобы создать указатель нужно воспользоваться функцией call CreateIndex(text,model,x,y,rotate)
text - тип строчка, указывает текст который будет выводиться на указателе
model - тип строчка, указывает путь к модели указатели
(пример: "war3mapImported\\TavernSign.mdx")
x,y - координаты указателя соответственно x и y
rotate - угол поворота указателя
Пример использования функции:
call CreateIndex("Taverna","war3mapImported\\TavernSign.mdx",225,-160,258,5)
Если вы не знаете как пользоваться Jass кодами то воспользуйтесь функцией в тригерах CustomScript. Координаты указателя можно определить с помощью окна редактора мира. Для этого вам и нужны мозги! Они указываются в нижнем левом углу редактора.



 
stalker Дата: Среда, 21.10.2009, 21:21 | Сообщение # 2
Нежить
Группа: Модераторы сайта
Сообщений: 191
Награды: 2
Замечания: 20%
Статус: Offline
War-Cry, а как ты камеру как на скрине сделал ?!


 
War-Cry Дата: Четверг, 22.10.2009, 13:23 | Сообщение # 3
Ночные эльфы
Системный АдминчеГ
Группа: Администраторы
Сообщений: 453
Награды: 14
Статус: Offline
stalker, это тестовая карта WoF!

Добавлено (22.10.2009, 13:23)
---------------------------------------------
stalker, Угол наклона камеры 0 гр и все)))



 
Форум » WarCraft3 » Разное » Наработка: Указатели SoI
  • Страница 1 из 1
  • 1
Поиск:




Дизайн сайта разработан war-cry
Спасибо пользователям Gam-Over_47,MaHBe и stalker за помощь в развитии сайта
При копировании материалов с нашего сайта, вы обязаны указать ссылку на наш сайт, иначе вы нарушаете авторские права, установленные владельцем сайта
Copyright King Ksel corp © 2008 - 2024
Хостинг от uCoz