H_A_PK
#31 | Тема: Способность для увеличении скоростиЗакрыто
Ползут 2 пирожка.
Первый: Я тебя щас трахну.
Второй: Почему?
Первый: Потому что я с яйцами :D
Первый: Я тебя щас трахну.
Второй: Почему?
Первый: Потому что я с яйцами :D
| Форум Записи участника |
| Результаты поиска |
H_A_PK#31 | Тема: Способность для увеличении скоростиЗакрыто
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
|
|
H_A_PK#33 | Тема: Баф статы мобовЭто на муи надо делать.
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#34 | Тема: Ваши вопросы по Jass'yпакет функций, моделей и единиц, которые упрощают многие аспекты создания абил
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#35 | Тема: H_A_PKФото:
Имя: Дима Другие ники: N_A_P Город: Нижний-Тагил Род занятий: Учёба и работа и прочая мутодень Проекты: нету О себе: Люблю: Спать, девушек, вкусно поесть, играть, курить, дуть, бухать, маму, молоко, рисовать картину кишёк привязаных к люстре, выбегать в падик и орать "Мир тесен", маслать, рыбалку, рыбачить, сидеть с удочкой, гонять на мотоцикле, гонять в любом другом смысле, ржать люблю очень. Не Люблю: не высыпаться, учиться, быть без денег, когда почан чихает, когда товарисч коворяется в носу ну и так далее Из кинчиках все любимые, что мне нравятся и все новинке в 3D :3 Поиграть там люблю в Gothic 1, 2, 3, 4 ; Risen; The Elder Scrolls III; IV; ну и варьку ещё Послушать повыкладывать мозги на пол от krec Гуф Наггано Баста весь и весьма стандартно же, что это рэп ну нимного другого Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#36 | Тема: Ваши вопросы по Jass'yПолзут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#37 | Тема: Введение в JassПрежде чем приступить к изучения азам жасс,советую скачать эти софты:
И вообще что такое Jass ? Жасс - это событийно-ориентированный скриптовый язык программирования, созданный компанией Blizzard Entertainment. Используется в играх, таких как Warcraft и Starcraft. Язык функций, функции из common.j и blizzard.j , а точнее на нативки и бж. Все действия в нём проводятся именно в функции какое бы не было оно должно проводится именно под блоком функции. Вот вы когда-нибудь ковенвертировали тригер в жасс, не ? Чтож давайте попробуем! Редактор триггеров создоём триггер. Далее правка/конвентировать в текс. Тот у кого JassCraft, да пажалуйста, File/New/Templates/New Tigger. Мы должны увидеть это: вариант JassCraft: [jass]function Trig_NewTrigger_Conditions takes nothing returns boolean return endfunction function Trig_NewTrigger_Actions takes nothing returns nothing endfunction //==== Init Trigger NewTrigger ==== function InitTrig_NewTrigger takes nothing returns nothing set gg_trg_NewTrigger = CreateTrigger() //call TriggerRegister__(gg_trg_NewTrigger, ) call TriggerAddCondition(gg_trg_NewTrigger, Condition(function Trig_NewTrigger_Conditions)) call TriggerAddAction(gg_trg_NewTrigger, function Trig_NewTrigger_Actions) endfunction[/jass] вариант WorldEditor: [jass]function Trig_NewTrigger_Actions takes nothing returns nothing endfunction //================================ function InitTrig_NewTrigger takes nothing returns nothing set gg_trg_NewTrigger = CreateTrigger() call TriggerAddAction(gg_trg_NewTrigger, function Trig_NewTrigger_Actions) endfunction[/jass] И без слов понятно, что [jass]function Trig_NewTrigger_Actions takes nothing returns nothing endfunction[/jass] Функция в которой могут присутствовать наши действия как это выгледило в триггерах под блоком "Действия". Слово "function" должно присутствовать всегда перед блоком функции, на то что дальше этого слова можете не вникать на следуйщих уроках мы подробнее разберём, что к чему и с чем едят это. "gg_trg_NewTrigger" Это название нашего триггера , а точнее "NewTrigger", у вас оно может быть другое. А вот "gg_trg_" это присутствует всегда перед названием т.к. триггер наш создан путём "Создать триггер". Думаю, то что дальше присутствует в коде выглядит непонятно и странно. Для этого давайте изучим некоторые операторы в нашем Jass'e Существующие блоки [jass]function //с этим мы уже познакомились endfunction //обозначает конец блока функции takes // аргументы запрашивающая функция returns // тип переменой должный возвратится после обработки функцией loop // цикл endloop // конец блока цикла if // если then // конец строки если, внимание должна быть написано обязательно после вашего условия в той же строке через пробел endif // конец блока условий elseif // иначе с условием else / просто иначе type // тип переменной extends // от чего наследуется constant //наверное все не раз слышали об const это те переменые, которые принемают одно значение и никогда не миняются native // нативная функция globals // объявление глобальной переменной endglobals //конец блока глобалок[/jass] Операторы работающие в блоке [jass]call // Вызов функции, напротив call нужно написать имя функции например Trig_NewTrigger_Actions() или DoNothing() return // если функция возвращает параметр то это строка просто необхадима set // присвоить значение переменной напротив данного оператора exitwhen // строка обозначающая условия выхода из цикла local // объявление локальной переменной, напротив тип и потом имя "local unit u = null" not // знак отрицания юзается в условиях and // логическая И or // логическая ИЛИ[/jass] Значение типа "пусто" , " да ", "нет". [jass]null //пусто true //да false // нет [/jass] булевая необходимы для сравнения Дополнительные операторы и простейшии(основные) типы переменных [jass]nothing // ничего array // массив пример "local unit array u" string // строка integer //целочисленая вроде 32 бит real // реальное число jass // напротив функция boolean // логическое "пусто" , " да ", "нет".[/jass] Остальные типы переменных с ними мы познакомимся позже [jass] hashtable handle event player widget unit destructable item ability buff force group trigger triggercondition triggeraction timer location region rect boolexpr sound conditionfunc filterfunc unitpool itempool race alliancetype racepreference gamestate igamestate fgamestate playerstate playerscore playergameresult unitstate aidifficulty eventid gameevent playerevent playerunitevent unitevent limitop widgetevent dialogevent unittype gamespeed gamedifficulty gametype mapflag mapvisibility mapsetting mapdensity mapcontrol playerslotstate volumegroup camerafield camerasetup playercolor placement startlocprio raritycontrol blendmode texmapflags effect effecttype weathereffect terraindeformation fogstate fogmodifie r dialog but ton quest questitem defeatcondition timerdialog leaderboard multiboard multiboarditem trackable gamecache version itemtype texttag attacktype damagetype weapontyp e soundtype lightning pathingtype image ubersplat playerscore[/jass] Мы с вами видем, что операторов не так уж и мало, что и вообщем-то даёт нам наши с вами способности картостроя в вакрафте ;). А теперь снова гляним на наш триггер [jass] function Trig_NewTrigger_Actions takes nothing returns nothing endfunction //================================ function InitTrig_NewTrigger takes nothing returns nothing set gg_trg_NewTrigger = CreateTrigger() call TriggerAddAction(gg_trg_NewTrigger, function Trig_NewTrigger_Actions) endfunction [/jass] Картина начинает раскрываться "InitTrig_" Состоит перед названием функции иницилизации нашего с вами триггера. Согласно war3map.j-коду, компилируемому WE-средствами, он вызывает поочерёдную инициализацию триггеров карты, а функции-инициализаторы понимаются под приставкой InitTrig_Название [jass] set gg_trg_NewTrigger = CreateTrigger() [/jass] просто присваевает глобальной переменной типа trigger её создание вот и всё. [jass] call TriggerAddAction(gg_trg_NewTrigger, function Trig_NewTrigger_Actions) [/jass] Вызывает функцию добавления действия в триггер "Trig_NewTrigger_Actions". [jass] endfunction [/jass] Конец блока [jass] //================================ [/jass] Вызывает недоверие , она такая противная, поэтому я её всегда срезаю. Вообщем "//" озночает коментарий после которых можно писать, что душе угодно только в одно строчку ! Например "//Ололо Масер нуб". Ну-с думаю на этот урок достаточно. Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#38 | Тема: Введение в JassИтак, после ознакомления с азами Jass копнём чуть поглубже и разберём два вида переменных.
В Jass существует 2 вида переменных - локальные и глобальные. Разберём плюсы и минусы каждого из них. Локальные: + Сохраняют своё значение после ожиданий. + Создаются уникально при каждом запуске триггера (не перезаписываются после второго запуска триггера). + Легко регулируемы. + MUI. - Действуют только в пределах функции, где их задали. Глобальные: + Действуют во всех триггерах карты. + MPI (Хоть и массивным способом) - Есть риск потерять значение после ожидания (Если триггер запустится во время ожидания, переменная перезапишется). - Каждый раз нужно писать приставку udg_ - Немного неудобны по сравнению с локальными. Лучше по возможности отказываться от глобальных переменных и использовать только локальные (Исключение - хеш-таблицы), т.к. они дают гарантию того, что значение сохранится. Как объявить локальную переменную? Очень просто: [jass]local <тип> <название>[/jass] Пример: [jass]local integer i[/jass] Это будет целочисленная под названием i. Вводя название, мы обращаемся к целочисленной переменной. Кое-когда объявляют переменные и тут же задают им значение: [jass]local <тип> <название> = <значение>[/jass] Пример: [jass]local integer i = 0[/jass] Тогда наша целочисленная будет равна 0. Можно задать её значение не сразу, а по ходу кода. Делают это так: [jass]set <название> = <значение>[/jass] Пример: [jass]set i = 0[/jass] Подобным образом задают глобальные переменные, но добавляют приставку udg_ [jass]set udg_<название> = <значение>[/jass] Пример: [jass]set udg_Integer = 0[/jass] . Глобальные переменные создаются в Редакторе переменных, локальные же - только в функциях непосредственно. Переменные бывают утечные (те, которые наследуются от типа handle), их надо обнулять: [jass]set <название> = null[/jass] Неутечные типы переменных: boolean, integer, real. Запомните их. By [DUOS] aka Simpler Прикрепления:
400kg.cfg
(3.9 Kb)
|
H_A_PK#39 | Тема: Введение в JassНачинки функций. common.j и blizzard.j Сегодня мы рассмотрим функции, а точнее их начинки и научимся определять к какому типу принадлежит функция. Существует два вида функций, а - это native и bj. native - не долго думая, зная английский язык слово native означает "родная" т.е. функция родная движку варкрафта, она не имеют начинки, хотя нет имеет, но не в виде жасса, а ассемблера. Пример нативки: bj - а именно blizzard.j функции имеющие начинку. Пример: Начинка - это внутренности функции, те действия которые она вызывает в последствии вызова самой функции. Так что нам будет проще избавить начинку от это функции, но не всегда это проще;) Но не каждая функция с начинкой имеет в конце названия такое клеймо как BJ. Начинка в каждой функции своя, будто тонна кода или вызов одной лишь функции или тонна кода которая также имеет начинку. Как узнать начинку той или иной функции ? Жаль, но обыкновенный ВЕ нам в этом не поможет. Необходим JNGP ну или JassCraft, можно открыть в блокноте файл в папке blizzard.j. Покажу на примере JassCraft'a: Выберем интересующую нам функцию из Native List и снизу мы увидим её начинку, если начинка начинается со слова "native" функция нативная и начинки мы так и не увидим, а если с "function" то имеет и собственно мы её и видим. В JNGP можно узнать начинку, зажав ctrl и щёлкнуть по интересующей нами функции, ну или открыть лист функций и выбрать там. Ну увидели мы начинку и что дальше ? А дальше я покажу вам на примере как их разворачивать! Для примера я разверну эту функцию: [jass]function action takes nothing returns nothing local unit u = <ваш юнит> local location loc = <ваша точка> local location loc2 = <ваша точка> call SetUnitPositionLocFacingLocBJ(u,loc,loc2) endfunction[/jass] Для начала нам нужно узнать начинку функции SetUnitPositionLocFacingLocBJ. А вот и она: [jass]function SetUnitPositionLocFacingLocBJ takes unit whichUnit, location loc, location lookAt returns nothing call SetUnitPositionLoc(whichUnit, loc) call SetUnitFacing(whichUnit, AngleBetweenPoints(loc, lookAt)) endfunction[/jass] Разберём всё подробно т.к. для вас это кажется тучей буков и не больше: function SetUnitPositionLocFacingLocBJ takes unit whichUnit, location loc, location lookAt returns nothing call SetUnitPositionLoc(whichUnit, loc) call SetUnitFacing(whichUnit, AngleBetweenPoints(loc, lookAt)) endfunction То что выделено оранжевым мы копируем и вставляем в нашу функцию [jass] function action takes nothing returns nothing local unit u = <ваш юнит> local location loc = <ваша точка> local location loc2 = <ваша точка> call SetUnitPositionLoc(whichUnit, loc) call SetUnitFacing(whichUnit, AngleBetweenPoints(loc, lookAt)) endfunction[/jass] Ага, а дальше под ставим все значения для этого нам следует ещё раз заглянуть в начинку. function SetUnitPositionLocFacingLocBJ takes unit whichUnit, location loc, location lookAt returns nothing обозначив все аргументы нам будет не сложно подставить их все в нашу развёртку [jass] call SetUnitPositionLoc(u, loc) call SetUnitFacing(u, AngleBetweenPoints(loc, loc2))[/jass] Ну и в конце концов всё выглядит вот так вот: [jass]function action takes nothing returns nothing local unit u = <ваш юнит> local location loc = <ваша точка> local location loc2 = <ваша точка> call SetUnitPositionLoc(u, loc) call SetUnitFacing(u, AngleBetweenPoints(loc, loc2)) call RemiveLocation(loc) call RemoveLocation(loc2) set u = null set loc = null set loc2 = null endfunction[/jass] Есть одно НО, функцию AngleBetweenPoints тоже стоит развернуть, что мы сейчас и сделаем. [jass]function AngleBetweenPoints takes location locA, location locB returns real return bj_RADTODEG * Atan2(GetLocationY(locB) - GetLocationY(locA), GetLocationX(locB) - GetLocationX(locA)) endfunction[/jass] Ага! Берём это: [jass]bj_RADTODEG * Atan2(GetLocationY(locB) - GetLocationY(locA), GetLocationX(locB) - GetLocationX(locA))[/jass] И начинаем подставлять туда наши аргументы [jass]bj_RADTODEG * Atan2(GetLocationY(loc2) - GetLocationY(loc), GetLocationX(loc2) - GetLocationX(loc))[/jass] А лучше взять это в локалку: [jass]local real r = bj_RADTODEG * Atan2(GetLocationY(loc2) - GetLocationY(loc), GetLocationX(loc2) - GetLocationX(loc))[/jass] Ну и наш код приобретёт немного другой вид: Её начинка: [jass]function action takes nothing returns nothing local unit u = <ваш юнит> local location loc = <ваша точка> local location loc2 = <ваша точка> local real r = bj_RADTODEG * Atan2(GetLocationY(loc2) - GetLocationY(loc), GetLocationX(loc2) - GetLocationX(loc)) call SetUnitPositionLoc(u, loc) call SetUnitFacing(u, r) call RemiveLocation(loc) call RemoveLocation(loc2) set u = null set loc = null set loc2 = null endfunction[/jass] Так - то! Также список нативных функций находится в файле common.j, а список бж функций в файле blizzard.j. Прикрепления:
8351946.cfg
(3.9 Kb)
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#40 | Тема: Отчеты Модераторов Закрепленных За Подфорумаминедельный отчёт:
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#41 | Тема: H_A_PKQuote (M@}{) H_A_PK, меньше в лесу с компом теряйся... что бы это могло значить Quote (M@}{) Позитиффф в человеке на уровне гавнослива Нано, ооочень высокий позитифф это хорошо говорила мне бабушка, чем быть унылой какашкой Quote (MElkiyO_o) Крутой чел, ведет веселый а не здоровый образ жизни Quote (MElkiyO_o) Тоже рыбачить люблю, помню это весной вместо школы с друзьями на рыбалку пошли, а друг кальян взял=)Рыбачу, кальян дую а рядом значит девочка сидит....... спасибо MElkiyO_o, ну я на рыбалку люблю ходить с 3х литровой сиськой пивандрия Quote (nikikin) H_A_PK, наркоман) nikikin, *никикинфейс* Сообщение отредактировал H_A_PK - Вт, 05.07.11, 18:54
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
|
|
H_A_PK#43 | Тема: H_A_PKQuote (nikikin) H_A_PK, ты зло)) ЗЛО - замечательный ловкий оченьумный)) Добавлено (06.07.11, 19:14) Quote (MElkiyO_o) Слышал поговорку-На словах ты рыбак а на деле мудак))) Эт мой друг, я за 5 часов 24 рыбы поймал а он две))) слышал) , да не, я и сам порой приношу трофеи домой, ну один раз вообще двух лещей по 1 кг выловил) Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
|
|
H_A_PK#45 | Тема: Восхождение демоновИнтересный проект,жду с нетерпением конечно. Правда из скриншотов видно только какого-то демона. Так ничего и не ясно
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
| ||