Сейчас 22:36:40 Пятница, 19 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Bru  
Форум о Warcraft 3 » Прочее » Отвал » Вопросник
Вопросник
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
 

Форум о Warcraft 3 » Прочее » Отвал » Вопросник
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz