проверте работоспособность
|
|
Reddalerzn | Дата: Среда, 06 Июля 2011, 23:52:17 | Сообщение # 1 |
4 уровень
Группа: Проверенные
Сообщений: 89
Награды: 0
Репутация: 4
Блокировки:
| моё первый опыт на жассе... не могу проверить работает или нет, ворлд ругается если даж триггер инициализации перевести в жасс, а жнгп не хочет работать с моим варом... писал через JassCraft. смысл в том, что кто-либо получая урон имеет 25-и процентный шанс заполучить кровотечение на 10 секунд. Code function BloodingAct takes integer random, integer time returns nothing set random == GetRandomInt( 1, 4) if (random == 4) then call AddSpecialEffectTargetUnitBJ( origin, damaged, beastmasterblood.mdl) call StartTimerBJ( blood, true, 1) if GetExpiredTimer == blood and time != 10 then set time == time + 1 call SetUnitLifeBJ( damaged, UNIT_STATE_LIFE - GetRandomReal( 1, 10) ) else set time == 0 call DestroyTimerBJ( blood) endif call DestroyEffect( bj_lastCreatedEffect) else call DoNothing endif endfunction
//======================================================================== function Blooding takes unit damaged returns nothing set gg_trg_Blooding = CreateTrigger() call TriggerRegisterUnitEvent( gg_trg_Blooding, damaged, EVENT_UNIT_DAMAGED ) call TriggerAddAction( gg_trg_Blooding, function BloodingAct ) endfunction Добавлено (06-07-2011, 23:52) --------------------------------------------- и если можно укажите на ошибки
|
|
|
|
lawson | Дата: Четверг, 07 Июля 2011, 01:21:27 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Reddalerzn) DestroyTimerBJ Плохо Quote (Reddalerzn) AddSpecialEffectTargetUnitBJ Еще плохо Quote (Reddalerzn) SetUnitLifeBJ И еще не используй Blizaard функции тоесть функции с BJ они практически все дают утечки. У тебя что все переменные глобальные? Else DoNothing абсолютно не нужен. Quote (Reddalerzn) GetExpiredTimer ЧТо это? код не понятен. Откуда я буду знать что код работает если я не знаю значения всех переменных сделай через локальные переменные так будет понятней.
Добавлено (07-07-2011, 00:52) --------------------------------------------- origin если это не переменная то указываеться в кавычках.
Добавлено (07-07-2011, 00:53) --------------------------------------------- Quote (Reddalerzn) моё первый опыт на жассе Кароче практически все не правильно начиная сначала. Такие триггеры обычно делаються через хеш если в них присутсвуют таймеры. Хотя для начала довольно таки не плохо, все с чего то начинали. Совет почитай статьи про утечки и переменные.
Добавлено (07-07-2011, 00:56) --------------------------------------------- Сейчас я сделаю правильно тебе.
Добавлено (07-07-2011, 01:21) --------------------------------------------- Вот как должно быть... Code function Special takes nothing returns nothing call DestroyEffect(LoadEffectHandle(Hash, GetHandleId(GetExpiredTimer()), 0)) call DestroyTimer(GetExpiredTimer()) call FlushChildHashtable(Hash, GetHandleId(GetExpiredTimer())) call DestroyTimer(GetExpiredTimer()) endfunction
function Trig_Blood_Actions takes nothing returns nothing local integer random = GetRandomInt(1, 100) local timer t local effect e if (random <= 25) then set t = CreateTimer() set e = AddSpecialEffectTarget("Objects\\Spawnmodels\\Critters\\Albatross\\CritterBloodAlbatross.mdl", GetTriggerUnit(), "origin") call SetUnitState(GetTriggerUnit(), UNIT_STATE_LIFE, GetUnitState(GetTriggerUnit(), UNIT_STATE_LIFE) - 10) call TimerStart(t, 10, false, function Special) call SaveEffectHandle(Hash, GetHandleId(t), 0, e) endif set t = null set e = null endfunction
//=========================================================================== function InitTrig_Blood takes nothing returns nothing set gg_trg_Blood = CreateTrigger( ) call TriggerRegisterUnitEvent( gg_trg_Blood, "любой юнит", EVENT_UNIT_DAMAGED ) call TriggerAddAction( gg_trg_Blood, function Trig_Blood_Actions ) endfunction
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Четверг, 07 Июля 2011, 21:04:03 |
|
|
|
BinGO | Дата: Четверг, 07 Июля 2011, 02:43:15 | Сообщение # 3 |
Группа: Модераторы
Сообщений: 2906
Награды: 8
Блокировки:
| Quote (lawson) call DestroyTimer(GetExpiredTimer()) Quote (lawson) call FlushChildHashtable(Hash, GetHandleId(GetExpiredTimer())) Quote (lawson) call DestroyTimer(GetExpiredTimer()) Это что? -.- Сначала чистится ХТ, затем удаляется таймер. Первый дестрой в топку.
|
|
|
|
lawson | Дата: Четверг, 07 Июля 2011, 08:34:01 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| А точно я его два раза удаляю хмм не заметил, торопился просто.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Reddalerzn | Дата: Четверг, 07 Июля 2011, 11:12:45 | Сообщение # 5 |
4 уровень
Группа: Проверенные
Сообщений: 89
Награды: 0
Репутация: 4
Блокировки:
| Code call FlushChildHashtable(Hash, GetHandleId(GetExpiredTimer())) Code call SaveEffectHandle(Hash, GetHandleId(t), 0, e)
жасскрафт не знает этих командДобавлено (07-07-2011, 11:12) --------------------------------------------- вопросик, как указать именно ЛЮБОГО юнита в триггере?
|
|
|
|
SirNikolas | Дата: Четверг, 07 Июля 2011, 14:27:12 | Сообщение # 6 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Reddalerzn) жасскрафт не знает этих команд JassCraft много чего не знает, главное, чтобы они были в common.j, лежащем в его папке (а они там есть).Quote (Reddalerzn) как указать именно ЛЮБОГО юнита в триггере? Заюзать вот эту систему.
|
|
|
|
FkoFF | Дата: Четверг, 07 Июля 2011, 15:28:39 | Сообщение # 7 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Quote (Reddalerzn) жасскрафт не знает этих команд знает, только не выделяет их цветом, обозначающим родные функции (потому как в common.j они очень странно прописаны, и там название в духе SaveReal╒╒╒╒╒
|
|
|
|
[DUОS] | Дата: Четверг, 07 Июля 2011, 17:24:54 | Сообщение # 8 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Ну... В этом духе где-то, там квадратики. B1nGO, Имхо GetExpiredTimer() надо отправить в локальную переменную.
|
|
|
|