Вопросник
|
|
Vedun | Дата: Пятница, 18 Мая 2007, 13:15:16 | Сообщение # 1 |
2 уровень
Группа: Проверенные
Сообщений: 39
Награды: 0
Репутация: 47
Блокировки:
| Выкладывайте здесь вопросы по JASS. Постараюсь ответить на все. Q. Что такое JASS? A. JASS - язык программирования.
Сообщение отредактировал Vedun - Пятница, 18 Мая 2007, 13:19:10 |
|
|
|
BinGO | Дата: Воскресенье, 28 Июня 2009, 17:00:37 | Сообщение # 301 |
Группа: Модераторы
Сообщений: 2906
Награды: 8
Блокировки:
| N_A_P, есть ошибки)) причем такие...что страшно смотреть)) Quote (N_A_P) functions WORLD(название) takes neps[1] (мой герой) integer int returns nothing Начнем с объявления функции. Надо песать "functoin", заметь, что "s" там нет!!! Да и ты не думал о том, что вместо массива надо просто указывать тип и название переменной? Вместо "neps[1]" надо "unit neps", а ячейка массива указывается в параметрах при вызове функции (если там будет массив). Идем далее. Quote (N_A_P) call WORLD(100)(то скок я даю опыта) call WORLD(AddHeroXp) Непонятно, что делают эти строки...как можно в функции обращаться к самой функции?!)) Сейчас кину тебе то, что должно быть там на самом деле: Code function WORLD takes unit u integer int returns nothing call AddHeroXP(u,int,true) endfunction При вызове этой функции у тебя должен быть код следующего вида: "call WORLD(*юнит которому дается опыт*, *количество опыта*)" unit u = юнит, которому дается опыт; integer int = количество опыта.
|
|
|
|
-Castro- | Дата: Вторник, 30 Июня 2009, 19:26:22 | Сообщение # 302 |
УГ продюсер
Группа: Ветераны
Сообщений: 2099
Награды: 3
Репутация: 1213
Блокировки:
| Вопрос: как занести в переменную точку, указанную заклинанием, например, "Темная стая"???
|
|
|
|
DragoN | Дата: Вторник, 30 Июня 2009, 20:03:41 | Сообщение # 303 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| -Castro-, если я не ошибаюсь то создай локальную локацию и присвой ей значение GetSpellTargetLoc()
El Psy Congroo
|
|
|
|
-Castro- | Дата: Среда, 01 Июля 2009, 13:27:54 | Сообщение # 304 |
УГ продюсер
Группа: Ветераны
Сообщений: 2099
Награды: 3
Репутация: 1213
Блокировки:
| Quote (Dragon93) создай локальную локацию это что?Добавлено (01-07-2009, 13:27) --------------------------------------------- а всё сделал)) спс Code set udg_point = GetSpellTargetLoc()
|
|
|
|
windrunner | Дата: Среда, 01 Июля 2009, 18:56:28 | Сообщение # 305 |
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
| Quote (-Castro-) set udg_point = GetSpellTargetLoc() Можно было сделать и локальной...
И в правду мир сошел с ума... И до тех пор пока нас не обесточат Пока не догорит аварийных фонарей заряд Мы будем жечь тут электричество что есть мочи Русский мапмейкинг - бессмысленный и беспощадный.xD
|
|
|
|
DragoN | Дата: Среда, 01 Июля 2009, 19:11:09 | Сообщение # 306 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| -Castro-, к примеру в начале кода пишешь: local location loc = GetSpellTargetLoc() только в конце кода не забудь её удалить и переменную очистить, иначе будет утечка: call RemoveLocation(loc) set loc = null
El Psy Congroo
|
|
|
|
PRo]DarkDragon | Дата: Пятница, 03 Июля 2009, 01:14:53 | Сообщение # 307 |
1 уровень
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Блокировки:
| На JASS'е никогда неписал(надеюсь больше не прийдёться), но жизнь заставила. Столкнулся с проблемой: создал я карту, на ней происходят баталии в несколько раундов. В баталиях принимают участия герои и юниты под подкровительством двух игроков. В начале каждому выдаёться герой(и) и юниты. В начале каждого раунда некоторым типам юнитов качаю или атаку, или защиту, или спосбность какую. Делаю это с помощью метода set current research level и устанавливаю желаемое значение. После того как раунд завершился все юниты килятся, а трупы читяться. Создаёться следующий раунд с другим набором всего добра... Всё было хорошо, но мне пришлось в 8 раунде изменить защиту финдов на 0. (до этого она была изменена на 3). Делаю это всё тем же методом. А он не хочет уменшать ни одну способность на 0. Подскажите, как заставить его это сделать. Заранее благодарен за ответ. С уважением, Евгений.Добавлено (03-07-2009, 01:14) --------------------------------------------- И ещё, Vedun, хочу тебя поправить: JASS - это не язык программирования.
|
|
|
|
windrunner | Дата: Пятница, 03 Июля 2009, 13:58:12 | Сообщение # 308 |
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
| У меня такой вопрос(я джасс токо начал изучать и ето мой второй код) Code //TESH.scrollpos=0 //TESH.alwaysfold=0 function Trig_imena_Func001A takes nothing returns nothing local texttag t call CreateTextTagUnitBJ( GetUnitName(GetEnumUnit()), GetEnumUnit(), 0, 10, 100, 100, 100, 0 ) set t = GetLastCreatedTextTag() call TriggerSleepAction( 2 ) call DestroyTextTagBJ( t ) endfunction
function Trig_imena_Actions_001 takes nothing returns nothing call ForGroupBJ( GetUnitsInRangeOfLocAll(150.00, GetUnitLoc(gg_unit_O000_0004)), function Trig_imena_Func001A ) endfunction
//=========================================================================== function InitTrig_imena takes nothing returns nothing set gg_trg_imena = CreateTrigger( ) call TriggerRegisterUnitInRangeSimple( gg_trg_imena, 200.00, gg_unit_O000_0004 ) call TriggerAddAction( gg_trg_imena, function Trig_imena_Actions_001 ) endfunction
Ета функция должна создать над юнитом плавающюю строку с его именем И через 2 сек удалить ее У меня 2 проблемы во 1 она показывает и имя главного героя(от которого идет отсчет) что не есть правильно Во 2 она не удаляет плавающюю строку что делать?
И в правду мир сошел с ума... И до тех пор пока нас не обесточат Пока не догорит аварийных фонарей заряд Мы будем жечь тут электричество что есть мочи Русский мапмейкинг - бессмысленный и беспощадный.xD
|
|
|
|
DragoN | Дата: Пятница, 03 Июля 2009, 14:15:01 | Сообщение # 309 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| windrunner, а зачем ты пикаешь юнитов в радиусе 150 от позиции юнита?
El Psy Congroo
|
|
|
|
windrunner | Дата: Пятница, 03 Июля 2009, 15:12:00 | Сообщение # 310 |
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
| Quote (Dragon93) windrunner, а зачем ты пикаешь юнитов в радиусе 150 от позиции юнита? А как иначе сделать чтобы можно было сделать надпись над юнитом??? (Там выбор по юниту идет я выбрал выбранный юнит)
И в правду мир сошел с ума... И до тех пор пока нас не обесточат Пока не догорит аварийных фонарей заряд Мы будем жечь тут электричество что есть мочи Русский мапмейкинг - бессмысленный и беспощадный.xD
|
|
|
|
DragoN | Дата: Пятница, 03 Июля 2009, 15:34:24 | Сообщение # 311 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| windrunner, тут(http://warcraft3ft.info/forum/30-9640-1)я нечто похожее делал,но там текст висел над юнитом,думаю сенить сам сможешь(если джасс знаешь)
El Psy Congroo
|
|
|
|
windrunner | Дата: Пятница, 03 Июля 2009, 15:35:32 | Сообщение # 312 |
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
| Quote (Dragon93) windrunner, тут(http://warcraft3ft.info/forum/30-9640-1)я нечто похожее делал,но там текст висел над юнитом,думаю сенить сам сможешь(если джасс знаешь) Дак в етом то и проблема...У мя текст должен исчезать а он не исчезает((
И в правду мир сошел с ума... И до тех пор пока нас не обесточат Пока не догорит аварийных фонарей заряд Мы будем жечь тут электричество что есть мочи Русский мапмейкинг - бессмысленный и беспощадный.xD
|
|
|
|
DragoN | Дата: Пятница, 03 Июля 2009, 15:37:07 | Сообщение # 313 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| windrunner, у мя он изчезает после 30 секунд...
El Psy Congroo
|
|
|
|
windrunner | Дата: Пятница, 03 Июля 2009, 15:39:10 | Сообщение # 314 |
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
| Quote (Dragon93) windrunner, тут(http://warcraft3ft.info/forum/30-9640-1)я нечто похожее делал,но там текст висел над юнитом,думаю сенить сам сможешь(если джасс знаешь) А нельзя ли указать на ошибку в моем коде???Что именно у меня не верно??
И в правду мир сошел с ума... И до тех пор пока нас не обесточат Пока не догорит аварийных фонарей заряд Мы будем жечь тут электричество что есть мочи Русский мапмейкинг - бессмысленный и беспощадный.xD
|
|
|
|
DragoN | Дата: Пятница, 03 Июля 2009, 15:41:01 | Сообщение # 315 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| windrunner, могу посоветовать раскрыть бж,но я проверить не могу(пока вары нету),нот текст создаёться?
El Psy Congroo
|
|
|
|
windrunner | Дата: Пятница, 03 Июля 2009, 15:50:06 | Сообщение # 316 |
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
| Quote (Dragon93) windrunner, могу посоветовать раскрыть бж,но я проверить не могу(пока вары нету),нот текст создаёться? бж???что за звербь такой?? Текст создается но почему то у двух юнитом у гг(от которого идет отсчет расстояния) и у того к кому подошел ето тоже нужно исправить!
И в правду мир сошел с ума... И до тех пор пока нас не обесточат Пока не догорит аварийных фонарей заряд Мы будем жечь тут электричество что есть мочи Русский мапмейкинг - бессмысленный и беспощадный.xD
|
|
|
|
DragoN | Дата: Пятница, 03 Июля 2009, 16:37:53 | Сообщение # 317 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| Quote (windrunner) бж???что за звербь такой?? все функции вара разделяються на бж и нативки(стыдно не знать) Quote (windrunner) Текст создается но почему то у двух юнитом у гг(от которого идет отсчет расстояния) и у того к кому подошел ето тоже нужно исправить! опиши лучше в ЛС что должно присходить,я объясню твою ошибку
El Psy Congroo
|
|
|
|
Malfatto | Дата: Суббота, 04 Июля 2009, 02:22:55 | Сообщение # 318 |
Группа: Модераторы
Сообщений: 3806
Награды: 7
Репутация: 2425
Блокировки:
| Quote (Dragon93) все функции вара разделяються на бж и нативки(стыдно не знать) Почему стыдно... Я вот узнал не сразу - а лишь когда масю ткнул пошарить в mpq
|
|
|
|
windrunner | Дата: Суббота, 04 Июля 2009, 12:34:26 | Сообщение # 319 |
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
| Ето снова я,вопрос у меня был тригер Code function Move_text takes nothing returns nothing call SetTextTagPosUnitBJ( udg_t, udg_u, 0 ) endfunction
function Trig_imena_Actions takes nothing returns nothing local texttag t local unit u local timer v call CreateTextTagUnitBJ( GetUnitName(GetTriggerUnit()), GetTriggerUnit(), 0, 10, 100, 100, 100, 0 ) set udg_t = GetLastCreatedTextTag() set udg_u = GetTriggerUnit call TimerStart(v,0.05,true,function Move_text) call TriggerSleepAction( 2 ) call TimerStart(v,0.05,false,function Move_text) call DestroyTextTagBJ( t ) call DestroyTimer(v) set t=null set u=null endfunction
//=========================================================================== function InitTrig_imena takes nothing returns nothing set gg_trg_imena = CreateTrigger( ) call TriggerRegisterUnitInRangeSimple( gg_trg_imena, 200.00, gg_unit_O000_0004 ) call TriggerAddAction( gg_trg_imena, function Trig_imena_Actions ) endfunction Но он почему-то не работает он должен сделать,когда подходишь к кому-то на расстояние 200 то над ним появляется его имя и если он движется то его имя движется за ним но почему-то ни имя не движется ни имя не исчезает Изначальный код где плавающая строка исчезает вот Code
function Trig_imena_Actions takes nothing returns nothing local texttag t local unit u local timer v call CreateTextTagUnitBJ( GetUnitName(GetTriggerUnit()), GetTriggerUnit(), 0, 10, 100, 100, 100, 0 ) set t = GetLastCreatedTextTag() set u = GetTriggerUnit() call TriggerSleepAction( 2 ) call DestroyTextTagBJ( t ) call DestroyTimer(v) set t=null set u=null endfunction
//=========================================================================== function InitTrig_imena takes nothing returns nothing set gg_trg_imena = CreateTrigger( ) call TriggerRegisterUnitInRangeSimple( gg_trg_imena, 200.00, gg_unit_O000_0004 ) call TriggerAddAction( gg_trg_imena, function Trig_imena_Actions ) endfunction Помогите мне сделать чтобы его(боевой единици) имя(плавающая строка) двигалась вместе с юнитом??
И в правду мир сошел с ума... И до тех пор пока нас не обесточат Пока не догорит аварийных фонарей заряд Мы будем жечь тут электричество что есть мочи Русский мапмейкинг - бессмысленный и беспощадный.xD
|
|
|
|
BinGO | Дата: Суббота, 04 Июля 2009, 16:41:09 | Сообщение # 320 |
Группа: Модераторы
Сообщений: 2906
Награды: 8
Блокировки:
| Писать триггер не буду (лень :D), могу лишь посоветовать сделать текст с помощью таймера, где в параметрах передается имя боевой единицы и сам юнит))
|
|
|
|
windrunner | Дата: Суббота, 04 Июля 2009, 18:55:26 | Сообщение # 321 |
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
| Quote (B1nGO) Писать триггер не буду (лень :D), могу лишь посоветовать сделать текст с помощью таймера, где в параметрах передается имя боевой единицы и сам юнит)) Я пытался не пашет чего-то(((Выдает либо ошибку либо вообще не работает(( Вариант выше
И в правду мир сошел с ума... И до тех пор пока нас не обесточат Пока не догорит аварийных фонарей заряд Мы будем жечь тут электричество что есть мочи Русский мапмейкинг - бессмысленный и беспощадный.xD
|
|
|
|
Malfatto | Дата: Воскресенье, 05 Июля 2009, 04:13:19 | Сообщение # 322 |
Группа: Модераторы
Сообщений: 3806
Награды: 7
Репутация: 2425
Блокировки:
| Попробуй в гуи виде сделать. Заново.
|
|
|
|
windrunner | Дата: Воскресенье, 12 Июля 2009, 11:33:08 | Сообщение # 323 |
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
| Скажите что написать чтобы когда таймер истекает происходил вызов функции?? Ну и вообще чтобы когда истекает таймер происходило какое-то действие??
И в правду мир сошел с ума... И до тех пор пока нас не обесточат Пока не догорит аварийных фонарей заряд Мы будем жечь тут электричество что есть мочи Русский мапмейкинг - бессмысленный и беспощадный.xD
|
|
|
|
BinGO | Дата: Воскресенье, 12 Июля 2009, 11:39:40 | Сообщение # 324 |
Группа: Модераторы
Сообщений: 2906
Награды: 8
Блокировки:
| Вообще то есть такая замечательная натив функция TimerStart, параметры которой - timer whichTimer, real timeout, boolean periodic, code handlerFunc В последний параметр и стоит писать: function название функции. Пример: Code call TimerStart(example,0.01,true,function Example)
|
|
|
|
DragoN | Дата: Воскресенье, 12 Июля 2009, 19:21:22 | Сообщение # 325 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
| B1nGO, ты про многократный таймер написал,а ему нужен вроде однократный =\
El Psy Congroo
|
|
|
|