Поиграл, ну для начала не плохо, концепт нужно развивать и наполнять контентом:
Способностей мало, 2 из них это сетка и призыв корабля обязательные, и дайте тогда по 4-5 уникальных геройских способностей
Ланд просто ужасен, советую поискать на хайве хорошую мили карту островного типа в затонувшем городе, удалить рудники и переместить события туда, или почитать статьи о ландшафте на Xgm
Концепт очень скучен, напоминает элементы жанра риск, когда вы захватываете существ и ваша армия становится сильнее, не плохо было бы сделать мурлоков автономными, чтобы они бежали за вами и их надо было бы куда то привести/спасти, а так это просто захват контроля и пополнение армии
Нужны боты, в обязательном порядке, благо на аренах их делать легче всего
Нет, я пишу про функционал луа в апи варика, всё теперь я понял, где мы друг друга перестали не понимать 😂
Щас мой вопрос всё прояснит.
Вот конкретно в этом луа на 1.26 есть рабочие аналоги для BlzSetUnitMaxHP, BlzStartUnitAbilityCooldown, BlzSetUnitAttackCooldown?
Нету, их нужно добавлять Евенту, когда я говорил про функционал луа, разумеется я имел ввиду функционал апи~Vlod:
Причем тут lua и api игры?
И теперь мой ответ, - "как причем?" они же не будут работать, их нет, их придётся использовать в мемхак-джасс аналогах.
А чтобы они появились, их должен будет кое-кто а конкретно Ev3nt, добавить
Будет ли он вообще это делать, и когда, это уже другая тема
Причем тут lua и api игры? На мемхаке половина функций есть точно, скорее больше половины
Тут какая задача? если задача запустить этот код, то его 100% можно повторить на джасе на мемхаке хоть сейчас, да даже без мемхака.
Но задача то не эта, задача - использовать этот луа код, на 1.26 с минимальными доделками
Line 2207: return BlzCameraSetupGetLabel(self.handle)
Line 2210: BlzCameraSetupSetLabel(self.handle, label)
Line 2222: BlzCameraSetupApplyForceDurationSmooth(self.handle, doPan, forcedDuration, easeInDuration, easeOutDuration, smoothFactor)
Line 2684: return BlzGetPlayerTownHallCount(self.handle)
Line 2693: BlzDecPlayerTechResearched(self.handle, techId, levels)
Line 2932: return BlzGetSpecialEffectScale(self.handle)
Line 2935: BlzSetSpecialEffectScale(self.handle, scale)
Line 2945: return BlzGetLocalSpecialEffectX(self.handle)
Line 2948: BlzSetSpecialEffectX(self.handle, x)
Line 2958: return BlzGetLocalSpecialEffectY(self.handle)
Line 2961: BlzSetSpecialEffectY(self.handle, y)
Line 2971: return BlzGetLocalSpecialEffectZ(self.handle)
Line 2974: BlzSetSpecialEffectZ(self.handle, z)
Line 2980: BlzSpecialEffectAddSubAnimation(self.handle, subAnim)
Line 2983: BlzSpecialEffectClearSubAnimations(self.handle)
Line 2989: BlzPlaySpecialEffect(self.handle, animType)
Line 2992: BlzPlaySpecialEffectWithTimeScale(self.handle, animType, timeScale)
Line 2995: BlzSpecialEffectRemoveSubAnimation(self.handle, subAnim)
Line 2998: BlzResetSpecialEffectMatrix(self.handle)
Line 3001: BlzSetSpecialEffectAlpha(self.handle, alpha)
Line 3004: BlzSetSpecialEffectColor(self.handle, red, green, blue)
Line 3007: BlzSetSpecialEffectColorByPlayer(self.handle, whichPlayer.handle)
Line 3010: BlzSetSpecialEffectHeight(self.handle, height)
Line 3013: BlzSetSpecialEffectOrientation(self.handle, yaw, pitch, roll)
Line 3016: BlzSetSpecialEffectPitch(self.handle, pitch)
Line 3019: BlzSetSpecialEffectPositionLoc(self.handle, p.handle)
Line 3022: BlzSetSpecialEffectPosition(self.handle, x, y, z)
Line 3025: BlzSetSpecialEffectRoll(self.handle, roll)
Line 3028: BlzSetSpecialEffectMatrixScale(self.handle, x, y, z)
Line 3031: BlzSetSpecialEffectTime(self.handle, value)
Line 3034: BlzSetSpecialEffectTimeScale(self.handle, timeScale)
Line 3037: BlzSetSpecialEffectYaw(self.handle, y)
Line 3218: BlzCreateSimpleFrame(name, owner.handle, priority)
Line 3223: BlzCreateFrame(name, owner.handle, priority, createContext)
Line 3233: return BlzFrameGetAlpha(self.handle)
Line 3236: BlzFrameSetAlpha(self.handle, alpha)
Line 3268: return BlzFrameGetChildrenCount(self.handle)
Line 3278: return BlzFrameGetEnable(self.handle)
Line 3281: BlzFrameSetEnable(self.handle, flag)
Line 3291: return BlzFrameGetHeight(self.handle)
Line 3294: BlzFrameSetSize(self.handle, self.width, height)
Line 3305: BlzFrameGetParent(self.handle)
Line 3309: BlzFrameSetParent(self.handle, parent.handle)
Line 3319: return BlzFrameGetText(self.handle)
Line 3322: BlzFrameSetText(self.handle, text)
Line 3332: return BlzFrameGetTextSizeLimit(self.handle)
Line 3335: BlzFrameSetTextSizeLimit(self.handle, size)
Line 3345: return BlzFrameGetValue(self.handle)
Line 3348: BlzFrameSetValue(self.handle, value)
Line 3358: return BlzFrameIsVisible(self.handle)
Line 3361: BlzFrameSetVisible(self.handle, flag)
Line 3371: return BlzFrameGetWidth(self.handle)
Line 3374: BlzFrameSetSize(self.handle, width, self.height)
Line 3380: BlzFrameAddText(self.handle, text)
Line 3384: BlzFrameCageMouse(self.handle, enable)
Line 3388: BlzFrameClearAllPoints(self.handle)
Line 3392: BlzFrameClick(self.handle)
Line 3396: BlzDestroyFrame(self.handle)
Line 3401: BlzFrameGetChild(self.handle, index)
Line 3405: BlzFrameSetAbsPoint(self.handle, point, x, y)
Line 3409: BlzFrameSetAllPoints(self.handle, relative.handle)
Line 3413: BlzFrameSetAlpha(self.handle, alpha)
Line 3417: BlzFrameSetEnable(self.handle, flag)
Line 3421: BlzFrameSetFocus(self.handle, flag)
Line 3425: BlzFrameSetFont(self.handle, filename, height, flags)
Line 3429: BlzFrameSetSize(self.handle, self.width, height)
Line 3433: BlzFrameSetLevel(self.handle, level)
Line 3437: BlzFrameSetMinMaxValue(self.handle, minValue, maxValue)
Line 3441: BlzFrameSetModel(self.handle, modelFile, cameraIndex)
Line 3445: BlzFrameSetParent(self.handle, parent.handle)
Line 3449: BlzFrameSetPoint(self.handle, point, relative.handle, relativePoint, x, y)
Line 3453: BlzFrameSetScale(self.handle, scale)
Line 3457: BlzFrameSetSize(self.handle, width, height)
Line 3461: BlzFrameSetSpriteAnimate(self.handle, primaryProp, flags)
Line 3465: BlzFrameSetStepSize(self.handle, stepSize)
Line 3469: BlzFrameSetText(self.handle, text)
Line 3473: BlzFrameSetTextColor(self.handle, color)
Line 3477: BlzFrameSetTextSizeLimit(self.handle, size)
Line 3481: BlzFrameSetTexture(self.handle, texFile, flag, blend)
Line 3485: BlzFrameSetTooltip(self.handle, tooltip.handle)
Line 3489: BlzFrameSetValue(self.handle, value)
Line 3493: BlzFrameSetVertexColor(self.handle, color)
Line 3497: BlzFrameSetVisible(self.handle, flag)
Line 3501: BlzFrameSetSize(self.handle, width, self.height)
Line 3505: BlzEnableUIAutoPosition(enable)
Line 3509: BlzGetTriggerFrame()
Line 3517: BlzGetFrameByName(name, createContext)
Line 3522: BlzGetOriginFrame(frameType, index)
Line 3526: return BlzGetTriggerFrameEvent()
Line 3529: return BlzGetTriggerFrameValue()
Line 3532: return BlzGetTriggerFrameValue()
Line 3535: BlzHideOriginFrames(enable)
Line 3538: return BlzLoadTOCFile(filename)
Line 3665: ((skinId and (function() return BlzCreateItemWithSkin(itemId, x, y, skinId) end)) or (function() return CreateItem(itemId, x, y) end))()
Line 3713: BlzSetItemName(self.handle, value)
Line 3792: return BlzGetItemSkin(self.handle)
Line 3795: BlzSetItemSkin(self.handle, skinId)
Line 3827: BlzItemAddAbility(self.handle, abilCode)
Line 3856: return BlzGetItemBooleanField(self.handle, field)
Line 3860: return BlzGetItemIntegerField(self.handle, field)
Line 3864: return BlzGetItemRealField(self.handle, field)
Line 3868: return BlzGetItemStringField(self.handle, field)
Line 3909: return BlzSetItemBooleanField(self.handle, field, value)
Line 3911: return BlzSetItemIntegerField(self.handle, field, value)
Line 3913: return BlzSetItemRealField(self.handle, field, value)
Line 3915: return BlzSetItemStringField(self.handle, field, value)
Line 4114: ((skinId and (function() return BlzCreateUnitWithSkin(p, unitId, x, y, face, skinId) end)) or (function() return CreateUnit(p, unitId, x, y, face) end))()
Line 4149: return BlzGetUnitArmor(self.handle)
Line 4152: BlzSetUnitArmor(self.handle, armorAmount)
Line 4175: return BlzGetUnitCollisionSize(self.handle)
Line 4334: return BlzIsUnitInvulnerable(self.handle)
Line 4357: return BlzGetLocalUnitZ(self.handle)
Line 4380: return BlzGetUnitMaxHP(self.handle)
Line 4383: BlzSetUnitMaxHP(self.handle, value)
Line 4393: return BlzGetUnitMaxMana(self.handle)
Line 4396: BlzSetUnitMaxMana(self.handle, value)
Line 4422: BlzSetUnitName(self.handle, value)
Line 4435: BlzSetHeroProperName(self.handle, value)
Line 4570: return BlzIsUnitSelectable(self.handle)
Line 4607: return BlzGetUnitSkin(self.handle)
Line 4610: BlzSetUnitSkin(self.handle, skinId)
Line 4731: return BlzGetUnitZ(self.handle)
Line 4781: BlzUnitCancelTimedLife(self.handle)
Line 4802: BlzUnitDisableAbility(self.handle, abilId, flag, hideUI)
Line 4814: BlzEndUnitAbilityCooldown(self.handle, abilCode)
Line 4817: return BlzGetUnitAbility(self.handle, abilId)
Line 4820: return BlzGetUnitAbilityByIndex(self.handle, index)
Line 4823: return BlzGetUnitAbilityCooldown(self.handle, abilId, level)
Line 4826: return BlzGetUnitAbilityCooldownRemaining(self.handle, abilId)
Line 4832: return BlzGetUnitAbilityManaCost(self.handle, abilId, level)
Line 4838: return BlzGetUnitAttackCooldown(self.handle, weaponIndex)
Line 4841: return BlzGetUnitBaseDamage(self.handle, weaponIndex)
Line 4844: return BlzGetUnitDiceNumber(self.handle, weaponIndex)
Line 4847: return BlzGetUnitDiceSides(self.handle, weaponIndex)
Line 4875: return BlzGetUnitBooleanField(self.handle, fieldBool)
Line 4880: return BlzGetUnitIntegerField(self.handle, fieldInt)
Line 4885: return BlzGetUnitRealField(self.handle, fieldReal)
Line 4890: return BlzGetUnitStringField(self.handle, fieldString)
Line 4928: BlzUnitHideAbility(self.handle, abilId, flag)
Line 4949: BlzUnitInterruptAttack(self.handle)
Line 5027: BlzPauseUnitEx(self.handle, flag)
Line 5086: BlzSetUnitAbilityCooldown(self.handle, abilId, level, cooldown)
Line 5092: BlzSetUnitAbilityManaCost(self.handle, abilId, level, manaCost)
Line 5108: BlzSetUnitAttackCooldown(self.handle, cooldown, weaponIndex)
Line 5111: BlzSetUnitBaseDamage(self.handle, baseDamage, weaponIndex)
Line 5123: BlzSetUnitDiceNumber(self.handle, diceNumber, weaponIndex)
Line 5126: BlzSetUnitDiceSides(self.handle, diceSides, weaponIndex)
Line 5135: BlzSetUnitFacingEx(self.handle, facingAngle)
Line 5149: return BlzSetUnitBooleanField(self.handle, field, value)
Line 5151: return BlzSetUnitIntegerField(self.handle, field, value)
Line 5153: return BlzSetUnitRealField(self.handle, field, value)
Line 5155: return BlzSetUnitStringField(self.handle, field, value)
Line 5199: BlzSetUnitAttackCooldown(self.handle, cooldown, weaponIndex)
Line 5220: BlzShowUnitTeamGlow(self.handle, show)
Line 5223: BlzStartUnitAbilityCooldown(self.handle, abilCode, cooldown)
Line 5327: return BlzGroupGetSize(self.handle)
Line 5333: return BlzGroupAddGroupFast(self.handle, addGroup.handle)
Line 5440: BlzGroupUnitAt(self.handle, index)
Line 5475: return BlzGroupRemoveGroupFast(self.handle, removeGroup.handle)
Line 6386: return BlzTriggerRegisterPlayerKeyEvent(self.handle, whichPlayer.handle, whichKey, metaKey, fireOnKeyDown)
Line 6395: return BlzTriggerRegisterPlayerSyncEvent(self.handle, whichPlayer.handle, prefix, fromServer)
Line 6453: return BlzTriggerRegisterFrameEvent(self.handle, frame.handle, eventId)
Line 7002: local originalIcon = BlzGetAbilityIcon(self.dummyAbility)
Line 7004: local preloadText = BlzGetAbilityIcon(self.dummyAbility)
Line 7005: BlzSetAbilityIcon(self.dummyAbility, originalIcon)
Line 7033: ("\")\n//! beginusercode\nBlzSetAbilityIcon(" .. tostring(self.dummyAbility)) .. ",o)\n//!endusercode\n//"
Line 7230: if (self.from == MapPlayer:fromLocal()) and (not BlzSendSyncData(
Line 7265: BlzGetTriggerSyncPrefix(),
Line 7266: BlzGetTriggerSyncData()
Line 8773: BlzTriggerRegisterPlayerKeyEvent(
Зная функционал луа на 1.26, то нет, пока что возможности даже через аналоги такое запустить - нет
На рефордже работает, запускал в классик графике, fps стабильный, но ничего не понятно по игре вообще, кроме того что через 5 часов нужно убить Килджедена.
Все-таки английский язык, людей из разных стран, знают больше, чем русский язык, и стоит понимать про эту вещь, о чем я могу согласиться с Конваном.
Я и сам согласен, но это в корне не правильно, у нас вообще огромное количество русскоговорящих, делает карты только и сразу на английском типа для "охвата", это совершенно не правильно, они принижают свой язык, свою культуру.
А это разве наши проблемы? что у португальцев будет русская локализация? пусть или ставят себе инглиш или учат русский, я намеренно это именно так и написал, я знал о последствиях, ну в любом случае поменять файлы местами не составит труда, самое сложно это осилить сам перевод и сделать его качественно.
Ну, а про рефордж отдельная статья есть, спасибо.~konvan5, спасибо огромное за дополнение!
Плохая модель, в ретере у анимаций Death и Deсay вообще нет модели
Если судить по MDL файлу
То модель вообще схлопнута в точку на этих анимациях, поэтому её и не видно, хотя в редакторе всё хорошо, есть анимация разрушения
Можно было бы починить но ретера очень часто выдаёт факапистый МДЛ файл, а сам MDX 1000 рефорджа никак не отредактировать, в любом случае даже если бы был успех, то только через редактирование модели, а это + 4-10 мб за каждую модель, стоит ли оно того? - нет.
Посмотрел другие модели зданий, они все такие, весьма странно, как это в игре работает, всегда имел дело только с моделями персонажей или декором, и такой проблемы не замечалось.
В любом случае кодом это не поправить
Можно предвидеть, кучу таких прыжков было:
Реакция на края карты - отскакивание
Реакция на застревания внутри деревьев - ломание деревьев
Реакция на перепад высоты - если высоко то нельзя запрыгнуть, а вниз всегда можно спрыгнуть
БД декораций, для который прыжок должен прерываться, а для каких игнорироваться
Всё это описывается простыми ифами
Ух поиграл в 2022, продержался, 23 минуты (8 раундов), эта карта лучше чем 90% современных карт, я получил огромное удовольствие, это было весело, стрелочное управление лишнее (как предметы то подбирать, всё равно нужна мышка), благо мышкой всё работает
Надеюсь голосовалка не превратится в соревнование "у кого больше друзей"?
Я отдал свой голос за карту InfiniteUpgrade потому что она малоизвестна и надо дать автору шанс раскрутится, в Fantasy Pirates и Arena of War играл сам солнцеликий🤑, так что эти карты популярны и так уже, пусть попробуют свои шансы в следующем месяце
» WarCraft 3 / Great Master Murloc
» Warcraft III - Lua / Warcraft III - Lua
Щас мой вопрос всё прояснит.
Вот конкретно в этом луа на 1.26 есть рабочие аналоги для BlzSetUnitMaxHP, BlzStartUnitAbilityCooldown, BlzSetUnitAttackCooldown?
Нету, их нужно добавлять Евенту, когда я говорил про функционал луа, разумеется я имел ввиду функционал апи~Vlod:
А чтобы они появились, их должен будет кое-кто а конкретно Ev3nt, добавить
Будет ли он вообще это делать, и когда, это уже другая тема
» Warcraft III - Lua / Warcraft III - Lua
Но задача то не эта, задача - использовать этот луа код, на 1.26 с минимальными доделками
» WarCraft 3 / Наруто рабочий
» WarCraft 3 / Наруто рабочий
» Warcraft III - Lua / Warcraft III - Lua
» WarCraft 3 / Пламя Солнечного Колодца 2.8.4 RUS
» WarCraft 3 / Пламя Солнечного Колодца 2.8.4 RUS
» WarCraft 3 / Пламя Солнечного Колодца 2.8.4 RUS
» WarCraft 3 / Кампания: Камень мира
» WarCraft 3 / Кампания: Камень мира
» Zombie March / Unity, Playmaker и Марш Зомби среди развалин
» WarCraft 3 / Локализация карты WC3 для любого патча
» WarCraft 3 / Локализация карты WC3 для любого патча
Ну, а про рефордж отдельная статья есть, спасибо.~konvan5, спасибо огромное за дополнение!
» WarCraft 3 / Прыжок "скилы под ключ"
Ред. Берги
» WarCraft 3 / Пауза анимации юнита
Если судить по MDL файлу
Можно было бы починить но ретера очень часто выдаёт факапистый МДЛ файл, а сам MDX 1000 рефорджа никак не отредактировать, в любом случае даже если бы был успех, то только через редактирование модели, а это + 4-10 мб за каждую модель, стоит ли оно того? - нет.
В любом случае кодом это не поправить
» WarCraft 3 / Прыжок "скилы под ключ"
Реакция на края карты - отскакивание
Реакция на застревания внутри деревьев - ломание деревьев
Реакция на перепад высоты - если высоко то нельзя запрыгнуть, а вниз всегда можно спрыгнуть
БД декораций, для который прыжок должен прерываться, а для каких игнорироваться
Всё это описывается простыми ифами
» WarCraft 3 / Funny Penguin
» WarCraft 3 / Прыжок "скилы под ключ"
» WarCraft 3 / Прыжок "скилы под ключ"
» Arena of War PvE / Arena of War v0.20
» WarCraft 3 / XGM AutoHost Bot. Голосование. Июнь 2022
» WarCraft 3 / XGM AutoHost Bot. Голосование. Июнь 2022
Я отдал свой голос за карту InfiniteUpgrade потому что она малоизвестна и надо дать автору шанс раскрутится, в Fantasy Pirates и Arena of War играл сам солнцеликий🤑, так что эти карты популярны и так уже, пусть попробуют свои шансы в следующем месяце
» WarCraft 3 / Локализация карты WC3 для любого патча
» WarCraft 3 / Локализация карты WC3 для любого патча