0
21
8 лет назад
0

» WarCraft 3 / Нужна модель? - Вам сюда!

Ну если есть Халк, это же круто =/
Был какой-то Халк в супергеройской карте еще, уже анимированный, но качество модели явно было сильно неочень (судя по скрину, этот явно с анимациями был бы намного лучше) + там карту потрошить надо. Больше Халков для варкрафта беглый яндекс и гугл не нашел.
0
21
8 лет назад
0

» WarCraft 3 / Нужна модель? - Вам сюда!

Вот это тоже НАДО анимировать!!! Потому что это ХАЛК.
А Халка анимировать надо.
А то обидится.
Плз.
2
21
8 лет назад
2

» WarCraft 3 / Подлагивает карта

Так вот и названы тебе причины - ее изначально ни у кого нет, она подгружается.
И решение - давай.
В чем проблема дать ее какому-нибудь нейтральному зданию в углу карты (и так этому зданию хоть 100500 способностей и пихать? Единственное - повлияет на время загрузки карты, но тебе еще очень далеко до того момента, когда это станет хоть сколько-нибудь значительно и заметно, лаг в игре, естественно, в разы неприятнее, чем подождать на столько же при загрузке).
Альтернатива - если она многоуровневая, попробуй сделать один уровень (или, если надо, несколько одноуровневых способностей), но, имхо, это изврат (если надо несколько) гораздо больше. И с таким подходом при загрузке достаточно быстро станет лагать уже РО в редакторе (хотя это, конечно, еще меньше неприятность, чем долгая загрузка карты, но все-таки).
0
21
8 лет назад
0

» WarCraft 3 / Подлагивает карта

Это только при первом применении или постоянно?
Если при первом - попробуй спрелоадить способность (дать ее какому-нибудь объекту, который на карте изначально).
Если всегда - меняй способность
1
21
8 лет назад
1

» WarCraft 3 / Хак на память Warcraft3

Круто, но что-то у меня опять все ошибки начинают с начала вылезать, которые были.

Пока сделан бэкап до своего JNGP + своей тест-карты с кастом кодом + 1 триггером, это уже не сложно импортировать, все там у меня уже точно норм работает и норм пересохраняется.
Но все равно +, т. к. склоняюсь к тому, что это на моей стороне наркомания.
0
21
8 лет назад
0

» WarCraft 3 / Нужна модель? - Вам сюда!

СРОЧНО! СРОЧНО! СРОЧНО!
Простой заказ для модельщиков!!! Просьба очень важная.
Есть модель войда из доты 2.
Вот такая вот красивая и милая!
Проверено: импортируется она в текущем виде с текущими путями текстур нормально.
А если все-таки вдруг нет, можно перекрасить эту wc3-maps.ru/load/modeli_dlja_warcraft_3/modeli_iz_dota_2/faceles...
Собственно, войда надо сделать красным. Вот таким: clawbfs.ucoz.ru/Icons/Potent/PotentPreview.png
ПРИ ЭТОМ!!! ВСЕМ!!! ТЕКСТУРАМ ПРОСЬБА ПОМЕНЯТЬ ИМЯ И ПУТЬ (дело в том, что уже применяется именно эта модель с такими же путями текстур, надо, чтобы использовалась и она, и переделанная красная. Модель легко переименуется, ятп, пути к текстурам при этом не побьются).
Сама по себе задача по идее не трудная, не помню, почему пока не получилось сделать самостоятельно. По-моему, текстуры у этой модели при попытке поменять через War3ModelEditor ломаются, а по-другому - ппц непривычно, т. к. 98% моделей спокойно меняют свои текстуры через War3ModelEditor и забивать ради нескольких уникальных себе голову другими способами замены текстур ппц не хочется. Вкрай в РО красить в красный не желательно. В общем, если кто поможет, еще раз:
  • Покрасить воеду дота 2 текстуры в красный.
  • Поменять всем текстурам имя и путь.
  • Проверить действенность и дать.
Спасибо.
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Еще раз спс. Про перезарядку - просто узнать, не стоит ли беспокоиться при ее уменьшении о проверке, не получится ли меньше 0 фатал.
С такими функциями, кстати, -wtf мод пилится значительно проще и правильнее, ведь, строго говоря, на самом деле (хз как сейчас, раньше в оффдоте было так) попросту при применении любого спелла или способности сбрасывались все перезарядки и обновлялась мана через 0.01 сек., а не "все спеллы не имели перезарядки и мановой стоимости".
При таком подходе тот же антимаг сосет и т. п.
А с таким все просто: при применении любой способности задать ей манакост 0, перезарядку 0. И зшбс. (Это уже ПОЧТИ правильно. В идеале сразу через бд обнулить их у всех способностей, но польза будет незначительная, а геморроя много)
А уж героев-то сколько можно придумать на манакостах и перезарядках абил - не перечесть. Так, будем играться дальше...
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Вообще порно с Еленой Берковой.
Короче, попробовалось сделать так: вынуть из карты darkowlom'а файл war3map.j через mpqeditor и переимпортировать его на его же место. Не знаю, что в итоге произошло, но карта и запустилась снова без проблем, и стала пересохраняться нормально. В процессе галочки JNGP включались/выключались разные, так и не знаю, то повлияло, или это.
Всем спасибо.
*****************
В общем, "для чайников" мой обновленный вариант ниже. Строка кода нормальная была. Просто не работала, теперь точно такая же работает.
Для импорта моего варианта по идее хватает следующего:
  • Иметь последний JNGP
  • Просто скопировать в свою карту кастом код и единственный триггер из моей в папке Return Bug.
В сабже уже протестировано (с подсказками):
  • Изменение белой и зеленой атаки и их подсчет
  • Изменения манакоста способностей и их подсчет (изменения на конкретный лвл конкретной абилы)
  • Изменения перезарядок способностей и их подсчет (изменения на конкретный лвл конкретной абилы)
PS Ятп верно, что отрицательная перезарядка = фатал? После этого геморроя чекать уже ппц неохота.
Загруженные файлы
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Как-то не так пересохраняю.
До пересохранения все работает.
После пересохранения (без изменений) - только эта функция и отрубается.
Экспериментирую со включением/выключением галок в JNGP, пока уже нашелся вариант, при котором при пересохранении вообще карта перестает работать =)
Можно, конечно, реально тупо файл вшивать не через WE, как драколич делает. Но это пока жестковато для меня... Хотя в не столь далеком будущем вполне возможно...
0
21
8 лет назад
Отредактирован ClotPh
0

» WarCraft 3 / Хак на память Warcraft3

Вот эта, точно? А запускается хоть?
Карта
А, ок
Загруженные файлы
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Ну т. е. код выше должен работать, проблема на моей стороне. Понятно.
Дело не в заметности, я ведь глазу не верю, специально еще и высчитывание стоит и текстовое сообщение.
Как было К/Д 2 секунды, так и остается. Если уж 2 от 3 глаз бы не отличил мб, то 2 от 4 и тем более дальше - однозначно бы определил.
Но GetAbilityCD как возвращало двойку (что изначально в РО и стояло), так и возвращает каждый раз.
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Семь медных сапогов в мозгах истоптано, ничерта не выяснено.
DracoL1ch, должна в коде выше перезарядка заклинания увеличиваться и если нет, то почему?
Считается она другой функцией исправно.
1
21
8 лет назад
1

» WarCraft 3 / Проблема с опытом героя

Дистанция получения опыта в константах ЕСТЬ, но она как-то криво называется.
Мб кто другой вспомнит...
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Ну вот так нагляднее будет, пастану результаты моих экспериментов сюда
Все действует, кроме увеличения перезарядки абилы, хотя сделано все точно так же, как и с другими функциями/
ВЫВОДИТСЯ оно исправно.
Т. е. там перезарядка змеек в РО на 2 поставлена, та функция, которая считает, возвращает 2; у ульты ловца духов вроде 180 - возвращается 180. Увеличение же - фиг Вам.
Пробовалось и с !nocjass, и без него
Еще предположения, что:
  • что-то таки побилось в либах (но они были просто перекопипастнуты в кастом код, кроме одной, которая осталась в отдельном триге);
  • влияет патч 1.26 и/или дллка для безлим. размера сетевой игры.
Однако все остальное-то работает.
Там в карте стоит несколько героев для теста, любой применяет любую способность и после этого с ним происходят все вышеописанные шаманства. Последняя версия лично моей карты - последний файл лично от меня, выложенный здесь. Для теста еще валяются когти на ув. зеленой атаки и др., буду и др. героев и шмотки добавлять, когда буду тестировать следующие функции. Пока хочется именно с перезарядками разобраться
***
function Trig_AfterAbilityCast_Actions takes nothing returns nothing
local ability a = GetSpellAbility()
local integer a2 = GetSpellAbilityId()
local integer pAblil = GetUnitAbilityForAddresss( ConvertHandle(GetTriggerUnit( )), a2 )
Увеличить кастеру атаку на 10
call AddUnitBaseDamage (GetTriggerUnit(),10)
Увеличить кастеру атаку на 10 - закрыто.
Вывести значение атаки кастера
call DisplayTextToForce( GetPlayersAll(), "Текущее значение атаки применившего способность с учётом бонусов: " + I2S(GetUnitBaseDamage(GetTriggerUnit()) + GetUnitGreenBonusDamage(GetTriggerUnit())) )
Вывести значение атаки кастера - закрыто.
Увеличить манакост абилы на указанное в конце число
call SetAbilityManaCost (GetSpellAbilityId(),GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()), GetAbilityManaCost(GetSpellAbilityId(), GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) + 5 )
Увеличить манакост абилы на указанное в конце число - закрыто.
Вывести значение манакоста абилы
call DisplayTextToForce( GetPlayersAll(), "Манакост этой абилы на этом уровне теперь такой: " + I2S(GetAbilityManaCost(GetSpellAbilityId(), GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) ))
Вывести значение манакоста абилы - закрыто.
! nocjass
Увеличить перезарядку абилы на указанное в конце число - НЕ ДЕЙСТВУЕТ, с хэндлом фаталит!!!
call SetAbilityCD (a2,GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()), GetAbilityCD(GetSpellAbilityId(), GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) + 1 )
Увеличить перезарядку абилы на указанное в конце число - закрыто.
! endnocjass
Вывести значение перезарядки абилы
call DisplayTextToForce( GetPlayersAll(), "Перезарядка у этой абилы на этом уровне теперь такая: " + R2S(GetAbilityCD(GetSpellAbilityId(), GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) ))
Вывести значение манакоста абилы - закрыто.
set a = null
endfunction
===========================================================================
function InitTrig_AfterAbilityCast takes nothing returns nothing
set gg_trg_AfterAbilityCast = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_AfterAbilityCast, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_AfterAbilityCast, function Trig_AfterAbilityCast_Actions )
endfunction
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

У меня пока фаталит на всем =/
P. S. Не знаю, связано или нет - вар 1.26.
Ну ладно, еще покопаюсь пока самостоятельно, наводки получены.
Попробую в носиджасс занести и/или юзнуть др. функцию.
darkowlom,
карта выше
***
*******
local integer pAblil = GetUnitAbilityForAddresss( ConvertHandle(GetTriggerUnit( )), a2 )
Вот все-таки точно есть уверенность, что надо хэндл брать? Потому что ведь манакост-то у меня исправно изменяется и высчитывается и по AbilityId.
И перезарядка высчитывается по AbilityId. Только не меняется! А в твоей карте у меня она по хэндлу и считаться перестала (возвращает 0), там-то зачем было менять?
Ну, короче, оставлю пока в локалках и то, и другое, все равно обнулять не надо, буду снова все функции проверять и через AbilityId, и через хэндл
*********
Кстати, еще интересная информация. У меня не только вар 1.26, но и .dll, расширяющая размер карты по сети до бесконечного. Может, еще и это влияет ;)
Ну зато что у меня будет действовать - скорее всего у всех будет.
0
21
8 лет назад
Отредактирован ClotPh
0

» WarCraft 3 / Хак на память Warcraft3

"Перезарядка/кулдаун способности??? Просто внизу еще функции с кулдаунами присутствуют? Что означает CD? CastDuration (длительность действия)? real cool=время перезарядки
function SetAbilityCD takes integer abil, integer level, real cool returns nothing
function GetAbilityCD takes integer abil, integer level returns real"
GetAbilityCD точно и без проблем возвращает кулдаун способности!!! Это по моей тест-карте видно. Можно, например, сделать кучу интересных абил, когда юнит юзает способность, отхилить его на 2 * её перезарядка и вообще немало зависимостей запилить.
Но вот SetAbilityCD, которая по логике должна менять кулдаун, не делает НИЧЕГО, во всяком случае, у меня. =/
Такие же функции есть и на манакосты, с ними проблем нет - одна функция исправно возвращает, другая исправно меняет (считаются от конкретного лвла конкретной абилы, изменения вешаются тоже на конкретный лвл конкретной абилы).
А вот перезарядки - считаются спокойно, а меняться не хотят. =/ Что считаются-то, это тоже уже хорошо, но...
****
Немного оффтопик, пока просто оставлю это здесь
Идеи для геройских способностей.
Ульт с высокой перезарядкой. Бафф союзника. Когда он в следующий раз применит геройскую способность, мановая стоимость этой способности устанавливается на 0 до конца игры.
Ваша атака заряжается небольшим АоЕ магическим уроном в зависимости от мановой стоимости последней способности, примененной любым героем.
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Так, результаты. Либы все, кроме одной, успешно занесены в кастом (эта одна бодается).
Скорее всего, на их действенность это не повлияло, т. к. все те функции, что уже удалось проверить до этого, остались работать неизменно.
****
Если всё в этом направлении разовьется ок - то для импорта "чайникам" достаточно будет перенести из моей карты кастом код и один триггер, а по триггерам-образцам с подсказками будет очевидно, как действуют функции.
****
Осталось покорить кулдауны и уже можно офигенных героев и абилы придумывать (что реально еще кроме них и хотелось - высчитывать атаку и изменять манакосты, оно уже).
С кулдаунами до сих пор не ясно (но до изменения либ было так же).
Удаётся посчитать кулдаун способности, но НЕ удаётся ни запустить, ни увеличить.
ВСЕ функции фаталят с первого-второго раза и/или вообще не действуют.
Вот по манакосту же вроде бы такие же функции - та, которая считает, показывает манакост в виде текста; другая изменяет, в моем коде с подсказками видно, где что и всё ок!!!
А по кулдауну функция, которая считает, его правильно высчитывает, а та, которая должна добавлять - не делает ничего!
ДРУГИЕ ТОЖЕ ПРОБОВАЛИСЬ и предложенные тут пробовались, пробовались все - по-моему, все с гитхаба по кулдауну уже вытащено. Ничего не делает и/или фатал, некоторые оригинальны - фатал со второго вызова.
Втф?
Все в папке Тестируемые действия - триггер AfterAbilityCast.
Ну и вообще посмотрите, работает ли карта и удобно ли на ней тестировать, а то я как в параллельном мире.
В общем, в карте на русском все написано - при касте любого спелла любым героем с его атакой, манакостом примененной абилы происходят изменения и выводится инфа. Про перезарядку только выводится инфа...
Загруженные файлы
0
21
8 лет назад
0

» WarCraft 3 / Как триггерно установить атаку существу?

^ Качай мою тест-карту из последнего сообщения, там понятность для рядового пользователя компьютера и варкрафта в разы больше и как раз функции на атаку уже вовсю заюзаны и проставлены герои и когти атаки, чтобы их тестировать и проверять, атака там задается изи
Если уж там не разберешься - тебе вообще в WE лезть не надо, но должен разобраться
Бтв, мб чуть попозже скину для себя окончательно перекроенный вариант хака, его и импортировать будет в разы легче и понятность выше (везде подсказки будут), пока вот уже там стартовый вариант есть и работает
А еще книга атаки есть
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Играюсь с сабжем, благополучно потеряна... или не совсем, куча времени.
С атакой, манакостами уже проведены успешные и интересные эксперименты, куча идей.
А вот с перезарядками что-то всё не работает и/или фаталит.
Может кто-то сделать, чтобы при одном из событий запускалась или навсегда увеличивалась перезарядка способности на определенное число?
И еще реально ли эти либы в кастом код запихнуть, чтобы они продолжали действовать? Немного раздражает лишняя папка.
Личная тесткарта вот
Загруженные файлы
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

!!!
Вообще детектив такой, что Шерлок Холмс отдыхает.
С pjass.exe вообще интересное кино. Вот мой файл в соотв. папке весил 21 кб, а тот, который в шапке - 41 кб. Вначале подумалось, что приглючило... Но... Короче, сейчас после открытия в папке опять файл оказался 21 кб. Он в какой-то момент сам обратно перезаписывается. Ппц и, главное, не понятно, из-за чего. Вообще порнуха какая-то.
Но это не после первой попытки пересохранения карты, это то ли после закрытия WE, то ли при открытии... вообще какая-то мистика...
Значит, все, что с самого начала пока улучшилось - обновлен JNGP. Поэтому и стали хотя бы нативки в кастом коде пересохраняться.
AdicOptimizer отключен. ВСЕ ВО ВКЛАДКЕ CJass ОТКЛЮЧЕНО.
quq_CCCP, разницу между твоей и в прикрепленной к посту картами вижу только в том, что у тебя текстовое сообщение про код драколича побилось и заменилось на "огненный столб", в остальном все так же - при немедленном пересохранении 11 ошибок, но с тремя нативками в кастом коде уже пересохраняется.
Added:
darkowlom, УРА!!! Твое вроде успешно пересохранилось!!! Спасибо, пойду химичить дальше. Но уж теперь-то, по идее, проблем быть не должно - эти nocjass, надеюсь, при необходимости самостоятельно сумею проставить...
BaHeK
Потом мб, если понадобится, спасибо
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

У блейда атаки 102-124. И было, кстати, столько до нижеописанных действий.
Ага, а в РО он дефолтный. Т. е. шаманство всё-таки работало и работает. Но всё-таки ещё не прогрызлось до конца.
Так, JNGP закачан отсюда xgm.guru/p/wc3/jassnewgenpack-exp
Версия, похоже, была чуть раньше той, что по ссылке.
Прогресс уже есть. Теперь, если оставить в кастом коде только это и пересохранить:
native MergeUnits takes integer qty, integer a, integer b, integer make returns boolean
native ConvertUnits takes integer qty, integer id returns boolean
native IgnoredUnits takes integer unitid returns integer
Карта успешно запускается, но, конечно, пустая (если там своих юнитов не поставить, но это для сути дела сейчас не важно).
Если просто пересохранить - все равно фейл. Во вкладке cJass все галочки сняты. Выдает не раз упомянутые 11 ошибок.
Подозреваю, что проблема в первую очередь в следующих ошибках из тех одиннадцати:
  • Index missing for array variable l__Array
  • Index missing for array variable l__bytecode
  • Function ReadMemory must not take any arguments when used as code
При попытке копипаста всего сразу в кастом код отсюда - github.com/DracoL1ch/WC3Memory/blob/master/war3map.j , кстати, по-моему, выдает именно эти три ошибки и только три.
************
Итак. По идее - уже есть рабочая и пересохраняемая карта с кастом кодом:
native MergeUnits takes integer qty, integer a, integer b, integer make returns boolean
native ConvertUnits takes integer qty, integer id returns boolean
native IgnoredUnits takes integer unitid returns integer
************
Это уже прогресс. Но этого мало. Я не могу, например, просто вставить функцию отсюда github.com/DracoL1ch/WC3Memory/blob/master/war3map.j
Если я забираю
function AddAbilityCooldown takes ability a, real seconds returns nothing
local integer pData = Memory[ConvertHandle(a)/4+55]/4
if pData != 0 then
set Memory[pData+1] = cleanInt(realToIndex(seconds+cleanReal(indexToReal(Memory[pData+1]))))
set Memory[ConvertHandle(a)/4+45] = cleanInt(realToIndex(seconds+cleanReal(indexToReal(Memory[ConvertHandle(a)/4+45])))) This should not be modified together
endif
endfunction
и просто вставляю в кастом код, то оно начинает ругаться и, ятп, искать ссылки на либы и функции в них. А с либами карта не пересохраняется, выдает не раз упомянутые 11 ошибок. Т. е. если снять галочку с Enable JassHelper - она, разумеется, пересохраняется, но в игре опять же не запускается.
Есть мысль просто удалить все проблемные строчки, но, ятп, оно работать нормально-то просто перестанет и все.
0
21
8 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Так. Ну и втф? Ничерта не понятно.
Файл pjass.exe скопирован с заменой, куда надо (именно куда надо, т. к. там был другой pjass.exe и он заменён).
Что-то еще надо распаковать? После запуска он выдает DOS-окно и молча "висит".
Ладно, закрываю, идем дальше.
*******
Карта скачана.
В игре запускается следующим образом: появляется Чародей Крови, инфа про то, что хак классный и бла-бла-бла. Потом появляется блейдмастер, дальше ничего не происходит.
Если открыть карту в редакторе и просто пересохранить - она перестаёт запускаться (со включенным cJass выдаёт 11 ошибок, без него не выдаёт ошибок, но всё равно перестаёт запускаться).
Если удалить все триггеры вообще и кастом код и пересохранить - карта запускается, естественно, пустой.
Ради эксперимента оставляю только этот кастом код:
Эти 3 нативные функКции необходимы дя работы хака, остальное можно не копировать!
native MergeUnits takes integer qty, integer a, integer b, integer make returns boolean
native ConvertUnits takes integer qty, integer id returns boolean
native IgnoredUnits takes integer unitid returns integer
Нажимаю Syntax Check, выдаёт Parse successful.
После пересохранения карта все равно не запускается.
Если удалить и этот кастом код - запускается.
Если заново скачать карту и заменить - запускается, что происходит с ней в игре - см. выше.
Если снова открыть и просто пересохранить - опять не запускается.
В чем и на каком этапе проблема?