0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
struct sword_sp
unit caster
unit target
endstruct
это только в джнгп работает
а чем тебе джнгп не нравится?
точки не юзай
юзай координаты
JNGP мне нравится но он у меня чет погнал.Надо новый скачать.
Все я перезалил карту.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

Да и вот ещё что,ты мне скилл который скидывал.Я событие сам написал но все равно ошибок много.Например:
>>код
struct sword_sp
unit caster
unit target
endstruct
<<
Пишет отсутствует конец строки.
И вот ещё что.В локалки как занести точку?
Блин без JNGP тяжеловато устранять BJ,я даже не знаю что чем менять
Я напишу когда карту перезалью.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
Gnusik, напиши когда утечки уберёшь
будет трудновато,джнгп гонит.Буду без него.А зачем тебе?
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
эм, а джнгп скачать слабо?
и в паузеюнит местами поменяй юнит и булеан
там тупо скопировать вставить не получится ибо событие не прочитается,используй библиотеку или событие сам пиши
JNGP у меня есть,я нашел проблему почему не работало.Я в JNGP забыл убрать функцию авто создания глобалок. Как то так.
А про событие не знал спасибо.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
это твой 1 скил
создаётся новая точка,а старая не удаляется,таким образом у тебя получается лишняя точка которая тебе не нужна
в том что я кинул нету хэша
то есть твой 1 скил ужасно не оптимален(остальные не смотрел мне и его хватило),а я скинул тебе его исправленную версию
глобалки там где должны быть локалки и прочее
спасибо.У меня проблема если я ставлю PauseUnit без приставки BJ то идет ошибка.Может это из за того что я локалки не ставлю?
И да ещё я скопировал и вставил код но триггер блокируется и выдаются ошибки
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
Gnusik,твой спел был не муи,я сделал его муи
когда ты используешь полярные координаты то ты создаёшь точку и не удаляешь её,если использовать их очень часто то их станет очень много и будут лаги
PauseUnit
кат
struct sword_sp
unit caster
unit target
endstruct

function TimerStartEx takes timer whichTimer, real period, code handlerFunc, integer userData returns nothing
    call TimerStart(whichTimer, I2R(userData), false, null) // timer exploit, xgm 2007
    call PauseTimer(whichTimer)
    call TimerStart(whichTimer, period,false, handlerFunc ) // start timer
endfunction

function TimerGetUserData takes timer whichTimer returns integer
    return R2I(TimerGetRemaining(whichTimer )+0.5) // get user data from timer
endfunction

function Sword_Attack_Action takes nothing returns nothing
   local timer a=GetExpiredTimer()
   local sword_sp b=TimerGetUserData(a)
   local unit caster=b.caster
   local unit target=b.target
   local real facing=GetUnitFacing(target)*bj_DEGTORAD
   local real sin=Sin(facing)
   local real cos=Cos(facing)
   local real x1=GetUnitX(target)
   local real y1=GetUnitY(target)
   local real x2=GetUnitX(caster)
   local real y2=GetUnitY(caster)
   local real x3=x1+GetRandomReal(-80,80)
   local real y3=y1+GetRandomReal(-80,80)
    call SetUnitX(caster,x3)
    call SetUnitY(caster,y3)
    call SetUnitFacing(caster,bj_RADTODEG * Atan2(y1-y3,x1-x3))
    call UnitDamageTarget(caster,target,5,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
    call SetUnitAnimation(caster, "attack" )
    call SetUnitAnimation(target, "death" )
   set caster=null 
   set target=null
    call TimerStartEx(a,.06,function Sword_Attack_Action,b)
endfunction

function Trig_Sword_Attack_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction

function Trig_Sword_Attack_Actions takes nothing returns nothing
   local unit caster=GetSpellAbilityUnit()
   local unit target=GetSpellTargetUnit()
   local real x1
   local real y1
   local real x2
   local real y2
   local real dx
   local real dy
   local real cos
   local real sin
   local real facing
   local real x3
   local real y3
   local timer a=CreateTimer()
   local sword_sp b=sword_sp.create()
    call PauseUnit(caster,true)
    call PauseUnit(target,true)
    call SetUnitInvulnerable(caster, true )
    call SetUnitPathing(caster, false )
    set b.caster=caster
    set b.target=target
    call TimerStartEx(a,.06,function Sword_Attack_Action,b)
    call TriggerSleepAction( 2.50 )
    call PauseTimer(a)
    call DestroyTimer(a)
    set b.caster=null
    set b.target=null
    call b.destroy()
    set facing=GetUnitFacing(target)*bj_DEGTORAD
    set sin=Sin(facing)
    set cos=Cos(facing)
    set x1=GetUnitX(target)
    set y1=GetUnitY(target)
    set x2=GetUnitX(caster)
    set y2=GetUnitY(caster)
    set x3=x1+cos*165
    set y3=y1+sin*165
    set dx=x1+cos*256
    set dy=y1+sin*256
    call SetUnitX(caster,x3)
    call SetUnitY(caster,y3)
    call SetUnitFacing(caster,bj_RADTODEG * Atan2(dy-y3,dx-x3))
    call TriggerSleepAction( 1.20 )
    call UnitDamageTarget(caster,target,200,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
    call SetUnitAnimation(target, "death" )
    call TriggerSleepAction( 0.35 )
    call SetUnitPathing(caster, true )
    call SetUnitInvulnerable(caster, false )
    call PauseUnit(caster,false)
    call PauseUnit(target,false)
   set caster=null
   set target=null
endfunction

//===========================================================================
function InitTrig_Sword_Attack takes nothing returns nothing
    local integer index=0
    set gg_trg_Sword_Attack = CreateTrigger(  )
        loop
            call TriggerRegisterPlayerUnitEvent(gg_trg_Sword_Attack, Player(index),EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
            set index = index + 1
            exitwhen index == 15
        endloop
    call TriggerAddCondition( gg_trg_Sword_Attack, Condition( function Trig_Sword_Attack_Conditions ) )
    call TriggerAddAction( gg_trg_Sword_Attack, function Trig_Sword_Attack_Actions )
endfunction
Gnusik, дай дами юнитам из цепи пассивную способность москиты,тогда у них не будет хп бара
а что это под катом.В смысле какой скилл?или это просто действия хеш таймера?
А на счет точек то я делаю RemoveLocation.
И ещё ты говорил в прошлом ресурсе кинуть наработку ещё 1.Я её ещё не доделал.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

JesusHipster:
У иконок все еще нету DISBTN и... рамок. Все иконки выглядят так, словно они пассивные. Скиллы перепутаны местами. У цепи есть полоски хп. Я не кодер, но этого уже достаточно.
Еще новая пассивка, какая-то неюзабельная. Старая была оригинальной и интересной, а это просто спам. Это всего-лишь мое мнение, а не наставление. Все-таки я не кодер. С этим разберется другой чувак.
На счет цепи.Полоски жизни не могу удалить т.к. цепь состоит из Dummy.Сейчас мне нужно отыскать модель самой части цепи.Тогда я удалю модель из дамми и сделаю просто спецэффект.Старая пассивка была утечной и я её удалил.Но думаю могу её оптимизировать.DISBTN иконки у меня есть но я их не импортировал.Сегодня я перезалью карту и исправлю все что нужно.
nvc123:
Gnusik, утечек очень много
например функция полярных координат вызывает утечки
используй геометрию(7 класс по моему)
так же ненужные бж например PauseUnitBJ
используешь глобалки там где надо локалки
и не надо делать новый ресурс,можно просто обновить старый
в принципе оптимизировал только условия что неплохо
но зачем делать кучу триггеров которые кроме того изначально неактивны я не понимаю,ведь можно просто по триггеру на способность а так получилось не оптимально
Насчет геометрии за 7 класс.Даже не знаю.Можно попробовать вспомнить.Теперь "PauseUnitBJ".А что надо ставить вместо этого?Насчет "для каждой способности по 1 триггеру"-я не знаю как это сделать.В статьях которые читал не видел такого.Просто когда делаешь да GUI нужно иногда 2 а то и 3 триггера.Ну я попробую сделать получше.Только скажи как делать все в 1 триггере.
0
6
11 лет назад
0

» WarCraft 3 / XGM & Warcraft3ft.info Contest до 1 октября

Эльрат:
Спасибо.Модели классные.Но всё же если модельщики с xgm' а будут делать модели.Будет вообще круть.
1
6
11 лет назад
1

» WarCraft 3 / Оружие

Очень даже не плохо .Виапун 1 и 3 вообще круто.Жду оружия нага.
1
6
11 лет назад
Отредактирован Gnusik
1

» WarCraft 3 / XGM & Warcraft3ft.info Contest до 1 октября

Если честно демонов очень не хватает.Разве что дренор не качественный.Норм моделей нету,а жаль.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

maxbox:
публикуйте, нормально сделано, человек старался.
Спасибо,думаю опубликуют.Все требования выполнены.Разве 3-4 утечки не устранил.Но они не проблемные.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин

nvc123:
в джнгп есть много доп функций которых нету в обычном ве
талка нету и в платном вай фай сижу бесплатно
Ладно тогда просто гарена.Я пытался устранять BJ сам и у меня получилось убрать утечки которые сильно мешают.Думаю пока достаточно.Может в скором буду все исправлять.Хотя в статье говорилось что оптимизация всего нереальна и в частых случаях не нужна.Я думаю может выложить новую наработку.Как раз будет тренировка.
кстати у меня вопрос как сделать юнита черного цвета?Ну в смысле перекрасить его.Сколько какого цвета надо?Стандарт вроде 255:255:255
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин

nvc123:
просто гарена плюс без талк
а вобще либо пиши сюда либо в Q/A
это как у тебя гарена плюс без талк?вроде если не зделать больше 10 обнов гарена не пашет.
да и вот что ещё у меня в карте(которая в этой теме)скилл Искусство Ассасина не пашет в обычном WE а в jngp пашет.Почему?
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин

nvc123:
скайпа нет и небудет
как и соц сетей,есть xgm есть гарена и всё
гарена талк устроит?
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин

nvc123, Спс огромное,я в JNGP посмотрю все исправления.После 31 можешь мне в скайпе показать как оптимиз делать для каждого вида(Боевая ед-ца,Спец-кт и т.д.) по 1 примеру?
nvc123, Ну чтобы своими глазами увидеть как говорят.Буду благодарен.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин

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
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин

nvc123:
пока переводи гуи в джасс и правь его(убирай бж,лишние действия,юзай локалки)
потом со временем ты выучиш функции и сможеш писать на прямую
и да,арефметические действия лучше на джасс писать
там чтобы понять надо просто выучить названия функций
и да лучше используй не location(точка) а X/Y(координаты)
ибо у тебя в твоих скилах точки не удаляется,тоесть при частом юзе скила будут лаги
в принципе я уже почти разобрался и могу по строчкам 65% примерно нужного читать.и вот вопрос как заменить бж нативками?Ну в смысле пример приведи или скинь статью.А то в оптимизе я не нашел ничего путного
В скором времени планирую пак из 3 пассивок на Jass' е выложить.Я их давно сделал на GUI.Вот и практика как раз будет по оптимизу.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин

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
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин

nvc123:
их нативками заменять надо
говори в какой строке что непонятно
сначало пытайся по строкам читать,только когда сможеш быстро по строкам можно сразу пытаться весь код понять
1 спелл например.надо заменить глобалки на локалки(переменные) в статье написано что нужно вставлять 2 строки.Я их копирую вставляю в триггер.теперь надо менять названия переменных но я путаюсь и в итоге ошибка.как именно нужно заменять переменные и куда вставлять строки.если не трудно напиши готовую локалку по моему спеллу я посмотрю.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин

Я хотел изменить переменные на локалки но запутался в названиях.можешь подсказать что где и как?
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
и бж повсюду
советую взять твой джасс код и подкоректировать его чтобы всё было нормально
что непонятно пиши прямо сюда
Вопрос как избавиться от БЖ .Может чем то заменить можно?
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин

nvc123:
Gnusik, утечки внутри бж устранить невозможно
если есть непонятный джасс код то напиши этот код в Q/A и напиши строки которые не понимаеш
тоесть нетолько сам код но и строки которые ты неможеш понять
Пожалуйста расскажи как написать код в Q/A,а на счет утечек в BJ я по возможности им не пользуюсь,так что их должно быть мало.
Лучше будет если я выложу Jass версию а вы меня поправите потом.

Перезалил в Jass версии.Посмотрите кому не трудно и скажите про ошибки если таковые имеются.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин

Sargaraser:
Gnusik, ты же говоришь что все статьи читал
Sargaraser:
Gnusik, с вангизмом у тебя плохо, но я не понимаю что там учить если ты говоришь что все прочитал, могу посоветовать статью неревара про стомп спелл (это после изучения основ от сергея), именно она меня на путь истинный поставила, и статьи по оптимизу...
Не понял, читай еще пока не дойдет, и параллельно с чтением экспериментируй.

>~Gnusik:
Я говорю что прочитал начальные статьи но до меня плохо доходит.И к тому же я пытаюсь изучить Jass уже в 3 раз.Поэтому я хочу что бы кто нибудь меня научил.Мне легче когда кто то учит и поправляет,запоминается лучше что ли.

Яж уже писал тебе.
В скором времени я перезалью карту в Jass версии.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Паладин с топором

Если менять модель то не просто 2 детали.Вот например обычного бугая полностью забронировать,сменить оружие и добавить чуточку спецэффектов.Вот это уже получше будет.
Практикуйся.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Time of GoD Orpg

Есть замечания.
Правописание - пиши грамотно и убери Detauf String.
Камера - в принципе сойдёт,но очень неудобно в пиковых ситуациях.
Способности - сделай нестандартные.Для RPG стандарт это скучно.
Ну а остальное пока нормально.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин

nvc123:
от чего производительность падает то?и что 10 раз вызывается?насчет утечек я их устраняю.
гуи использует бж функции которые состоят из нативных и бж не оптимальные и внутри их есть утечки которые ты не уберёш никак,а джасс позволяет использовать нативные функции не делая тех ненужных действий которые делаются в бж(поэтому простой переход с гуи на джасс мало чего даёт,надо ещё перейти с бж на нативки)
а для обучения советую прочитать именно эти статьи и переводить обычный гуи в джасс после чего когда разберёшся в этом переводе,по статьям оптимизировать его в нормальный джасс,так же советую поставить джнгп(все бж функции выделены красным а при нажатие на них с зажатым контролом показывается их содержимое)
статьи(именно в этом порядке):
оффтоп
я фапаю на каждый байт оперативки хотя мой код нечитаем для неподготовленых умов
Очень спасибо за ссылки,прочитаю обязательно.Я устраняю утечки не только просто переводом в Jass но и некоторые вручную после перевода.Но все же спасибо.