quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,203Активность: |
Отдам свою карту
Отдам свою карту 7 BladeMasters
Я исправил пару критических багов, из за которых карту было пройти уж слишком легко, извините ошибся Для компиляции необходим JNGP!1) Готовы 45 волн из 50 запланированных
2) Готовы 7 героев из 7. 3) Предметы сделаны тяп ляп, чтобы были, тк, не хватило идей и времиент сделать что то стоящее. 4) В крате использованы сторонние библиотеки а так же много импорта с разных сайтов не только XGM 5) Триггерные скиллы героев, изначально не предназнаяались для импорта в другие карты. (//если что то нужно пишите тут, сделаю//) позже я выложу переделанный код скиллов пригодных для импорта...Если есть желающие продолжить карту, старайтесь, но не забудьте спросить меня
Вот переделанные скиллыверсия на простом jass, код немного далек от оригинала, ввиду использования библиотек, но работает точно так же
» Код скилла_Tорнадо
((код jass
============================================================
способность Tорнадо (tornado) автор quq_CCCP, сделано для XGM.RU версия на обычном jass, JNGP нетребуется ============================================================ Настройки Требуются глобальные переменные со следующими именами: unit udg_TempUnit (создается в меню переменные (Ctr+b), пишите просто TempUnit, приставку udg_ ставит сам редактор) real udg_TempReal (аналогично, создайте эту премеменную) hashtable udg_hash, хаштаблица, они должна быть инициализирована, те. в триггере инициализация вставьте эту строчку в Custom Script set udg_hash = InitHashtable() <=== вот эту! стрелку копировать ненужно ============================================================ Теперь остальное function GetTornadoAbilityId takes nothing returns integer
return 'A01W' тут равкод скилла торнадо, меняем на свой... endfunction function GetDummyId takes nothing returns integer
return 'hdum' равкод даммика в виде торнадо... endfunction function GetDamageCount takes unit caster, integer id returns real return 60.00 * GetUnitAbilityLevel( caster, id ) + GetHeroAgi( caster, true ) * ( 0.50 * GetUnitAbilityLevel( caster, id ) )// формула рассчёта урона от торнадо endfunction вспомогательные функции function GetTornadoRadius takes unit caster returns real return 200.00 GetUnitAbilityLevel( caster, GetTornadoAbilityId ) * 50.00 + 100 endfunction function abp takes real xa, real xb, real ya, real yb returns real
return 57.295827 * Atan2( yb - ya, xb - xa ) endfunction function DistanceBewenUnits takes unit FirstUnit, unit SecondUnit returns real
local real dx = GetUnitX( SecondUnit ) - GetUnitX( FirstUnit ) local real dy = GetUnitY( SecondUnit ) - GetUnitY( FirstUnit ) return SquareRoot( dx * dx + dy * dy ) endfunction function GetEnemyGroundAlive takes nothing returns boolean фильт юнитов, можно немного поменять...
return GetUnitState( GetFilterUnit( ), UNIT_STATE_LIFE ) > 0.00 and IsUnitEnemy( GetFilterUnit( ), bj_groupEnumOwningPlayer ) and IsUnitType( GetFilterUnit( ), UNIT_TYPE_ATTACKS_GROUND ) and GetUnitAbilityLevel( GetFilterUnit( ), 'Basl' ) == 0 endfunction далее код лучше не трогать... function Trig_Tornado_Conditions takes nothing returns boolean
return GetSpellAbilityId( ) == GetTornadoAbilityId( ) endfunction function RemoveBackStabBuff takes nothing returns nothing
local timer t = GetExpiredTimer( ) call UnitRemoveAbility( LoadUnitHandle( udg_hash, GetHandleId( t ), 0 ), 'Aasl' ) call UnitRemoveAbility( LoadUnitHandle( udg_hash, GetHandleId( t ), 0 ), 'Basl' ) call FlushChildHashtable( udg_hash, GetHandleId( t ) ) call DestroyTimer( t ) set t = null endfunction function Wind_Damage_Enemy takes nothing returns nothing
local timer t = CreateTimer( ) local unit enemy = GetEnumUnit( ) if DistanceBewenUnits > GetTornadoRadius( udg_TempUnit ) / 2.00 then половинный урон
call UnitDamageTarget( udg_TempUnit, enemy, udg_TempReal / 2.00, false, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_METAL_HEAVY_SLICE ) else полный урон call UnitDamageTarget( udg_TempUnit, enemy, udg_TempReal, false, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_METAL_HEAVY_SLICE ) endif call UnitAddAbility( enemy, 'Aasl' ) call UnitAddAbility( enemy, 'Basl' ) call SaveUnitHandle( udg_hash, GetHandleId( t ), 0, enemy ) call TimerStart( t, 2.00, false, function RemoveBackStabBuff ) set t = null endfunction function Timer_Tornado_Move takes nothing returns nothing
local timer t = GetExpiredTimer( ) local integer HashId = GetHandleId( t ) local unit caster = LoadUnitHandle( udg_hash, HashId, 0 ) local unit dummy = LoadUnitHandle( udg_hash, HashId, 1 ) local real angle = LoadReal( udg_hash, HashId, 2 ) local integer range = LoadInteger( udg_hash, HashId, 3 ) local real DX = GetUnitX( dummy ) + 30.00 * Cos( angle * bj_DEGTORAD ) local real DY = GetUnitY( dummy ) + 30.00 * Sin( angle * bj_DEGTORAD ) local group grp if range >= 30 then call KillUnit( dummy ) call PauseTimer( t ) call DestroyTimer( t ) call FlushChildHashtable( udg_hash, HashId ) else
call SetUnitPosition( dummy, DX, DY ) set grp = CreateGroup( ) set bj_groupEnumOwningPlayer = GetOwningPlayer( caster ) call GroupEnumUnitsInRange( grp, DX, DY, GetTornadoRadius( caster ), Condition( function GetEnemyGroundAlive ) ) set udg_TempUnit = caster set udg_TempReal = GetDamageCount( caster, GetTornadoAbilityId( ) ) call ForGroup( grp, function Wind_Damage_Enemy ) call DestroyGroup( grp ) call SaveInteger( udg_hash, HashId, 3, range + 1 ) endif set caster = null
set dummy = null set grp = null set t = null endfunction function Trig_Tornado_Actions takes nothing returns nothing local unit caster = GetSpellAbilityUnit( ) local real CastX = GetSpellTargetX( ) local real CastY = GetSpellTargetY( ) local real angle = abp( GetUnitX( caster ), CastX, GetUnitY( caster ), CastY ) local unit dummy = CreateUnit( GetOwningPlayer( caster ), GetDummtId( ), GetUnitX( caster ), GetUnitY( caster ), 0.00 ) local timer t = CreateTimer( ) local integer HashId = GetHandleId( t ) call SaveUnitHandle( udg_hash, HashId, 0, caster ) call SaveUnitHandle( udg_hash, HashId, 1, dummy ) call SaveReal( udg_hash, HashId, 2, angle ) call SaveInteger( udg_hash, HashId, 3, 0 ) call TimerStart( t, 0.04, true, function Timer_Tornado_Move ) set caster = null set dummy = null set t = null endfunction =========================================================================== function InitTrig_Tornado takes nothing returns nothing local integer nPlayerIndex = 0 set gg_trg_Tornado = CreateTrigger( ) loop exitwhen nPlayerIndex > bj_MAX_PLAYERS call TriggerRegisterPlayerUnitEvent( gg_trg_Tornado, Player( nPlayerIndex ), EVENT_PLAYER_UNIT_SPELL_EFFECT, null ) set nPlayerIndex = nPlayerIndex + 1 endloop call TriggerAddCondition( gg_trg_Tornado, Condition( function Trig_Tornado_Conditions ) ) call TriggerAddAction( gg_trg_Tornado, function Trig_Tornado_Actions ) endfunction )) Отредактировано quq_CCCP, 11.09.2012 в 08:47. |
06.09.2012, 08:40 | #1
+15/−17
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,203Активность: |
quq_CCCP, странно не критики не оценок, ни одного вопроса, как будто всё идеально) |
07.09.2012, 09:28 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Faion
Noblesse Oblige
offline
Опыт:
30,395Активность: |
Нет, |
07.09.2012, 11:57 | #3
+7/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,203Активность: |
Faion, ну в принципе я не рассчитывал на бешеную популярность но уже 7 скачали и не каких вопросов... Странно, думал начнут поливать за все... |
07.09.2012, 12:15 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
просто Юрок
...
offline
Опыт:
11,271Активность: |
quq_CCCP, качественно сделаная карта, что тут ещё добавить? Скиллы классные (видел что-то вроде omnislash), как наработка очень полезно. |
07.09.2012, 12:26 | #5
+0/−2
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Faion
Noblesse Oblige
offline
Опыт:
30,395Активность: |
quq_CCCP:
Один из скачавших ты, по этому предоставим тебе право первым полить этот проект сам знаешь чем :nate: |
07.09.2012, 12:27 | #6
+3/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,203Активность: |
Faion, ну не надо на меня тут гнать я всегда проверяю чтобы все скачивалось и работало... |
07.09.2012, 13:12 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Faion
Noblesse Oblige
offline
Опыт:
30,395Активность: |
quq_CCCP:
Я всего лишь подтролливаю :) |
07.09.2012, 13:55 | #8
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Aws
offline
Опыт:
59,054Активность: |
quq_CCCP, А какой процент готовности у этого проекта? И вы все сейчас отдаёте проекты, потому что идей или времени нету? У нас вроде есть проект на сайте по возрождению и продолжению проектов - можешь туда обратиться. В карту эту играл, она ещё вроде похожа на карту "300 спартанцев". |
07.09.2012, 14:48 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,203Активность: |
Aws, все 90%
Волны 45 из 50 запланированных. Герой 7 из 7, полностью готовы. Предметы не закончены, не совсем сбалансированы все уровни сложности... quq_CCCP добавил:
Aws, кто-нить хоть до 20 волны на харде дошёл? (в карте нужен новый ланд для продолжения, ибо этот тесноват, и новые арты) quq_CCCP добавил: Идей действительно кончились... |
07.09.2012, 15:30 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Aws
offline
Опыт:
59,054Активность: |
quq_CCCP, Я вроде до 15-й на харде доходил, но точно не помню, так как играл давно(по-моему карте около 2-х лет или больше). Ланд в принципе и арты можно сделать, но вся проблема в реализации идей. Я бы помог, но и так уже 12 проектов у меня, а другие пользователи скорее всего тоже не возьмутся, так как практически у каждого 2-го пользователя на сайте есть собственный проект, ну или попробуй обратиться сюда: xgm.ru/p/revival . |
07.09.2012, 15:41 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,203Активность: |
Aws, моей 3 месяца, я делал её с нуля, вдохнвляясь другой картой 2004 года.... Что тебе мешает посмотреть мою карту? |
07.09.2012, 15:51 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Cosonic5
Моймозггоритогнем
offline
Опыт:
13,584Активность: |
Насчет ланда нече особого не увидел, учитывая что карта маленькая тут и смотреть не на что.))
По поводу карты... видно что автор старался, но не продумал до конца стиль игры. Моя оценка 6/10 |
07.09.2012, 17:56 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Aws
offline
Опыт:
59,054Активность: |
quq_CCCP, А...Я про другую думал. Ну ремейк неплохой, но почему-то мне кажется, что в той старой версии 2004 года было интереснее(это как сравнивать современные игры с ретро-играми: графика крутая, но не интересно). Тут действительно лучше расширить карту и хотя бы добавить отображение номера волны, а также исправить баги с уровнями героев. Не хотел смотреть так как не хотел брать. После просмотра вообще думать об этом не хочется.
Cosonic5, Тут не оценку ставят, а берут карту себе, чтобы довести её до совершенства. |
07.09.2012, 17:59 | #14
+2/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,203Активность: |
Cosonic5, я ей просто не закончил, по поводу астрала, есть волны которые так уворачиваются от физ атак.... этот герой просто необходим чтобы быстро выносить боссов...
Я конешно не все идеально сбалансировал, и вероятно допустил кучу багов, карта тестировалась не очень обширно,я играл в основном с друзьями не более 4 человек, и балансировал приблизительно, поскольку в 7 игроков от начала до конца в эту карту еще некто не играл... Я хотел есще сделать выбор героев через DGUI интерфейс, и переделать часть скиллов, но увы идеи кончились а так же данный ланд стал тесноват, чем переделывать карту проще создать уж новую.. Ну если кто то хочет сделать пробуйте, тока мне сообщите, и плз не теяп ляп чтобы потом меня не материли... quq_CCCP добавил: Aws, кстати про отбражение номара волны, есть там сообщенеи про волну... Так если что в карте есть куча комманд: -next - показывает номер и описание следующей волны. -timeout устанавливает задержку межу волнами, макс 140 сек, мин 1 сек. -swap (слот, нумерация с 1 как у всех нормальных людей) обмен героями... как в доте, тока круче, без тупости... -clear (-c) очищает экран от сообщений -Tips off (on) включает или выключает подсказки. для бетатеста -gold (-g) добовляет 1000 000 золота игроку. -respawn воскрешает вашего героя если он погиб -level (-lvl) повышает уровень выбранного вами героя до максимума. -Kick (cлот) кикает указанного игрока -wave (номер) устанавливает номер текущей волны... Моды -random (-r) вы получите случаного героя -dup (-d) можно выбирать одинаковых героев |
07.09.2012, 18:12 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DimanTOoBS
offline
Опыт:
5,791Активность: |
итак начнёмс:
играл один на харде за мастера клинка (такто по идее должны быть все 7 мастеры клинка, но нет же!!!), продержался 46 минут с 1 раза, хз какая волна там же не пишется..., в начале пока смотрел что есть в магазинах огребал потом купил имба щит который 5 или 10 волн не давал им пробить меня вообще отожрал шмот получше лайфстил и бф это уже не убить вообще, сдох от какойто баженой херни в портале потому что застрял за ним))) ещё шлем сатаны адская имба и ещё думаю там есть баг который хилил в конце игры всех мобов))) вообще ждал тех тех старых блейдмастеров... кароче не знаю что там было бы на легком уровне если на тяжёлом 5 или 6 босс раскладывался за 5 сек. в общем бальшой минус
а вот ещё если интересно реплей |
07.09.2012, 18:14 | #16
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,203Активность: |
DimanTOoBS, первые босы слабоваты, босс каждую 5 волну, ну а если 25 вейв убил, это слабовато, пробуй добратся хоть до 40
quq_CCCP добавил:
про мастеров клинка, так то они именно делятся по категориям, кто какими силами наделён, хаос, свет, тьма, огонь, ветер, земля, молния... С другом прошли до конца на харде, это реально... ну то что не все сбалансировано я писал, что предметы нужны другие тоже, это не готовая на 100% карта, так что минусить за написанные минусы карты это что то новое... quq_CCCP добавил: Кстати нашёл баг, с адским криком, щяс поправлю... |
07.09.2012, 18:40 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DimanTOoBS
offline
Опыт:
5,791Активность: |
quq_CCCP, когда прочитал названия юнитов наркоманка и крутой урод почти упал под стол xDDD как такие названия для юнитов вообще можно было придумать, а ты спецом поставил какуюто статую во врата демонов которая сносит по 100к урона???
люди плюсуют за 10% готовности, так почему я не могу минуснуть за 90% готовый баганый проект??? |
07.09.2012, 18:43 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,203Активность: |
DimanTOoBS, я написал за это, а про дамми юнита который не даёт залезть в непроходимое место, ну я решил так решить проблему с ходящими по лаве и по порталу, ну признаю не лучшая идея...
Делал для друзей, и давал названия для смеха, крату сделал примерно за 3 месяца, не знаю смог бы ты сделать лучше? quq_CCCP добавил: DimanTOoBS, там есть еще и голимый урод, говённый голем и много чего интересного... |
07.09.2012, 18:49 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DimanTOoBS
offline
Опыт:
5,791Активность: |
quq_CCCP, ну я просто ждал старых бмов думал ты тех делал старых)) да багов канешь жесть как много на счёт смог бы сделать лучше вот карта которую я делал около 1 месяца без всяких импортированных библиотек и наработок, всё с нуля |
07.09.2012, 18:54 | #20
+0/−2
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|