XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Mrak1994

offline
Опыт: 320
Активность:
Ошибка в CallGroup
Ошибка в коде jass, а именно в: call ForGroup (...)-редактор на него ругается! вот ссылка www.narod.ru/disk/21703149001/%D1%85%D0%B7.w3x.html
Старый 26.08.2011, 08:48
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
Код в студию.
Старый 26.08.2011, 20:32
Mrak1994

offline
Опыт: 320
Активность:
((код jass
TESH.scrollpos=-1
TESH.alwaysfold=0
function Trig_Shinra_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00W'
endfunction
function shinragroup takes nothing returns nothing
local unit pickedd = GetEnumUnit ()
local unit shinra = LoadUnitHandle(udg_table,udg_h,1)
local group damaged = LoadGroupHandle(udg_table,udg_h,6)
local real sx = LoadReal(udg_table,udg_h,2)
local real sy = LoadReal(udg_table,udg_h,3)
local real gx = GetUnitX(pickedd)
local real gy = GetUnitY(pickedd)
local real angled = bj_RADTODEG * Atan2(gy - sy, gx - sx)
local real x = gx + 32 * Cos(angled * bj_DEGTORAD)
local real y = gy + 32 * Sin(angled * bj_DEGTORAD)
if IsUnitType(pickedd, UNIT_TYPE_STRUCTURE) == false and IsUnitAlly(pickedd, GetOwningPlayer(shinra)) == false then
call SetUnitPosition(pickedd,x,y)
call DestroyEffect (AddSpecialEffect("Abilities\\Spells\\Other\\Stampede\\StampedeMissileDeath.mdl",gx,gy))
endif
if IsUnitInGroup(pickedd, damaged) == false and IsUnitAlly(pickedd, GetOwningPlayer(shinra)) == false then
call GroupAddUnit(damaged,pickedd)
call UnitDamageTarget(shinra,pickedd,(125 * I2R(GetUnitAbilityLevel(shinra,'AOOW'))),true,false,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
endif
set shinra = null
set pickedd = null
set damaged = null
endfunction
function shinradamage takes nothing returns boolean
return true
endfunction
function takenn takes nothing returns nothing
local timer n = GetExpiredTimer ()
local unit shinra = LoadUnitHandle(udg_table,GetHandleId(n),1)
local real sx = LoadReal(udg_table,GetHandleId(n),2)
local real sy = LoadReal(udg_table,GetHandleId(n),3)
local effect ss = LoadEffectHandle(udg_table,GetHandleId(n),4)
local real expire = LoadReal(udg_table,GetHandleId(n),5)
local group s
if expire <= 0 then
call SetUnitTimeScale(shinra, 100 * 0.01)
call PauseUnit(shinra,false)
call DestroyEffect(ss)
call DestroyGroup(LoadGroupHandle(udg_table,GetHandleId(n),6))
call FlushChildHashtable(udg_table,GetHandleId(n))
set n = null
set shinra = null
set ss = null
set s = null
call DestroyTimer(GetExpiredTimer())
else
call SaveReal(udg_table,GetHandleId(n),5,expire - 2.00)
set udg_h = GetHandleId(n)
set s = CreateGroup ()
call GroupEnumUnitsInRange(s,sx,sy,600,function shinradamage)
call FourGroup(s,shinragroup) - тут ошибка....
call DestroyGroup(s)
set n = null
set shinra = null
set ss = null
set s = null
endif
endfunction
function Trig_Shinra_Actions takes nothing returns nothing
local timer n = CreateTimer ()
local unit shinra = GetTriggerUnit ()
local real sx = GetUnitX(shinra)
local real sy = GetUnitY(shinra)
local real expire = 34.00
local effect ss
local group damaged = CreateGroup ()
set ss = AddSpecialEffectTarget ("cronosphere.mdl",shinra,"origin" )
call PauseUnit(shinra,true)
call SetUnitTimeScale(shinra, 200 * 0.01)
call SetUnitAnimation( shinra, "Spell One" )
call SaveUnitHandle(udg_table,GetHandleId(n),1,shinra)
call SaveReal(udg_table,GetHandleId(n),2,sx)
call SaveReal(udg_table,GetHandleId(n),3,sy)
call SaveEffectHandle(udg_table,GetHandleId(n),4,ss)
call SaveReal(udg_table,GetHandleId(n),5,expire)
call SaveGroupHandle(udg_table,GetHandleId(n),6,damaged)
call TimerStart(n,0.02,true,function takenn)
set n = null
set shinra = null
set ss = null
endfunction
===========================================================================
function InitTrig_Shinra takes nothing returns nothing
local trigger shinrar = CreateTrigger( )
call Preload("cronosphere.mdl")
call Preload("Abilities\\Spells\\Other\\Stampede\\StampedeMissileDeath.mdl")
call TriggerRegisterAnyUnitEventBJ( shinrar , EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( shinrar , Condition( function Trig_Shinra_Conditions ) )
call TriggerAddAction( shinrar , function Trig_Shinra_Actions )
set shinrar = null
endfunction
))
При размещении кода используйте эту утилиту и txt2 теги © swdn

Отредактировано ShadoW DaemoN, 29.08.2011 в 10:40.
Старый 29.08.2011, 10:32
Некрон71

offline
Опыт: 314
Активность:
call FourGroup(s,shinragroup) вместо этого ставь: call ForGroup(s,function shinragroup)
Старый 29.08.2011, 10:43
Mrak1994

offline
Опыт: 320
Активность:
в том то и дело, что я писал это, но редактор всё равно не хочет принимать...
Пишет: Неверный тип аргумента.

Отредактировано Mrak1994, 29.08.2011 в 12:27.
Старый 29.08.2011, 12:13
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
// вы забыли здесь про Condition
call GroupEnumUnitsInRange(s, sx, sy, 600, Condition(function shinradamage))

// а здесь - про function
call ForGroup(s, function shinragroup)
Старый 29.08.2011, 12:30
Mrak1994

offline
Опыт: 320
Активность:
ShadoW_DaemoN, Некрон71, Master_chan, спасибо всем, всё, всё теперь работает, можно закрывать тему.
Старый 29.08.2011, 12:40
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:16.