|
Вопросы по JASS кодированию
|
|
-
| MarkSpartak | Дата: Пятница, 23-03-2012, 11:34:44 | Сообщение # 61 |
 Tu tu-ru
загрузка наград ...
Группа: V.I.P.
Сообщений: 1261
Репутация: 1650
Статус: Не на сайте
|
Народ подскажите мне, как неопытному джасеру, как вот в этот код занести функцию нанесения урона? Code function Trig_A_Conditions takes nothing returns boolean if (not(GetSpellAbilityId() == 'A000')) then return false endif return true endfunction function Trig_A_Actions takes nothing returns nothing local integer i =1 local unit caster = GetSpellAbilityUnit() loop exitwhen i>5 call AddSpecialEffectLocBJ((GetUnitLoc (caster)),"Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl") call DestroyEffectBJ(GetLastCreatedEffectBJ()) set i=i+1 call TriggerSleepAction(0.5) endloop endfunction function InitTrig_A takes nothing returns nothing set gg_trg_A = CreateTrigger() call TriggerRegisterAnyUnitEventBJ( gg_trg_A, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddAction(gg_trg_A, function Trig_A_Actions) call TriggerAddCondition(gg_trg_A,Condition(function Trig_A_Conditions)) endfunction
| |
| | |
-
| MarkSpartak | Дата: Пятница, 23-03-2012, 12:13:36 | Сообщение # 62 |
 Tu tu-ru
загрузка наград ...
Группа: V.I.P.
Сообщений: 1261
Репутация: 1650
Статус: Не на сайте
|
Vla=D, Зачем столько реальных переменных??? Там спел на создания спецэффекта на кастере И нанесения урона врагам. Ну и я ничего не понял. Нельзя просто функцию нанесения урона врагам??
| |
| | |
-
| MarkSpartak | Дата: Пятница, 23-03-2012, 12:52:04 | Сообщение # 63 |
 Tu tu-ru
загрузка наград ...
Группа: V.I.P.
Сообщений: 1261
Репутация: 1650
Статус: Не на сайте
|
Vla=D, Создается определённое кол-во спецэффектов (зависит от exitwhen) в позиции caster и при появлении спецэффекта вокруг кастера наносится урон врагам которые подходят под мои условия.
| |
| | |
-
| MarkSpartak | Дата: Пятница, 23-03-2012, 16:05:18 | Сообщение # 64 |
 Tu tu-ru
загрузка наград ...
Группа: V.I.P.
Сообщений: 1261
Репутация: 1650
Статус: Не на сайте
|
Vla=D, Спс вроде разобрался)
| |
| | |
-
| Nevermore | Дата: Понедельник, 26-03-2012, 15:22:49 | Сообщение # 65 |
 GUI IMBA
загрузка наград ...
Группа: Проверенные
Сообщений: 210
Репутация: 338
Статус: Не на сайте
|
Что то не работает помогите пожалуйста). Я или не правильно сохроняю данные или загружаю, использую спелл и действия не происходят( Code function Timer takes nothing returns nothing local timer tim2=GetExpiredTimer() local integer h2=GetHandleId(tim2) local unit sc2=LoadUnitHandle(udg_hash,h2,1) local unit st2=LoadUnitHandle(udg_hash,h2,2) local real sx2=LoadReal(udg_hash,h2,3) local real sy2=LoadReal(udg_hash,h2,4) local effect sef =AddSpecialEffect("Abilities\\Spells\\Human\\Banish\\BanishTarget.mdl",sx2,sy2) call SetUnitPosition(sc2,sx2,sy2) call DestroyEffect(sef) call FlushChildHashtable(udg_hash,h2) set tim2=null set sc2=null set st2=null set sef=null endfunction function Actions takes nothing returns nothing local unit sc=GetSpellAbilityUnit() local unit st=GetSpellTargetUnit() local timer tim=CreateTimer() local integer h=GetHandleId(tim) local real sx=GetUnitX(st) local real sy=GetUnitY(st) call SaveUnitHandle(udg_hash,h,1,sc) call SaveUnitHandle(udg_hash,h,2,st) call SaveReal(udg_hash,h,3,sx) call SaveReal(udg_hash,h,4,sy) call TimerStart(tim,0.1,false,function Timer) set sc = null set st = null set tim=null endfunction
| |
| | |
-
| НубикВЕ | Дата: Среда, 28-03-2012, 13:20:44 | Сообщение # 66 |
загрузка наград ...
Группа: Пользователи
Сообщений: 187
Репутация: 261
Статус: Не на сайте
|
Quote (Nevermore) local timer tim2=GetExpiredTimer() local integer h2=GetHandleId(tim2) local unit sc2=LoadUnitHandle(udg_hash,h2,1) local unit st2=LoadUnitHandle(udg_hash,h2,2) local real sx2=LoadReal(udg_hash,h2,3) local real sy2=LoadReal(udg_hash,h2,4) Лол? Убери везде 2-киДобавлено (28/03/2012, 13:20:44) --------------------------------------------- local timer tim=GetExpiredTimer() local integer h=GetHandleId(tim) local unit sc=LoadUnitHandle(udg_hash,h,1) local unit st=LoadUnitHandle(udg_hash,h,2) local real sx=LoadReal(udg_hash,h,3) local real sy=LoadReal(udg_hash,h,4) local effect sef =AddSpecialEffect("Abilities\\Spells\\Human\\Banish\\BanishTarget.mdl",sx,sy) call SetUnitPosition(sc,sx,sy) call DestroyEffect(sef) call FlushChildHashtable(udg_hash,h2) set tim=null set sc=null set st=null set sef=null
[c] [/c]
| |
| | |
-
| Волкодлак | Дата: Среда, 04-04-2012, 10:00:33 | Сообщение # 67 |
 Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 14
Репутация: 25
Статус: Не на сайте
|
Всем привет, есть очень срочный вопрос=) Я правильно понял, что из функция не может возвращать массив?? А если может, то как это провернуть?
Хочется чего-то замутить неординарного
| |
| | |
-
| wetalq | Дата: Пятница, 04-05-2012, 16:37:54 | Сообщение # 68 |
 Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1582
Статус: Не на сайте
| | |
-
| DarkDaro | Дата: Суббота, 12-05-2012, 09:00:03 | Сообщение # 69 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1413
Репутация: 1063
Статус: Не на сайте
|
аааа все это так сложно для меня.не знаю с чего начать
| |
| | |
-
| Nevermore | Дата: Суббота, 09-06-2012, 19:50:09 | Сообщение # 70 |
 GUI IMBA
загрузка наград ...
Группа: Проверенные
Сообщений: 210
Репутация: 338
Статус: Не на сайте
|
daro, это не сложно читай статьи и научишся  Добавлено (29/05/2012, 19:56:17) --------------------------------------------- Проверте код почему урон не идет Code local unit Lightningu=GetSpellAbilityUnit() local real Lightningx=GetSpellTargetX() local real Lightningy=GetSpellTargetY() local integer LightningI=0 local group Lightningg=CreateGroup() local unit Lightningu2 local real Lightningd=GetUnitAbilityLevel(Lightningu,'AOfs')*75.00 local player Lightningp=GetOwningPlayer(Lightningu) local string LightningString="Abilities\\Weapons\\Bolt\\BoltImpact.mdl" local string LightningString2="Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" local string LightningString3="Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" call GroupEnumUnitsInRange(Lightningg,Lightningx,Lightningy,350.,null) loop set Lightningu2 = FirstOfGroup(Lightningg) if IsUnitEnemy(Lightningu,Lightningp) == true then call UnitDamageTarget(Lightningu,Lightningu2,Lightningd,false,false,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_NORMAL,null) endif call GroupRemoveUnit(Lightningg,Lightningu2) exitwhen Lightningu2 == null endloop call DestroyEffect(AddSpecialEffect(LightningString2,Lightningx,Lightningy)) call DestroyEffect(AddSpecialEffect(LightningString3,Lightningx,Lightningy)) loop exitwhen LightningI == 12 call DestroyEffect(AddSpecialEffect(LightningString,Lightningx+350.00*Cos(30*LightningI*bj_DEGTORAD),Lightningy+350.00*Sin(30*LightningI*bj_DEGTO RAD))) set LightningI = LightningI + 1 endloop call DestroyGroup(Lightningg) set LightningString=null set LightningString2=null set LightningString3=null set Lightningu=null set Lightningg=null set Lightningu2=null set Lightningp=null Добавлено (09/06/2012, 19:50:09) --------------------------------------------- а все уже не надо 
| |
| | |
-
| НЕТОПЫРЬ | Дата: Среда, 11-07-2012, 11:32:33 | Сообщение # 71 |
загрузка наград ...
Группа: Проверенные
Сообщений: 238
Репутация: 231
Статус: Не на сайте
|
Здравствуйте. Пытаюсь сделать AI для Melee карты (с нестандартными расами). Делал ИИ через редактор, но где-то видимо ошибся, рабочие тупо собирают ресурсы и не строятся. Решил вот открыть файл ".ai". Что тут может быть не так?
//=========================================================================== // Specifies building priorities for workers //=========================================================================== function BuildPriorities takes nothing returns nothing local integer mine = TownWithMine() if (gCond_Lost_City) then call SetBuildAll( BUILD_UNIT, 1, 'h004', -1 ) endif call SetBuildAll( BUILD_UNIT, 1, 'h003', -1 ) call SetBuildAll( BUILD_UNIT, 2, 'h003', -1 ) call SetBuildAll( BUILD_UNIT, 3, 'h003', -1 ) call SetBuildAll( BUILD_UNIT, 4, 'h003', -1 ) call SetBuildAll( BUILD_UNIT, 5, 'h003', -1 ) if (gCond_Have_Lumber) then call SetBuildAll( BUILD_UNIT, 1, 'h00E', -1 ) call SetBuildAll( BUILD_UNIT, 1, 'h00B', -1 ) endif endfunction
| |
| | |
-
| AncientPenguin | Дата: Среда, 11-07-2012, 14:09:22 | Сообщение # 72 |
загрузка наград ...
Группа: Избранные
Сообщений: 449
Репутация: 526
Статус: Не на сайте
|
Quote (НЕТОПЫРЬ) Что тут может быть не так?
То, что если у тебя сильно нестандартные расы (с тригерами и тд) то через редактор АИ ты не сможешь ничего путного сделать, придется учить джасс и читать статьи про редактирование аи файлов.
| |
| | |
-
| НЕТОПЫРЬ | Дата: Среда, 11-07-2012, 17:27:46 | Сообщение # 73 |
загрузка наград ...
Группа: Проверенные
Сообщений: 238
Репутация: 231
Статус: Не на сайте
|
Вот, прочитал статью, http://xgm.ru/forum/showthread.php?t=12036, скачал JassCraft, отредактировал документ.ai, согласно инструкциям статьи. Включил WorldEditor, импортировал свой ".ai" документ, создал триггер "Начать сценарий поведения для Игрок 2 (естественно, компьютер) Bot.ai Все рвно бот продолжает тупо добывать ресурсы и ничего не делать. Я не могу понять, что я делаю не так. Что в редакторе пытаюсь сделать ИИ, что через редактирование самого файла ".ai". Компьютер элементарно даже не хочет построить крестьянина в ратуше.
| |
| | |
-
| влад10011 | Дата: Среда, 11-07-2012, 17:58:14 | Сообщение # 74 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
зачем писать какой то AI для Melee карт на Jass да ещё и в специальном файле AI на GUI можно сделать нормальный AI для Melee например поставить условие что играет компьютер и включить нужный триггер отвечающий за действия, что когда и кого он будет строить, когда нападать и пр. ты же не ботов для Доты делаешь Х_Х
Look at my horse!
| |
| | |
-
| НЕТОПЫРЬ | Дата: Среда, 11-07-2012, 18:19:42 | Сообщение # 75 |
загрузка наград ...
Группа: Проверенные
Сообщений: 238
Репутация: 231
Статус: Не на сайте
|
влад10011, я пытался сделать Melee AI с помощью редактора ИИ, во вкладке здания вроде бы все правильно поставил:
Ратуша (юниты нестандартные) Работник Работник Работник Работник Работник ... и так далее. Еще раз напишу бот должен построить хотя бы работника в ратуше, но он этого не делает. Я читал статью о том, как правильно сделать цепь строительства. И готов поспорить, я ее правильно сделал, но бот ее не читает. Поэтому я решил попробовать сделать AI через JassCraft, уже от отчаяния
| |
| | |
-
| влад10011 | Дата: Среда, 11-07-2012, 18:23:18 | Сообщение # 76 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
я не про редактор ИИ а про триггеры GUI
Look at my horse!
| |
| | |
-
| Gordan | Дата: Суббота, 13-10-2012, 12:57:14 | Сообщение # 77 |
 Гражданин
загрузка наград ...
Группа: Проверенные
Сообщений: 29
Репутация: 78
Статус: Не на сайте
|
а что такое GUI и Jass ???
| |
| | |
-
| влад10011 | Дата: Суббота, 13-10-2012, 20:36:41 | Сообщение # 78 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
| | |
-
| BARSIK | Дата: Вторник, 08-01-2013, 09:37:13 | Сообщение # 79 |
|
Темный рыцарь
загрузка наград ...
Группа: V.I.P.
Сообщений: 1399
Репутация: 326
Статус: Не на сайте
|
Чем "Sin" и "Cos" отличаются от "SinBJ" и "CosBJ"? Единственное что я понял - это то, что Sin Cos глючат. А вот почему, я низнаю. Очень любопытно узнать. Надеюсь влад10011 сюда зайдет. Кажется я с ним единственные JASS'еры...
| |
| | |
-
| влад10011 | Дата: Вторник, 08-01-2013, 20:55:02 | Сообщение # 80 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
А открыть эту функцию в JNGP не пробовал? функции BJ автоматически переводят получившийся число в радианы.(тупо умножают на BJ_DEGTORAD) Если не умножать, то при движении юнитов например, юнит полетит в другую сторону(мир варкрафт- круглый)
Look at my horse!
| |
| | |