Добавлен , не публикуется
Я сделал наработку Ассасина. Присутствуют 3 способности.Все сделано на Обычных триггерах.Легко настраивается.Есть иконки всех способностей и модель перса,но его иконка отсутствует.
Описание способностей:1)Искуство Ассасинов(пассивная) - в ночь игрового времени герой становится невидимым,если во время невидимости ударить врага герой нанесёт несколько молниеносных ударов нанеся урон,а через некоторое время снова станет невидимым.
2)Резка клинками(на цель) - герой производит большую серию ударов по врагу с разных сторон нанося незначительный урон,после чего резко проходит через врага и останавливается на короткое время при этом нанеся огромный урон.
3)Скоростные атаки(на область вокруг себя) - герой с молниеносной скоростью перемещается в случайные точки областью в 650 от позиции начала способности нанося урон всем вокруг.
P.S. Если у некоторых не открывается через World Editor то воспользуйтесь JNGP(Jass New Gen Pack 5d exp2) так как я делал все через эту программу и в некоторых версиях WE карта может не открыться.
Перезалито в Jass версии 23.07.2013
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
6
11 лет назад
Отредактирован Gnusik
0
Я хотел изменить переменные на локалки но запутался в названиях.можешь подсказать что где и как?
nvc123:
Gnusik, почти весь гуи состоит из бж
кинь сюда джасс версию не как карту а как код ибо редактора нету
только под кат её засунь
а всё,скачал mpq master и достал им джи файл
там не джасс там гуи конвертированое в джасс
function Trig_Speed_Attack_Conditions takes nothing returns boolean
if(not(GetSpellAbilityId()==0x41303032))then
return false
endif
return true
endfunction
подобные конструкции тебя выдают с головой
ведь можно просто писать
function Trig_Speed_Attack_Conditions takes nothing returns boolean
return GetSpellAbilityId()==0x41303032
endfunction
и бж повсюду
советую взять твой джасс код и подкоректировать его чтобы всё было нормально
что непонятно пиши прямо сюда
Вопрос как избавиться от БЖ .Может чем то заменить можно?
1
28
11 лет назад
1
их нативками заменять надо
говори в какой строке что непонятно
сначало пытайся по строкам читать,только когда сможеш быстро по строкам можно сразу пытаться весь код понять
0
6
11 лет назад
Отредактирован Gnusik
0
nvc123:
их нативками заменять надо
говори в какой строке что непонятно
сначало пытайся по строкам читать,только когда сможеш быстро по строкам можно сразу пытаться весь код понять
1 спелл например.надо заменить глобалки на локалки(переменные) в статье написано что нужно вставлять 2 строки.Я их копирую вставляю в триггер.теперь надо менять названия переменных но я путаюсь и в итоге ошибка.как именно нужно заменять переменные и куда вставлять строки.если не трудно напиши готовую локалку по моему спеллу я посмотрю.
0
28
11 лет назад
0
кинь код у меня редактора нету
локалки в начале функции
local real x=10
например
ну вот из твоего кода
до
function Trig_Speed_Attack_Blink_Actions takes nothing returns nothing
call SetUnitPositionLoc(udg_caster,GetRandomLocInRect(RectFromCenterSizeBJ(GetUnitLoc(udg_Dummy[1]),650.00,650.00)))
call UnitDamagePointLoc(udg_caster,0.02,200.00,GetUnitLoc(udg_caster),100,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL)
endfunction
после
function Trig_Speed_Attack_Blink_Actions takes nothing returns nothing
local unit a=udg_caster
call SetUnitPositionLoc(a,GetRandomLocInRect(RectFromCenterSizeBJ(GetUnitLoc(udg_Dummy[1]),650.00,650.00)))
call UnitDamagePointLoc(a,0.02,200.00,GetUnitLoc(a),100,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL)
endfunction
там бж и прочее но это сам сделаеш
у меня редактора нету мне не удобно
0
6
11 лет назад
Отредактирован Gnusik
0
nvc123:
кинь код у меня редактора нету
локалки в начале функции
local real x=10
например
ну вот из твоего кода
до
function Trig_Speed_Attack_Blink_Actions takes nothing returns nothing
call SetUnitPositionLoc(udg_caster,GetRandomLocInRect(RectFromCenterSizeBJ(GetUnitLoc(udg_Dummy[1]),650.00,650.00)))
call UnitDamagePointLoc(udg_caster,0.02,200.00,GetUnitLoc(udg_caster),100,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL)
endfunction
после
function Trig_Speed_Attack_Blink_Actions takes nothing returns nothing
local unit a=udg_caster
call SetUnitPositionLoc(a,GetRandomLocInRect(RectFromCenterSizeBJ(GetUnitLoc(udg_Dummy[1]),650.00,650.00)))
call UnitDamagePointLoc(a,0.02,200.00,GetUnitLoc(a),100,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL)
endfunction
там бж и прочее но это сам сделаеш
у меня редактора нету мне не удобно
спасибо теперь понял.а кстати как думаешь у меня получится переводить GUI в Jass и потом корректировать(менять BJ,устранять утечки и т.д.).Такое будет нормально или нет?
Ну просто писать Jass в прямую для меня проблема,так как нестандартные коды не очень понимаю.
И можно ещё GUI личным сценарием корректировать в некоторых случаях.
0
28
11 лет назад
0
пока переводи гуи в джасс и правь его(убирай бж,лишние действия,юзай локалки)
потом со временем ты выучиш функции и сможеш писать на прямую
и да,арефметические действия лучше на джасс писать
там чтобы понять надо просто выучить названия функций
и да лучше используй не location(точка) а X/Y(координаты)
ибо у тебя в твоих скилах точки не удаляется,тоесть при частом юзе скила будут лаги
0
6
11 лет назад
Отредактирован Gnusik
0
nvc123:
пока переводи гуи в джасс и правь его(убирай бж,лишние действия,юзай локалки)
потом со временем ты выучиш функции и сможеш писать на прямую
и да,арефметические действия лучше на джасс писать
там чтобы понять надо просто выучить названия функций
и да лучше используй не location(точка) а X/Y(координаты)
ибо у тебя в твоих скилах точки не удаляется,тоесть при частом юзе скила будут лаги
в принципе я уже почти разобрался и могу по строчкам 65% примерно нужного читать.и вот вопрос как заменить бж нативками?Ну в смысле пример приведи или скинь статью.А то в оптимизе я не нашел ничего путного
В скором времени планирую пак из 3 пассивок на Jass' е выложить.Я их давно сделал на GUI.Вот и практика как раз будет по оптимизу.
1
28
11 лет назад
1
jngp скачай
там бж выделены красным а нативки синим
зажимаеш контрл и лкм на бж - появются её внутрености(тоесть то из чего она состоит,как правило это нативки и локалки)
пример кинуть немогу так как редактора нету
а бж я непомню
нативки часть помню,а бж нет
0
6
11 лет назад
Отредактирован Gnusik
0
nvc123:
jngp скачай
там бж выделены красным а нативки синим
зажимаеш контрл и лкм на бж - появются её внутрености(тоесть то из чего она состоит,как правило это нативки и локалки)
пример кинуть немогу так как редактора нету
а бж я непомню
нативки часть помню,а бж нет
JNGP у меня есть,я об этом в описании писал писал.ну я понял что бж красные и если ctrl+left_mouse содержимое.но что дальше то?
nvc123:
я исправил 3 бж переменные,но что делать с спецэффектом и созданием юнита???
Sargaraser:
Gnusik, ну что не понятно, спрашивай прям тут создадим гайд лол только вопросы делай комплексные и не по пустякам, а если плохо доходит то мб не твое
Можешь подсказать как избавится от BJ.Типа LastCreatedUnit,PolarProjectionBJ и IssuePointOrderLocBJ?
Ниже способность на Jass' e.Можешь подсказать как исправить BJ?
Хотя бы некоторые для примера.

function Trig_Dark_Wave_Conditions takes nothing returns boolean
if ( not ( UnitHasBuffBJ(GetAttacker(), 'BOac') == true ) ) then
return false
endif
return true
endfunction
function Trig_Dark_Wave_Func003C takes nothing returns boolean
if ( not ( GetRandomReal(1.00, 10.00) <= 4.00 ) ) then
return false
endif
return true
endfunction
function Trig_Dark_Wave_Actions takes nothing returns nothing
set udg_Attacker[1] = GetOrderedUnit()
set udg_Cell_Attack[1] = GetOrderTargetUnit()
if ( Trig_Dark_Wave_Func003C() ) then
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 10
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call CreateNUnitsAtLocFacingLocBJ( 1, 'dumm', GetOwningPlayer(udg_Attacker[1]), PolarProjectionBJ(GetUnitLoc(udg_Cell_Attack[1]), 150.00, ( 60.00 * udg_r )), GetUnitLoc(udg_Cell_Attack[1]) )
set udg_i = ( udg_i + 1 )
set udg_r = ( udg_r + 1 )
set udg_dummy[udg_i] = GetLastCreatedUnit()
call IssuePointOrderLocBJ( udg_dummy[udg_i], "shockwave", GetUnitLoc(udg_Cell_Attack[1]) )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
else
endif
call TriggerSleepAction( 0.50 )
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 10
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call RemoveUnit( udg_dummy[udg_i] )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
endfunction
===========================================================================
function InitTrig_Dark_Wave takes nothing returns nothing
set gg_trg_Dark_Wave = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Dark_Wave, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
call TriggerAddCondition( gg_trg_Dark_Wave, Condition( function Trig_Dark_Wave_Conditions ) )
call TriggerAddAction( gg_trg_Dark_Wave, function Trig_Dark_Wave_Actions )
endfunction
1
28
11 лет назад
1
ну например замени
function Trig_Dark_Wave_Conditions takes nothing returns boolean
if ( not ( UnitHasBuffBJ(GetAttacker(), 'BOac') == true ) ) then
return false
endif
return true
endfunction
на
function Trig_Dark_Wave_Conditions takes nothing returns boolean
return GetUnitAbilityLevel(GetAttacker(),'BOac')>0
endfunction
это заменить
function Trig_Dark_Wave_Actions takes nothing returns nothing
set udg_Attacker[1] = GetOrderedUnit()
set udg_Cell_Attack[1] = GetOrderTargetUnit()
if ( Trig_Dark_Wave_Func003C() ) then
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 10
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call CreateNUnitsAtLocFacingLocBJ( 1, 'dumm', GetOwningPlayer(udg_Attacker[1]), PolarProjectionBJ(GetUnitLoc(udg_Cell_Attack[1]), 150.00, ( 60.00 * udg_r )), GetUnitLoc(udg_Cell_Attack[1]) )
set udg_i = ( udg_i + 1 )
set udg_r = ( udg_r + 1 )
set udg_dummy[udg_i] = GetLastCreatedUnit()
call IssuePointOrderLocBJ( udg_dummy[udg_i], "shockwave", GetUnitLoc(udg_Cell_Attack[1]) )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
else
endif
call TriggerSleepAction( 0.50 )
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 10
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call RemoveUnit( udg_dummy[udg_i] )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
endfunction
частично оптимизировал,остальное лень
function Trig_Dark_Wave_Actions takes nothing returns nothing
local integer a=10
local integer b
local unit d=GetOrderedUnit()
local unit e=GetOrderTargetUnit()
if GetRandomReal(1.00,10.00)<=4.00 then
loop
exitwhen 1> a
call CreateNUnitsAtLocFacingLocBJ( 1, 'dumm', GetOwningPlayer(d), PolarProjectionBJ(GetUnitLoc(e), 150.00, ( 60.00 * udg_r )), GetUnitLoc(e) )
set udg_i = ( udg_i + 1 )
set udg_r = ( udg_r + 1 )
set b=udg_i
set udg_dummy[b] = GetLastCreatedUnit()
call IssuePointOrderLocBJ( udg_dummy[b], "shockwave", GetUnitLoc(e) )
set a=a-1
endloop
else
endif
call TriggerSleepAction( 0.50 )
set a=10
loop
exitwhen 1>a
call RemoveUnit( udg_dummy[udg_i] )
set a=a-1
endloop
endfunction
код под кат суй и выделяй что это код xgm.ru/p/help/txt2
был бы редактор оптимизировал бы всё
если хочеш жди до 31 когда буду дома
0
6
11 лет назад
0
nvc123, Спс огромное,я в JNGP посмотрю все исправления.После 31 можешь мне в скайпе показать как оптимиз делать для каждого вида(Боевая ед-ца,Спец-кт и т.д.) по 1 примеру?
nvc123, Ну чтобы своими глазами увидеть как говорят.Буду благодарен.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.