Quote (PaulX)
H_A_PK,Не может такое быть с радикалом(именно у меня удалили), тогда я еще раз поставлю картинку.. и вопросы исчерпаны. Прошу прощения.
Тогда иди на радикал жалуйся
Форум Записи участника |
Результаты поиска |
H_A_PK#406 | Тема: Жалоба на МодераторовQuote (PaulX) H_A_PK,Не может такое быть с радикалом(именно у меня удалили), тогда я еще раз поставлю картинку.. и вопросы исчерпаны. Прошу прощения. Тогда иди на радикал жалуйся Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#407 | Тема: Хеш ТаблицаQuote (NoExist) Но, я так понял, надо создать переменную Hash... Но никакого типа переменной Хеш таблицы я не нашел... Мозг парю уже который час... Разжуйте плз... У тебя какой патч ? Там просто должна быть Хеш Таблица Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#408 | Тема: Досчитаем до 1 000 000 0002386
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#409 | Тема: Общение T-CorpВсем привет=)
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#410 | Тема: Жалоба на МодераторовQuote (PaulX) Прошу прощения. Quote (HappySmile) вопрос решен Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
|
H_A_PK#412 | Тема: Предложения новые иконки.За.
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#413 | Тема: [Информация]НарушенияУ вас недостаточно прав для просмотра данного сообщения.
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#414 | Тема: Скрины Рабочего столаQuote (nikikin) Сталкер_27, ну а в чем ржач? nikikin, надо над ним ржать Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#415 | Тема: [Информация]НарушенияУ вас недостаточно прав для просмотра данного сообщения.
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#416 | Тема: Система воскрешения (Jass)Code function Trig_Revive_Hero_Taimer takes nothing returns nothing local timer t=GetExpiredTimer() local integer ID=GetHandleId(t) local unit u=LoadUnitHandle(udg_Hash,ID,0) local player p=GetOwningPlayer(u) local timerdialog w=LoadTimerDialogHandle(udg_Hash,ID,2) local real x = 0 local real y = 0 if GetPlayerId(p) <= 5 then set x = GetRectCenterX(udg_rect1)\\ udg_rect1 облость для первой команды set y = GetRectCenterY(udg_rect1) else set x = GetRectCenterX(udg_rect2)\\ udg_rect2 облость для второй команды set y = GetRectCenterY(udg_rect2) endif //Воскрешает героя в стартовой локации,можно менять call ReviveHero(u,x,y,true ) if GetLocalPlayer()==GetOwningPlayer(u)then call PanCameraTo(GetUnitX(u),GetUnitY(u)) endif call PauseTimer(t) call DestroyTimer(t) call DestroyTimerDialog(w) call FlushChildHashtable(udg_Hash,ID) set t=null set u=null set p=null set w=null endfunction function Trig_Revive_Hero_Actions takes nothing returns nothing local timer t local integer ID local timerdialog w local unit u=GetTriggerUnit() if IsUnitType(u,UNIT_TYPE_HERO)==true then set t=CreateTimer() set ID=GetHandleId(t) set w=CreateTimerDialog(t) //Создает окно таймера в котором будет написанно имя игрока владельца умершего героя call TimerDialogSetTitle(w,GetPlayerName(GetOwningPlayer(u))) call TimerDialogDisplay(w,true) call SaveUnitHandle(udg_Hash,ID,0,u) call SaveTimerDialogHandle(udg_Hash,ID,2,w) //Запускает таймер,GetHeroLevel(u)*3. время через которое возродиться наш герой. call TimerStart(t,GetHeroLevel(u)*3.,true,function Trig_Revive_Hero_Taimer) set t=null set w=null endif set u=null endfunction function InitTrig_Revive_Hero takes nothing returns nothing local integer i=0 local trigger trig=CreateTrigger() loop call TriggerRegisterPlayerUnitEvent(trig,Player(i),EVENT_PLAYER_UNIT_DEATH,null) set i=i+1 exitwhen i==11 endloop call TriggerAddAction(trig,function Trig_Revive_Hero_Actions) set trig=null endfunction держи И чтоб ты знал, я добавил только это: Code local real x = 0 local real y = 0 if GetPlayerId(p) <= 5 then set x = GetRectCenterX(udg_rect1)\\ udg_rect1 облость для первой команды set y = GetRectCenterY(udg_rect1) else set x = GetRectCenterX(udg_rect2)\\ udg_rect2 облость для второй команды set y = GetRectCenterY(udg_rect2) endif Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
|
H_A_PK#418 | Тема: [Статья]Jass поляризация-Я был на форуме мне сказали: "юзай полярки!". Что это? Да да, сейчас я всё для вас разжую. Плярка "PolarProjectionsBJ" in jass. Поглядим , что внутри этой функции. [jass] functions PolarProjectionsBJ takes location loc, real a, real deegres returns location local real x = GetLocationX(loc) + a * CosBJ(deegres) local real y = GetLocationX(loc) + a * SinBJ(deegres) local location loc = Location(x,y) return loc endfunction[/jass] А вообще по хорошему всё должно быть так: [jass] globals location Nloc = Location(0,0) endglobals functions PolarProjections takes location loc, real a, real deegres returns location local real xl = GetLocationX(loc) local real yl = GetLocationY(loc) local real x = xl + a * Cos(.0174532*deegres) local real y = yl + a * Sin(.0174532*deegres) call MoveLocation(Nloc,x,y) return Nloc endfunction[/jass] Функция изначально предназначена для нахождения точки на окружности, а точнее , это элементарное тождество косинуса и синуса. Нарисуем круг, точка loc есть центр круга , число a есть радиус , а deegres угол. Да, выглядит это так. Формула: [jass] x + r * CosA у + r * SinA[/jass] в эту формулу ведено всего две плоскости х и у и один угла пусть для нас он будет "поворот" . Я придумал формулу на три плоскости включая два поворота "поворот" и "угл атаки", то есть точка уже будет на шаре, а не круге. [jass] x + (r*CosB) * CosA y + (r*SinB) * CosA z + r * SinA[/jass] Да, точка включает теперь "угл атаки" (если не знаете , что это, то создайте камеру и посмотрите там), то есть вводить предётся два угла. Уже этой формулой можно найти любую точку на шаре. Выглядит рисунок по подобной формуле так: То есть шар создать из юнитов или молний теперь рас плюнуть. А если вы будете вращать по этой формуле ? Плоскость Z будет не красиво ходить разнообразно;), чтоб наше вращение выглядело как орбита юпитера, нужно вводить третий угл "крен". Но увы я такую формулу только разрабатываю , ждите обновлений =) Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#419 | Тема: Введение в JassХеш Таблицы вступление Выход нового, 1.24, патча стал проблемой для многих игроков Warcraft’а, они потеряли возможность играть в большинство нестандартных карт. Это случилось из-за фикса старой ошибки близов, называемой Return Bug, благодаря которой мы могли получить Handle любого объекта, а некоторые хакеры открыть окно cmd. Взамен они дали возможность пользоваться хеш-таблицами, которые намного удобнее и быстрее (более подробно про хеш-таблицы можно узнать на страницах Wikipedia). В данную таблицу можно записывать абсолютно любые игровые объекты или переменные. Это может быть использовано для создания оригинальных способностей юнитов или дополнительных характеристик, таких как усталость, сытость, температура и т.д. Если у вас есть хотя бы минимальные знания жасса, то продолжим :) Использования. Для того что бы приступить к использованию Хеш Таблиц, необходимо, для начала создать глобальную переменную типа Хеш Таблица или hashtable. Далее её нужно инициализировать (сделать это необходимо, иначе ваша Хеш Таблица не будет работать). Делается это такой строкой: [jass]set <Хеш Таблица> = InitHashtable()[/jass] Лучше сделать это при инициализации карты, иначе хеш не будет работать до тех пор пока вы его не инициализируете. Получение Handle объекта Если мы хотим присваивать объектам какие-либо значения, то нам необходим хендл данного объекта. Получить его мы можем с помощью функции “GetHandleId”. В качестве аргумента мы передаём любой игровой объект и получаем число типа “Целочисленное (integer) ”. Пример: [jass]local integer ObjectHadle set ObjectHadle = GetHandleId(udg_Unit)[/jass] В данном примере мы присвоили переменной “ObjectHadle” хендл юнита, заранее занесённого в переменную “udg_Unit” Сохранение значений Теперь когда таблица создана и мы умеем получать ссылки на объекты в неё можно записывать любые значения. Для записи используются функции с префиксом “Save” (например SaveInteger или SaveUnitHandle) из списка предоставленного выше. Простейшим примером использования данных функций является запись числа для юнита: [jass]call SaveReal(udg_Hash, GetHandleId(udg_Unit), 0, 1.00)[/jass] В первом аргументе мы передаём функции “SaveReal” хеш-таблицу (“udg_Hash”), во втором хендл юнита “udg_Unit” (созданного ранее и записанного в переменную “udg_Unit”), для которого мы хотим записать это число, в третьем “номер ячейки” данного числа(“0”), ну а четвёртым мы передали само число(“1.00”). Если мы захотим записать другие числа, то мы можем либо перезаписать его, использую функцию: [jass]call SaveReal(udg_Hash, GetHandleId(udg_Unit), 0, “2.00”)[/jass] Либо записать их в другие ячейки: [jass] call SaveReal(udg_Hash, GetHandleId(udg_Unit), 1, “3.00”) call SaveReal(udg_Hash, GetHandleId(udg_Unit), 2, “4.00”) call SaveReal(udg_Hash, GetHandleId(udg_Unit), 3, “5.00”)[/jass] Загрузка значений Для загрузки из таблицы используются функции с префиксом “Load” из списка предоставленного выше. Давайте напишем функцию для загрузки числа из прошлого примера и вывода его на экран: [jass]local real test set test=LoadReal(udg_Hash, GetHandleId(udg_Unit), 0) call BJDebugMsg(R2S(test))[/jass] Сначала мы указываем функции хеш-таблицу (“udg_Hash”), затем даём ссылку на объект (“GetHandleId(udg_Unit)”), а в конце номер ячейки (“0”), из которой мы хотим получить это число. После выполнения этой функции переменная “Test” должна стать равной “1.00” и на экране появится соответствующая надпись Проверка Что бы проверить занята ли ячейки или нет пользуются функциями: [jass]native HaveSavedInteger takes hashtable table, integer parentKey, integer childKey returns boolean native HaveSavedReal takes hashtable table, integer parentKey, integer childKey returns boolean native HaveSavedBoolean takes hashtable table, integer parentKey, integer childKey returns boolean native HaveSavedString takes hashtable table, integer parentKey, integer childKey returns boolean native HaveSavedHandle takes hashtable table, integer parentKey, integer childKey returns Boolean[/jass] В качестве аргументов принимаются хеш-таблица, хендл объекта и номер ячейки. Если запись в ячейке уже существует, то вернётся значение “true”, если же ячейка свободна, то функция вернёт значение “false”. Пример: [jass]if HaveSavedReal (udg_Hash, GetHandleId(udg_Unit), 0) == true then call BJDebugMsg(“True”) else call BJDebugMsg(“False”) endif[/jass] Удаление записи Бывают ситуации когда необходимо удалить запись из ячейки. Например, стереть запись, содержащую какое-либо число, и записать в эту ячейку ссылку на таймер. Для этого используются функции: [jass] native RemoveSavedInteger takes hashtable table, integer parentKey, integer childKey returns nothing native RemoveSavedReal takes hashtable table, integer parentKey, integer childKey returns nothing native RemoveSavedBoolean takes hashtable table, integer parentKey, integer childKey returns nothing native RemoveSavedString takes hashtable table, integer parentKey, integer childKey returns nothing native RemoveSavedHandle takes hashtable table, integer parentKey, integer childKey returns nothing[/jass] Примером очищения ячейки может служить код: [jass]call RemoveSavedReal (udg_Hash, GetHandleId(udg_Unit), 0)[/jass] Как и в прошлом примере, в качестве аргументов, мы указываем хеш-таблицу, ссылку на объект и номер ячейки. Полное удаление записей Последние 2 функции, которые мы с вами разберём, будут “FlushParentHashtable” и “FlushChildHashtable”. FlushParentHashtable позволяет удалить нам абсолютно все записи из хеш-таблицы. В качестве аргумента указывается только очищаемая хеш-таблица. После использования донной функции хеш-таблицу приходиться инициализировать заново! Пример: [jass]call FlushParentHashtable(udg_Hash)[/jass] В 1 ячейке может храниться только 1 значение любого типа Правильно: [jass]call SaveReal(udg_Hash, GetHandleId(udg_Unit), 0, “1.00”) call SaveUnitHandle(udg_Hash, GetHandleId(udg_Unit), 1, udg_Unit)[/jass] Не правильно: [jass]call SaveReal(udg_Hash, GetHandleId(udg_Unit), 0, “1.00”) call SaveUnitHandle(udg_Hash, GetHandleId(udg_Unit), 0, udg_Unit)[/jass] Прикрепления:
0886336.jpg
(14.2 Kb)
Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
H_A_PK#420 | Тема: Система воскрешения (Jass)Quote (NoExist) спасибо =) я в джассе не бум бум вазе =\ но хочу научиться wink Проверил, Работает ? Ползут 2 пирожка.
Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D |
| ||