Сейчас 16:39:34 Воскресенье, 25 сентября, 2022 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » World Editor (Как копировать тригеры)
World Editor
1.1. Копирование необычных тригеров.[ 8 ][61.54%]
2.2. Использование в картах.[ 5 ][38.46%]
Всего ответов: 13
VahagnДата: Четверг, 06 Января 2011, 19:52:05 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Я не могу копировать тригеры спеллов, в которых нет не событыя, не условия, не действия, а просто написано.
Даже если получается копировать то карта не можно открыть или сохранить из за ошибки в триггере.
В прочем я могу только видеть этот спелл.


CH3COO- + H2+ = CH3COOH
 

lawsonДата: Четверг, 06 Января 2011, 19:53:25 | Сообщение # 2
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
что написано function Spell и так далее?

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

VahagnДата: Четверг, 06 Января 2011, 19:54:36 | Сообщение # 3
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Да.

CH3COO- + H2+ = CH3COOH
 

lawsonДата: Четверг, 06 Января 2011, 20:00:11 | Сообщение # 4
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Этот триггер написан на JASS чтоб он работал(если ты уверен что это спелл и он независит от нестандартных способностей ) то просто выделяешь текс что там написан и вставляешь в свой триггер. Но тебе будет это сложно. Покажи код что там.

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

VahagnДата: Четверг, 06 Января 2011, 20:04:52 | Сообщение # 5
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Все что написано в этом тригере?

CH3COO- + H2+ = CH3COOH
 

[yaroslav]Дата: Четверг, 06 Января 2011, 20:10:36 | Сообщение # 6
6 уровень
Группа: Проверенные
Сообщений: 225
Награды: 0
Репутация: 62
Блокировки:
Да.
Потом копируй его нажимай конвертировать в текст и вставляй то что скопировал.



Я беру кредит в банке 1 миллиард $,покупаю этот банк, и разрешаю себе не отдавать кредит, и всё - я Олигарх
 

VahagnДата: Четверг, 06 Января 2011, 20:14:23 | Сообщение # 7
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
А у меня нет конвертора. Где его найти. Это в редакторе?

CH3COO- + H2+ = CH3COOH
 

[yaroslav]Дата: Четверг, 06 Января 2011, 20:15:56 | Сообщение # 8
6 уровень
Группа: Проверенные
Сообщений: 225
Награды: 0
Репутация: 62
Блокировки:
Правка--конвертировать в текст
да в редакторе триггеров



Я беру кредит в банке 1 миллиард $,покупаю этот банк, и разрешаю себе не отдавать кредит, и всё - я Олигарх
 

VahagnДата: Четверг, 06 Января 2011, 20:17:15 | Сообщение # 9
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Спасибо! Ты мне очень помог.

CH3COO- + H2+ = CH3COOH
 

[yaroslav]Дата: Четверг, 06 Января 2011, 20:18:26 | Сообщение # 10
6 уровень
Группа: Проверенные
Сообщений: 225
Награды: 0
Репутация: 62
Блокировки:
Рад помочь.


Я беру кредит в банке 1 миллиард $,покупаю этот банк, и разрешаю себе не отдавать кредит, и всё - я Олигарх
 

VahagnДата: Четверг, 06 Января 2011, 20:24:33 | Сообщение # 11
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Прости а как конвертировать текст в нормальный тригер?

CH3COO- + H2+ = CH3COOH
 

[yaroslav]Дата: Четверг, 06 Января 2011, 20:27:14 | Сообщение # 12
6 уровень
Группа: Проверенные
Сообщений: 225
Награды: 0
Репутация: 62
Блокировки:
Уже никак.
Как ты называешь это текст,это не текст,ну то есть это текст только это называется Jass



Я беру кредит в банке 1 миллиард $,покупаю этот банк, и разрешаю себе не отдавать кредит, и всё - я Олигарх
 

VahagnДата: Четверг, 06 Января 2011, 20:36:55 | Сообщение # 13
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Ты кажется не хорошо поняла что мне нужно. Я скачал спелл, который написан на Jass. Как только я копирую возникает ошибка, которая не позволяет меня включить этот триггер/

CH3COO- + H2+ = CH3COOH
 

[yaroslav]Дата: Четверг, 06 Января 2011, 20:42:23 | Сообщение # 14
6 уровень
Группа: Проверенные
Сообщений: 225
Награды: 0
Репутация: 62
Блокировки:
Quote (Vahagn)
поняла

oO

ну тогда я хз..



Я беру кредит в банке 1 миллиард $,покупаю этот банк, и разрешаю себе не отдавать кредит, и всё - я Олигарх
 

lawsonДата: Четверг, 06 Января 2011, 20:46:52 | Сообщение # 15
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
А зачем тебе его включать говорю покажи код!!!
скопируй его в сообщение!

Добавлено (06-01-2011, 20:44)
---------------------------------------------
Ты кажется не хорошо поняла [yaroslav]

Добавлено (06-01-2011, 20:44)
---------------------------------------------
Ты кажется не хорошо поняла [yaroslav] хех

Добавлено (06-01-2011, 20:46)
---------------------------------------------
Все просто создаешь новый триггер правка конвертировать в текст далее копируюшь все из скаченного спелла в новый триггер но перед эти его на до отчистить от данных твой новый триггер итак копируешь и изменяешь его как хочешь. что еще?


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

[yaroslav]Дата: Четверг, 06 Января 2011, 20:47:31 | Сообщение # 16
6 уровень
Группа: Проверенные
Сообщений: 225
Награды: 0
Репутация: 62
Блокировки:
Тихо мне тут )
будешь меня ещё подкалывать?
Vahagn, скопируй код я гляну



Я беру кредит в банке 1 миллиард $,покупаю этот банк, и разрешаю себе не отдавать кредит, и всё - я Олигарх
 

DreiiДата: Четверг, 06 Января 2011, 21:34:19 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Vahagn, создашь триггер с названием который указна в Jasse например
Code
function Trig_LolShto_Actions takes nothing returns nothing

LolShto - такое название триггера у тебя должно быть если ты копируешь этот код, также скопируй всех юнитов и способности из карты себе.

Если ничего непомогает код в студию


 

VahagnДата: Четверг, 06 Января 2011, 23:00:49 | Сообщение # 18
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Я сделал именно так а там все <отцуствует конец строки и т. д.>

CH3COO- + H2+ = CH3COOH
 

lawsonДата: Четверг, 06 Января 2011, 23:05:52 | Сообщение # 19
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Говорят тебе скинь код сюда!!!

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

VahagnДата: Четверг, 06 Января 2011, 23:17:17 | Сообщение # 20
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
//TESH.scrollpos=89
//TESH.alwaysfold=0
library WrathOfZeus initializer init requires optional GroupUtils

globals
private constant integer ABILITY_ID = 'A000' //Raw code of the triggering ability
private constant integer DUMMY_ID = 'e001' //The dummy unit, please import dummy.mdl and make a proper dummy unit
private constant integer STATIC_LINKS = 32 //The links that are created when the orb crashes
private constant integer CHARGED_BOLTS_AMOUNT = 3 //The amount of orbiting missiles that are created around the caster when the ability is learned
private constant real CHARGED_BOLTS_SIZE = .88 //The scale value of the orbiting missiles
private constant real PRIMARY_BASE_DAMAGE = 130 //The base damage when the orb crashes
private constant real PRIMARY_INC_DAMAGE = 75 // The increment damage of the orb
private constant real SECONDARY_BASE_DAMAGE = 50 //The damage each static link deals
private constant real SECONDARY_INC_DAMAGE = 25 // The increment damage of each static link
private constant real BOLT_SCALE = 2.75 //The scale of the lightning bolt
private constant real NORMAL_OFFSET = 145 //The default rotating offset of the orbiting bolts
private constant real MAX_OFFSET = 425 //The maximum rotating offset the bolts can reach when overloading
private constant real ENUM_OFFSET = 75 //the range that units are checked from each static link. You should decrease this if you use a LOT of static links!
private constant string BALL_ART = "Abilities\\Weapons\\FarseerMissile\\FarseerMissile.mdl" //The missiles that rotate around the cast
private constant string TAIL_LIGHTNING = "CLPB" //The lightning tail of the bolt
private constant string CHARGED_LIGHTNING = "CLSB" //The lightning tail of the secondary static links
private constant string ORBITAL_LIGHTNING = "DRAB" //The lightning that links all the orbital missiles
private constant string BOLT_LIGHTNING = "Abilities\\Weapons\\SpiritOfVengeanceMissile\\SpiritOfVengeanceMissile.mdl" //The lightning bolt art
private constant string PRIMARY_EFFECT = "Abilities\\Weapons\\Bolt\\BoltImpact.mdl" //The effect that is created upon impact
private constant string SECONDARY_EFFECT = "Abilities\\Spells\\Orc\\LightningShield\\LightningShieldBuff.mdl" //The effect that is created on damaged units of secondary effect
private constant attacktype ATTACK_TYPE = ATTACK_TYPE_MAGIC
private constant damagetype DAMAGE_TYPE = DAMAGE_TYPE_MAGIC
private constant weapontype WEAPON_TYPE = WEAPON_TYPE_WHOKNOWS
///
private constant boolean USE_GROUPUTILS = true //Whether to use Group utils library, if the library isn't found, it will CreateGroup() instead
///
endglobals


////===============


globals
private location loc = Location(0, 0)
private location loc2 = Location(0, 0)
private integer instance = 0
private boolexpr BE
private constant group Group = CreateGroup()
private constant integer Cbolts = CHARGED_BOLTS_AMOUNT - 1
private real MINX
private real MINY
private real MAXX
private real MAXY
endglobals

/////=================
//Extra functions

//
private function SafeX takes real x returns real
local real rx=MINX+50
if(x<rx)then
return rx
endif
set rx=MAXX-50
if(x>rx)then
return rx
endif
return x
endfunction

private function SafeY takes real y returns real
local real ry=MINY+50
if(y<ry)then
return ry
endif
set ry=MAXY-50
if(y>ry)then
return ry
endif
return y
endfunction

/////////=======================================

private struct spark
unit u
lightning l
real ang
real sx
real sy
real x
real y
real time = 1.5
real time2 = 2
real dmg
group damaged
static integer tot = 0
static spark array ar
static timer stim = CreateTimer()

static method SecondaryEffects takes unit u, unit t, real x, real y returns nothing
local integer i = 1
local spark data
loop
exitwhen i > STATIC_LINKS
set data = spark.create()
set data.u = u
set data.sx = x
set data.sy = y
set data.x = x
set data.y = y
set data.ang = (360 / STATIC_LINKS) * i
static if USE_GROUPUTILS then
static if LIBRARY_GroupUtils then
set data.damaged = NewGroup()
else
set data.damaged = CreateGroup()
debug call BJDebugMsg(LIBRARY_PREFIX+": Could not find GroupUtils")
endif
else
set data.damaged = CreateGroup()
endif
if t != null then
call GroupAddUnit(data.damaged, t)
endif
set data.dmg = SECONDARY_BASE_DAMAGE + (SECONDARY_INC_DAMAGE * (GetUnitAbilityLevel(data.u, ABILITY_ID) - 1))
set data.l = AddLightning(CHARGED_LIGHTNING, true, x, y, x+5, y+5)
call SetLightningColor(data.l, .7, .7, 1, .7)
if spark.tot == 0 then
call TimerStart(spark.stim, .042, true, function spark.Loop)
endif
set spark.ar[spark.tot] = data
set spark.tot = spark.tot + 1
set i = i + 1
endloop
endmethod

static method Enum takes nothing returns boolean
local spark data = instance
local unit e = GetFilterUnit()
if IsUnitInGroup(e, data.damaged) then
set e = null
return false
else
if (not(IsUnitType(e, UNIT_TYPE_STRUCTURE))) and (GetWidgetLife(e)>.405) and (IsUnitEnemy(e, GetOwningPlayer(data.u))) then
call DestroyEffect(AddSpecialEffectTarget(SECONDARY_EFFECT, e, "origin"))
call UnitDamageTarget(data.u, e, data.dmg, false, false, ATTACK_TYPE, DAMAGE_TYPE, WEAPON_TYPE)
call GroupAddUnit(data.damaged, e)
endif
endif
set e = null
return false
endmethod

static method Loop takes nothing returns nothing
local spark data
local integer i = 0
local real p
loop
exitwhen i >= spark.tot
set data = spark.ar[i]
if data.time > 0 then
set data.time = data.time - .042
set data.x = SafeX(data.x + 30 * Cos(data.ang * bj_DEGTORAD))
set data.y = SafeX(data.y + 30 * Sin(data.ang * bj_DEGTORAD))
set p = SquareRoot((data.x - data.sx) * (data.x - data.sx) + (data.y - data.sy) * (data.y - data.sy))
if p > 450 then
set data.sx = data.sx + 30 * Cos(data.ang * bj_DEGTORAD)
set data.sy = data.sy + 30 * Sin(data.ang * bj_DEGTORAD)
endif
set instance = data
call GroupEnumUnitsInRange(Group, data.x, data.y, ENUM_OFFSET, BE)
call MoveLocation(loc, data.sx, data.sy)
call MoveLocation(loc2, data.x, data.y)
call MoveLightningEx(data.l, true, data.sx, data.sy, GetLocationZ(loc), data.x, data.y, GetLocationZ(loc2))
else
if (SquareRoot((data.x - data.sx) * (data.x - data.sx) + (data.y - data.sy) * (data.y - data.sy)) > 50) and data.time2 > 0 then
set data.sx = data.sx + 30 * Cos(data.ang * bj_DEGTORAD)
set data.sy = data.sy + 30 * Sin(data.ang * bj_DEGTORAD)
call MoveLocation(loc, data.sx, data.sy)
call MoveLocation(loc2, data.x, data.y)
call MoveLightningEx(data.l, true, data.sx, data.sy, GetLocationZ(loc), data.x, data.y, GetLocationZ(loc2))
set instance = data
call GroupEnumUnitsInRange(Group, data.sx, data.sy, 125, BE)
set data.time2 = data.time2 - .04
else
call data.destroy()
set spark.tot = spark.tot - 1
set spark.ar[i] = spark.ar[spark.tot]
endif
endif
set i = i + 1
endloop
if spark.tot == 0 then
call PauseTimer(spark.stim)
endif
endmethod

method onDestroy takes nothing returns nothing
call DestroyLightning(.l)
static if USE_GROUPUTILS then
static if LIBRARY_GroupUtils then
call ReleaseGroup(.damaged)
else
call DestroyGroup(.damaged)
debug call BJDebugMsg(LIBRARY_PREFIX+": Could not find GroupUtils")
endif
else
call DestroyGroup(.damaged)
endif
endmethod
endstruct


private struct bolt
unit u
unit t
unit d
real damage
lightning l
effect art
static integer total = 0
static bolt array arr
static timer tim = CreateTimer()

static method create takes unit u, unit t returns bolt
local bolt data = bolt.allocate()
local real x
local real y
local real x2
local real y2
local sound snd
local string array s
local integer r = GetRandomInt(0, 1)
set s[0] = "Abilities\\Spells\\Orc\\LightningShield\\LightningShieldTarget.wav"
set s[1] = "Abilities\\Spells\\Orc\\LightningBolt\\LightningBolt.wav"
set data.u = u
set snd = CreateSound(s[r], false, false, true, 12700, 12700, "")
set x = GetUnitX(data.u) + 100 * Cos(GetUnitFacing(data.u) * bj_DEGTORAD)
set y = GetUnitY(data.u) + 100 * Sin(GetUnitFacing(data.u) * bj_DEGTORAD)
set data.d = CreateUnit(GetOwningPlayer(data.u), DUMMY_ID, x, y, 0)
call AttachSoundToUnit(snd, data.d)
set x2 = GetUnitX(data.d) + 200 * Cos((GetUnitFacing(data.u)-180) * bj_DEGTORAD)
set y2 = GetUnitY(data.d) + 200 * Sin((GetUnitFacing(data.u)-180) * bj_DEGTORAD)
set data.t = t
call UnitAddAbility(data.d, 'Amrf')
call UnitRemoveAbility(data.d, 'Amrf')
call SetUnitFlyHeight(data.d, 90, 550)
call SetUnitTimeScale(data.d, 0)
call SetUnitScale(data.d, BOLT_SCALE, BOLT_SCALE, BOLT_SCALE)
set data.l = AddLightning(TAIL_LIGHTNING, true, x2, y2, x, y)
call StartSound(snd)
call KillSoundWhenDone(snd)
set snd = null
set data.damage = PRIMARY_BASE_DAMAGE + (PRIMARY_INC_DAMAGE * (GetUnitAbilityLevel(data.u, ABILITY_ID)-1))
set data.art = AddSpecialEffectTarget(BOLT_LIGHTNING, data.d, "origin")
if bolt.total == 0 then
call TimerStart(bolt.tim, .0303, true, function bolt.Loop)
endif
set bolt.arr[bolt.total] = data
set bolt.total = bolt.total + 1
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\StormBolt\\StormBoltMissile.mdl", data.u, "weapon,right"))
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\FarseerMissile\\FarseerMissile.mdl", data.d, "origin"))
return data
endmethod

static method Loop takes nothing returns nothing
local bolt data
local integer i = 0
local real p = 0
local real a=0
local real x=0
local real y=0
local real x2=0
local real y2=0
local real z=0
local real d=0
local real dx=0
local real dy=0
loop
exitwhen i >= bolt.total
set data = bolt.arr[i]
set x = GetUnitX(data.d)
set y = GetUnitY(data.d)
set x2 = GetUnitX(data.t)
set y2 = GetUnitY(data.t)
set a = bj_RADTODEG * Atan2(y2 - y, x2 - x)
call SetUnitFacing(data.d, a)
if IsUnitInRange(data.d, data.t, 50) then
call DestroyEffect(data.art)
call KillUnit(data.d)
call DestroyEffect(AddSpecialEffectTarget(PRIMARY_EFFECT, data.t, "origin"))
call UnitDamageTarget(data.u, data.t, data.damage, false, false, ATTACK_TYPE, DAMAGE_TYPE, WEAPON_TYPE)
call spark.SecondaryEffects(data.u, data.t, x2, y2)
call DestroyLightning(data.l)
set data.d = CreateUnit(Player(12), DUMMY_ID, x2, y2, 0)
call SetUnitScale(data.d, 3.5, 3.5, 3.5)
call SetUnitVertexColor(data.d, 170, 170, 255, 255)
call DestroyEffect(AddSpecialEffectTarget(PRIMARY_EFFECT, data.d, "origin"))
call KillUnit(data.d)
call data.destroy()
set bolt.total = bolt.total - 1
set bolt.arr[i] = bolt.arr[bolt.total]
else
set p = SquareRoot((x - x2) * (x - x2) + (y - y2) * (y - y2))
set d = 17 + (p * .012)
///------------------------------------
set dx = SafeX(x + d * Cos(a * bj_DEGTORAD))
set dy = SafeY(y + d * Sin(a * bj_DEGTORAD))
call SetUnitX(data.d, dx)
call SetUnitY(data.d, dy)
////-----------------------------------
set x = GetUnitX(data.d)
set y = GetUnitY(data.d)
set a = (a-180)
set dx = x + 200 * Cos(a * bj_DEGTORAD)
set dy = y + 200 * Sin(a * bj_DEGTORAD)
call MoveLocation(loc, dx, dy)
call MoveLocation(loc2, x, y)
call MoveLightningEx(data.l, true, dx, dy, (GetLocationZ(loc)+90), x, y, (GetLocationZ(loc2)+GetUnitFlyHeight(data.d)))
endif
set i = i + 1
endloop
if bolt.total == 0 then
call PauseTimer(bolt.tim)
endif
endmethod

endstruct

// Charged bolts //
private struct Charged
unit u
unit array mis[CHARGED_BOLTS_AMOUNT]
real array fh[CHARGED_BOLTS_AMOUNT]
real array fi[CHARGED_BOLTS_AMOUNT]
real array x[CHARGED_BOLTS_AMOUNT]
lightning array l[CHARGED_BOLTS_AMOUNT]
lightning array l2[CHARGED_BOLTS_AMOUNT]
boolean array fb[CHARGED_BOLTS_AMOUNT]
effect array fx[CHARGED_BOLTS_AMOUNT]
boolean dead = false //If the flag is turned on, the charged bolts dissapear until the hero is alive again
real tick = 0
real xtick = .94 //Defines the duration of the lightning rotation
real rat = SquareRoot(NORMAL_OFFSET) / bj_PI
real limit = NORMAL_OFFSET
boolean charged = false
static thistype array arr
static integer total = 0
static timer tim = CreateTimer()
////
private static string str1 = "Abilities\\Spells\\Orc\\LightningShield\\LightningShieldBuff.mdl"
////
static method create takes unit u returns thistype
local thistype this = thistype.allocate()
local integer i = 0
local trigger t = CreateTrigger()
local real x
local real y
local real cx = GetUnitX(u)
local real cy = GetUnitY(u)
set this.u = u
loop
exitwhen i > Cbolts
set this.mis[i] = CreateUnit(GetOwningPlayer(u), 'e001', GetUnitX(u), GetUnitY(u), 0)
set this.fx[i] = AddSpecialEffectTarget(BALL_ART , this.mis[i], "origin")
set x = cx + 60 * Cos(( (360 / (Cbolts+1)) * (i+1) ) * bj_DEGTORAD)
set y = cy + 60 * Sin(( (360 / (Cbolts+1)) * (i+1) ) * bj_DEGTORAD)
call SetUnitX(this.mis[i], x)
call SetUnitY(this.mis[i], y)
call UnitAddAbility(this.mis[i], 'Amrf')
call SetUnitTimeScale(this.mis[i], 0)
call UnitRemoveAbility(this.mis[i], 'Amrf')
set this.fh[i] = 30 * i
call SetUnitFlyHeight(this.mis[i], this.fh[i], 0)
call SetUnitScale(this.mis[i], CHARGED_BOLTS_SIZE, CHARGED_BOLTS_SIZE, CHARGED_BOLTS_SIZE)
set this.fb[i] = true
set this.x[i] = bj_RADTODEG * Atan2(y - cy, x - cx)
set i = i + 1
endloop
call TriggerAddCondition(t, Condition(function Charged.ready))
call TriggerRegisterUnitEvent(t, u, EVENT_UNIT_SPELL_CAST)
if thistype.total == 0 then
call TimerStart(thistype.tim, .047, true, function Charged.fly)
endif
set thistype.total = thistype.total + 1
set thistype.arr[thistype.total - 1] = this
return this
endmethod

static method ready takes nothing returns boolean
local thistype this
local integer i = 0
local integer k = 0
local sound snd
if GetSpellAbilityId()!= ABILITY_ID then
return false
else
set this = thistype.GetInstance(GetTriggerUnit())
if this.charged then
return false
endif
set snd = CreateSound("Units\\Orc\\StasisTotem\\StasisTotem.wav", false, false, true, 12700, 12700, "")
call AttachSoundToUnit(snd, GetTriggerUnit())
set this.charged = true
set this.xtick = .8
set this.rat = this.rat + SquareRoot(MAX_OFFSET)
set this.limit = MAX_OFFSET
call StartSound(snd)
call KillSoundWhenDone(snd)
set snd = null
loop
exitwhen i>Cbolts
set k = i + 1
if k > Cbolts then
set k = 0
endif
set this.l[i] = AddLightning(CHARGED_LIGHTNING, true, GetUnitX(this.mis[i]), GetUnitY(this.mis[i]), GetUnitX(this.u), GetUnitY(this.u))
call SetLightningColor(this.l[i], 1, 1, 1, .6)
set this.l2[i] = AddLightning(ORBITAL_LIGHTNING, true, GetUnitX(this.mis[i]), GetUnitY(this.mis[i]), GetUnitX(this.mis[k]), GetUnitY(this.mis[k]))
call SetLightningColor(this.l2[i], .3, .1, 1, 1)
set i = i + 1
endloop
endif
return false
endmethod

static method GetInstance takes unit u returns integer
local thistype this
local integer i = 0
loop
exitwhen i >= thistype.total
set this = thistype.arr[i]
if IsUnit(u, this.u) then
return this
endif
set i = i + 1
endloop
return 0
endmethod

static method fly takes nothing returns nothing
local thistype this
local integer i = 0
local integer k = 0
local real x =0
local real y =0
local real cx
local real cy
local integer j = 0
loop
exitwhen i >= thistype.total
set this = thistype.arr[i]
set k = 0
set j = 0
set cx = GetUnitX(this.u)
set cy = GetUnitY(this.u)
loop
exitwhen k > Cbolts
set j = k + 1
if j > Cbolts then
set j = 0
endif
if (not(this.dead)) and this.mis[k] != null then
if this.fb[k] then
set this.fh[k] = this.fh[k] + 3
else
set this.fh[k] = this.fh[k] - 3
endif
if GetUnitFlyHeight(this.mis[k])<50 then
set this.fb[k] = true
elseif GetUnitFlyHeight(this.mis[k]) > 275 then
set this.fb[k] = false
endif
set this.tick = this.tick + .047
call SetUnitFlyHeight(this.mis[k], this.fh[k], 530)
set this.x[k] = this.x[k] + 4
if this.rat < this.limit then
set this.rat = this.rat + 2
elseif this.rat > this.limit then
set this.rat = this.rat - .5
endif
set x = cx + this.rat * Cos(this.x[k] * bj_DEGTORAD)
set y = cy + this.rat * Sin(this.x[k] * bj_DEGTORAD)
call SetUnitX(this.mis[k], x)
call SetUnitY(this.mis[k], y)
if this.charged then
if this.xtick > 0 then
set this.x[k] = this.x[k] + 6
call MoveLocation(loc, x, y)
call MoveLocation(loc2, GetUnitX(this.u), GetUnitY(this.u))
call MoveLightningEx(this.l[k], true, x, y, (GetLocationZ(loc)+GetUnitFlyHeight(this.mis[k])), cx, cy, (GetLocationZ(loc2)+GetUnitFlyHeight(this.u)+20))
call MoveLocation(loc2, GetUnitX(this.mis[j]), GetUnitY(this.mis[j]))
call MoveLightningEx(this.l2[k], true, x, y, (GetLocationZ(loc)+GetUnitFlyHeight(this.mis[k])), GetUnitX(this.mis[j]), GetUnitY(this.mis[j]), (GetLocationZ(loc2)+GetUnitFlyHeight(this.mis[j])))
else
call DestroyLightning(this.l[k])
call DestroyLightning(this.l2[k])
endif
endif
if this.tick > 1.75 then
set this.tick = 0
call DestroyEffect(AddSpecialEffectTarget(thistype.str1 , this.mis[k], "origin"))
endif
endif
set k = k + 1
endloop
if this.charged then
if this.xtick > 0 then
set this.xtick = this.xtick - .05
else
set this.charged = false
set this.limit = NORMAL_OFFSET
endif
endif
if GetWidgetLife(this.u)<.405 then
call this.hide()
set this.dead = true
elseif GetWidgetLife(this.u)>=.405 and this.dead then
set this.dead = false
call this.show()
endif
set i = i + 1
endloop
endmethod

method hide takes nothing returns nothing
local integer i = 0
loop
exitwhen i > Cbolts
if .mis[i] != null then
//call UnitRemoveAbility(.mis[i], 'Aloc')
call ShowUnit(.mis[i], false)
endif
set i = i + 1
endloop
endmethod

method show takes nothing returns nothing
local integer i = 0
loop
exitwhen i > Cbolts
if .mis[i] != null then
call ShowUnit(.mis[i], true)
call UnitAddAbility(.mis[i], 'Aloc')
endif
set i = i + 1
endloop
endmethod
endstruct

///////===================\\\\\\\

private function BoltStart takes nothing returns nothing
call bolt.create(GetTriggerUnit(), GetSpellTargetUnit())
endfunction

private function IsBolt takes nothing returns boolean
return GetSpellAbilityId() == ABILITY_ID
endfunction

private function BoltCharge takes nothing returns boolean
if GetLearnedSkill() == ABILITY_ID then
if GetUnitAbilityLevel(GetTriggerUnit(), ABILITY_ID)<2 then
call Charged.create(GetTriggerUnit())
endif
endif
return false
endfunction

private function init takes nothing returns nothing
local trigger t = CreateTrigger ( )
call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(t, Condition(function IsBolt))
call TriggerAddAction(t, function BoltStart)
set t = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_HERO_SKILL)
call TriggerAddCondition(t, Condition(function BoltCharge))
set t = null
set BE = Condition(function spark.Enum)
set MINX = GetRectMinX(bj_mapInitialPlayableArea)
set MINY = GetRectMinY(bj_mapInitialPlayableArea)
set MAXX = GetRectMaxX(bj_mapInitialPlayableArea)
set MAXY = GetRectMaxY(bj_mapInitialPlayableArea)
endfunction
endlibrary


CH3COO- + H2+ = CH3COOH
 

DreiiДата: Четверг, 06 Января 2011, 23:27:10 | Сообщение # 21
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Vahagn, скинь код который в триггере, а не который выбиваеться при ошибки

 

KartohaДата: Пятница, 07 Января 2011, 00:13:37 | Сообщение # 22
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
А по-моему проблема в том, что шаман племени Vahagn`a впервые увидел автомобиль, и понятия не имеет что это такое.

Добавлено (07-01-2011, 00:13)
---------------------------------------------
Я имею ввиду (если кто не понял), что обычный WE Vahagn`a не читает код JNGP.

 

lawsonДата: Пятница, 07 Января 2011, 00:38:19 | Сообщение # 23
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Ахахахахахахаха ну ты даешь Vahagn

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

Banzay89Дата: Пятница, 07 Января 2011, 00:42:10 | Сообщение # 24
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
а ничё что это vJass ???
 

DreiiДата: Пятница, 07 Января 2011, 00:43:23 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Banzay89, Он не знает что это....

 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » World Editor (Как копировать тригеры)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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