Сейчас 16:40:47 Вторник, 23 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Проблема с кодом (Дубль 2) (Продолжаем)
[Вопрос] Проблема с кодом (Дубль 2)
mazahanДата: Вторник, 21 Мая 2013, 14:57:31 | Сообщение # 26
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Цитата (Imba_pvL)
Могу дать спел на гуи


Цитата
Буду использовать , вообще мне нужны даммики в линию и чтобы они кастовали скилл ( станяющий скилл по области у героя орды , забыл как называется).
Легко могу написать в триггерах , но 'Недавно начал осваивать jass '.


Добавлено (21 Мая 2013, 14:45:08)
---------------------------------------------
Нашёл такую клавишу как Syntax Check врубил , зырнул пишет , что ошибка в коде присваивания d

set d = CreateUnit(p 'h00F', x, y, 270.)

И ещё кучу ошибок , он ненаписанно какая строка и тд , а при нажатии пишет : '' is not a valid integer value.

Добавлено (21 Мая 2013, 14:46:41)
---------------------------------------------
И может ли версия патча эдитора несовпадать с варом?Т.к вроде эта ошибка ( баз триггеров) появилась, когда я поставил новый патч на вар.

Добавлено (21 Мая 2013, 14:50:52)
---------------------------------------------
Пока забыли о куче ошибок , в работающем коде тоже самое и то же количество ошибок.

что с d ?

Добавлено (21 Мая 2013, 14:55:20)
---------------------------------------------
function Trig_ret_Conditions takes nothing returns boolean
GetSpellAbilityId() == 'A00N'
endfunction
function Trig_ret_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_ret takes nothing returns nothing
set gg_trg_ret = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_ret, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_ret, Condition( function Trig_ret_Conditions ) )
call TriggerAddAction( gg_trg_ret, function Trig_ret_Actions )
endfunction

Тоже не работает , ошибка в условии.

Добавлено (21 Мая 2013, 14:57:31)
---------------------------------------------
Всё , нашёл ( в условии)

Сообщение отредактировал mazahan - Вторник, 21 Мая 2013, 14:47:02
 

SirNikolasДата: Вторник, 21 Мая 2013, 15:10:30 | Сообщение # 27
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (mazahan)
Нашёл такую клавишу, как Syntax Check
Она кривая. Смотри ошибки при сохранении карты.


 

mazahanДата: Вторник, 21 Мая 2013, 15:14:35 | Сообщение # 28
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Цитата (SirNikolas)
Она кривая. Смотри ошибки при сохранении карты.


Ничего не вылазит , написал работающий код ( в смысле карта запускается)

function Trig_looptrg_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00N'
endfunction
function Trig_looptrg_Actions takes nothing returns nothing
local integer i = 200
local real x
local real y
local integer t
set udg_varvar_d_caster = GetSpellAbilityUnit()
loop
exitwhen i > 1200
set x = GetLocationX(GetUnitLoc(udg_varvar_d_caster)) + i * Cos(GetUnitFacing(udg_varvar_d_caster) * bj_DEGTORAD)
set y = GetLocationY(GetUnitLoc(udg_varvar_d_caster)) + i * Sin(GetUnitFacing(udg_varvar_d_caster) * bj_DEGTORAD)
call CreateUnitAtLoc (GetOwningPlayer(udg_varvar_d_caster), 'h00F', Location(x, y), bj_UNIT_FACING)
set udg_varvar_d_dummy[t] = bj_lastCreatedUnit
set i = i+200
set t = t+1
endloop
endfunction

//===========================================================================
function InitTrig_looptrg takes nothing returns nothing
set gg_trg_looptrg = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_looptrg, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_looptrg, function Trig_looptrg_Actions )
call TriggerAddCondition( gg_trg_looptrg, Condition( function Trig_looptrg_Conditions ) )
endfunction

Но появляется только один думми.

Добавлено (21 Мая 2013, 15:14:35)
---------------------------------------------
Удаление думми потом напишу

 

ВолчачкаДата: Вторник, 21 Мая 2013, 15:16:09 | Сообщение # 29
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
mazahan, сейчас дам более адекватный исправленный код. Чуток позже, кое-что заметил.
 

mazahanДата: Вторник, 21 Мая 2013, 15:16:48 | Сообщение # 30
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Ок , спасибо
 

ВолчачкаДата: Вторник, 21 Мая 2013, 15:20:01 | Сообщение # 31
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Код
function Trig_looptrg_Actions takes nothing returns nothing
local integer i = 200
local unit c = GetSpellAbilityUnit()
local real x
local real y
local real F = GetUnitFacing(c)
local real cF = Cos(F * bj_DEGTORAD)
local real sF = Sin(F * bj_DEGTORAD)
local player p = GetOwningPlayer(c)
local unit d
// ^Начальные настройки

loop
exitwhen i > 1200
set F = I2R(i) // конверт из целого в реальное
set x = GetUnitX(c) + F * cF
set y = GetUnitY(c) + F * sF
set d = CreateUnit(p, 'h00F', x, y, 270.)
call IssueImmediateOrder(d, "stomp") // каста вложенного стана даммиком
call UnitApplyTimedLife(d,'BTLF',2.) // жизнь даммика
set i = i+200
endloop

// Обнуления v

set c = null
set p = null
set d = null
endfunction

function Trig_looptrg_Condition takes nothing returns boolean
return GetSpellAbilityId() == 'A00N'
endfunction

//===========================================================================
function InitTrig_looptrg takes nothing returns nothing
local integer i = 0
set gg_trg_looptrg = CreateTrigger(  )
call TriggerAddAction( gg_trg_looptrg, function Trig_looptrg_Actions )
call TriggerAddCondition( gg_trg_looptrg, Condition(function Trig_looptrg_Condition) )
loop
          call TriggerRegisterPlayerUnitEvent( gg_trg_looptrg, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
          set i = i + 1
exitwhen i > 11
endloop  
endfunction

Вот исправленная версия
до:
set d = CreateUnit(p 'h00F', x, y, 270.)
после:
set d = CreateUnit(p, 'h00F', x, y, 270.)
забыл запятую там...
------
в общем проверил ещё раз, теперь должно работать.
 

mazahanДата: Вторник, 21 Мая 2013, 16:13:12 | Сообщение # 32
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Ура , работает:)

Так теперь насчёт путей и сохранений , есть место где функция проверки включается\выключается?

и используя call UnitApplyTimedLife(d,'h00F',2.) у некоторых моделей остаются разные 'части' ,предпочитаю удалять юнит.
Есть ли функция , при которой через некоторое время юнит не умирал а удалялся?

Добавлено (21 Мая 2013, 16:09:15)
---------------------------------------------
А не удобнее вместо этого :
loop
call TriggerRegisterPlayerUnitEvent( gg_trg_looptrg, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
set i = i + 1
exitwhen i > 11
endloop


Использовать это call TriggerRegisterAnyUnitEventBJ( gg_trg_looptrg, EVENT_PLAYER_UNIT_SPELL_EFFECT )

Добавлено (21 Мая 2013, 16:13:12)
---------------------------------------------

Цитата (mazahan)
И вообще делаю сейчас арену , начал на триггерах , т.к давно с ними работаю , стоит ли всё переписывать в Jass (сделано совсем немного).
И да, а реально найти модель Мойдодыра?


Сообщение отредактировал mazahan - Вторник, 21 Мая 2013, 16:07:11
 

ВолчачкаДата: Вторник, 21 Мая 2013, 16:15:34 | Сообщение # 33
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
mazahan, Тип смерти: Нельзя оживить, не разлагается. //Если ты про дамми юниты.
Цитата (mazahan)
loop
call TriggerRegisterPlayerUnitEvent( gg_trg_looptrg, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
set i = i + 1
exitwhen i > 11
endloop

Код
function TriggerRegisterAnyUnitEventBJ takes trigger trig, playerunitevent whichEvent returns nothing
      local integer index

      set index = 0
      loop
          call TriggerRegisterPlayerUnitEvent(trig, Player(index), whichEvent, null)

          set index = index + 1
          exitwhen index == bj_MAX_PLAYER_SLOTS
      endloop
endfunction

bj_MAX_PLAYER_SLOTS это ровно от 0 до 15 -> 16 игроков
а моя регистрирует на 12 игроков.
а так те лишние, на которые регистрирует.
<!--
12 (13 нейтрально враждебный)
13 (14 дополнительно нейтрально враждебный)
14 (15 нейтральная жертва)
15 (16 нейтрально пассивный)
-->


Сообщение отредактировал Волчачка - Вторник, 21 Мая 2013, 16:16:51
 

mazahanДата: Вторник, 21 Мая 2013, 16:22:16 | Сообщение # 34
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Ясно , спасибо.А насколько сильно всё надо запороть , чтобы эти лишние мешали?)
 

SirNikolasДата: Вторник, 21 Мая 2013, 16:33:24 | Сообщение # 35
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Игроки 13 и 14 используются, например, для крипов сторон в DotA 6x6. Изначально они враждебны всем, но 13 считает всех врагами, а 14 - нейтральными. Для того чтобы их использовать, придется триггерно выставить союзы.

 

mazahanДата: Вторник, 21 Мая 2013, 19:53:06 | Сообщение # 36
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Но мне же не надо их использовать =_=

Поэтому проще ведь брать всех ) ( Писать короче )

Добавлено (21 Мая 2013, 19:21:19)
---------------------------------------------
Есть ли функция покороче для дамага по вражеским юнитам в диапозоне думми ?

function Trig_yh_Func001001003001 takes nothing returns boolean
return ( IsUnitAlly(GetFilterUnit(), GetOwningPlayer(udg_vodinoy_e_caster)) == false )
endfunction

function Trig_yh_Func001001003002 takes nothing returns boolean
return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_vodinoy_e_caster)) == true )
endfunction

function Trig_yh_Func001001003 takes nothing returns boolean
return GetBooleanAnd( Trig_yh_Func001001003001(), Trig_yh_Func001001003002() )
endfunction

function Trig_yh_Func001A takes nothing returns nothing
call UnitDamageTargetBJ( udg_vodinoy_e_caster, GetEnumUnit(), ( I2R(GetHeroStatBJ(bj_HEROSTAT_INT, udg_vodinoy_e_caster, true)) * 20.00 ), ATTACK_TYPE_HERO, DAMAGE_TYPE_COLD )
endfunction

function Trig_yh_Actions takes nothing returns nothing
call ForGroupBJ( GetUnitsInRangeOfLocMatching(600.00, udg_vodinoy_e_obl, Condition(function Trig_yh_Func001001003)), function Trig_yh_Func001A )
endfunction

Добавлено (21 Мая 2013, 19:53:06)
---------------------------------------------
Заменил первые 3 функции на if

 

BruДата: Вторник, 21 Мая 2013, 20:44:17 | Сообщение # 37
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1950
Блокировки:
Цитата (mazahan)
function Trig_yh_Func001001003001 takes nothing returns boolean
return ( IsUnitAlly(GetFilterUnit(), GetOwningPlayer(udg_vodinoy_e_caster)) == false )
endfunction

function Trig_yh_Func001001003002 takes nothing returns boolean
return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_vodinoy_e_caster)) == true )
endfunction

function Trig_yh_Func001001003 takes nothing returns boolean
return GetBooleanAnd( Trig_yh_Func001001003001(), Trig_yh_Func001001003002() )
endfunction

function Trig_yh_Func001A takes nothing returns nothing
call UnitDamageTargetBJ( udg_vodinoy_e_caster, GetEnumUnit(), ( I2R(GetHeroStatBJ(bj_HEROSTAT_INT, udg_vodinoy_e_caster, true)) * 20.00 ), ATTACK_TYPE_HERO, DAMAGE_TYPE_COLD )
endfunction

если такие здоровые хрени можно в переменную закидывать
 

mazahanДата: Вторник, 21 Мая 2013, 20:59:00 | Сообщение # 38
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
В чём ошибка ?

function Trig_razduv_Actions takes nothing returns nothing

local integer a = 1
local integer b = 6
local unit t
local real c
local effect array u
set udg_d = GetSpellAbilityUnit()
call SetUnitInvulnerable( udg_d, true )
call PauseUnitBJ( true, udg_d )
loop
exitwhen a > b
call SetUnitScalePercent( udg_d, I2R(a) * 100.00 ), ( I2R(a) * 100.00 ), ( I2R(a) * 100.00 ) )
call TriggerSleepAction( 0.50 )
set a = a + 1
endloop
call CreateNUnitsAtLoc( 1, 'h009', GetOwningPlayer(udg_d), GetUnitLoc(udg_d), bj_UNIT_FACING )
set t = GetLastCreatedUnit()
set a = 1
set b = 12
loop
exitwhen a > b
call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_d), 300.00, c), "Doodads\\Cinematic\\RisingWaterDoodad\\RisingWaterDoodad.mdl" )
set u[a] = GetLastCreatedEffectBJ()
set c = ( c + 30.00 )
set a = a + 1
endloop

set a = 13
set b = 24
loop
exitwhen a > b
call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_d), 700, c), "Doodads\\Cinematic\\RisingWaterDoodad\\RisingWaterDoodad.mdl" )
set u[a] = GetLastCreatedEffectBJ()
set c = ( c + 30.00 )
set a = a + 1
endloop

set a = 25
set b = 36
loop
exitwhen a > b
call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_d), 1200.00, c), "Doodads\\Cinematic\\RisingWaterDoodad\\RisingWaterDoodad.mdl" )
set u[a] = GetLastCreatedEffectBJ()
set c = ( c + 30.00 )
set a = a + 1
endloop
call TriggerSleepAction( 0.50 )
call SetUnitScalePercent( udg_d, 100.00, 100.00, 100.00 )

call KillUnit(udg_d)
call SetUnitInvulnerable( udg_d, false )
call PauseUnitBJ( false, udg_d )
call TriggerSleepAction( 15.00 )
call RemoveUnit(t)
set a = 1
set b = 36
loop
exitwhen a > b
call DestroyEffectBJ( u[a] )
set a = a + 1
endloop

function Trig_razduv_1 takes nothing returns nothing
call UnitDamageTargetBJ(udg_d, GetEnumUnit(), ( I2R(GetHeroStatBJ(bj_HEROSTAT_INT, udg_d, true)) * 400.00 ), ATTACK_TYPE_HERO, DAMAGE_TYPE_COLD )
endfunction

if (IsUnitAlly ( GetFilterUnit(), GetOwningPlayer(udg_d))==false) and (IsUnitEnemy (GetFilterUnit(),GetOwningPlayer(udg_d))==true) then
call ForGroupBJ( GetUnitsInRangeOfLocAll(1200.00,GetUnitLoc(udg_d),function Trig_razduv_1 ))
endif
endfunction

function Trig_razduv_Condition takes nothing returns boolean
return GetSpellAbilityId() == 'A00F'
endfunction
//===========================================================================
function InitTrig_razduv takes nothing returns nothing
set gg_trg_razduv = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_razduv, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_razduv, Condition( function Trig_razduv_Condition ) )
call TriggerAddAction( gg_trg_razduv, function Trig_razduv_Actions )
endfunction

Можно ли вместо

if (IsUnitAlly ( GetFilterUnit(), GetOwningPlayer(udg_d))==false) and (IsUnitEnemy (GetFilterUnit(),GetOwningPlayer(udg_d))==true) then
call ForGroupBJ( GetUnitsInRangeOfLocAll(1200.00,GetUnitLoc(udg_d),function Trig_razduv_1 ))
endif
endfunction

Использовать сразу

UnitDamageTargetBJ(udg_d, GetEnumUnit(), ( I2R(GetHeroStatBJ(bj_HEROSTAT_INT, udg_d, true)) * 400.00 ), ATTACK_TYPE_HERO, DAMAGE_TYPE_COLD )

дабы не использовать глобальную переменную?


Сообщение отредактировал mazahan - Вторник, 21 Мая 2013, 21:01:46
 

ВолчачкаДата: Вторник, 21 Мая 2013, 21:39:16 | Сообщение # 39
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Ужас, пойду выкинусь с окна.
вот пример, он он не для даммика твоего
Код
function Trig_BlinkNoTarget_Actions takes nothing returns nothing
     local unit c = GetSpellAbilityUnit()
     local real x = GetUnitX(c)
     local real y = GetUnitY(c)
     local unit p
     call SetUnitX( c, x + 700 * Cos( GetUnitFacing(c) * bj_DEGTORAD ) )
     call SetUnitY( c, y + 700 * Sin( GetUnitFacing(c) * bj_DEGTORAD ) )
     set x = GetUnitX(c)
     set y = GetUnitY(c)
     call GroupEnumUnitsInRange(udg_G,x,y,450,null)
     loop
         set p = FirstOfGroup(udg_G)
         if IsUnitEnemy(c,GetOwningPlayer(p)) == true then
             call UnitDamageTarget(c,p,100,true,true,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_NORMAL,null)
             call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\Human\\MassTeleport\\MassTeleportCaster.mdl", p, "origin" ))
         endif
         call GroupRemoveUnit(udg_G,p)
         exitwhen p == null
     endloop
     call GroupClear(udg_G)
     call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl", x, y))
     set c = null
     set x = 0
     set y = 0
endfunction

А если подробно разбирать то можно так
//udg_G - это глобальная переменная G
Код
function dummydamage_X1 takes unit d, unit c, real dmg, real radius returns nothing
     local real x = GetUnitX(d)
     local real y = GetUnitY(d)
     local unit p
     call GroupEnumUnitsInRange(udg_G,x,y,radius,null)
     loop
         set p = FirstOfGroup(udg_G)
         exitwhen p == null
         if IsUnitEnemy(c,GetOwningPlayer(p)) == true then
             call UnitDamageTarget(c,p,dmg,true,true,ATTACK_TYPE_MAGIC,DAMAGE_TYPE_NORMAL,null)
         endif
         call GroupRemoveUnit(udg_G,p)
     endloop
     call GroupClear(udg_G)
endfunction

call dummydamage_X1( 'dummy', 'caster', 'damage', 'radius' ) // Вместо пометок в кавычках нужные переменные.

Добавлено (21 Мая 2013, 21:39:16)
---------------------------------------------
Это всего лишь пример)

 

lawsonДата: Среда, 22 Мая 2013, 00:10:55 | Сообщение # 40
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Цитата (mazahan)
В чём ошибка ?

Цитата (mazahan)
function Trig_razduv_Actions takes nothing returns nothing

Цитата (mazahan)
endloop

а окончание функции где? endfunction функции Trig_razduv_Actions ?


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

mazahanДата: Среда, 22 Мая 2013, 11:35:28 | Сообщение # 41
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Не там где нужно , как буду у компа исправлю(окончание)
 

BruДата: Среда, 22 Мая 2013, 15:41:26 | Сообщение # 42
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1950
Блокировки:
Цитата (mazahan)
Сообщение # 38

 

mazahanДата: Вторник, 28 Мая 2013, 11:36:57 | Сообщение # 43
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
function Trig_razduv_2 takes nothing returns nothing
if (h == bj_HEROSTAT_INT) then
return GetHeroInt(udg_d, includeBonuses)
endif
endfunction

function Trig_razduv_1 takes nothing returns nothing
return UnitDamageTarget(udg_d, GetEnumUnit(), (h * 400.00 ), ATTACK_TYPE_HERO, DAMAGE_TYPE_COLD )
endfunction

function Trig_razduv_Actions takes nothing returns nothing

local integer a = 1
local integer b = 6
local unit t
local real c
local real g
local integer h
local effect array u
local real x = GetLocationX(udg_d) + g * Cos(c * bj_DEGTORAD)
local real y = GetLocationY(udg_d) + g * Sin(c * bj_DEGTORAD)
set udg_d = GetSpellAbilityUnit()
call SetUnitInvulnerable( udg_d, true )
call PauseUnit(udg_d, true)
loop
exitwhen a > b
call SetUnitScalePercent( udg_d, I2R(a) * 100.00 ), ( I2R(a) * 100.00 ), ( I2R(a) * 100.00 ) )
call TriggerSleepAction( 0.50 )
set a = a + 1
endloop
call CreateNUnitsAtLoc( 1, 'h009', GetOwningPlayer(udg_d), GetUnitLoc(udg_d), bj_UNIT_FACING )
set t = GetLastCreatedUnit()
set a = 1
set b = 12
set g = 300
loop
exitwhen a > b
set u[a] = AddSpecialEffectLoc(x,y, c), "Doodads\\Cinematic\\RisingWaterDoodad\\RisingWaterDoodad.mdl" )
set c = ( c + 30.00 )
set a = a + 1
endloop

set a = 13
set b = 24
set g = 700
loop
exitwhen a > b
set u[a] = AddSpecialEffectLoc(x,y, c), "Doodads\\Cinematic\\RisingWaterDoodad\\RisingWaterDoodad.mdl" )
set c = ( c + 30.00 )
set a = a + 1
endloop

set a = 25
set b = 36
set g = 1200
loop
exitwhen a > b
set u[a] = AddSpecialEffectLoc(x,y, c), "Doodads\\Cinematic\\RisingWaterDoodad\\RisingWaterDoodad.mdl" )
set c = ( c + 30.00 )
set a = a + 1
endloop
call TriggerSleepAction( 0.50 )
call SetUnitScalePercent( udg_d, 100.00, 100.00, 100.00 )

call KillUnit(udg_d)
call SetUnitInvulnerable( udg_d, false )
call PauseUnit(udg_d, false)
call TriggerSleepAction( 15.00 )
call RemoveUnit(t)
set a = 1
set b = 36
loop
exitwhen a > b
call DestroyEffect(u[a])
set u[a]=null
set a = a + 1
endloop

if (IsUnitAlly ( GetFilterUnit(), GetOwningPlayer(udg_d))==false) and (IsUnitEnemy (GetFilterUnit(),GetOwningPlayer(udg_d))==true) then
call ForGroup(GetUnitsInRangeOfLocAll(1200.00,GetUnitLoc(udg_d),function Trig_razduv_1 ))
endif
set a = null
set b = null
set t = null
set c = null
set g = null
set h = null
set Location(x,y)=null
endfunction

function Trig_razduv_Condition takes nothing returns boolean
return GetSpellAbilityId() == 'A00F'
endfunction
//===========================================================================
function InitTrig_razduv takes nothing returns nothing
local integer i
set gg_trg_razduv = CreateTrigger( )
call TriggerAddCondition( gg_trg_razduv, Condition( function Trig_razduv_Condition ) )
call TriggerAddAction( gg_trg_razduv, function Trig_razduv_Actions )
loop
call TriggerRegisterPlayerUnitEvent( gg_trg_razduv, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null )
set i = i + 1
exitwhen i > 11
endloop
endfunction

Лучше?)


Сообщение отредактировал mazahan - Вторник, 28 Мая 2013, 11:56:21
 

ВолчачкаДата: Вторник, 28 Мая 2013, 12:22:34 | Сообщение # 44
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
О боже, о боже.......................................................... .
mazahan, можно описание способности?
 

mazahanДата: Вторник, 28 Мая 2013, 12:47:26 | Сообщение # 45
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Герой раздувается ( не мгновенно ) и умирает , нанося инт героя * 40 ( вроде) дамага и создаётся 1 думми и много эффектов воды ( циклы в коде)

Лучше укажи на ошибки , я же учусь)


Сообщение отредактировал mazahan - Вторник, 28 Мая 2013, 12:51:50
 

SirNikolasДата: Вторник, 28 Мая 2013, 15:01:38 | Сообщение # 46
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (mazahan)
local integer i
Переменная не инициализирована (ей не присвоено начальное значение). Цикл выполнен не будет, т. е. в триггер не будут добавлены события.

Добавлено (28 Мая 2013, 15:01:38)
---------------------------------------------

Цитата (mazahan)
returns nothing
Цитата (mazahan)
return GetHeroInt(udg_d, includeBonuses)

Цитата (mazahan)
returns nothing
Цитата (mazahan)
return UnitDamageTarget(udg_d, GetEnumUnit(), (h * 400.00 ), ATTACK_TYPE_HERO, DAMAGE_TYPE_COLD )

Цитата (mazahan)
set u[a] = AddSpecialEffectLoc(x,y, c), "Doodads\\Cinematic\\RisingWaterDoodad\\RisingWaterDoodad.mdl" )

Цитата (mazahan)
set Location(x,y)=null
И у тебя Редактор не выдает ошибки?


 

mazahanДата: Вторник, 28 Мая 2013, 17:24:38 | Сообщение # 47
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
С i исправил

Сообщение отредактировал mazahan - Вторник, 28 Мая 2013, 17:29:59
 

SirNikolasДата: Вторник, 28 Мая 2013, 17:27:58 | Сообщение # 48
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Заскринь, как у тебя стоят галочки в настройках JNGP.

 

mazahanДата: Вторник, 28 Мая 2013, 17:34:35 | Сообщение # 49
5 уровень
Группа: Проверенные
Сообщений: 105
Награды: 0
Репутация: 5
Блокировки:
Настройки в самом редакторе , или есть отдельный файл?И да , если в редакторе , там же несколько окон , какое именно?
Нашёл окно проверка карты и поставил высокий уровень.
Появился jasshelper и показал одну ошибку


Сообщение отредактировал mazahan - Вторник, 28 Мая 2013, 17:35:20
 

SirNikolasДата: Вторник, 28 Мая 2013, 17:38:21 | Сообщение # 50
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Extensions, JassHelper, AdicHelper.

А лучше все, которых нет в стандартном WE.




Сообщение отредактировал SirNikolas - Вторник, 28 Мая 2013, 17:38:50
 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Проблема с кодом (Дубль 2) (Продолжаем)
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz