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

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

Закрытая тема
 
LDF

offline
Опыт: 1,985
Активность:
Jon
Цитата:
ти кот не трош... засунь его в триггер, обзави триггер RestoreTree, и все, в другом триггере вызывай функцию RestoreTreeInRegion как это показано в примере

кот придется потрогать у меня много разных видов деревьев на карте а ты поставил ток елки
но я вроде разобрался где ставить еще- if (GetDestructableTypeId(GetEnumDestructable()) == 'LTlt') then
мне эти запятые по бокам после каждого ID ставить?

LDF добавил:
попытался поставить еще одно дерево
мне 3 ошибки выдало
покажи тут как еще дерево добавлять
Старый 12.03.2008, 18:39
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
мне эти запятые по бокам после каждого ID ставить?

думаю что прийдется...

Если там много типов деревьев делай так:
Код:
function RestoreTreeEvent takes nothing returns nothing
    local integer d = GetDestructableTypeId(GetEnumDestructable())
    if (d == 'LTlt' or d == '0000' or d == '0000' or d == '0000' or ...) then
        call TriggerRegisterDeathEvent(gg_trg_RestoreTree, GetEnumDestructable())
    endif
endfunction


Jon добавил:
Цитата:
покажи тут как еще дерево добавлять

эм... обычно...

Отредактировано Jon, 12.03.2008 в 18:53.
Старый 12.03.2008, 18:41
sleepw

offline
Опыт: 8,449
Активность:
а если например в 2х областях одинаковые типы деревьев но в одной из них мне не надо что-бы они респились,тобишь как например сделоть Рестор три везде кроме этой области в которой ненадО?:)
Старый 12.03.2008, 18:44
LDF

offline
Опыт: 1,985
Активность:
Jon
я убил 2 часть кода который на гуи
вернуть к жизни я его могу(наверно) но почему когда я его выключаю и включаю снова мне выдают ошибку?

LDF добавил:
Jon добавил:
Цитата:
покажи тут как еще дерево добавлять

эм... обычно...

ты уже показал я просил код привести=)
Старый 12.03.2008, 18:46
J
expert
offline
Опыт: 48,447
Активность:
LDF потомучто в гуишном коде (триггер 2) используется функция из другого триггера(триггер 1), и тригер 2 должен быть определен раньше чем триггер1 в котором находится функция юзаемая в триггере 2.
Если ты создаеш триггер (например триггер 1) то он помещается в конец создаваемого кода и потому триггер 2 использует функцию которая определяется поже него и выдает ошибку, но при перезагрузке карты код выстраивается как по порядку триггеров в редакторе триггеров, потому триггер 1 должен стоять выше триггера 2, даже если карта выдает ошибку, т.к. после перезапуска все будет норм
короче ты ниче не понял потому перенеси код
Код:
function RestoreTreeAction takes nothing returns nothing
    //
    // Сдесь указывай действия что случатся с каждым деревом что умрет
    call TriggerSleepAction(5)
    call DestructableRestoreLife(GetDyingDestructable(), GetDestructableMaxLife(GetDyingDestructable()), true)
    //
    //
endfunction

function RestoreTreeEvent takes nothing returns nothing
    if (GetDestructableTypeId(GetEnumDestructable()) == 'LTlt') then
        call TriggerRegisterDeathEvent(gg_trg_RestoreTree, GetEnumDestructable())
    endif
endfunction

function RestoreTreeInRegion takes rect Rec returns nothing
    call EnumDestructablesInRectAll( Rec, function RestoreTreeEvent)
endfunction

в костум скрипт карты

sleepw ты просто решил подножку поставить или тебе правдо нужно наклепать ответ?
Старый 12.03.2008, 18:48
LDF

offline
Опыт: 1,985
Активность:
Jon
Ну что я сделал нетак?
они вообще перестали респаунится
Старый 12.03.2008, 18:52
J
expert
offline
Опыт: 48,447
Активность:
черт, я ступил очень страшно, удали карту чтобы никто этого невидел, ща исправлю...

Jon добавил:
вотЪ
чтобы понять ошибку посмотри на код условия верху, я переделал
Прикрепленные файлы
Тип файла: w3x пример ).w3x (23.5 Кбайт, 9 просмотров )
Старый 12.03.2008, 18:56
LDF

offline
Опыт: 1,985
Активность:
local integer d = GetDestructableTypeId(GetEnumDestructable())???

LDF добавил:
нет не оно ищу

LDF добавил:
НАШЕЛ
or вместо and

LDF добавил:
Jon
у меня назрела проблема с мультибоардом варденаб в общем мне надо его переделать
но я незнаю как, после попытки изменить в нем чтотоб пришлось вообще его снести.
И такой вопрос по кастом код
их можно совмещать?

LDF добавил:
Jon
можеш изменить мб вардена? я скажу что именно
Старый 12.03.2008, 19:07
J
expert
offline
Опыт: 48,447
Активность:
бррр =/
Старый 12.03.2008, 19:10
sleepw

offline
Опыт: 8,449
Активность:
Jon
ну щас оно мне ненадо,так как к этому в мапе не дошёл.. зачем мне тебе ставить подножки?=\
потом мну это понадобицо,дабы не создавать снова тему о этом спрашиваю сейчас)
Старый 12.03.2008, 19:12
LDF

offline
Опыт: 1,985
Активность:
Jon
Цитата:
бррр =/

надо помогать незнающему народу, если сам гениален...
В общем как хочеш тебя не заставляю переделывать

Респект в любом случае
Старый 12.03.2008, 19:14
J
expert
offline
Опыт: 48,447
Активность:
sleepw да я просто нотку сарказма увидел в твое посте)
наверно так
Код:
globals
     rect IgnorRect
endglobals

function RestoreTreeAction takes nothing returns nothing
    //
    // Сдесь указывай действия что случатся с каждым деревом что умрет
    call TriggerSleepAction(5)
    call DestructableRestoreLife(GetDyingDestructable(), GetDestructableMaxLife(GetDyingDestructable()), true)
    //
    //
endfunction   
    
function RestoreTreeEvent takes nothing returns nothing
    local destructable d = GetEnumDestructable()
    local integer i = GetDestructableTypeId(d)
    if (i == 'LTlt' or i == '0000' or ...) and  not RectContainsCoords(IgnorRect, GetDestructableX(d), GetDestructableY(d)) then
        call TriggerRegisterDeathEvent(gg_trg_RestoreTree, d)
    endif
    set d = null
endfunction

function RestoreTreeInRegion takes rect Rec, rect Ignor returns nothing
    set IgnorRect = Ignor
    call EnumDestructablesInRectAll( Rec, function RestoreTreeEvent)
endfunction

function InitTrig_RestoreTree takes nothing returns nothing
    set gg_trg_RestoreTree = CreateTrigger()
    call TriggerAddAction(gg_trg_RestoreTree, function RestoreTreeAction)
endfunction
Старый 12.03.2008, 19:22
sleepw

offline
Опыт: 8,449
Активность:
Jon
цёмцём спасиба
Старый 12.03.2008, 19:26
LDF

offline
Опыт: 1,985
Активность:
Еще вопрос какой способ создавания крипов наименее ресурсо потребляющий?
Я в своей карте использую
создать юнит в области
приказать последний созданый юнит идти в область
создать юнит в области
приказать последний созданый юнит идти в область
и так далее гдето 70 юнитов создается за раз и идут в область карта в момент создания тормозит...
существует способ это иправить?(тормоза)
Старый 12.03.2008, 19:50
J
expert
offline
Опыт: 48,447
Активность:
ну...
Во первых самый легких способ, это между созданием юнитов в разных областях ставить Слип, т.е. создавать крипов по небольшим группам
Более подвинуты способ, это создать таймер, и спецальный счетчик к нему, и за один "тик" таймера создавать по одному крипу в каждой области и направлять его куда нужно пока счетчик не кончится
Старый 12.03.2008, 19:53
LDF

offline
Опыт: 1,985
Активность:
\ /

1
/-------------- \
2
\_____________/
3 4 5 6
________________________
Главное не пугаться вонта штука на верху это схематическое изображение мини арены у меня на карте
1- внешняя арена для подготовки к бою 2- внутреняя арена тут собственно деруться
3 4 5 6- это торговцы зельями и монстрами- которые выходят на арену при покупке как в карте Wow или что то такое
вопрос такой как заставить юнита в области 1 не атаковать дерущихся юнитов в области 2 и как запретить юнитам из области 2 атаковать юнита в области 1 и как запретить торговцам продавать вещи после начала боя?????
Старый 12.03.2008, 20:03
sleepw

offline
Опыт: 8,449
Активность:
LDF
жжошь,кросавчег!
Старый 12.03.2008, 20:22
LDF

offline
Опыт: 1,985
Активность:
я непонятно написал? или никто не знает?
Старый 12.03.2008, 20:34
J
expert
offline
Опыт: 48,447
Активность:
LDF эх.. долго распиывать, скажу проще, попробуй ченить помутить с союзами между игроками, чтобы сами не лезли в бой, а чтобы спецально не лезли в бой то отлавливай приказ на атаку и отменяй
Старый 12.03.2008, 20:36
LDF

offline
Опыт: 1,985
Активность:
Jon
ладно

следующий вопрос есть какаянибудь универсальная проверка на наличие игрока в игре рассу за которую этот игрок играет и кто им управляет?
Старый 12.03.2008, 20:46
Закрытая тема

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

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

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

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



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