помогите со спелом - Wc3-Maps Форум













[ Главная · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Strateg, Melissa 
Wc3-Maps Форум » Раздел для картостроителей » GUI / Jass » помогите со спелом
помогите со спелом
-
DarkDaroДата: Понедельник, 20-08-2012, 13:12:08 | Сообщение # 1

загрузка наград ...
Группа: V.I.P.
Сообщений: 1413
Репутация: 1018
Статус: Не на сайте
сделал спел....надеялся на чудо, а вот и херен не работает
посмотрите почему код не работает, спел такой
кастер юзает скил, и все враги в области 1000 начинают терять защиту в указанном количестве, в течении указанного времени, защита эффект исчезает через определённое время, на цели всё это время должен быть эффект
я нуб,честно, сам не разобрался помогите плз
вот функция
Code
function Trig_sdfhj_Conditions takes nothing returns boolean
return ( not ( GetSpellAbilityId() == 'A000' ) )  
endfunction

function UnitEn takes nothing returns boolean
return ( IsPlayerEnemy(GetOwningPlayer(GetTriggerUnit()), GetOwningPlayer(GetFilterUnit())) == true )
endfunction

function Trig_sdfhj_Actions takes nothing returns nothing
local integer last=5         //длительность эффекта         
local integer arm=1          //кол-во уменьшеной защиты в сек         
local integer lar=60         //длительность уменьшеной защиты(sec)   
local unit caster=GetTriggerUnit()
local group g
local unit q
local effect array e    
local location L=GetUnitLoc(caster)
local integer array we
local unit array er
set g=GetUnitsInRangeOfLocMatching(1000.00, L, Condition(function UnitEn ))   
loop
set q=FirstOfGroup(g)
exitwhen q == null
set we[1]=we[1]+1
set er[we[1]]=q
call AddSpecialEffectTargetUnitBJ( "chest", er[we[1]], "Abilities\\Spells\\Other\\Doom\\DoomTarget.mdl" )
set e[we[1]]=GetLastCreatedEffectBJ()
call GroupRemoveUnit(g, q)
endloop
loop
set we[2]=we[2]+1
exitwhen we[2]>last
loop
set we[3]=we[3]+1
exitwhen we[3]>we[1]
loop
set we[4]=we[4]+1
call UnitAddAbilityBJ( 'A001', er[we[3]] )
exitwhen we[3]==arm
endloop
set we[4]=0
endloop
call TriggerSleepAction( 1 )
set we[3]=0
endloop
call TriggerSleepAction( lar )
loop
set we[5]=we[5]+1
exitwhen we[5]>we[1]
call DestroyEffectBJ( e[we[5]] )
set e[we[5]]=null
endloop
set we[6]=arm*last
loop
set we[7]=we[7]+1
exitwhen we[7]>we[1]
loop
set we[10]=we[10]+1
exitwhen we[10]>we[6]
call UnitRemoveAbilityBJ( 'A001', er[we[7]] )
endloop
set we[10]=0
set er[we[7]]=null
endloop
call RemoveLocation(L)
set q=null
set caster=null
call DestroyGroup(g)
endfunction
 
-
влад10011Дата: Понедельник, 20-08-2012, 13:36:21 | Сообщение # 2

загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
ОМГ
зачем тебе столько loop?
Достаточно было добавить юнитов в группу и сделать периодический таймер который уменьшает каждую сек броню и после запустить таймер по истечению брони...
call TriggerSleepAction нельзя юзать темболее в loop(loop игнорирует это действие или ждёт больше времени) пользуйся таймерами...

Look at my horse!
 
-
НубикВЕДата: Вторник, 21-08-2012, 19:23:46 | Сообщение # 3

загрузка наград ...
Группа: Пользователи
Сообщений: 187
Репутация: 261
Статус: Не на сайте
Клоун... Такой клоун... Создаём способность на основе "Духовое Пламя" делаем защиту в минус [INFO: Shift+Enter]. Location - ты слабый чтоли? real x = GetUnitX(caster),y = GetUnitY(caster)

Подставишь local и call
Создаёшь Dummy который будет кастовать "Духовое Пламя" на всех из группы. И не надо делать стока loop.

[c][/c]
 
-
влад10011Дата: Среда, 22-08-2012, 02:02:51 | Сообщение # 4

загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
он хочет чтобы защита падала постепенно а не сразу...
Look at my horse!
 
-
НубикВЕДата: Среда, 22-08-2012, 06:09:13 | Сообщение # 5

загрузка наград ...
Группа: Пользователи
Сообщений: 187
Репутация: 261
Статус: Не на сайте
Один фиг, делаем туже абилку, таймер, и пикаем каждую секунду или скока надо каждые 0.50 ну понятно. И получили абилку!
Cкачать! Сделал за пару минут. Не очень тяжело. Однако может просто ты недавно стал изучать Jass. Можно через леденящий крик сделать, но мне лучше так.

[c][/c]
 
-
влад10011Дата: Среда, 22-08-2012, 11:05:15 | Сообщение # 6

загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
1) у Даро наверняка нету JNGP темболее с синтаксисом cJass(тк ты на не писал глобалс что можно только в cJass) поэтому твоё объявление хеша бессмысленно(делал бы объявление в самом вврерху триггера чтоле или в редакторе переменных).
2)Хватило бы и спелла "Повышение брони" с отрицательным значением добавить выбранным нафиг ты дамика мучаешь кастами?
3)Достаточно было сохранить юнита а X Y найти локалками
Ты только усложнил всё
Ты ещё и указал у способности 1 лвл нафига?))) он самого начала 1 лвл)
Ненужно показывать как ты умеешь, сделал бы понятней его уровню.
А как я знаю он наверняка не знает что такое хеш-таблица

Look at my horse!
 
-
НубикВЕДата: Среда, 22-08-2012, 12:09:44 | Сообщение # 7

загрузка наград ...
Группа: Пользователи
Сообщений: 187
Репутация: 261
Статус: Не на сайте
Он всёравно неделает 1 лвл)
Пусть учит, у меня всё норм, скачает, не утечно)

[c][/c]
 
Wc3-Maps Форум » Раздел для картостроителей » GUI / Jass » помогите со спелом
Страница 1 из 11
Поиск:
Рейтинг@Mail.ru
Яндекс.Метрика

Copyright © 2010-2017
Вакансии :: Контакты
Мобильная версия сайта
chat