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

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

Ответ
 
Keta
Я Повелитель Огня!
offline
Опыт: 1,706
Активность:
DotA Creation, проблемы со спеллами
Незнаю работает этот форум ещё или нет...ну и лан, всё равно альтернативы нету
Щас делаю доту (уже не один месяц делаю). Сюда буду писать все тригерные проблемы возникающие у миня.
  1. Вот спелл создающий перед героем (он вызывает волка, которого удаляю) стену из юнитов в виде кусочков льда.
function Trig_Ice_Wall_Actions takes nothing returns nothing
local real grad = 0.00
call RemoveUnit(GetSummonedUnit())
set i = 1
loop
exitwhen i == 4
call CreateNUnitsAtLoc(1,'h01L',GetOwningPlayer(GetSummoningUnit()), PolarProjectionBJ( ??? ) , bj_UNIT_FACING )
endif
set i = i + 1
endloop
endfunction
Проблема - я не знаю что вписать в PolarProjectionBJ, тоесть что такое полярные координаты я знаю, но как сделать чтобы юнит создавались в ряд и в виде стены я никак не соображу.
Старый 20.04.2008, 17:41
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Незнаю работает этот форум ещё или нет...
хм... лол...
Цитата:
Щас делаю доту
хм.. лол...
Цитата:
call RemoveUnit(GetSummonedUnit())
хм.. лол, проще просто в настройках спела в РО убрать создание юнитов


Рабочий код:
Код:
function Trig_Ice_Wall_Actions takes nothing returns nothing
    local unit TrigUnit = GetTriggerUnit()
    local real ang = GetUnitFacing(TrigUnit) * bj_DEGTORAD
    local real X = GetUnitX(TrigUnit) + Cos(ang)*150
    local real Y = GetUnitY(TrigUnit) + Sin(ang)*150
    local integer i = -2
    loop
        exitwhen i > 2
        call CreateUnit(GetOwningPlayer(TrigUnit), 'h01L', X + Cos(ang-bj_PI/2)*i*100, Y + Sin(ang-bj_PI/2)*i*100, ang*bj_RADTODEG)
        set i = i + 1
    endloop
endfunction

Отредактировано Jon, 20.04.2008 в 19:26.
Старый 20.04.2008, 18:23
happy_horror
2 + 2 = 22 :-D
offline
Опыт: 7,818
Активность:
а вот мой, скромный примерчик, как вычислить линию перпенидкулярную кастеру и создать на ней юнитов (тока за полярки уж прям сразу не ругайте ) а это вот схема http://ipicture.ru/uploads/080420/ilZHWAc6U3.jpg
Прикрепленные файлы
Тип файла: w3x sample.w3x (8.0 Кбайт, 11 просмотров )
Старый 20.04.2008, 18:39
J
expert
offline
Опыт: 48,447
Активность:
ты его сам то хоть в игре пробывал запустить?

Jon добавил:
ты находиш 2 точки по краям и начинаеш от одной через цыел стоить юнитов по напровлению к другой, потому эм... треугольник получается не ровный, и перпендикуляр от юнита попадает не на середину отрезка
Старый 20.04.2008, 18:49
Keta
Я Повелитель Огня!
offline
Опыт: 1,706
Активность:
Там ошибка была в объявлении локалок (вместо юнит написано реал)
Стена не создаётся, спелл не пашет, галиматью с касинусами ваще не понял
h01L - Ледяная стена (часть)
A086 - Ледяная стена (спелл)
A01T - Холод (охлаждение)
function Trig_Ice_Wall_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'AOsf'
endfunction

function Trig_Ice_Wall_Actions takes nothing returns nothing
local unit TrigUnit = GetTriggerUnit()
local real ang = GetUnitFacing(TrigUnit) * bj_DEGTORAD
local real X = GetUnitX(TrigUnit) + Cos(ang)*150
local real Y = GetUnitY(TrigUnit) + Sin(ang)*150
local integer i = -2
loop
exitwhen i > 2
call CreateUnit(GetOwningPlayer(TrigUnit), 'E000', X + Cos(ang-bj_PI/2)*i*100, Y + Sin(ang-bj_PI/2)*i*100, ang*bj_RADTODEG)
set i = i + 1
endloop
endfunction
===========================================================================
function InitTrig_Ice_Wall takes nothing returns nothing
set gg_trg_Ice_Wall = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Ice_Wall, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Ice_Wall, Condition( function Trig_Ice_Wall_Conditions ) )
call TriggerAddAction( gg_trg_Ice_Wall, function Trig_Ice_Wall_Actions )
endfunction

Отредактировано Keta, 20.04.2008 в 19:07.
Старый 20.04.2008, 18:52
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Цитата:
call CreateNUnitsAtLoc(1,'E000',GetOwningPlayer(TrigUnit),X * Cos(ang-bj_PI/2)*i*50, Y * Sin(ang-bj_PI/2)*i*50,ang*bj_RADTODEG)
ошибка...
Старый 20.04.2008, 18:56
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
возьмёшь меня в проект? я знаю как сделать, что б крипы ходили и дрались
Старый 20.04.2008, 18:56
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
возможно ли это из-за взгляда юнита или это следствие неправильной арифметики?)

в следствии тормазнутности самого способа
Цитата:
да кстати а взгляд юнита как вычисляется, ровно от носа юнита или просто по направлению?
по напровлению
Старый 20.04.2008, 18:57
J
expert
offline
Опыт: 48,447
Активность:
блин, обновляйте страницы по чаще, я эту ошибку исправил еще 5 минут назад
Старый 20.04.2008, 18:57
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Jon, а ты бы посмотрел на пост номер 7 до редактирования
Старый 20.04.2008, 18:59
Keta
Я Повелитель Огня!
offline
Опыт: 1,706
Активность:
Jon
Ты мну убить хош? Спелл не работает, юниты не создаются в линию ( в виде стены). Я не знаю какую ты там ошибку исправил, но он не пашет. Я щас уже пачти всё что можно перепробовал. Нахожусь под лёгким кайфом от травки. Даже это не памагло....
Старый 20.04.2008, 19:00
J
expert
offline
Опыт: 48,447
Активность:
Keta еще один, все там верно, че там у тебя не пашет я незнаю, код во втором посте есличе

Отредактировано Jon, 20.04.2008 в 19:07.
Старый 20.04.2008, 19:01
Keta
Я Повелитель Огня!
offline
Опыт: 1,706
Активность:
Цитата:
еще один, все там верно, че там у тебя не пашет я незнаю, код во втором посте есличе

Ты мну не слышиш? код что в обновлённом 2 посте не пашет, щас тока пробую по разному не как не пашет.

Флуд щас удалю, других просьба сделать тож самое.
Старый 20.04.2008, 19:05
J
expert
offline
Опыт: 48,447
Активность:
вылоджи полностью весь код твоего тригера и сравним
Старый 20.04.2008, 19:06
Keta
Я Повелитель Огня!
offline
Опыт: 1,706
Активность:
уже выложил в предыдущем посте, могу выложить мапу на которой его щас тестирую
Старый 20.04.2008, 19:08
J
expert
offline
Опыт: 48,447
Активность:
все там верно
P.S. у тебя в 1 и 5 посте разные типы юнитов создаются, ты определись

Отредактировано Jon, 20.04.2008 в 19:21.
Старый 20.04.2008, 19:12
Keta
Я Повелитель Огня!
offline
Опыт: 1,706
Активность:
Jon
Видимо мы друг друга не поняли...но код в 7 посту я обновил (это и есть ВЕСЬ код ВСЕГО триггера, не пайму что тебе не хватает)

1 код из самой доты (где используютс нормальные юниты)
2 код из карты-теста, где используется первый попавшийся юнит и спелл

ЗЫ Спасибо

ЗЫЫ Палез купаться, приду отвечу
Старый 20.04.2008, 19:13
Toadcop

offline
Опыт: 54,313
Активность:
страно даже страшно нахрен постить что бы потом самому же удалять этот же пост О_о ?! или это "выше стоящие" удаляют ???
кстати твоя дота всё порешает =)
ибо у тебя есть проблемы при создания подобного "спелла" я даже незнаю что будет дальше =)
Старый 21.04.2008, 02:33
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
страно даже страшно нахрен постить что бы потом самому же удалять этот же пост О_о ?! или это "выше стоящие" удаляют ???

тебе не понять=), вот например ты бы тоже мог удалить этот свой офтопный пост), но ты эго не удалиш, потому прийдется удалять комуто другому...
Старый 21.04.2008, 06:31
Keta
Я Повелитель Огня!
offline
Опыт: 1,706
Активность:
Цитата:
страно даже страшно нахрен постить что бы потом самому же удалять этот же пост О_о ?! или это "выше стоящие" удаляют ???

кстати твоя дота всё порешает =)
ибо у тебя есть проблемы при создания подобного "спелла" я даже незнаю что будет дальше =)


Я удалил пару постов, которые не относятся к теме...

Моя дота уже давно гатова (версия щас 1.01), уже все играют.
У миня не было проблем с созданием большинства спеллов. Кроме нескольких, т.к. я планирую увеличить число геров с 60 до 64.
Старый 21.04.2008, 07:38
Ответ

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

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

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

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



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