quq_CCCP, разве юнитов в паузе можно продамажить и вообще как-либо с ними взаимодействовать? + вроде таймеры баффов/дебаффов тоже паузятся вместе с юнитом. Если пауза на это не влияет, то зачем я морфил юнитов, станил их, отбирал абилку атаки ._.
Извиняюсь за некромантию, но мне сказали тут построить зиккурат
Смотрю никто так и не ответил на вопрос, хотя решение вроде бы простое
Вариантов много, но я решил через хэш-таблицу и сохранением предметов в юнита
код
define{void = nothing; int = integer; bool = boolean}
library mylib initializer init{
private hashtable H = InitHashtable()
private void act(){
unit u = GetSellingUnit()
int i = GetHandleId(u), c = 0, c1, c2 = 0
if !HaveSavedInteger(H,i,c){
BJDebugMsg("закончились итемы")
}else{
while HaveSavedInteger(H,i,c){c++; BJDebugMsg(I2S(c))}
c--; c1 = c; c = GetRandomInt(0,c)
AddItemToStock(u,LoadInteger(H,i,c),1,1)
RemoveSavedInteger(H,i,c)
if c != c1{
SaveInteger(H,i,c,LoadInteger(H,i,c1))
RemoveSavedInteger(H,i,c1)
}
}
u = null
}
private void save(){
int i = GetHandleId(GetEnumUnit())
SaveInteger(H,i,0,'spsh')
SaveInteger(H,i,1,'pmna')
SaveInteger(H,i,2,'penr')
SaveInteger(H,i,3,'ward')
SaveInteger(H,i,4,'ratc')
}
private bool cond(){return GetItemTypeId(GetSoldItem()) == 'I000'}
private bool cond1(){return !IsUnitType(GetFilterUnit(),UNIT_TYPE_DEAD) && GetUnitTypeId(GetFilterUnit()) == 'ngme'}
private void init(){
trigger t = CreateTrigger(); int i = 0; group g = CreateGroup()
while i < 16{
TriggerRegisterPlayerUnitEvent(t,Player(i++),EVENT_PLAYER_UNIT_SELL_ITEM,null)
}
TriggerAddCondition(t,Condition(function cond))
TriggerAddAction(t,function act)
t = null
GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea,Condition(function cond1))
ForGroup(g,function save)
GroupClear(g); DestroyGroup(g); g = null
SetPlayerState(Player(0),PLAYER_STATE_RESOURCE_GOLD,99999)
}
}
В чём суть: если у юнита нет сохраннёного айди итема в первой ячейке, значит все рандомные предметы уже выпали, выскакивает надпись, что они закончились
иначе - идёт подсчёт кол-ва оставшихся предметов, среди них выбирается рандомный, он добавляется в магазин и удаляется из хэша юнита, последний из списка предмет переносится на место удалённого, последнее место так же удаляется
это можно на гуи сделать, но я никогда не юзал там хэш-таблицу, так что сорян))
Я пробовал уже сделать автокаст для канала, но вышло очень мягко говоря хреново. Надо выбирать юнитов, которые могут кастануть абилку, а потом надо сделать проверку на наличие рядом вражеских живых юнитов, а потом нужно самого раненного/ближнего юнита выбрать, и потом уже кастануть на него абилку
ах, да, раз уж ты начинающий, то попробуй хотя бы пару гайдов на Ютубе по редактору посмотреть, сам начинал с этого. А когда насмотришься, можешь почитать статьи на хгм
FriendlyGuest, потерянное здоровье криво будет выводиться, потому что для этого нужен таймер, а за его время может подключиться ещё какой-нибудь источник урона помимо молота, + хил
Можно было бы проверять дамажущего юнита, у которого молот бурь, но там тоже фигня произойдёт, поэтому лучше сделать снаряд через даммика, и если даммик продамажил, то выводить текст
Урон наноситса корректно
если у тебя там анимация с движением снаряда, то оно не может корректно нанестись)
урон от твоего триггера раньше нанесётся, чем ударит молот бурь
upd если там конечно не овер 9999 скорости снаряда, что глазом не заметишь)
Замена фигня, морф через руну юзай, ибо замену можно будет абузить, например, кинули какой-нибудь бафф/дебафф на юнита - он пропадёт
Да и если у тебя будут триггеры, регистрирующие вход юнита на карту - они повторно сработают
upd и во всех действующих триггерах, где нужен был старый юнит, произойдёт сбой
» WarCraft 3 / Как настроить такой триггер?
Ред. rsfghd
» WarCraft 3 / Переменный юнит и предмет выпадающий с него
» WarCraft 3 / Как создать способность
» WarCraft 3 / РУ ЭДитор
реф
Ред. rsfghd
» WarCraft 3 / Как создать способность
» WarCraft 3 / Добавление и удаление предметов из списка
Смотрю никто так и не ответил на вопрос, хотя решение вроде бы простое
Вариантов много, но я решил через хэш-таблицу и сохранением предметов в юнита
иначе - идёт подсчёт кол-ва оставшихся предметов, среди них выбирается рандомный, он добавляется в магазин и удаляется из хэша юнита, последний из списка предмет переносится на место удалённого, последнее место так же удаляется
» WarCraft 3 / Не отображаются модели
Наверное варик просто прикалывается
» WarCraft 3 / Не отображаются модели
Можно попробовать переимпортировать все модели заново
Ред. rsfghd
» WarCraft 3 / Автокаст прожимных навыков
Ред. rsfghd
» WarCraft 3 / Извинити последний раз
» WarCraft 3 / Автоматическое включение "Взорвать"
» WarCraft 3 / Ресурсы карт
я лишь предложил упрощение жизни
» WarCraft 3 / Извинити последний раз
» WarCraft 3 / Извинити последний раз
» Мир безумного / WarThunder - «Удар копья»
» Блог им. rsfghd / Брух
» WarCraft 3 / Проблема с озвучкой
» WarCraft 3 / Как сделать всплывающий урон от такой способности?
» WarCraft 3 / Проблема с озвучкой
» WarCraft 3 / Проблема с озвучкой персонажа
» WarCraft 3 / Текстура молний
» WarCraft 3 / Как сделать книгу профессий?
» WarCraft 3 / Ресурсы карт
Совсем недавно появился русификатор для рефа, у меня рефа, конечно же, нет, но тебе, вероятно, поможет)
» WarCraft 3 / Как сделать всплывающий урон от такой способности?
Можно было бы проверять дамажущего юнита, у которого молот бурь, но там тоже фигня произойдёт, поэтому лучше сделать снаряд через даммика, и если даммик продамажил, то выводить текст
урон от твоего триггера раньше нанесётся, чем ударит молот бурь
Ред. rsfghd
» WarCraft 3 / Как сделать книгу профессий?
Да и если у тебя будут триггеры, регистрирующие вход юнита на карту - они повторно сработают
upd и во всех действующих триггерах, где нужен был старый юнит, произойдёт сбой