Комментарии проекта WarCraft 3
6

Срочно прошу причины фатала

» WarCraft 3
Активно использовался мх, дело явно в использовании чего-то из него
Друг друга атаковали 2 одинаковых героя, у каждого были шансы на сброс перезарядки атаки при атаке себя противником
ClotPh #1 - 58 минут назад (отредактировано ) 0
DracoL1ch, а новый мемхак безопасный именно потому, что они там уже есть?
////////////
O_O shit. Что за прикол?! Тут причина та же самая?
Это из другой карты для игры... Но вроде бы код уже исправленный туда всунут!!! Сейчас офк перепроверю.
Но в русской три Кратоса друг друга 20 минут долбали - все норм было. В англ. ща очень быстро даже с одного фатал вылетел.
upd: да, округление есть, это точно в ENG.w3x war3map.j....
function Suppression takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6
local timer t= CreateTimer()
local unit u5= GetAttackedUnitBJ()
local unit u6= GetAttacker()
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local real Suppressionhash= 0
local real damagedebuff= 0
local integer damagedebuffconvert= 0
set Suppressionhash=LoadReal(udg_Hash, GetHandleId(u6), StringHash("Suppressionhash"))
if ( IsUnitEnemy(u6, GetOwningPlayer(u5)) == true ) and ( IsUnitType(( u6 ), UNIT_TYPE_ANCIENT) != true ) and ( IsUnitType(( u6 ), UNIT_TYPE_STRUCTURE) != true ) and Suppressionhash == 0 then
if GetUnitBaseDamage(u6) <= GetUnitBaseDamage(u5) then
call AddSpecialEffectTargetUnitBJ("origin", u6, "Spartan3.mdl")
call ConditionalTriggerExecute(gg_trg_destroyspeceffect)
ТОЛЬКО ЕСЛИ ХЭШ = 0 И У ВРАГА U6 МЕНЬШЕ АТАКИ, ЗАПУСК ТАЙМЕРА И СЭЙВ ХЭША
СЧИТАЕМ, СКОЛЬКО МИНУСОВАТЬ, МИНУСУЕМ И СЭЙВИМ В ХЭШ
set damagedebuff=( 0.02 + ( 0.08 * ( GetUnitAbilityLevelSwapped('A31D', u5) ) ) ) * ( GetUnitBaseDamage(u6) )
set damagedebuffconvert=R2I(damagedebuff)
set damagedebuff=I2R(damagedebuffconvert)
call SetUnitBaseDamage(u6 , GetUnitBaseDamage(u6) - R2I(damagedebuff))
call SaveReal(udg_Hash, GetHandleId(u6), StringHash("Suppressionhash"), damagedebuff)
СЧИТАЕМ, СКОЛЬКО МИНУСОВАТЬ, МИНУСУЕМ И СЭЙВИМ В ХЭШ - ЗАКРЫТО.
ТОЛЬКО ЕСЛИ ХЭШ = 0 И У ВРАГА МЕНЬШЕ АТАКИ, ЗАПУСК ТАЙМЕРА И СЭЙВ ХЭША - ЗАКРЫТО.
call SaveUnitHandle(udg_Hash, GetHandleId(t), 2, u5)
call SaveUnitHandle(udg_Hash, GetHandleId(t), 1, u6)
call TimerStart(t, 2, false, function Suppression2)
else
ПРОСТО ДОБАВЛЯЕМ АТАКУ ГЕРОЮ
call SetUnitBaseDamage(u5 , GetUnitBaseDamage(u5) + ( GetUnitAbilityLevelSwapped('A31D', u5) ))
ПРОСТО ДОБАВЛЯЕМ АТАКУ ГЕРОЮ - ЗАКРЫТО.
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash, GetHandleId(t))
endif
else
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash, GetHandleId(t))
endif
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6
set t=null
set u5=null
set u6=null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
прикреплены файлы
DracoL1ch #2 - 3 часа назад 0
говорю же, у тебя подается 0+0x1E8, ставь проверки на нуль после ConvertHandle
ClotPh #3 - 6 часов назад (отредактировано ) 0
Ну так это понятно, что функции урона в этот момент были
там два clawbfs.ucoz.ru/forum/3-1839-1 с двумя прокачанными пассивками били друг друга
"Спарта!" действует с шансом, а Подавление - гарантированно
Но вопрос, что именно вызывает фатал (точно что-то из этого, там фатал был потом еще раз, ульты в этот момент прокачано не было, Qшка во второй раз тоже 90%, что не юзалась).
Вот см. по ссылке че абилы делают и выше коды
Там да, или как-то связанный с атакой бесконечный цикл создается, или пытается записаться что-то, что записаться не может
///////////////////////////
Вот так да, если посмотреть, допустим, у первого 100 атака, у второго 100 тоже
первый второму пассивкой режет, второй в обратку первому...
ммм... может, попытка записать в атаку дробную реалку вызывает фатал? Но тоже бред, дробные реалки в броню же норм пишутся
//////////
Кстати, да, енейбл-дизейбл Спарты фактически уже есть сохраняемым в хэш числом, так что дело не в этом... =/ ну блииин
///////
так, ладно, пока карта грузится, знаю, что делать
протестирую с ботом, прокачав себе только Подавление, Спарта! на одного себя гарантированно фатала не вызывает, в тест-карте Спарта! и Подавление нормально работали в окружении. Прокачаю Подавление, поставлю бота, он раскачается, прокачает Спарта! и Подавление, себе прокачаю только Подавление, пойду его бить. Если зафаталит - 95%, что проблема в способности "Подавление".
//
done
Ага. Со Спартой (пассивка на шанс дать себе вамп при атаке и рефрешнуть ее кд) все ок.
Значит, ща Подавлению пропишу дополнительно в нужных местах:
local real Suppressionhash2 = 0
set Suppressionhash2 = LoadReal(udg_Hash,GetHandleId(u5),StringHash("Suppressionhash"))
and Suppressionhash2 == 0
так по идее у двух сражающихся с Подавлением оно сразу триггериться будет не должно.
Проверим.
////////////
upd: МЛЯТЬ, вот сейчас выхожу и снова фатал.
Все-таки попробую еще помимо этого прописать, чтобы damagedebuff округлялась до целых...
Ну расклад тот, что это, крч, в любом случае 95%, что способность "Подавление"
При вэшке спок без Подавления у второго несколько секунд два Спартанца друг друга били, а когда W и E были и у того и того прокачаны - фатал вылетал почти сразу
Ща вот фатал в конце вылетел, когда они вообще в разных местах карты были и уже игра выключалась после тестирования, но у второго-то E была

там вот как-то видимо все-таки че-то ухитряется недопустимое писаться, мб атака продрачивается до тысячных долей, что ли, и вылетает фатал

да, скорее всего проблема в тысячных долях атаки
у Психопомпы как-то так вроде с кд было
ща округление крч мутить надо лучше и проще, да
///
local integer damagedebuffconvert = 0
///
И ПОСЛЕ ЭТОЙ (она уже есть) строчки:
set damagedebuff = (0.02 + (0.08 * (GetUnitAbilityLevelSwapped ('A31D', u5))) ) * (GetUnitBaseDamage(u6))
/////////////
set damagedebuffconvert = R2I(damagedebuff)
set damagedebuff = I2R(damagedebuffconvert)
///////////////
попробую так
//
а доп. ифзенэлсы хэша пока писать все-таки не буду
потому что в первом ифзенэлсе все равно только целые числа участвуют, а при втором хэш все равно на одного вешается и цикла быть не должно
/
ВРОДЕ ОК. В игре было аж 3 Кратоса, фатала не было.
DracoL1ch #4 - 16 часов назад 0
ну судя по логу, ты попытался записать что-то в Memory[122], так что ищи
недаром я ввел безопасные функции чтения-записи потом
судя по тому, что при умножении на 4 это дает 1E8, ты лез в Aatk, ну функции урона, если точнее
так что у тебя либо юнит без атаки, либо где-то 0 втесался, ищи
ClotPh #5 - 17 часов назад 0
Про тот-то все ок уже, просто в др. теме
Так. Ладно, спок, спок, релаксим, все хорошо
По тесту ингейм уже видно, что сила героя ок
Это явно какая-то из этих пассивок, Я НЕ БУДУ ВСТАВЛЯТЬ ЭТОТ **** КАТ, потому что это трата усилий, и так ща *** срыв нервный будет
///////////////////
**
function Sparta takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: it, u5, p
local item it
local unit u5 = GetAttackedUnitBJ()
local location p = GetUnitLoc(GetAttackedUnitBJ())
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local real Spartahash = 0
set Spartahash = LoadReal(udg_Hash,GetHandleId(u5),StringHash("Spartahash"))
if (10 + ( GetUnitAbilityLevelSwapped('A31C', u5) * 5) >= GetRandomInt(1,100)) and Spartahash == 0 then
call SaveReal(udg_Hash,GetHandleId(u5),StringHash("Spartahash"),1)
call AddSpecialEffectTargetUnitBJ( "chest", u5, "Spartan2.mdl" )
call ConditionalTriggerExecute( gg_trg_destroyspeceffect )
СБРОС ПЕРЕЗАРЯДКИ АТАКИ
call ResetAttackCooldown(u5)
СБРОС ПЕРЕЗАРЯДКИ АТАКИ - ЗАКРЫТО.
ЗАНОСИМ ПРЕДМЕТ В ПЕРЕМЕННУЮ СРАЗУ ПОСЛЕ СОЗДАНИЯ, ПОТОМ ОБЯЗ РЕМУВ
call CreateItemLoc( 'I01W', p )
set it = GetLastCreatedItem()
call UnitAddItemSwapped( it, GetAttackedUnitBJ() )
call RemoveItem (it)
ЗАНОСИМ ПРЕДМЕТ В ПЕРЕМЕННУЮ СРАЗУ ПОСЛЕ СОЗДАНИЯ, ПОТОМ ОБЯЗ РЕМУВ - ЗАКРЫТО.
call SaveReal(udg_Hash,GetHandleId(u5),StringHash("Spartahash"),0)
endif
call RemoveLocation (p)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: it, u5, p
set it = null
set u5 = null
set p = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
function Suppression2 takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6
local timer t = GetExpiredTimer()
local unit u5 = LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local unit u6 = LoadUnitHandle(udg_Hash,GetHandleId(t),1)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local real Suppressionhash = 0
set Suppressionhash = LoadReal(udg_Hash,GetHandleId(u6),StringHash("Suppressionhash"))
call SetUnitBaseDamage (u6,GetUnitBaseDamage(u6) + R2I(Suppressionhash))
call SaveReal(udg_Hash,GetHandleId(u6),StringHash("Suppressionhash"),0)
call PauseTimer (t)
call DestroyTimer (t)
call FlushChildHashtable (udg_Hash, GetHandleId(t))
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6
set t=null
set u5=null
set u6=null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
function Suppression takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6
local timer t = CreateTimer()
local unit u5 = GetAttackedUnitBJ()
local unit u6 = GetAttacker()
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local real Suppressionhash = 0
local real damagedebuff = 0
set Suppressionhash = LoadReal(udg_Hash,GetHandleId(u6),StringHash("Suppressionhash"))
if (IsUnitEnemy(u6,GetOwningPlayer(u5)) == true) and ( IsUnitType((u6), UNIT_TYPE_ANCIENT) != true ) and ( IsUnitType((u6), UNIT_TYPE_STRUCTURE) != true ) and Suppressionhash == 0 then
if GetUnitBaseDamage(u6) <= GetUnitBaseDamage(u5) then
call AddSpecialEffectTargetUnitBJ( "origin", u6, "Spartan3.mdl" )
call ConditionalTriggerExecute( gg_trg_destroyspeceffect )
ТОЛЬКО ЕСЛИ ХЭШ = 0 И У ВРАГА U6 МЕНЬШЕ АТАКИ, ЗАПУСК ТАЙМЕРА И СЭЙВ ХЭША
СЧИТАЕМ, СКОЛЬКО МИНУСОВАТЬ, МИНУСУЕМ И СЭЙВИМ В ХЭШ
set damagedebuff = (0.02 + (0.08 * (GetUnitAbilityLevelSwapped ('A31D', u5))) ) * (GetUnitBaseDamage(u6))
call SetUnitBaseDamage (u6,GetUnitBaseDamage(u6) - R2I(damagedebuff))
call SaveReal(udg_Hash,GetHandleId(u6),StringHash("Suppressionhash"),damagedebuff)
СЧИТАЕМ, СКОЛЬКО МИНУСОВАТЬ, МИНУСУЕМ И СЭЙВИМ В ХЭШ - ЗАКРЫТО.
ТОЛЬКО ЕСЛИ ХЭШ = 0 И У ВРАГА МЕНЬШЕ АТАКИ, ЗАПУСК ТАЙМЕРА И СЭЙВ ХЭША - ЗАКРЫТО.
call SaveUnitHandle(udg_Hash,GetHandleId(t),2,u5)
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u6)
call TimerStart(t,2,false,function Suppression2)
else
ПРОСТО ДОБАВЛЯЕМ АТАКУ ГЕРОЮ
call SetUnitBaseDamage (u5,GetUnitBaseDamage(u5) + (GetUnitAbilityLevelSwapped ('A31D', u5)))
ПРОСТО ДОБАВЛЯЕМ АТАКУ ГЕРОЮ - ЗАКРЫТО.
call PauseTimer (t)
call DestroyTimer (t)
call FlushChildHashtable (udg_Hash, GetHandleId(t))
endif
else
call PauseTimer (t)
call DestroyTimer (t)
call FlushChildHashtable (udg_Hash, GetHandleId(t))
endif
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6
set t = null
set u5 = null
set u6 = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
////////////
так
ну и чо мы тут видим
допустим, Sparta может вызывать перезарядку атаки, когда тебя атакует враг
т. е. тебя атакует враг, у него тоже Спарта, у тебя сброс кд ты сразу его у него сброс он сразу тебя --- цикл? Но хм, ведь там ШАНС!
Однако попробую просто при переносе отключать триг в начале и вкл в конце
По Подавлению есть сомнения, но ведь там первое действие не может создать цикл, а второе имеет кд на 2 секунды...
Ладно, крч, пока идея Спарту отключить, посмотрим
call DisableTrigger (GetTriggeringTrigger())
call EnableTrigger (GetTriggeringTrigger())
лан, пофиг, игра все равно ЛУЧШАЯ, УЖЕ ЛУЧШАЯ
уф все ладно прошу не тереть
XGM Bot #6 - 18 часов назад 0
Похожие вопросы:

» ответ
вылет при попытке чтения данных абилки из таблиц, почему-то передали вместо ссылки на адрес уровня 0. ты нигде там не сломал ссылку на актуальный уровень? Там же перелинковка через каждые 0x60 - ссылка на адрес следущего уровня. возможно, нужный уровень был там, где почему-то в адресе осталось 0

3

Макс. кол-во звуков

» WarCraft 3
Можно ли каким-то образом увеличить максимальное количество одновременно воспроизводимых звуков? А то получается, что там - пару эффектов, тут - два, здесь - три, и звуки уже перестают воспроизводится, пока предыдущие не доиграют до конца.
ScopteRectuS #1 - 1 час назад 0
Hate, например, если так сделать:
function callback takes nothing returns nothing
    call DestroyEffect( AddSpecialEffect( effectPath, x, y )
endfunction

//  ....
    call TimerStart( timer, 0.10, true, function callback )
//  ....
То через некоторое время звуки эффекта "effectPath" перестанут воспроизводиться на некоторое время.
Hate #2 - 5 часов назад 2
а каким образом вы их воспроизводите?
ScopteRectuS #3 - 7 часов назад 0
up.
4

Jass: Ресурсы

» WarCraft 3
Как на Jass/e добавить ресурсов(Золото или Дерево) определенному игроку?
Daniil18 #1 - 3 часа назад 0
ты хочешь красному игроку дать ресурсы?
у него 0 номер. 0 - 1 игрок, 1 - второй, 2 - третий и тд
Verschlinger #2 - 3 часа назад 0
DracoL1ch:
SetPlayerState(Player(),PLAYER_STATE_GOLD,GetPlayerState(Player(),PLAYER_STATE_GOLD)+gold)
SetPlayerState(Player(),PLAYER_STATE_LUMBER,GetPlayerState(Player(),PLAYER_STATE_LUMBER)+gold)
чет он не хочет работать...
я ввел вместо голда количество требуемого ресурса
а в скобках после игрока номер игрока - 1.
DracoL1ch #3 - 19 часов назад 0
SetPlayerState(Player(),PLAYER_STATE_GOLD,GetPlayerState(Player(),PLAYER_STATE_GOLD)+gold)
SetPlayerState(Player(),PLAYER_STATE_LUMBER,GetPlayerState(Player(),PLAYER_STATE_LUMBER)+gold)
XGM Bot #4 - 22 часа назад 0
Похожие вопросы:

» ответ
Думал использовать чисто для экономии времени. По хорошему конечно надо самому написать системки, да все руки не доходят.
Может тогда подскажите, есть ли готовые более менее пригодные для использования. Сам всегда делал через торнадо, разве это уже не модно?
» ответ
По интернету полно гаидов по созданию карт - это Xgm, wc3maps, Hiveworkshop ( If you know English)
Если тебе нужен совет, заливай сюда-же в раздел вопросов, всегда помогут.
Учись на примерах: Вскрывай другие карты и смотри триггеры или потырь ланд.
И если честно то база знаний у нас на сайте подобрана лучше где еще либо, все по полочкам разложено.
» ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
» ответ
» ответ
Ige, потому что делал 2 сек после инициализация.... Так что выложу исправлений и оптимизированный мемхак с инициализацией...
PS Терь работает нормально при инициализация с мемхак
PSS Пользуйтесь на здоровье, планирую сделать набор для rpg с мемхак

1359

Заклинания на заказ

» WarCraft 3
Если вы хотели бы использовать в своей карте нестандартное, оригинальное заклинание, но у вас не хватает знаний для его реализации, то эта тема специально для вас. В данной теме вы можете оставить заявку на создание необходимого вам заклинания.

Читать далее...
Andrey33 #1359 - 4 часа назад 0
Название: Рваная Рана
Метод: GUI
MUI: обязательно
Цель: бнит
Количество уровней: 5
Наносит молниеносный удар,проворачивая оружие в ране и причиняя врагу сильнейшую боль.
Уровень 1 50% от силы в течении 6 секунд
Уровень 2 80% от силы в течении 6 секунд

Уровень 3 110% от силы в течении 6 секунд
Уровень 4 150% от силы в течении 7 секунд
Уровень 5 180% от силы в течении 8 секунд
372 ,

Хак на память Warcraft3

» WarCraft 3
Готовый для импорта Memory Hack от DracoL1ich

Читать далее...
ClotPh #366 - 6 часов назад 0
pro100master, ну то есть омоложение реген дает.
pro100master #367 - 6 часов назад 2
Тестировал просто его прибавяет значение регена а потом отнимут регена
ClotPh #368 - 8 часов назад 0
Эксплуататоры хреновы )
DracoL1ch #369 - 16 часов назад 0
понятия не имею, легко же тестится)
ClotPh #370 - 18 часов назад 0
DracoL1ch, ну апгрейдом понятно, идет.
А хил с заклинания? Если вот накинули омоложение, то его хил будет считаться хп регеном этого юнита на время действия омоложения?
DracoL1ch #371 - 19 часов назад 0
всё, что в игре идет как реген, пишется в регенерацию (капитан очевидность)
ClotPh #372 - 21 час назад 0
function GetUnitHPRegen takes unit u returns real
return GetUnitHPRegenForAddress(ConvertHandle(u))
endfunction
все давно хотелось спросить, что точно это считает
что поле из РО хп регена и что в него аналогичная функция пишет - это ок, давно понятно
а если там реген апгрейдом добавлен?
а если с ауры идет?
а если баффом каким-то?
а если какое-нить омоложение мишек лечит?
1

Как добавить музыку в mpq архив?

» WarCraft 3
Подскажите, возможно ли добавить музыкальные файлы в mpq архив так, чтобы они отображались в редакторе звука? Не используя импорт в карту
quq_CCCP #1 - 7 часов назад 0
TeX13, можно, правишь файл списка импорта в ручную. Там вроде формат простой,не то что *.doo файл.
War3map.imp можно править простым блокнотом, там просто список файлов с их путями через пробелы.
1

Power armor

» WarCraft 3
сделал броньку с забавным эффектом, а теперь вот не хватает воображения как это обыграть в игре.
Идея есть, что бы вовремя бега тратилась энергия армора, и герой останавливался на несколько секунд для подзарядки, вот как это на гуи сделать хз. Подскажите кто шарит.
quq_CCCP #1 - 8 часов назад 0
Ну сделай абилку, на ускорение, фонарик можно приспособить под детект инвизов (мин, скрытых предметов).
На гуи будет не очень, проси сделать Jass'еров.
7

Модель исчезает при приближении к краю экрана

» WarCraft 3
Делаю вид от первого лица, размещаю модель юнитом, но если камера не видит центр модели, то она тупо пропадает.
На скрине по краям должны быть стены.
FrigatPlay #5 - 21 час назад 0
Были и у меня такие модели в чем проблема так и не понятно просто некоторым моделям дано не исчезать а другим такого не дано.
DracoL1ch #6 - 1 день назад 0
>> Если не видно центр модели, то всю модель не показывает
да не вроде, а так. фикс мне неизвестен
Maniac_91 #7 - 2 дня назад 4
Если не видно центр модели, то всю модель не показывает. Вроде так.
1

Конверт модели M2 в mdx.

» WarCraft 3
Вставлю в Mdlvis и вот это это получается:
Что делать?
FrigatPlay #1 - 21 час назад 0
Скорее всего модель из версии WoW старше пылающего легиона для таких случае скачай 3Ds max и плагин Neodex и переведи модель в формат mdx.
1

Иниц. глоб. переменных

» WarCraft 3

В какой момент происходит инициализация подобных переменных?

	globals
		hashtable  hash  =  InitHashtable( )
		real       r     =  1.0
		trigger    trg   =  CreateTrigger( )
	endglobals
Я так понимаю, во время выбора карты в списке? Или из-за чего возникает кратковременный фриз во время выбора некоторых карт?
DracoL1ch #1 - 22 часа назад 0
при выборе карты идет проверка её кода, больше кода - больше лаг, + хештаблицы тоже создаются при выборе карты в лобби, если инициализация была в globals, за остальные объекты не скажу, не тестил
2

Пришествие Тьмы

» WarCraft 3
Дополнительная кампания повествующая о вторжении сил тьмы. (не связано с сюжетом Warcraft-а III)

Читать далее...
Я любимый #1 - 22 часа назад 0
Слишком мало описания, как по мне
Да и в общем по скринам выглядит не очень
Почти все на стандарте, а тот импорт, что есть, плохо вписывается
С мобилы, поэтому не могу скачать и посмотреть(
Лого просто афигенное (нет)
"Кровь" на третьем скрине глаз режет
Спасибо за критику, учту.
Bender2000:
Стоп, Матиас это же пацан из древней кампании
сфигали он из принца в "доверенного человека" превратился
Простите? Вы о чем? Я эту кампанию делал с нуля, вы явно, что то путаете. Имя Маттиас я выбрал рандомно, как и имена других персонажей и у моего персонажа в имени 2 т...
Bender2000 #2 - 23 часа назад (отредактировано ) 0
Слишком мало описания, как по мне
Да и в общем по скринам выглядит не очень
Почти все на стандарте, а тот импорт, что есть, плохо вписывается
С мобилы, поэтому не могу скачать и посмотреть(
Лого просто афигенное (нет)
"Кровь" на третьем скрине глаз режет
Стоп, Матиас это же пацан из древней кампании
сфигали он из принца в "доверенного человека" превратился
5

Краш Карты

» WarCraft 3
Помогите понять от чего краш карты. Пишет что нету слотов игроков, но этого не может быть! (краш при попытке запуска карты).
Из папки Эрора.........................
This application has encountered a critical error:

Читать далее...
Verschlinger #1 - 1 день назад 0
biridius:
скинь хоть сам файл ошибки, из папки Errors (в папке с варом) там текстовые файлы, найди с нужной датой/временем
иначе ничего не понятно
Может расскажите лучше как я сам с этим текстовым файлом смогу решить эту проблему)?
+ я там сверху кусок скинул
Кароче - вот

x86 Registers

EAX=00000000 EBX=00000000 ECX=0EEA0020 EDX=0EEAE0A8 ESI=001985EC
EDI=00000000 EBP=0EE70088 ESP=0019842C EIP=00000000 FLG=00010202
CS =0023 DS =002B ES =002B SS =002B FS =0053 GS =002B

Stack Trace (Manual)

Address Frame Logical addr Module
00000000 0EE70088 0000:00000000 C:\Program Files (x86)\WarCraft III - 1.26\war3.exe

Stack Trace (Using DBGHELP.DLL)

6F45862F Game.dll GameMain+4517343 (0x00000000,0x00000000,0x00000000,0x00000000)

Loaded Modules

0x00400000 - 0x0047D000 C:\Program Files (x86)\WarCraft III - 1.26\war3.exe
0x15000000 - 0x15061000 C:\Program Files (x86)\WarCraft III - 1.26\Storm.dll
0x21100000 - 0x2115F000 C:\Program Files (x86)\WarCraft III - 1.26\mss32.dll
0x22600000 - 0x22616000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mssfast.m3d
0x22700000 - 0x22717000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mssdolby.m3d
0x22C00000 - 0x22C18000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Msseax2.m3d
0x24600000 - 0x24611000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Reverb3.flt
0x26F00000 - 0x26F2A000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mp3dec.asi
0x60000000 - 0x6005D000 C:\Program Files (x86)\WarCraft III - 1.26\ijl15.dll
0x63EB0000 - 0x647DB000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\atiumdag.dll
0x647E0000 - 0x6487B000 C:\WINDOWS\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.9348_none_d08c1480442bf1e1\MSVCR​80.dll
0x64AC0000 - 0x64B4E000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.16299.64_none_2c284a81​17b59840\COMCTL32.dll
0x669D0000 - 0x66B4B000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\aticfx32.dll
0x66FB0000 - 0x66FD6000 C:\WINDOWS\SYSTEM32\cryptnet.dll
0x66FF0000 - 0x66FF6000 C:\WINDOWS\SYSTEM32\detoured.dll
0x67000000 - 0x67020000 C:\WINDOWS\SYSTEM32\amdihk32.dll
0x679C0000 - 0x679E7000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\atiu9pag.dll
0x67A80000 - 0x67A88000 C:\WINDOWS\SYSTEM32\AVRT.dll
0x67A90000 - 0x67AEB000 C:\WINDOWS\System32\MMDevApi.dll
0x67AF0000 - 0x67BE4000 C:\WINDOWS\SYSTEM32\AUDIOSES.DLL
0x67BF0000 - 0x67C12000 C:\WINDOWS\System32\DEVOBJ.dll
0x6C190000 - 0x6C1AE000 C:\WINDOWS\SYSTEM32\gpapi.dll
0x6C1B0000 - 0x6C1DF000 C:\WINDOWS\system32\rsaenh.dll
0x6C280000 - 0x6C30C000 C:\WINDOWS\SYSTEM32\CoreMessaging.dll
0x6C310000 - 0x6C544000 C:\WINDOWS\SYSTEM32\CoreUIComponents.dll
0x6C550000 - 0x6C5C7000 C:\WINDOWS\SYSTEM32\TextInputFramework.dll
0x6C5D0000 - 0x6C69E000 C:\Windows\System32\Windows.UI.dll
0x6E0D0000 - 0x6E19B000 C:\WINDOWS\SYSTEM32\wintypes.dll
0x6F000000 - 0x6FBB5000 C:\Program Files (x86)\WarCraft III - 1.26\Game.dll
0x70BB0000 - 0x70C66000 C:\WINDOWS\SYSTEM32\d3d8.dll
0x70DF0000 - 0x70DF8000 C:\WINDOWS\SYSTEM32\WINNSI.DLL
0x712B0000 - 0x7138F000 C:\WINDOWS\SYSTEM32\OPENGL32.dll
0x71C40000 - 0x71C65000 C:\WINDOWS\SYSTEM32\GLU32.dll
0x71C70000 - 0x71CF0000 C:\WINDOWS\SYSTEM32\DSOUND.DLL
0x72000000 - 0x72007000 C:\WINDOWS\SYSTEM32\d3d8thk.dll
0x726B0000 - 0x726D3000 C:\WINDOWS\system32\dwmapi.dll
0x72710000 - 0x72789000 C:\WINDOWS\system32\uxtheme.dll
0x72790000 - 0x72A54000 C:\WINDOWS\SYSTEM32\WININET.dll
0x72BE0000 - 0x72C35000 C:\WINDOWS\SYSTEM32\mswsock.dll
0x73980000 - 0x73AFA000 C:\WINDOWS\System32\PROPSYS.dll
0x73C50000 - 0x73C63000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll
0x73CE0000 - 0x73D08000 C:\WINDOWS\SYSTEM32\ntmarta.dll
0x73D10000 - 0x73D34000 C:\WINDOWS\SYSTEM32\dbgcore.DLL
0x73D40000 - 0x73EC1000 C:\WINDOWS\SYSTEM32\dbghelp.dll
0x73F30000 - 0x73F49000 C:\WINDOWS\SYSTEM32\bcrypt.dll
0x73F50000 - 0x73F80000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
0x74240000 - 0x74263000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
0x742D0000 - 0x742F4000 C:\WINDOWS\SYSTEM32\WINMM.dll
0x74370000 - 0x74378000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x743A0000 - 0x743A8000 C:\WINDOWS\SYSTEM32\VERSION.dll
0x743B0000 - 0x743BA000 C:\WINDOWS\System32\CRYPTBASE.dll
0x743C0000 - 0x743E0000 C:\WINDOWS\System32\SspiCli.dll
0x743E0000 - 0x74423000 C:\WINDOWS\System32\sechost.dll
0x74430000 - 0x74500000 C:\WINDOWS\System32\KERNEL32.DLL
0x74500000 - 0x74522000 C:\WINDOWS\System32\GDI32.dll
0x74530000 - 0x74575000 C:\WINDOWS\System32\SHLWAPI.dll
0x74580000 - 0x74587000 C:\WINDOWS\System32\NSI.dll
0x74590000 - 0x74767000 C:\WINDOWS\System32\KERNELBASE.dll
0x747D0000 - 0x748E7000 C:\WINDOWS\System32\ucrtbase.dll
0x748F0000 - 0x7496C000 C:\WINDOWS\System32\msvcp_win.dll
0x74970000 - 0x74AB4000 C:\WINDOWS\System32\MSCTF.dll
0x74AC0000 - 0x74ACE000 C:\WINDOWS\System32\kernel.appcore.dll
0x74AE0000 - 0x74B46000 C:\WINDOWS\System32\WS2_32.dll
0x74B50000 - 0x74CD2000 C:\WINDOWS\System32\CRYPT32.dll
0x74CE0000 - 0x74CEE000 C:\WINDOWS\System32\MSASN1.dll
0x74CF0000 - 0x74DAD000 C:\WINDOWS\System32\msvcrt.dll
0x74DB0000 - 0x74DF6000 C:\WINDOWS\System32\WINTRUST.dll
0x74E00000 - 0x74F5F000 C:\WINDOWS\System32\gdi32full.dll
0x74FC0000 - 0x762F3000 C:\WINDOWS\System32\SHELL32.dll
0x76360000 - 0x76457000 C:\WINDOWS\System32\ole32.dll
0x76460000 - 0x764B7000 C:\WINDOWS\System32\bcryptPrimitives.dll
0x764C0000 - 0x76538000 C:\WINDOWS\System32\ADVAPI32.dll
0x76540000 - 0x765C8000 C:\WINDOWS\System32\shcore.dll
0x765D0000 - 0x76816000 C:\WINDOWS\System32\combase.dll
0x76820000 - 0x768F4000 C:\WINDOWS\System32\comdlg32.dll
0x76900000 - 0x769BE000 C:\WINDOWS\System32\RPCRT4.dll
0x76F60000 - 0x76F74000 C:\WINDOWS\System32\profapi.dll
0x76FB0000 - 0x76FE8000 C:\WINDOWS\System32\cfgmgr32.dll
0x76FF0000 - 0x775B6000 C:\WINDOWS\System32\windows.storage.dll
0x775C0000 - 0x775D6000 C:\WINDOWS\System32\win32u.dll
0x775E0000 - 0x77755000 C:\WINDOWS\System32\USER32.dll
0x777F0000 - 0x77872000 C:\WINDOWS\System32\clbcatq.dll
0x77880000 - 0x778C5000 C:\WINDOWS\System32\powrprof.dll
0x778D0000 - 0x778F5000 C:\WINDOWS\System32\IMM32.dll
0x77900000 - 0x77993000 C:\WINDOWS\System32\OLEAUT32.dll
0x779A0000 - 0x77B2D000 C:\WINDOWS\SYSTEM32\ntdll.dll
дальше уже - Memory Dump
Так... Щас обнаружил что это у меня такая херня со всеми картами которые я сохранял в невгене... ВСЕ запутанее и странееее...
Проблема решилась переустановкой редактора повторным сохранением карты. Дело было в конфликте программы мусорщика ВСЕМ СПС.
biridius #2 - 1 день назад 2
скинь хоть сам файл ошибки, из папки Errors (в папке с варом) там текстовые файлы, найди с нужной датой/временем
иначе ничего не понятно
Verschlinger #3 - 1 день назад 2
quq_CCCP:
Еще 1, ни карты ни логов. Хрен знает, ясно одно что инструкция по адресу 000000 не может быть записана по адресу 000000, т.е где то нету обьекта.
Разбирайтесь.
Карту нидам. Сикретные разработки!!!
quq_CCCP #4 - 1 день назад 0
Еще 1, ни карты ни логов. Хрен знает, ясно одно что инструкция по адресу 000000 не может быть записана по адресу 000000, т.е где то нету обьекта.
Разбирайтесь.
XGM Bot #5 - 1 день назад 0
Похожие вопросы:

» ответ
Ethernet, причина в том что вар пытается читать null
это может происходить из-за
  1. кода
  2. ро
  3. моделей
  4. фазы луны
  5. проклятого места
  6. пола юзера
  7. сексуальной ориентации юзера
  8. пришельцев с альфа центавра
  9. пришельцев из другого времени
  10. пришельцев из параллельных миров
...
  1. любая другая причина
» ответ
проведя еще пару часов за тестами, в голову пришла мысль о фаталках из-за большого числа юнитов на мелководье
остановился на том, что ошибка вылетела из-за случайных точек спауна по квадрату на мелко-глубкоководной местности. сделал спаун в отдельных мини областях - ошибка исчезла
» ответ
MPQ Master'ом открывается
там и искать нужную модель и удалять
» ответ
Крашлог и карту желательно, мб где то пропустили скобку?

2

Как запретить юниту поднимать книжки?

» WarCraft 3
На картинке моя наработка, но на данный момент проблема одна, как определить что юнит обладает не абилкой (способности герой), а (способности рюкзак).
Alexey103 #1 - 1 день назад 0
ClotPh, На каждую книжку чтоли? Ну это вообще неочень, может есть хорошее условие всё-таки?
Всё решил проблему, поставил определение герой ли подбирающий юнит. Это тянет на наработку, моё решение на скрине.
прикреплены файлы
ClotPh #2 - 1 день назад 0
Проще сделать пустые руны, а при их поднятии проверять, герой ли поднял, если да - давать статы, если нет - камбекать деньги или предмет обратно ресоздавать
2

Как убить свои иллюзии?

» WarCraft 3
Решил сделать по больше иллюзий, причем их количество зависит от ловкости(100 ловкости = 1 двойник). Так вот. Как теперь удалить эти иллюзии при следующем использовании? Я подставил в триггер выбор всех юнитов типа юнита, который кастует иллюзию, принадлежащих этому же юниту и только если иллюзия. Но выходит, что иллюзии других игроков тоже исчезают. Как это можно исправить?
Zhan10 #1 - 1 день назад 0
>Я подставил в триггер выбор всех юнитов типа юнита, который кастует иллюзию, принадлежащих этому же юниту и только если иллюзия. Но выходит, что иллюзии других игроков тоже исчезают.
Я же сказал, что это не работает
quq_CCCP #2 - 1 день назад 0
Проверка GetOwnungPlayer(), или EnumUnitsOfPlayer для поиска иллюзий.
6

Как показать заклинаний нейтрального/союзного юнита при выборе

» WarCraft 3
Как можно реализовать возможность отображения заклинаний нейтрального/союзного юнита при выборе? То есть выбрал нейтрала/союзника. Им управлять нельзя, но панелька (нижняя правая) видна и можно посмотреть его заклинания.
indi689 #1 - 1 день назад 0
расшаренный курьер тебя не смущал, чтоли?
Курьер не так интригует, как возможность видеть способности неподконтрольного юнита ^_^
DracoL1ch #2 - 1 день назад 0
indi689:
хм, походу придется вернуться к первой идеи, поставить магазин с моделькой юнита с его заклинаниями. Но все-же любопытно, каким образом iccup в тестовой версии Defense of the Ancients добился отображения панели союзного героя. Неужели и вправду взяли мапхак и запилили свою dll?
уже года 4 как запилили? расшаренный курьер тебя не смущал, чтоли?
ClotPh #3 - 1 день назад 0
^ хм, тоже интересно, спс за инфу, запомню, буду узнавать новости
indi689 #4 - 1 день назад (отредактировано ) 2
хм, походу придется вернуться к первой идеи, поставить магазин с моделькой юнита с его заклинаниями. Но все-же любопытно, каким образом iccup в тестовой версии Defense of the Ancients добился отображения панели союзного героя. Неужели и вправду взяли мапхак и запилили свою dll?
quq_CCCP #5 - 1 день назад 0
Это делается в основном мапхаком, т.е шариш в исходниках мапхака эти адреса и пишиш туда нужные данные с помощью мемхака или пилиш dll которую подгружает вар (обычное мх).
ssbbssc #6 - 2 дня назад 0
с помощью мапхака)
а на деле, если будет видна панелька, что можно будет заабузить применение способностей
лечится проверкой приказа у юнита и выдачей своего, но не полностью
панель шарится выдачей способности магазина и будет доступна ВСЕМ игрокам
10 , ,

Опустошитель

» WarCraft 3
Опустошитель времён World of WarCraft: the Burning Crusade. Расцветок 10 вариаций.
Импортируемых текстур нет.

Читать далее...
Mistik3 #10 - 1 день назад 0
Nosferoh:
KingMaximax, у меня и конвертеров-то нет никаких. Я оптимизировал то, что нашёл на ХГМ.
Так скажи я тебе попробую достать .
8

Новости конкурса Арена Средиземья 2

» WarCraft 3
Свежие новости! Новая ПРИЗОВАЯ номинация! Продумай свою команду и отправь заявку - для участия больше ничего не надо! :)

Читать далее...
konvan5 #8 - 1 день назад 0
BattleMaster:
Когда стрим?
Дата и время стрима будет объявлена 1 числа (все зависит от кол-ва участников и объемов работ по загрузке отрядов в конкурсную карту)
2

Изменение скорости поворота юнита, триггерно.

» WarCraft 3
Здравствуйте, можно как-нибудь триггерно регулировать скорость поворота юнита? например, при активации "укрыться за щитом" юнит мог только бежать вперед, не имея возможности поворачивать.
quq_CCCP #1 - 1 день назад 0
ssbbssc, prop window это не угол поворота, это максимальная погрешность при которой будет считатся что юнит смотрит на цель, т.е тебе не надо чтобы кастануть шторм болт вставать лицом к цели, по дефолту достаточно окна в 60 градусов. Ах да, все нативки с этим параметром кроме GetDefautPropWindow работают с радианами, не забудьте это.
ssbbssc #2 - 2 дня назад 0
фиксировать угол при применении и постоянно выравнивать юнита при периодической проверке
если ставить скорость поворота 0 - у юнита начнутся проблемы с движением
8

Причины Fatal Erorr-ов?

» WarCraft 3
Создал карту. В одиночной игре проблем не возникало. Создал с хост-бота (по интернету) выдаёт Fatal Erorr и игра завершается.
Из-за чего эта ошибка может возникать? И как предотвратить?
quq_CCCP #8 - 1 день назад 0
Vlad-93, чувак слушай причин может быть овер дофига, карту, триггер в студию. Так можно долго гадать.