![]()
MegaBlax
![]() offline
Опыт:
2,352Активность: |
Запилил новый скилл. Посмотрите.
Привет ребят. Вот запилил новый скилл. Не скажу что прям оригинальный. Просто посмотрите исполнение.
» структура
((код
struct ShadowDanceStruct
static thistype m[] static integer MUI=0 static timer t=null static string sfx="Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl" unit caster=null unit target=null integer i=0 real a1 real a2 private method StopMove takes integer j returns nothing loop exitwhen j>MUI m[j]=m[j+1] j++ endloop MUI-- if MUI==0 PauseTimer(t) DestroyTimer(t) t=null caster=null target=null endif endmethod private static method ShadowDanceMove takes nothing returns nothing integer z=0 thistype this loop exitwhen z>=MUI this=m[z] if i<30 && GetUnitState(target,UNIT_STATE_LIFE)>0 a1=GetUnitFacing(caster) a2=GetUnitFacing(target) SetUnitX(caster,GetUnitX(target)-75*Cos(a2*bj_DEGTORAD)) SetUnitY(caster,GetUnitY(target)-75*Sin(a2*bj_DEGTORAD)) SetUnitFacing(caster,a2) UnitDamageTarget(caster,target,(GetHeroAgi(caster,true)*0.25),true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,null) DestroyEffect(AddSpecialEffect(sfx,GetUnitX(target),GetUnitY(target))) i++ else StopMove(z) endif z++ endloop endmethod public static method ShadowDanceStart takes unit u,unit u2 returns nothing thistype this=thistype.create() m[MUI]=this caster=u target=u2 if t==null t=CreateTimer() TimerStart(t,0.1,true,function thistype.ShadowDanceMove) endif MUI++ endmethod endstruct )) |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
нет отладки, садись два. |
![]() |
#2
+2/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
quq_CCCP
Я белый и пушистый!
![]() ![]() offline
Опыт:
93,449Активность: |
MegaBlax, ну если честно то скилл не очень, напомнил мне ульту сикера...
Эффекты коряво прикреплены, герой дергается без анимации, ударов нету... Структура для такого примитива перебор, хватит хт, да и написать все можно гораздо короче и понятнее... Мой вывод: Доводи до ума! quq_CCCP добавил: DioD: Эмм, а нафиг тут отладка? Он просит посмотреть и оценить его скилл, в 3 строчки... |
![]() |
#3
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
Почему мне никто не сказал, что бы я запретил смешивать cJass синтаксис с vJass? Это еще цветочки, ягодки я видел у китайцев:
ADOLF добавил:
Кстати, если кому-то нужен - есть китайский cJass Манул :
|
![]() |
#4
+4/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]()
online
Опыт: отключен
|
это зачем? внутри карты у тебя точно такая же переменная и так хранится ScorpioT1000 добавил: вот оптимальное решение обхода объектов структур www.hiveworkshop.com/forums/jass-ai-scripts-tutorials-280/coding... |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
Вы знаете, иногда меня обвиняли в излишний оптимизации. И в целом я с обвинениями согласен. Но тот парень переплюнул даже меня: он выяснил, что по какой-то странной причине (причем я обсуждал это с Кроком, тем парнем, который реверсил WCIII, и мы так ничего и не поняли) скорость обращения к переменной или функции кода зависит от длины имени. Так вот, этот парень с Хайва, что бы вы думали? Конечно, укорачивал имена. А еще он использовал module (кто глубоко вникал в vJass - поймет) в качестве макросов, т. к. vJass изначально имеет весьма обрезанные макросы, которые не везде и вставишь. Сказанного достаточно.
А фишка с extends array - годная. |
![]() |
#6
+2/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]()
online
Опыт: отключен
|
про длину переменных мне тоадди еще говорил, у него по tcx заметно) в целом это лечится оптимизационными тулами |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
MegaBlax
![]() offline
Опыт:
2,352Активность: |
Спасибо конечно ребят. Но я про метод исполнения спрашивал, а не про качество. Как там эффекты прикреплены и т.д. мне все равно. Просто скажите где можно сделать по другому в плане кода. |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
От меня:
|
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
MegaBlax
![]() offline
Опыт:
2,352Активность: |
ADOLF, Насчет caster=u - может там должно быть this.caster = u? Вы его вообще пробовали применять одновременно несколькими юнитами? Мне кажется, мультеприменимость поломана То там все нормально. Работает |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
это позволяет понимать то что вы пишите полностью, использование надстроек должно использоваться только теми кто уже умеет писать OOP сам по себе. |
![]() |
#11
+2/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
MegaBlax
![]() offline
Опыт:
2,352Активность: |
DioD, проще говоря. Я не готов! Буду дальше юзать джасс и гуи ;) |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
я всю жизнь писал структуры без чьей либо помощи, сам по себе, даже книжек не читал, брал бумажку и зарисовывал процесс.
в результате узнал что дошел сам по себе до стандартного индустриального метода управления памятью, от того и потому что иначе памятью управлять не представляется возможным.
но в отличии от тех кто тупо начал использовать готовое я понимаю суть и могу реализовать менеджер на любом языке. |
![]() |
#13
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]()
online
Опыт: отключен
|
диод у нас любит пописать велосипеды и посчитать регистры в 2014, когда надо собирать продукт из ряда фреймворков и других продуктов/библиотек, не обращайте внимания) |
![]() |
#14
+1/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
модули не совсем в качестве макросов юзались, это просто такая инициализация ранняя
Вот тут я реализовывал на 90% идеальный каноничный cjass код спелла со структурами и прочим без лишней грязи |
![]() |
#15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
То, что ты там реализовывал, по сравнению с тем, что там реализовал я... кхм... ;) А в целом прав - очень полезно смотреть чужой код, тем более, если к нему еще и куча людей написали рецензии. |
![]() |
#16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
ScorpioT1000:
не надо путать работу и развлечение.
варкрафт развлечение и важен процесс, изобретение велосипеда очень даже хорошая штука. |
![]() |
#17
+1/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
ADOLF, там не о сложности системы, а о правильности и структуре кода. |
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|