XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
DioD

offline
Опыт: 45,134
Активность:
Всё это происки айсфрогов, есть отличный сайт http://wc3jass.com/ это лекарство от всех проблем с функциями.
Старый 12.05.2006, 07:50
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Цитата:
какого хрена отступы в тэге [code] не сохранились? (они у меня табуляциями)
Пиши цитатой... А с переменными ГеймМееэдж может и без условий пройти спокойно - просто ставте везде
call DisplayTextToPlayer(GetPlayersAll(), H2S(udg_my_var))
Старый 12.05.2006, 08:40
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
Цитата:
function Spell_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='AHtb'
endfunction

function Spell_Actions takes nothing returns nothing
local unit u=GetSpellTargetUnit()
local integer a='AUav'
call TriggerSleepAction((DistanceBetweenPoints(GetUnitLoc(GetSpellAbilityUnit()), GetUnitLoc(u)) / 1000.00))
call UnitAddAbility(u,a)
call TriggerSleepAction(10.00)
call UnitRemoveAbility(u,a)
set u=null
endfunction

//===========================================================================
function InitTrig_Spell takes nothing returns nothing
set gg_trg_Spell=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Spell, EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(gg_trg_Spell, Condition(function Spell_Conditions))
call TriggerAddAction(gg_trg_Spell,function SpellActions)
endfunction
- так должно работать(или я что-то прогнал), там была ошибка в том что 'AHtb' - ето не абила а ID тоесть integer.
Старый 12.05.2006, 15:55
DioD

offline
Опыт: 45,134
Активность:
Обнулять локалки не надо, они уничтожаются сами по завершении тригера, а вот точки следует обнулить, а лучше делать через координаты.
Вот отличная функция для дистанции
function GetRange takes real X1,real Y1,real X2,real Y2 returns real
return SquareRoot(((X1-X2)*(X1-X2))+((Y1-Y2)*(Y1-Y2)))
endfunction
Возращает число так что с делением на 1000 проблем не будет
Старый 12.05.2006, 16:58
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
DioD - я просто в мелочи не влезал : ) а насчёт локалок(вообщето юнитов надо потому,что они создают в памяти определённую информацию(о себе) а обнуление чистит ету информацию).
Старый 12.05.2006, 17:05
DioD

offline
Опыт: 45,134
Активность:
Эту инфу чистит удаление юнита, а вообще локалки это ссылки на объекты а не сами объекты, так-что можно чистить локалки юнитов скока хочешь, пока есть сам юнит он занимает память.
Старый 12.05.2006, 17:11
Zerker
G Unit
offline
Опыт: 25,120
Активность:
Вы тут такие умные - может объясните мне, о чём вы рахговариваете?
Старый 12.05.2006, 18:02
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
Zerker я написал твой триггер так что он должен работать(но я его переименовал в Spell) а DioD написал ф-цию с векторами(лучше чем расстояние делённое на 1000).
Старый 12.05.2006, 18:08
DioD

offline
Опыт: 45,134
Активность:
А самое главное, эта функция не создаёт точек - которые надо обнулять, что резко сокращает сам код, писать уже готовое не буду, так что самое интересное остаётся автору лично
Старый 12.05.2006, 18:22
Zerker
G Unit
offline
Опыт: 25,120
Активность:
MrSmiLe там всё тоже самое осталось? И ещё один вопрос: как надо вводить плавающий текст: local ... X, где Х - переменная, а ... - то, что мне нада?
Старый 12.05.2006, 18:34
DioD

offline
Опыт: 45,134
Активность:
Возрадуйтесь дарам доты, а еще джаз шопа про.
function AddFadingTextTag takes string TEXT, real X, real Y, integer RED, integer GREEN, integer BLUE, integer ALPHA returns nothing
local texttag t = CreateTextTag()
call SetTextTagText(t, TEXT, 0.025)
call SetTextTagPos(t, X, Y, 0.00)
call SetTextTagColor(t, RED, GREEN, BLUE, ALPHA)
call SetTextTagVelocity(t, 0, 0.03)
call SetTextTagVisibility(t, true)
call SetTextTagFadepoint(t, 2)
call SetTextTagLifespan(t, 3)
call SetTextTagPermanent(t, false)
set t = null
endfunction
Старый 12.05.2006, 18:36
Zerker
G Unit
offline
Опыт: 25,120
Активность:
DioD аэто чё такое!!??
Старый 12.05.2006, 18:38
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
Zerker в каком смысле "там всё тоже самое осталось" ?
Старый 12.05.2006, 18:39
DioD

offline
Опыт: 45,134
Активность:
Это твой флоатинг текст, запускаешь его и нормально, создаёт текст без утечек и лагов в неограниченном количестве.
Собственно карта в которой я этот текст мучил, там очень понятно сделано, тока я делать это бросил и перенёс всё в аос так что там очень сыро, но работает.
Старый 12.05.2006, 18:46
Zerker
G Unit
offline
Опыт: 25,120
Активность:
MrSmiLe тот же триггеринг юнит, таже абила, теже переменные?

Zerker добавил:
DioD чёто я не понял, где там флоатинг тест?
Цитата:
И ещё один вопрос: как надо вводить плавающий текст: local ... X, где Х - переменная, а ... - то, что мне нада?

???
Старый 12.05.2006, 19:00
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
Zerker - а что тебе нужно было ??
Старый 12.05.2006, 19:04
DioD

offline
Опыт: 45,134
Активность:
Я же кинул код, испытай его на деле, в той карте что я кинул он использован.
Старый 12.05.2006, 19:05
Zerker
G Unit
offline
Опыт: 25,120
Активность:
MrSmiLe читай мои первые посты. DioD я не встретил нигде плавающий текст!
Старый 12.05.2006, 19:06
DioD

offline
Опыт: 45,134
Активность:
Я кинул код всплывающего затеняющегося текста, убираешь всплытие и затенение, делаешь перманентным, будет плавающий текст.
Старый 12.05.2006, 19:10
Zerker
G Unit
offline
Опыт: 25,120
Активность:
DioD ты блин такой умныЙ! Я же только начал изучать и ничего не понимаю! Обйясни, чё и где?
Старый 12.05.2006, 19:19
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 20:29.