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

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

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

offline
Опыт: 773
Активность:
JaBeN_Симфер:
например так:
local unit u = GetEventDamageSource()
call Trig_TvoiDeistviya_Actions
call Remove_Trigger(h2i)
TvoiDeistviya - это название триггера?
Ну к примеру триггер исполняющий действия у меня spell40, я заменил TvoiDeistviya на spell40, но выдаёт ошибку (отсутствует название функции),
что нужно сделать?
Старый 16.03.2010, 09:53
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
после первого вызова не стоят скобки. sonicscream, почему бы вам с JaBeN_Симфер-ом не перенести вашу приватную беседу в приват, мм? Здесь всё-таки академия а не базар
FellGuard добавил:
Trig_TvoiDeistviya_Actions это название функции в которой должны лежать действия триггера, эта ф-я ничего не берёт и не возвращает (i.e. takes/returns nothing) и должна быть объявлена выше по коду перед вызовами.
Старый 16.03.2010, 10:00
sonicscream

offline
Опыт: 773
Активность:
FellGuard
Эта тема может помочь ещё кому-нибудь в будущем
Старый 16.03.2010, 10:20
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
сомневаюсь. Никто не будет читать тонны непонятного кода и кучу нечётких постов по узко поставленной задаче, яркий пример - ты. Уже очень много было на форуме про динамические триггеры, причём объяснение давалось более чёткое и понятное, даже в оглавлении академии есть ссылка но проще же создать новый тред и спросить в нём, правда? А там глядишь, ещё и разжуют и готовый пример на блюде... Так что по конкретной реализации уже в приват, в приват
Старый 16.03.2010, 11:18
sonicscream

offline
Опыт: 773
Активность:
JaBeN_Симфер,
Ну я вроде как разобрался, сделал функцию и вызов к ней в указанном месте, но при атаке одного и тогоже юнита функция выполняется в два/три итд раз больше, атакую другого и опять с 1 потом...
sonicscream добавил:
Вот то, што у меня получилось
Прикрепленные файлы
Тип файла: w3x Event Damaged.w3x (19.4 Кбайт, 8 просмотров )
Старый 16.03.2010, 13:43
DioD

offline
Опыт: 45,134
Активность:
вот как это делается в идеале:
XPatch4-3NRB
Прикрепленные файлы
Тип файла: w3x (12) Indigo's Way v0.10680.w3x (496.8 Кбайт, 15 просмотров )
Старый 16.03.2010, 14:26
JaBeN_Симфер

offline
Опыт: 20,050
Активность:
constant function Index_Handle takes nothing returns integer
    return 1048500 // изменил число
endfunction


function Add_Damage takes nothing returns nothing
    local integer h2i = GetHandleId(GetEventDamageSource()) - Index_Handle()
    local real damage = GetEventDamage()
    local unit u = GetEventDamageSource()

// сюда и вписывай твои действия сразу, если они уже на jass,
// т.к. нельзя использовать GetEventDamageSource() в другой функции в твоем случае
    if u == gg_unit_hsor_0025 then
        call SetPlayerState(Player(0), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(Player(0), PLAYER_STATE_RESOURCE_GOLD) + 1)
        call DisplayTextToPlayer(Player(0), 0.0, 0.0, "+") // отладочное сообщение проще писать так
    endif

    set u = null
    call Remove_Trigger(h2i)
endfunction
Старый 16.03.2010, 17:17
sonicscream

offline
Опыт: 773
Активность:
JaBeN_Симфер, спасибо огромное 8))
sonicscream добавил:
Всё сделал, всё работает ^^
Старый 16.03.2010, 18:22
Закрытая тема

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

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

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

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



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