Сейчас 10:13:02 Суббота, 20 апреля, 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
 

Gam_OverДата: Воскресенье, 26 Июля 2009, 16:39:44 | Сообщение # 351
9 уровень
Группа: Проверенные
Сообщений: 1107
Награды: 0
Репутация: 175
Блокировки:
Как изменить динамически крен камеры?
 

-Castro-Дата: Суббота, 08 Августа 2009, 16:53:31 | Сообщение # 352
УГ продюсер
Группа: Ветераны
Сообщений: 2099
Награды: 3
Репутация: 1213
Блокировки:
Вот вопросики: Бывают ли локальные таймеры? Как сделать чтобы триггер срабатывал на локальный таймер (если они есть ваще)?
 

windrunnerДата: Суббота, 08 Августа 2009, 16:57:48 | Сообщение # 353
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
есть канечно чтобы тригер срабатывал на локальный таймер можно с помощью таблиц(не уверен)
А чтобы внутри тригера можно с помощью нативки запуска таймера native TimerStart takes timer whichTimer, real timeout, boolean periodic, code handlerFunc returns nothing
Вот пользуйся)


И в правду мир сошел с ума...
И до тех пор пока нас не обесточат
Пока не догорит аварийных фонарей заряд
Мы будем жечь тут электричество что есть мочи
Русский мапмейкинг - бессмысленный и беспощадный.xD
 

Gam_OverДата: Воскресенье, 09 Августа 2009, 07:13:55 | Сообщение # 354
9 уровень
Группа: Проверенные
Сообщений: 1107
Награды: 0
Репутация: 175
Блокировки:
Quote (-Castro-)
Бывают ли локальные таймеры?

бывают
Code
local timer <имя таймера>

Quote (-Castro-)
Как сделать чтобы триггер срабатывал на локальный таймер

это я не понял. что конкретно нужно?
 

BuHHu-nyXДата: Воскресенье, 09 Августа 2009, 10:54:23 | Сообщение # 355
50 уровень
Превед медвед
Группа: Ветераны
Сообщений: 1941
Награды: 2
Репутация: 437
Блокировки:
То есть. Есть действие: Ждать условия. Есть ли такое условие, что таймер закончился?

 

-Castro-Дата: Воскресенье, 09 Августа 2009, 13:09:40 | Сообщение # 356
УГ продюсер
Группа: Ветераны
Сообщений: 2099
Награды: 3
Репутация: 1213
Блокировки:
Ладно, я уже бросил эту затею, знаний пока не хватает)) по логике понимаю как можно сделать, а вот с функциями и прочим пока сложно
 

KartohaДата: Воскресенье, 09 Августа 2009, 15:37:33 | Сообщение # 357
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
Quote (Эллесар)
Меня интересую только спелы; ну вот короче - как зделать так, что например используеш магию у варедна раскидать ножи, ну как зделать дополнительный эфект, что бы те самые нажи отровляли и замедляли (как спел отравленный нож

Немонимаю,причём тут джасс.
События:Приводит спелл в действие
Условия:
Скастованный спелл = веерный бросок (тут твой спелл пишеш)
Действия:Выбираеш всех юнитов-врагов кастеру,создаёш рядом с ними дамми и дамми кидают отравленные ножи на врагов,после чего исчезают.)
 

windrunnerДата: Воскресенье, 09 Августа 2009, 15:44:00 | Сообщение # 358
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
Kartoha, поздновато ты ответил))

И в правду мир сошел с ума...
И до тех пор пока нас не обесточат
Пока не догорит аварийных фонарей заряд
Мы будем жечь тут электричество что есть мочи
Русский мапмейкинг - бессмысленный и беспощадный.xD
 

BuHHu-nyXДата: Воскресенье, 09 Августа 2009, 17:08:56 | Сообщение # 359
50 уровень
Превед медвед
Группа: Ветераны
Сообщений: 1941
Награды: 2
Репутация: 437
Блокировки:
Quote (Kartoha)
Немонимаю,причём тут джасс.

Пойми.


 

KartohaДата: Воскресенье, 09 Августа 2009, 20:49:20 | Сообщение # 360
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
Quote (BuHHu-nyX)
Пойми.

Ахахаха лол :D :D BuHHu-nyX, рулит))

Добавлено (09-08-2009, 20:49)
---------------------------------------------
Отличный совет!

 

sergeevmoreДата: Четверг, 13 Августа 2009, 12:58:05 | Сообщение # 361
6 уровень
Группа: Заблокированные
Сообщений: 198
Награды: 0
Репутация: 21
Блокировки:
с помощью JASS можно сделать типо такого:
событие:
юнит погибает
действие:отнять первый скилл у героя который убил юнита
кароче мне надо чтоб когда определённый юнит погибал и отнимал скилл у того кто его убил


<b>Alice</b>, из за тебя пропадает смысл в паролях, а так же постоянно будет требоваться пинать админа...(Enforcer)
 

kan2009Дата: Суббота, 15 Августа 2009, 10:34:25 | Сообщение # 362
6 уровень
Группа: Пользователи
Сообщений: 180
Награды: 0
Репутация: 3
Блокировки:
Люди подскажите а как правильно из опэн доты 6.41 копировать умения.А то чот у меня не получаеться нифига.

(я ток начал заниматься карто строительством)

 

ЭллесарДата: Воскресенье, 23 Августа 2009, 02:01:17 | Сообщение # 363
DeMoN
Группа: Ветераны
Сообщений: 934
Награды: 1
Репутация: 210
Блокировки:
Quote (kan2009)
Люди подскажите а как правильно из опэн доты 6.41 копировать умения.А то чот у меня не получаеться нифига.
(я ток начал заниматься карто строительством)

Освой для начало jass)


база паролей: https://yadi.sk/d/mdDhWuvPcTSKw
бекап сайта от 26.12.2010 https://yadi.sk/d/L3xNpibbiHpYE
 

MaSerДата: Воскресенье, 23 Августа 2009, 19:07:53 | Сообщение # 364
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
Quote (sergeevmore)
кароче мне надо чтоб когда определённый юнит погибал и отнимал скилл у того кто его убил

Напрямую никак. Только если делать для юнитов табличку, у кого какой скилл какой, но лучше забить


 

BuHHu-nyXДата: Воскресенье, 23 Августа 2009, 19:23:48 | Сообщение # 365
50 уровень
Превед медвед
Группа: Ветераны
Сообщений: 1941
Награды: 2
Репутация: 437
Блокировки:
Напишите, пожалуйста, альтернативу - call TriggerSleepAction(2) в таймерах?

 

MaSerДата: Воскресенье, 23 Августа 2009, 19:30:55 | Сообщение # 366
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
PolledWait xd Он прямо на таймерах и даже прямо в том же потоке, а так попробуй разбивать функцию на две, учитывая наличие хештаблей ничего проще не будет наверное

 

BuHHu-nyXДата: Воскресенье, 23 Августа 2009, 19:52:09 | Сообщение # 367
50 уровень
Превед медвед
Группа: Ветераны
Сообщений: 1941
Награды: 2
Репутация: 437
Блокировки:
То есть, call PolledWait(2) и все? Или я что то не догоняю.

 

MaSerДата: Воскресенье, 23 Августа 2009, 19:58:05 | Сообщение # 368
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
BuHHu-nyX, понимаешь ли, полледвейт реализован криво, так что выбери лучше второй вариант -)

 

windrunnerДата: Понедельник, 24 Августа 2009, 00:10:39 | Сообщение # 369
10 уровень
Группа: Проверенные
Сообщений: 1259
Награды: 0
Репутация: 218
Блокировки:
MaSer, Приведи пример как ето сделать?(тоесть с помощью хешь таблей рабить поток на две?)

И в правду мир сошел с ума...
И до тех пор пока нас не обесточат
Пока не догорит аварийных фонарей заряд
Мы будем жечь тут электричество что есть мочи
Русский мапмейкинг - бессмысленный и беспощадный.xD
 

MaSerДата: Понедельник, 24 Августа 2009, 01:04:49 | Сообщение # 370
Котобог
Группа: Стримеры
Сообщений: 3574
Награды: 13
Блокировки:
windrunner, хД хештабли чтобы переменные переносить из функции в функции без проблем. Не более того

 

ЭллесарДата: Понедельник, 24 Августа 2009, 13:30:03 | Сообщение # 371
DeMoN
Группа: Ветераны
Сообщений: 934
Награды: 1
Репутация: 210
Блокировки:
То есть сохроняйем переменные в хеш таблицу, включаем таймер, и загружаем эти переменные. =/

база паролей: https://yadi.sk/d/mdDhWuvPcTSKw
бекап сайта от 26.12.2010 https://yadi.sk/d/L3xNpibbiHpYE
 

LeshiiДата: Понедельник, 24 Августа 2009, 17:50:31 | Сообщение # 372
6 уровень
Группа: Заблокированные
Сообщений: 228
Награды: 1
Репутация: 23
Блокировки:
Можете сделать мне карту с примером где есть скилл граната когда она попадает на землю из неё выходят ещё 6 мелких гранат которые разлетаются по кругу.В кого попала граната наносится повреждение он глушится и он горит какоето время и у него отнимается 5 HP/сек и бегает куда попало.А в кого попала маленькая того прсто отнимается жизнь и глушится.Просто я в Jass'е полный 0 :'( :'( :'( :'( :'(

Он где-то тут углядел Порядок и присматривал за ним.
 

BuHHu-nyXДата: Понедельник, 24 Августа 2009, 18:20:45 | Сообщение # 373
50 уровень
Превед медвед
Группа: Ветераны
Сообщений: 1941
Награды: 2
Репутация: 437
Блокировки:
Эллесар, если не влом, подробнее, я не знаю вообще, что за хештабли.

 

ЭллесарДата: Понедельник, 24 Августа 2009, 20:11:25 | Сообщение # 374
DeMoN
Группа: Ветераны
Сообщений: 934
Награды: 1
Репутация: 210
Блокировки:
BuHHu-nyX, Хеш таблица, это объект, оснавная задача его - хранить данные. Это какбы двух мерный массив. в нем можно хранить данные по каждому объекту (handle) например:

call SaveInteger(HASHTABLE,GetHandleId(h),1, 200)
мы сохранили в таблицу число 200.

а теперь загружаем его.
set i = LoadInteger(HASHTABLE,GetHandleId(h),1)

h - это переменная, за место неё можно вставить героя, предмет, декорацию, таймер и тд.

например надо для реализации спела, к примеру после 5 атак, герой лечит себя на 50 хп

Событие:
Боевая единица получает урон.
Условие:
Урон не равен 0
Дейстиве:

set i = LoadInteger(HASHTABLE,GetHandleId(Юнит Который получил урон),1)

если i = 5 то
лечим юнита
иначе
call SaveInteger(HASHTABLE,GetHandleId(h),1,i+1)

Добавлено (24-08-2009, 20:11)
---------------------------------------------
BuHHu-nyX, http://ru.wikipedia.org/wiki....6%D0%B0


база паролей: https://yadi.sk/d/mdDhWuvPcTSKw
бекап сайта от 26.12.2010 https://yadi.sk/d/L3xNpibbiHpYE
 

[DUОS]Дата: Понедельник, 24 Августа 2009, 21:57:54 | Сообщение # 375
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Возникла небольшая проблема с кодом мультиборда. Вот он сам:
Code
function PickBoolean1 takes nothing returns boolean
      return (GetPlayerController(GetFilterPlayer()) == MAP_CONTROL_USER)
endfunction

function PickBoolean2 takes nothing returns boolean
      return (GetPlayerSlotState(GetFilterPlayer()) == PLAYER_SLOT_STATE_PLAYING)
endfunction

function PickCondition takes nothing returns boolean
      //Условия для отбора игроков.
      return GetBooleanAnd(PickBoolean1(), PickBoolean2())
endfunction

function FillMultiboard takes nothing returns nothing
      set udg_Multiboard_Spots[GetConvertedPlayerId(GetEnumPlayer())] = udg_List
      call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, 0, 1), "Имя игрока")
      call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, 0, 2), "Убийств")
      call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_List, 1), (udg_Player_Colors[GetConvertedPlayerId(GetEnumPlayer())] + (GetPlayerName(GetEnumPlayer()) + "|r")))   
      call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_List, 2), "0")
      call MultiboardSetItemIcon(MultiboardGetItem(udg_Multiboard, udg_List, 0), "ReplaceableTextures\\CommandButtons\\BTNArcaniteRanged.blp")
      set udg_List = udg_List + 1
endfunction   

function Trig_Multiboard_Actions takes nothing returns nothing
      //Локалки.
      local integer LoopAIndex = 0
      local integer LoopAEnd = 0
      //Задаю переменные строки цветов игрока.
      set udg_Player_Colors[1] = "|cFFFF0303"
      set udg_Player_Colors[2] = "|cFF0042FF"
      set udg_Player_Colors[3] = "|cFF1CE6B9"
      set udg_Player_Colors[4] = "|cFF540081"
      set udg_Player_Colors[5] = "|cFFFFFC01"
      set udg_Player_Colors[6] = "|cFFFE8A0E"
      set udg_Player_Colors[7] = "|cFF20C000"
      set udg_Player_Colors[8] = "|cFFE55BB0"
      //Задаю целочисленные.
      set udg_Players = CountPlayersInForceBJ(GetPlayersMatching(Condition(function PickCondition)))     
      //Создаю мультиборд, попутно занося его в глобалку.
      set udg_Multiboard = CreateMultiboard()
      call MultiboardSetColumnCount(udg_Multiboard, 3)
      call MultiboardSetRowCount(udg_Multiboard, 1 + udg_Players)
      call MultiboardSetTitleText(udg_Multiboard, "Oasis and Desert v.1.0")
      //Создаю цикл.
      set LoopAStart = 1
      set LoopAEnd = 1 + udg_Players
      loop
          exitwhen LoopAStart > LoopAEnd
          //Здесь я задаю стиль - показывать ли иконку или текст.
          call MultiboardSetItemStyle(MultiboardGetItem(udg_Multiboard, 0, 0), true, false)
          call MultiboardSetItemStyle(MultiboardGetItem(udg_Multiboard, 0, 1), true, false)
          call MultiboardSetItemStyle(MultiboardGetItem(udg_Multiboard, 0, 2), true, false)
          call MultiboardSetItemStyle(MultiboardGetItem(udg_Multiboard, LoopAStart, 0), true, true)
          call MultiboardSetItemStyle(MultiboardGetItem(udg_Multiboard, LoopAStart, 1), true, false)
          call MultiboardSetItemStyle(MultiboardGetItem(udg_Multiboard, LoopAStart, 2), true, false)
          //Теперь задаю ширину каждой колонки.
          call MultiboardSetItemWidth(MultiboardGetItem(udg_Multiboard, LoopAStart, 0), 2.00)
          call MultiboardSetItemWidth(MultiboardGetItem(udg_Multiboard, LoopAStart, 1), 8.00)
          call MultiboardSetItemWidth(MultiboardGetItem(udg_Multiboard, LoopAStart, 2), 4.00)
          set LoopAStart = LoopAStart + 1
      endloop
      set udg_List = 1
      //Следующим действием отбираю только играющих и контролируемых человеком игроков.
      call ForForce(GetPlayersMatching(Condition(function PickCondition)), function FillMultiboard)
      //Показываю мультиборд.
      call MultiboardDisplay(udg_Multiboard, true)
endfunction

//===========================================================================
function InitTrig_Multiboard takes nothing returns nothing
      set gg_trg_Multiboard = CreateTrigger()
      call TriggerRegisterTimerEvent(gg_trg_Multiboard, 1.00, false)
      call TriggerAddAction( gg_trg_Multiboard, function Trig_Multiboard_Actions )
endfunction
После выполнения кода получается вот такой результат - http://i014.radikal.ru/0908/e3/2b166e03c7a8.jpg
Когда я попытался отрегулировать ширину ячеек, мультиборд растянулся на весь экран!
А когда я вообще снёс регулировку ширины, получилось так - http://pic.ipicture.ru/uploads/090824/CvL7adwh06.jpg

Вопрос: Как нормализовать мультибоард?


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

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

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