Вопросы по JASS кодированию
|
|
-
Dreii2915 | Дата: Среда, 21-03-2012, 14:33:00 | Сообщение # 61 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Не на сайте
|
о мой бог кто там ректы выдумал бред отреж руки себе.
Есть ф-ия проверки на проходимость есть ф-ия определеления высоты рельефа используем
|
| | |
-
MarkSpartak | Дата: Пятница, 23-03-2012, 11:34:44 | Сообщение # 62 |
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
|
| | |
-
Vla=D | Дата: Пятница, 23-03-2012, 12:02:24 | Сообщение # 63 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 10
Репутация: 50
Статус: Не на сайте
|
попробуй function Trig_A_Conditions takes nothing returns boolean return GetSpellAbilityId() == 'A000' endfunction function Trig_A_Actions takes nothing returns nothing unit u=GetTriggerUnit() real x=GetUnitX(u) real y=GetUnitY(u) group g=CreateGroup() DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",u,"chest")) unit e real i loop exitwhen i>3 i=i+1 GroupEnumUnitsInRange(g,x,y,200,null) loop e=FirstOfGroup(g) exitwhen e==null if IsUnitEnemy(e,GetOwningPlayer(u)) and GetWidgetLife(e)>.0 then UnitDamageTarget(u,e,100,true,false,ATTACK_TYPE_HERO,DAMAGE_TYPE_FIRE,WEAPON_TYPE_WHOKNOWS) endif GroupRemoveUnit(g,e) endloop endloop DestroyGroup(g) u=null e=null g=null 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Добавлено (23/03/2012, 12:02:24) --------------------------------------------- Если неработает напиши с лс
|
| | |
-
MarkSpartak | Дата: Пятница, 23-03-2012, 12:13:36 | Сообщение # 64 |
Tu tu-ru
загрузка наград ...
Группа: V.I.P.
Сообщений: 1261
Репутация: 1650
Статус: Не на сайте
|
Vla=D, Зачем столько реальных переменных??? Там спел на создания спецэффекта на кастере И нанесения урона врагам. Ну и я ничего не понял. Нельзя просто функцию нанесения урона врагам??
|
| | |
-
Vla=D | Дата: Пятница, 23-03-2012, 12:16:34 | Сообщение # 65 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 10
Репутация: 50
Статус: Не на сайте
|
Я думал тама несколько раз урон наноситься... Опиши что скил делает
|
| | |
-
MarkSpartak | Дата: Пятница, 23-03-2012, 12:52:04 | Сообщение # 66 |
Tu tu-ru
загрузка наград ...
Группа: V.I.P.
Сообщений: 1261
Репутация: 1650
Статус: Не на сайте
|
Vla=D, Создается определённое кол-во спецэффектов (зависит от exitwhen) в позиции caster и при появлении спецэффекта вокруг кастера наносится урон врагам которые подходят под мои условия.
|
| | |
-
Vla=D | Дата: Пятница, 23-03-2012, 13:11:47 | Сообщение # 67 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 10
Репутация: 50
Статус: Не на сайте
|
http://rghost.ru/37174628 поправиш что надо
|
| | |
-
MarkSpartak | Дата: Пятница, 23-03-2012, 16:05:18 | Сообщение # 68 |
Tu tu-ru
загрузка наград ...
Группа: V.I.P.
Сообщений: 1261
Репутация: 1650
Статус: Не на сайте
|
Vla=D, Спс вроде разобрался)
|
| | |
-
НубикВЕ | Дата: Пятница, 23-03-2012, 18:00:48 | Сообщение # 69 |
загрузка наград ...
Группа: Пользователи
Сообщений: 187
Репутация: 261
Статус: Не на сайте
|
MarkSpartak, Если что-то ешё надо пиши
[c][/c]
|
| | |
-
Nevermore | Дата: Понедельник, 26-03-2012, 15:22:49 | Сообщение # 70 |
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 | Сообщение # 71 |
загрузка наград ...
Группа: Пользователи
Сообщений: 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 | Сообщение # 72 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 14
Репутация: 25
Статус: Не на сайте
|
Всем привет, есть очень срочный вопрос=) Я правильно понял, что из функция не может возвращать массив?? А если может, то как это провернуть?
Хочется чего-то замутить неординарного
|
| | |
-
wetalq | Дата: Пятница, 04-05-2012, 16:37:54 | Сообщение # 73 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
| | |
-
DarkDaro | Дата: Суббота, 12-05-2012, 09:00:03 | Сообщение # 74 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1413
Репутация: 1063
Статус: Не на сайте
|
аааа все это так сложно для меня.не знаю с чего начать
|
| | |
-
Nevermore | Дата: Суббота, 09-06-2012, 19:50:09 | Сообщение # 75 |
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 | Сообщение # 76 |
загрузка наград ...
Группа: Проверенные
Сообщений: 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 | Сообщение # 77 |
загрузка наград ...
Группа: Избранные
Сообщений: 449
Репутация: 526
Статус: Не на сайте
|
Quote (НЕТОПЫРЬ) Что тут может быть не так?
То, что если у тебя сильно нестандартные расы (с тригерами и тд) то через редактор АИ ты не сможешь ничего путного сделать, придется учить джасс и читать статьи про редактирование аи файлов.
|
| | |
-
НЕТОПЫРЬ | Дата: Среда, 11-07-2012, 17:27:46 | Сообщение # 78 |
загрузка наград ...
Группа: Проверенные
Сообщений: 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 | Сообщение # 79 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
зачем писать какой то AI для Melee карт на Jass да ещё и в специальном файле AI на GUI можно сделать нормальный AI для Melee например поставить условие что играет компьютер и включить нужный триггер отвечающий за действия, что когда и кого он будет строить, когда нападать и пр. ты же не ботов для Доты делаешь Х_Х
Look at my horse!
|
| | |
-
НЕТОПЫРЬ | Дата: Среда, 11-07-2012, 18:19:42 | Сообщение # 80 |
загрузка наград ...
Группа: Проверенные
Сообщений: 238
Репутация: 231
Статус: Не на сайте
|
влад10011, я пытался сделать Melee AI с помощью редактора ИИ, во вкладке здания вроде бы все правильно поставил:
Ратуша (юниты нестандартные) Работник Работник Работник Работник Работник ... и так далее. Еще раз напишу бот должен построить хотя бы работника в ратуше, но он этого не делает. Я читал статью о том, как правильно сделать цепь строительства. И готов поспорить, я ее правильно сделал, но бот ее не читает. Поэтому я решил попробовать сделать AI через JassCraft, уже от отчаяния
|
| | |