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

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

Ответ
 
Revo1teR

offline
Опыт: 146
Активность:
Пара вопросов по заклинаниям.
Вот скилл №1: Смысл следующий.. заклинатель кидает камень, который (очень не реалистично набирая высоту летит вперед =) ) после достижения точки указаной заклинанием (за основу взял кидок голема) камень взрывается нанося всем в округе урон и отбрасывая их.
Но камень (почему-то) отказывается.. что наносить урон, что двигать вражеские войска. В чем может быть дело? Ошибок нет, вроде как все должно работать.
т.е как бы call ForGroup(...) тупо не работает, а почему ? нельзя использовать одно и тоже условие дважды что-ли?

function Kamenuka_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00H'
endfunction

function Kamenuka_Filter takes nothing returns boolean
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),6)
return IsPlayerEnemy(GetOwningPlayer(u),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())​>0.405)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))
endfunction

function Kamenuka_Group_Damage takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),6)
local unit q=GetEnumUnit()
local real lvl=GetUnitAbilityLevelSwapped('A00H',u)
call UnitDamageTarget(u,q,20+70*lvl, true, false,ATTACK_TYPE_MELEE,DAMAGE_TYPE_MAGIC,WEAPON_TYPE_WHOKNOWS)
set u=null
set q=null
endfunction

function Kamenuka_Move_Group takes nothing returns nothing
local timer lt=GetExpiredTimer()
local timer t=LoadTimerHandle(udg_Hash,GetHandleId(lt),1)
local location p=LoadLocationHandle(udg_Hash,GetHandleId(lt),3)
local unit q=GetEnumUnit()
local real a=Atan2(GetLocationY(p)-GetUnitY(q),GetLocationX(p)-GetUnitX(q))
local real range=DistanceBetweenPoints(GetUnitLoc(q),p)
call SetUnitX(q,GetUnitX(q)+24*Cos(a))
call SetUnitY(q,GetUnitY(q)+24*Sin(a))
set p=null
set q=null
endfunction

function Kamenuka_Damage takes nothing returns nothing
local timer lt=GetExpiredTimer()
local timer t=LoadTimerHandle(udg_Hash,GetHandleId(lt),1)
local unit o=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local real n=LoadReal(udg_Hash,GetHandleId(lt),2)
local group g=CreateGroup()
local location p=LoadLocationHandle(udg_Hash,GetHandleId(lt),3)
local real lvl=LoadReal(udg_Hash,GetHandleId(lt),2)
local boolexpr b=Condition(function Kamenuka_Filter)
call GroupEnumUnitsInRangeOfLoc(g,p,225,b)
if n==1 then
call KillUnit(o)
call ForGroup(g,function Kamenuka_Group_Damage)
endif
if (n>=11+2*lvl) then
      call DestroyTimer(t)
      call FlushChildHashtable(udg_Hash,GetHandleId(t))
      call PauseTimer(lt)
      call DestroyTimer(lt)
      call FlushChildHashtable(udg_Hash,GetHandleId(lt))
call DestroyBoolExpr(b)
call DestroyGroup(g)
call RemoveLocation(p)
endif
call ForGroup(g,function Kamenuka_Move_Group)
call SaveReal(udg_Hash,GetHandleId(lt),2,n+1)
set o=null
set p=null
set b=null
set g=null
endfunction

function Kamenuka_Move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit o=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local real i=LoadReal(udg_Hash,GetHandleId(t),3)
local real a=LoadReal(udg_Hash,GetHandleId(t),2)
local real op=9000/LoadReal(udg_Hash,GetHandleId(t),4)
local real n=LoadReal(udg_Hash,GetHandleId(t),4)/24
local timer lt
local location p
call SetUnitX(o,GetUnitX(o)+24*Cos(a))
call SetUnitY(o,GetUnitY(o)+24*Sin(a))
if(i<=n/2)then
      call SetUnitFlyHeight(o,GetUnitFlyHeight(o)+op,0)
endif

if(i>=n/2)then
      call SetUnitFlyHeight(o,GetUnitFlyHeight(o)-op,0)
endif
if (i>=n) then
set p=GetUnitLoc(o)
set lt=CreateTimer()
call SaveLocationHandle(udg_Hash,GetHandleId(lt),3,p)
call SaveReal(udg_Hash,GetHandleId(lt),2,1)
call SaveTimerHandle(udg_Hash,GetHandleId(lt),1,t)
call TimerStart(lt,0.04,true,function Kamenuka_Damage)
call PauseTimer(t)
endif
call SaveReal(udg_Hash,GetHandleId(t),3,i+1)
set o=null
set p=null
endfunction

function Kamenuka_Actions takes nothing returns nothing
local timer t=CreateTimer()
local location p=GetSpellTargetLoc()
local unit u=GetSpellAbilityUnit()
local unit o=CreateUnitAtLoc(GetOwningPlayer(u),'n005',GetUnitLoc(u),GetUnitFacing(u))
local real a=Atan2(GetLocationY(p)-GetUnitY(o),GetLocationX(p)-GetUnitX(o))
local real lvl=GetUnitAbilityLevelSwapped('A00H',u)
call UnitAddAbility(o,'Arav')
call UnitRemoveAbility(o,'Arav')
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,o)
call SaveUnitHandle(udg_Hash,GetHandleId(t),6,u)
call SaveReal(udg_Hash,GetHandleId(t),2,a)
call SaveReal(udg_Hash,GetHandleId(t),3,1)
call SaveReal(udg_Hash,GetHandleId(t),4,DistanceBetweenPoints(GetUnitLoc(u),p))
call TimerStart(t,0.04,true,function Kamenuka_Move)
call RemoveLocation(p)
set p=null
set u=null
set o=null
endfunction

//===========================================================================
function InitTrig_Kamenuka takes nothing returns nothing
    set gg_trg_Kamenuka = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Kamenuka, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_Kamenuka, Condition( function Kamenuka_Conditions ) )
    call TriggerAddAction( gg_trg_Kamenuka, function Kamenuka_Actions )
endfunction
И №2 та же проблема.. смысл заклинания следующий: Заклинатель создает шар который летит в указаном направлении постоянно притягивая к себе вражеские войска после достижения заданой точки, шар взрывается нанося всем в неком радиусе урон. А проблема такая же.. я хочю зделать задержу урона, т.е что уро наносился спустя 0.8 секунд после взрыва шара т.к тогда получается реалестичней.
Вот код

function Gravity_Boll_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A001'
endfunction

function Gravity_Boll_Filter takes nothing returns boolean
local timer t=GetExpiredTimer()
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
return IsPlayerEnemy(GetOwningPlayer(c),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())​>0.405)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))
endfunction

function Gravity_Boll_Damage takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),5)
local unit q=GetEnumUnit()
local real lvl=LoadReal(udg_Hash,GetHandleId(t),4)

call UnitDamageTarget(u,q,100+(40*lvl), true, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_MIND ,WEAPON_TYPE_WHOKNOWS)
endfunction

function Gravity_Boll_Move_Group takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit q=GetEnumUnit()
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local real a=Atan2(GetUnitY(c)-GetUnitY(q),GetUnitX(c)-GetUnitX(q))
local real lvl=LoadReal(udg_Hash,GetHandleId(t),4)
call SetUnitX(q,GetUnitX(q)+15*Cos(a))
call SetUnitY(q,GetUnitY(q)+15*Sin(a))
endfunction

function Gravity_Boll_call takes nothing returns nothing
local timer lt=GetExpiredTimer()
local timer t=LoadTimerHandle(udg_Hash,GetHandleId(lt),1)
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local group g=LoadGroupHandle(udg_Hash,GetHandleId(t),2)
local real lvl=LoadReal(udg_Hash,GetHandleId(t),4)
local boolexpr b=Condition(function Gravity_Boll_Filter)
local real n=LoadReal(udg_Hash,GetHandleId(t),5)
local location p=GetUnitLoc(c)
call GroupEnumUnitsInRangeOfLoc(g,p,200+(lvl*50),b)
if n==1 then
    call KillUnit(c)
call ForGroup (g,function Gravity_Boll_Damage)
endif
if n>=2 then
    call PauseTimer(t)
    call FlushChildHashtable(udg_Hash,GetHandleId(t))
    call DestroyTimer(lt)
    call PauseTimer(lt)
    call FlushChildHashtable(udg_Hash,GetHandleId(lt))
    call DestroyTimer(t)
call RemoveLocation(p)
call DestroyBoolExpr(b)
call DestroyGroup(g)
endif
call SaveReal(udg_Hash,GetHandleId(t),5,n+1)
set p=null
set c=null
set g=null
set b=null
endfunction

function Gravity_Boll_Move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local real s=LoadReal(udg_Hash,GetHandleId(t),2)
local real a=LoadReal(udg_Hash,GetHandleId(t),3)
local real lvl=LoadReal(udg_Hash,GetHandleId(t),4)
local group g=CreateGroup()
local boolexpr b=Condition(function Gravity_Boll_Filter)
local timer lt
call GroupEnumUnitsInRangeOfLoc(g,GetUnitLoc(c),200+(lvl*50),b)
if (s<=24+(lvl*4))then
    call ForGroup (g,function Gravity_Boll_Move_Group)
    call SetUnitX(c,GetUnitX(c)+25*Cos(a))
    call SetUnitY(c,GetUnitY(c)+25*Sin(a))
    call SaveReal(udg_Hash,GetHandleId(t),2,s+1)
else
set lt=CreateTimer()
call SaveReal(udg_Hash,GetHandleId(t),5,1)
call SaveTimerHandle(udg_Hash,GetHandleId(lt),1,t)
call TimerStart(lt,0.5,false,function Gravity_Boll_call)
call SaveGroupHandle(udg_Hash,GetHandleId(t),2,g)
    call PauseTimer(t)
call DestroyBoolExpr(b)
endif
set c=null
set g=null
set b=null
endfunction

function Gravity_Boll_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local unit c=CreateUnitAtLoc(GetOwningPlayer(u),'n002',GetUnitLoc(u),GetUnitFacing(u))
local real lvl=GetUnitAbilityLevelSwapped('A001',u)
local location p=GetSpellTargetLoc()
local real a=Atan2(GetLocationY(p)-GetUnitY(u),GetLocationX(p)-GetUnitX(u))
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,c)
call SaveReal(udg_Hash,GetHandleId(t),2,1)
call SaveReal(udg_Hash,GetHandleId(t),3,a)
call SaveReal(udg_Hash,GetHandleId(t),4,lvl)
call SaveUnitHandle(udg_Hash,GetHandleId(t),5,u)
call TimerStart(t,0.04,true,function Gravity_Boll_Move)
call RemoveLocation(p)
set u=null
set p=null
set c=null
endfunction

//===========================================================================
function InitTrig_Gravity_Boll takes nothing returns nothing
    set gg_trg_Gravity_Boll = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Gravity_Boll, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_Gravity_Boll, Condition( function Gravity_Boll_Conditions ) )
    call TriggerAddAction( gg_trg_Gravity_Boll, function Gravity_Boll_Actions )
endfunction

Отредактировано Revo1teR, 11.09.2010 в 22:49.
Старый 08.09.2010, 20:49
Elf_Stratigo

offline
Опыт: 4,699
Активность:
вроде нельзя использовать
GetExpiredTimer()
если функция вызвана не таймером, попробуй использовать глобалку
1. код утечный
2. к вещественным константам подпиши точку
Старый 08.09.2010, 21:18
Revo1teR

offline
Опыт: 146
Активность:
А где ж ошибка то ? Про утечки я и сам знаю.. мне главное чтоб он сначала заработал, а потом я уже буду все оптимизировать.
Причем тут ResumeTimer? У меня там вобще такой команды нет, только StopTimer.

Отредактировано Revo1teR, 09.09.2010 в 18:12.
Старый 08.09.2010, 21:35
Revo1teR

offline
Опыт: 146
Активность:
94 просмотра и ни одного ответа ? =) Ну помогите а )
Старый 10.09.2010, 20:06
silumin

offline
Опыт: 11,153
Активность:
Revo1teR, в твоих "джассовых повестях" никто копаться и искать причину неполадок не будет.
Выводи отладочную информацию на каждом этапе работы спелла, смотри на данные, ищи где проблема и выкладывай проблемный участок кода, а всю писанину.


п.с. как дети...

silumin добавил:
и тэги [сut]...[/сut] придумали для нубов?
Старый 10.09.2010, 20:54
Revo1teR

offline
Опыт: 146
Активность:
Ну вы даете.. одним подавай весь код - а то непонятно может в начале ошибка то, другим "повести" мои не нравятся.И если внимательно почитать суть проблемы, то становится абсолютно ясно, что проблема именно в функциях к которым мы обращаемся с помощью call ForGroup() и в моих повестях все функции очень правильно подписаны, следовательно не так уж тяжело ( я бы даже сказал очень просто) понять что не работают те функции где написано слово Group либо есть GetEnumUnit(). до этих функции все работает просто отлично.. а если мой код такой длинный и не понятный, то вот часть кода которая не работает:
function Gravity_Boll_Filter takes nothing returns boolean
local timer t=GetExpiredTimer()
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
return IsPlayerEnemy(GetOwningPlayer(c),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())​>0.405)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))
endfunction

function Gravity_Boll_Damage takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),5)
local unit q=GetEnumUnit()
local real lvl=LoadReal(udg_Hash,GetHandleId(t),4)
call UnitDamageTarget(u,q,100+(40*lvl), true, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_MIND ,WEAPON_TYPE_WHOKNOWS)
endfunction

function Gravity_Boll_call takes nothing returns nothing
local timer lt=GetExpiredTimer()
local timer t=LoadTimerHandle(udg_Hash,GetHandleId(lt),1)
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local group g=LoadGroupHandle(udg_Hash,GetHandleId(t),2)
local real lvl=LoadReal(udg_Hash,GetHandleId(t),4)
local boolexpr b=Condition(function Gravity_Boll_Filter)
local real n=LoadReal(udg_Hash,GetHandleId(t),5)
local location p=GetUnitLoc(c)
call GroupEnumUnitsInRangeOfLoc(g,p,200+(lvl*50),b)
if n==1 then
    call KillUnit(c)
call ForGroup (g,function Gravity_Boll_Damage)
endif
if n>=2 then
    call PauseTimer(t)
    call FlushChildHashtable(udg_Hash,GetHandleId(t))
    call DestroyTimer(lt)
    call PauseTimer(lt)
    call FlushChildHashtable(udg_Hash,GetHandleId(lt))
    call DestroyTimer(t)
call RemoveLocation(p)
call DestroyBoolExpr(b)
call DestroyGroup(g)
endif
call SaveReal(udg_Hash,GetHandleId(t),5,n+1)
set p=null
set c=null
set g=null
set b=null
endfunction
т.е call ForGroup (g,function Gravity_Boll_Damage) по какой-то причине не выполняется.

Отредактировано Revo1teR, 11.09.2010 в 14:54.
Старый 10.09.2010, 23:40
silumin

offline
Опыт: 11,153
Активность:
Цитата:
function Gravity_Boll_Filter takes nothing returns boolean
local timer t=GetExpiredTimer()
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),1)

function Gravity_Boll_Damage takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),5)

Какой таймет истекает в рамках этих двух потоков? Знаешь ответ?... Никакой! Вот и вся твоя ошибка. Передавай ХендлИд тайпера в свои функции через глобальную переменную, либо все необходимые паратметры через глобалки.

silumin добавил:
Тебе об этом сказал в первом посте Elf_Stratigo.
Старый 11.09.2010, 02:29
Revo1teR

offline
Опыт: 146
Активность:
Elf_Stratigo не прав, и ты тоже, потому что в рамках этих двух функций истекает таймер t, который мы запустили в самой первой функции которая "запускается" через событие, а к какой функции мы его запустили это не важно (можешь проверить). Таймер t я запустил еще в начале, потому-то там вверху и висит моя "повесть" что бы была видна вся картинка.
Старый 11.09.2010, 14:53
Elf_Stratigo

offline
Опыт: 4,699
Активность:
это просто подозрение было про GetExpiredTimer()
local timer t=LoadTimerHandle(udg_Hash,GetHandleId(lt),1)
local unit o=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
а вот это чудо - в одной ячейке может лежать лишь один объект
Старый 11.09.2010, 15:47
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
Elf_Stratigo, а ячеек там 2 -.-
посмотри на хендлы в одном t в другом lt
Старый 11.09.2010, 15:54
Revo1teR

offline
Опыт: 146
Активность:
AlexKARASb может ты мне поможеш ? =) У меня есть подозрение что нужно просто b-сохранять из функции Gravity_Boll_Move
Старый 11.09.2010, 16:24
Elf_Stratigo

offline
Опыт: 4,699
Активность:
о боги ><
тогда вот эти две, из Kamenuka_Damage:
local real n=LoadReal(udg_Hash,GetHandleId(lt),2)
local real lvl=LoadReal(udg_Hash,GetHandleId(lt),2)
и там условие останова:
n>=11+2*lvl
никогда не возможно
в общем очевидно, что напутано с хендлами внутри хеша

Отредактировано Elf_Stratigo, 11.09.2010 в 17:55.
Старый 11.09.2010, 16:26
Revo1teR

offline
Опыт: 146
Активность:
да причем тут ? Ну опечатка тут да.. но не в этом дело. Мы сейчас вобще второй спелл рассматриваем с хендлами ничего не напутано.. что никто не видит возможных причин (ДРУГИХ!).
И сразу еще 1 вопрос. Вот для начала код заклинания:

function Black_Shuriken_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00I'
endfunction

function Black_Shuriken_Move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local real a
local unit q=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local real back=LoadReal(udg_Hash,GetHandleId(t),4)
local real speed=LoadReal(udg_Hash,GetHandleId(t),5)
if back>=1 and back<15 then
set a=LoadReal(udg_Hash,GetHandleId(t),3)
endif
if back>=15 then
set a=Atan2(GetUnitY(q)-GetUnitX(u),GetUnitX(q)-GetUnitX(u))
call SaveReal(udg_Hash,GetHandleId(t),5,speed+5)
endif
call SetUnitX(q,GetUnitX(q)+speed*Cos(a))
call SetUnitY(q,GetUnitY(q)+speed*Sin(a))
call SaveReal(udg_Hash,GetHandleId(t),4,back+1)
set u=null
set q=null
endfunction

function Black_Shuriken_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local location n=GetUnitLoc(u)
local unit q=CreateUnitAtLoc(GetOwningPlayer(u),'n006',n,GetUnitFacing(u))
local location p=GetSpellTargetLoc()
local real a=Atan2(GetLocationY(p)-GetUnitY(q),GetLocationX(p)-GetUnitX(q))
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveUnitHandle(udg_Hash,GetHandleId(t),2,q)
call SaveReal(udg_Hash,GetHandleId(t),3,a)
call SaveReal(udg_Hash,GetHandleId(t),4,1)
call SaveReal(udg_Hash,GetHandleId(t),5,5)
call TimerStart(t,0.025,true,function Black_Shuriken_Move)
call RemoveLocation(p)
call RemoveLocation(n)
set u=null
set p=null
set n=null
endfunction

//===========================================================================
function InitTrig_Black_Shuriken takes nothing returns nothing
    set gg_trg_Black_Shuriken = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Black_Shuriken, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_Black_Shuriken, Condition( function Black_Shuriken_Conditions ) )
    call TriggerAddAction( gg_trg_Black_Shuriken, function Black_Shuriken_Actions )
endfunction
код незаконченный, но уже на этой стадии возникли проблема.. не меняется угол а т.е по логике когда переменная back >= 15 угол а должен становится углом между 2-мя юнитами, или даже первый пример если back >=1 ... then а= выгружаем угол между юнитом и точкой из первой функции.. в итоге юнит который должен по этому углу двигатся даже не дергается т.к а=0.Вот и вопрос - Почему?
На всяк случай я уже придумал альтернативное решение.. хотя наверно нужно переходить на глобалки.. просто не пользовался никогда, а на новое тяжело переходить =(.

Отредактировано Revo1teR, 11.09.2010 в 23:21.
Старый 11.09.2010, 20:53
Windrunner
Верь мне!
offline
Опыт: 4,565
Активность:
Revo1teR, учись разбиратся во всем сам,тут мало кто тебе будет помогать.
Да и ты относишся минимум грубовато к тем,кто пытается тебе помочь.
Старый 13.09.2010, 19:31
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
set a=Atan2(GetUnitY(q)-GetUnitX(u),GetUnitX(q)-GetUnitX(u))
исправляй
Старый 13.09.2010, 20:48
Revo1teR

offline
Опыт: 146
Активность:
Windrunner
Я, отвечаю так, как отвечают мне, ведь "в твоих "джассовых повестях" никто копаться и искать причину неполадок не будет." тоже немного грубовато не замечаеш? Это не то что грубо, но во первых имхо, каждый вправе сам решать будет он помогать или нет, и выдавать свое отношение к данному вопросу ( либо мнение) за все общее не есть хорошо.Далее "и тэги [сut]...[/сut] придумали для нубов?" - очень тонкий намёк.
Далее, я думаю что мне "мало кто будет помогать" © Windrunner потому, что я использую обычный джазз и локалки.. вы же почти все (может и все) используете глобалки и дополнительные формы джаза и возвращаться к не удобному не хочется.. мне так кажется.. если кого обидел извиняйте.
Что бы учится, желательно иметь учителя, ибо если над всем думать в одиночестве это может занять очень много времени которое терять было бы крайне не разумно.Разбираться сам я могу, но далеко не во всем.
16GB

Спасибо, но что исправлять то ? так и задумано что бы угол а становился углом между кастером и дамми юнитом, но он не становится. Как я уже писал "юнит который должен по этому углу двигаться даже не дергается т.к а=0"
Старый 14.09.2010, 19:32
Windrunner
Верь мне!
offline
Опыт: 4,565
Активность:
Revo1teR:
что я использую обычный джазз и локалки.. вы же почти все (может и все) используете глобалки и дополнительные формы джаза и возвращаться к не удобному не хочется.. мне так кажется.. если кого обидел извиняйте.
Ты думаешь,что столь трудно дописать local и udg_?
Не знаю,как всем,но мне без разницы,просто удобнее без него не более.
Но по сути,дай карту,как вариант,тогда мб кто-нибудь уже с опытом поиска ошибок покажет и расскажет все(Может быть даже я помогу.)
Старый 14.09.2010, 19:35
Revo1teR

offline
Опыт: 146
Активность:
Вот карта пожалуйста ). там кстати есть комментарии, где описано что и как должно работать или проблема. Если сможеш, то пожалуйста найди решение проблем с call ForGroup() в заклинании Gravity_Boll.
Прикрепленные файлы
Тип файла: w3x Masters Arena1 V 1.w3x (163.0 Кбайт, 18 просмотров )
Старый 14.09.2010, 19:50
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
это на
set a=Atan2(GetUnitY(q)-GetUnitX(u),GetUnitX(q)-GetUnitX(u))
это
set a=Atan2(GetUnitY(q)-GetUnitY(u),GetUnitX(q)-GetUnitX(u))
Старый 14.09.2010, 19:52
Revo1teR

offline
Опыт: 146
Активность:
Да опечатка.. опять. Но все равно не помогло т.к угол а=0.И знаю я это потому, что юнит все равно не дергается.
Старый 14.09.2010, 20:24
Ответ

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

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

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

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



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