Вопросы по JASS кодированию
|
|
-
Nevermore | Дата: Пятница, 16-12-2011, 13:20:33 | Сообщение # 21 |
GUI IMBA
загрузка наград ...
Группа: Проверенные
Сообщений: 210
Репутация: 338
Статус: Не на сайте
|
Quote Nevermore, ГУИшный вариант тоже безутечен.
Я просто начал Jass изучать и хочу научится. Плавающий текст получился ток не могу понять зачем это
Quote call SetTextTagPermanent(texttag01,false) // блокировка текста
|
| | |
-
Caturn | Дата: Пятница, 16-12-2011, 13:25:17 | Сообщение # 22 |
Темный рыцарь
загрузка наград ...
Группа: Проверенные
Сообщений: 217
Репутация: 128
Статус: Не на сайте
|
Nevermore, для фиксирования текста.
Мои статьи: 1. http://wc3-maps.ru/forum/78-1507-1 Школа тригеростроения, ГУИ. http://wc3-maps.ru/forum/99-1471-1
|
| | |
-
wetalq | Дата: Пятница, 16-12-2011, 14:23:07 | Сообщение # 23 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
| | |
-
Nevermore | Дата: Воскресенье, 01-01-2012, 17:50:02 | Сообщение # 24 |
GUI IMBA
загрузка наград ...
Группа: Проверенные
Сообщений: 210
Репутация: 338
Статус: Не на сайте
|
1 Вопрос: вот такая вещь не знаю че ей надо
помогите убрать.
2 Вопрос: У меня не запускаются карты в JNGP почему?
|
| | |
-
crymchanin | Дата: Понедельник, 16-01-2012, 20:37:51 | Сообщение # 25 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 21
Репутация: 4
Статус: Не на сайте
|
BJ функции не используют по нескольким причинам: 1) Возможны утечки (которые не всегда возникают из-за криворукости Близов, а и в связи с некоторыми техническими причинами) 2) Что-бы сократить, упростить код
Но, некоторые функции BJ могут быть очень полезны. Например: ModuloInteger, ModuloReal, bjAbs, TriggerRegisterAnyUnitEventBJ и т.д.
|
| | |
-
wetalq | Дата: Понедельник, 16-01-2012, 21:36:53 | Сообщение # 26 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
|
Nevermore, 1) та кнопочка для красоты, ей никто не проверяет. для проверки жми ctrl + S (сохранения карты)
2) не открывает потому что в пути к карте не должна быть кирилица ( русские буквы ) мапу кинь на диск D к примеру, и открывай от туда, и все будет ок
Покупка предметов через способность
|
| | |
-
wetalq | Дата: Вторник, 17-01-2012, 01:17:17 | Сообщение # 27 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
| | |
-
Nevermore | Дата: Пятница, 20-01-2012, 12:16:22 | Сообщение # 28 |
GUI IMBA
загрузка наград ...
Группа: Проверенные
Сообщений: 210
Репутация: 338
Статус: Не на сайте
|
Жассеры проверить Суть добовляет спелл герою на 5 сек. но неудаляет почему так? Code function BattleStations_Conditions takes nothing returns boolean return GetSpellAbilityId() == 'A00I' endfunction
function TimerOFF takes nothing returns nothing local timer BSt = GetExpiredTimer() local unit BSc call UnitRemoveAbility(LoadUnitHandle(udg_hash,GetHandleId(BSt),1),'A00K') call UnitRemoveAbility(LoadUnitHandle(udg_hash,GetHandleId(BSt),1),'A00J') call FlushChildHashtable(udg_hash,GetHandleId(BSt)) call DestroyTimer(BSt) set BSc = null endfunction
function BattleStations_Actions takes nothing returns nothing local unit BSc = GetSpellAbilityUnit() local timer BSt = CreateTimer() call UnitAddAbility(BSc,'A00K') call UnitAddAbility(BSc,'A00J') call SetUnitAbilityLevel(BSc,'A00J',(GetUnitAbilityLevel(BSc,'A00I'))) call SaveUnitHandle(udg_hash,GetHandleId(BSt),1,BSc) call TimerStart(BSt,5.0,false,function TimerOFF) call DestroyTimer(BSt) set BSt = null set BSc = null endfunction
//=========================================================================== function InitTrig_Battle_Stations takes nothing returns nothing local trigger BStrg = CreateTrigger( ) local integer BSi set BSi = 0 loop call TriggerRegisterPlayerUnitEvent(BStrg,Player(BSi),EVENT_PLAYER_UNIT_SPELL_EFFECT,null) set BSi = BSi + 1 exitwhen BSi == 12 endloop call TriggerAddCondition(BStrg, Condition( function BattleStations_Conditions ) ) call TriggerAddAction(BStrg, function BattleStations_Actions ) endfunction
|
| | |
-
wetalq | Дата: Пятница, 20-01-2012, 17:24:12 | Сообщение # 29 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
|
Nevermore во первых перед тем как таймер уничтожить его нужно остановить) во вторых хеш таблица инициализирована ? зачем ты создал переменную BSc и не назначил в неё никого ?
Покупка предметов через способность
|
| | |
-
Nevermore | Дата: Пятница, 20-01-2012, 17:47:30 | Сообщение # 30 |
GUI IMBA
загрузка наград ...
Группа: Проверенные
Сообщений: 210
Репутация: 338
Статус: Не на сайте
|
Code во первых перед тем как таймер уничтожить его нужно остановить)
об этом я не знал ) Code во вторых хеш таблица инициализирована ?
АгА Code зачем ты создал переменную BSc и не назначил в неё никого ?
я вписал туда сначало LoadUnitHandle и не получилось и забыл удалить(Добавлено (20/01/2012, 17:47:30) --------------------------------------------- Вот зделал что ты написал поставил PauseTimer
Code function TimerOFF takes nothing returns nothing local timer BSt = GetExpiredTimer() local unit BSc = LoadUnitHandle(udg_hash,GetHandleId(BSt),1) call UnitRemoveAbility(BSc,'A00K') call UnitRemoveAbility(BSc,'A00J') call FlushChildHashtable(udg_hash,GetHandleId(BSt)) call PauseTimer(BSt) call DestroyTimer(BSt) set BSc = null endfunction
function BattleStations_Actions takes nothing returns nothing local unit BSc = GetSpellAbilityUnit() local timer BSt = CreateTimer() call UnitAddAbility(BSc,'A00K') call UnitAddAbility(BSc,'A00J') call SetUnitAbilityLevel(BSc,'A00J',(GetUnitAbilityLevel(BSc,'A00I'))) call SaveUnitHandle(udg_hash,GetHandleId(BSt),1,BSc) call TimerStart(BSt,5.0,false,function TimerOFF) call PauseTimer(BSt) call DestroyTimer(BSt) set BSt = null set BSc = null endfunction
все= не хочет работать
|
| | |
-
wetalq | Дата: Пятница, 20-01-2012, 17:47:47 | Сообщение # 31 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
| | |
-
Nevermore | Дата: Пятница, 20-01-2012, 18:18:34 | Сообщение # 32 |
GUI IMBA
загрузка наград ...
Группа: Проверенные
Сообщений: 210
Репутация: 338
Статус: Не на сайте
|
Code замени на GetTriggeringUnit GetTriggerUnit()
не робит что не так-то
|
| | |
-
crymchanin | Дата: Пятница, 20-01-2012, 22:08:17 | Сообщение # 33 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 21
Репутация: 4
Статус: Не на сайте
|
1) Quote (Nevermore) loop call TriggerRegisterPlayerUnitEvent(BStrg,Player(BSi),EVENT_PLAYER_UNIT_SPELL_EFFECT,null) set BSi = BSi + 1 exitwhen BSi == 12 endloop Не проще-ли использовать BJ функцию и избавиться от кучи повторяющегося кода во всех триггерах с таким событием?
2) Quote (wetalq) во первых перед тем как таймер уничтожить его нужно остановить) Бред.
3) Quote (wetalq) замени на GetTriggeringUnit Нужно заменять если спелл без указания цели (например Рев)
4) Quote (Nevermore) call TimerStart(BSt,5.0,false,function TimerOFF) call PauseTimer(BSt) call DestroyTimer(BSt) После запуска таймера, ты его тут-же ставишь на паузу и после этого сразу-же уничтожаешь, как тут что-то может работать?
|
| | |
-
wetalq | Дата: Пятница, 20-01-2012, 23:30:24 | Сообщение # 34 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
| | |
-
crymchanin | Дата: Суббота, 21-01-2012, 00:58:03 | Сообщение # 35 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 21
Репутация: 4
Статус: Не на сайте
|
Quote (wetalq) нет, не бред. обоснуй
|
| | |
-
Nevermore | Дата: Суббота, 21-01-2012, 07:17:00 | Сообщение # 36 |
GUI IMBA
загрузка наград ...
Группа: Проверенные
Сообщений: 210
Репутация: 338
Статус: Не на сайте
|
Code 4) Quote (Nevermore) call TimerStart(BSt,5.0,false,function TimerOFF) call PauseTimer(BSt) call DestroyTimer(BSt)
После запуска таймера, ты его тут-же ставишь на паузу и после этого сразу-же уничтожаешь, как тут что-то может работать?
А как удалить local BSt(CreateTimer) через 5 секунд?Добавлено (21/01/2012, 07:17:00) --------------------------------------------- вот делал по примеру с war3info Code function Trig_Fire_Conditions takes nothing returns boolean return (GetSpellAbilityId() == 'A000') == true endfunction
function Group_Filter takes nothing returns boolean local unit u = GetTriggerUnit() local unit fu = GetFilterUnit() if (IsUnitEnemy(fu, GetOwningPlayer(u))) then call UnitDamageTarget(u, fu, 300., true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS) endif set u = null set fu = null return false endfunction function Timer takes nothing returns nothing local timer t = GetExpiredTimer() call DestroyEffect(LoadEffectHandle(udg_hash, GetHandleId(t), 2)) call FlushChildHashtable(udg_hash, GetHandleId(t)) call DestroyTimer(t) endfunction function Trig_Fire_Actions takes nothing returns nothing local timer t = CreateTimer() local group g = CreateGroup() local filterfunc filter = Filter(function Group_Filter) call SaveEffectHandle(udg_hash, GetHandleId(t), 2, AddSpecialEffect("Abilities\\Spells\\Human\\FlameStrike\\FlameStrike1.mdl", GetSpellTargetX(), GetSpellTargetY())) call GroupEnumUnitsInRange(g, GetSpellTargetX(), GetSpellTargetY(), 350., filter) call TimerStart(t, 3.5, false, function Timer) call DestroyFilter(filter) call DestroyGroup(g) call DestroyTimer(t) set t = null set filter = null set g = null endfunction
//=========================================================================== function InitTrig_Fire takes nothing returns nothing set gg_trg_Fire = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Fire, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_Fire, Condition( function Trig_Fire_Conditions ) ) call TriggerAddAction( gg_trg_Fire, function Trig_Fire_Actions ) endfunction
|
| | |
-
crymchanin | Дата: Суббота, 21-01-2012, 10:08:11 | Сообщение # 37 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 21
Репутация: 4
Статус: Не на сайте
|
Code function Timer takes nothing returns nothing local timer t = GetExpiredTimer() call DestroyEffect(LoadEffectHandle(udg_hash, GetHandleId(t), 2)) call FlushChildHashtable(udg_hash, GetHandleId(t)) call DestroyTimer(t) endfunction Он тут удаляется, по истечению 3.5 сек. Code function Trig_Fire_Actions takes nothing returns nothing local timer t = CreateTimer() local group g = CreateGroup() local filterfunc filter = Filter(function Group_Filter) call SaveEffectHandle(udg_hash, GetHandleId(t), 2, AddSpecialEffect("Abilities\\Spells\\Human\\FlameStrike\\FlameStrike1.mdl", GetSpellTargetX(), GetSpellTargetY())) call GroupEnumUnitsInRange(g, GetSpellTargetX(), GetSpellTargetY(), 350., filter) call TimerStart(t, 3.5, false, function Timer) call DestroyFilter(filter) call DestroyGroup(g) call DestroyTimer(t) set t = null set filter = null set g = null endfunction Здесь не нужен вообще. Возьми для проверки вставь в функцию Timer вывод текстового сообщения на экран и увидишь, что никакое текстовое сообщение не отобразится, так-как таймер не срабатывает (он уничтожен).
|
| | |
-
wetalq | Дата: Суббота, 21-01-2012, 10:18:21 | Сообщение # 38 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
| | |
-
Caturn | Дата: Суббота, 21-01-2012, 13:51:25 | Сообщение # 39 |
Темный рыцарь
загрузка наград ...
Группа: Проверенные
Сообщений: 217
Репутация: 128
Статус: Не на сайте
|
Ну и баян вы развели. Эх жалко вчера я вырубился рано)
Мои статьи: 1. http://wc3-maps.ru/forum/78-1507-1 Школа тригеростроения, ГУИ. http://wc3-maps.ru/forum/99-1471-1
|
| | |
-
crymchanin | Дата: Суббота, 21-01-2012, 13:55:45 | Сообщение # 40 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 21
Репутация: 4
Статус: Не на сайте
|
Quote (Caturn) Ну и баян вы развели. Баян?
З.Ы. Залазь в скайп
|
| | |