Вообще-то можно и триггерно, но лучше через орчью абилу тёмный. При добавлении изменяет на нужную модель с характеристиками, чтоб вернуть -удаляем абилу тёмный и все сбрасывается. Можно базу данных с помощью этой абилы сделать, если делать по аналогии как с курицой из доты
Минусов много если делать триггерно (там удаляется юнит и создаётся новый):
ReplaceUnit утечна - не обнуляется локалка
опыт, здоровье и прочее сбрасываются, надо триггерно поправлять
все заклинания (баффы) которые висели на юните сбрасываются - очень плохо
предметы тоже теряются, ещё надо по слотам разложить как было
Тут потребуется сделать все заклинания полностью триггерно - тогда можно будет вычислить все что угодно. Плюсы от этого больше, можно будет регулировать урон от способностей как хочется. Я такую пишу щас для своей. Кстати я когда делал способности пассивные через отлов, сделал много тестов, и выводов, о которых я даже не задумывался так далеко xgm.guru/forum/showthread.php?t=59760 вдруг пригодится вам.
) одна гуичная команда wait (TriggerSleepAction) работает только в действии триггера, в любом другом куске кода работать не будет, даже в условии.
TriggerSleepAction паузит действие триггера, останавливает (замораживает) поток, поэтому в циклах вреда больше. Проще было запустить несколько отдельных таймеров в циклах
он работает медленнее и дольше, там секунды игровые, точнее не точные, и поэтому указанное время будет отличаться от реального времени (время сложно поймать)
если что-то пойдет не так, будет сложно остановить запуск через n секунд (короче очень сложно будет прервать поток через вейт, а вот через таймер - этот таймер можно запаузить и удалить, хотя можно в гуи кучу конструкции с условиями заранее наделать, но согласитесь не выгодно)
я хотел спросить. Вот xgm.ru/user/DaeDR Даедр пропал, не отвечает, в инфе написано что его нет давно. Я иногда наблюдаю за ним. А активность зашкаливает, дальше больше моей.
nvc123, не согласен насчет глобалок-групп)) это как мапмейкер напишет код, все зависит от этого. они плохи когда во времени (то ту и локалки нужны), а если мгновенное действие как сейчас то так вряд ли. машина очень быстро совершает все операции. В чем смысл пересоздавать локалки и группы? мне не жалко памяти, решать автору.
короче я такие глобалки использую обычно для мгновенных операции, как сейчас.
CaptainFox, скачай JNGP., там есть библиотека функции. я так и не понял сам что ты хочешь. Так написано, что ничего не понял
вообще в функции условие (я про фильтр) не утекает, все правильно. nvc123 все написал.
Единственное, что я бы убрал это true, ведь от этого ничего не потеряешь.
И заменил бы GetOwningPlayer(GetTriggerUnit()) на GetTriggerPlayer(), а лучше на глобальную темповую переменную типа игрок.
есть другая функция, более удобная, я больше этой пользуюсь, короче переделал на
function Trig_TR_F01 takes nothing returns boolean
return((IsUnitEnemy(GetFilterUnit(), GetTriggerPlayer()))
endfunction
теперь оптимизирует действие. Отказываемся от точки, и пользуется координатами
function Trig_TR_Actions takes nothing returns nothing
local group g = CreateGroup()
local boolexpr f=Condition(function Trig_TR_F01)
call GroupEnumUnitsInRange(g, GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()), 350.00, f)
call DestroyBoolExpr(f)
call DestroyGroup(g)
set g=null
set f=null
endfunction
можно даже отказаться от локалки, так как локалки не всегда хороши. берем варварскую переменную, которая вшита в варе. я взял переменную последняя созданная группа
function Trig_TR_Actions takes nothing returns nothing
local boolexpr f=Condition(function Trig_TR_F01)
set bj_groupLastCreatedDest= CreateGroup()
call GroupEnumUnitsInRange(bj_groupLastCreatedDest, GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()), 350.00, f)
call DestroyBoolExpr(f)
call DestroyGroup(bj_groupLastCreatedDest)
set f=null
endfunction
кстати можно и не пересоздавать каждый раз группу, а один раз создать. А просто чисти группу GroupClear(bj_groupLastCreatedDest)
насчет boolexpr говорят что унчтожать их не нужно, так как не утекают они. Я сам не в курсе
статья гуд. Я не люблю старкрафт 2 по многим причинам. Возможно повзрослел.
Лаги. Поиграл в кампанию за протосов (любимую расу), играл в одну миссию, она глючить начала. Очень долго грузится иногда.
Мне не понравились промежуточные кампании, где ты бегаешь по кораблю и так далее. Не вдохновило.
Мне не нравится качать весом 200 мб одну карту
Эта игра для меня платная. Но не знаю как сейчас, но тогда мне это очень не понравилось. И не нравилось, что хорошие игры требуют подключения к интернету, и вдобавок они стоят много денег.
Я занимался варкрафтом очень долгое время и знаю как это затягивает. Тем более требует заново обучаться новому
nvc123, там у модели анимации кучу. Понятно что каждая что-то делает. Я не хочу камеру прикреплять к юниту. Я делаю по-другому юнита к камере игрока крепить буду. И кажется я понял отчего он так делает. Некрасиво движется даже 0.0001 секунд nvc123, ну вырвать дерево - это для отображения текстуры. Вырываешь и тебе показывают текстуру декорации, это для кнопки. Еще там используют сфинк для высоты - в принципе удобно, тогда в декор не проваливается
Народ, я вот делал заклинания и предметы-сферы. Так вот я думал как отобразить коэффициенты от магии типа от огня, воды, и молнии. Я хотел сделать типа что-то вроде мультиборда в левом углу. Нажимаешь на кнопку и отображаться тексты с доской. А потом что-то захотел сделать свою систему DGUI. Я поковырялся в DGUI и ничего не понял поначалу из-за vjass. Очень близок мне cjass, но это ни в какое сравнение, у меня он не запускается. В принципе ничего сложного на вид, аргументы вставил все. Тогда я решил написать свой DGUI на своем. Я разобрался во многом (декоры - там блокираторы и текстуры, для чего нужна способность вырвать дерево, и многое чего), но кроме матриц. Пока не могу понять как модель джона юзать
Народ когда вы пишите коды. Очень не удобно когда весь код разбит по частям (одна часть тут, вторая там, третья тут, четвертая, очень тяжело разобраться что делает), я люблю когда все в одном или во обоих триггерах лежат. В принципе я уже думаю коды абилок переписать на удобный мне вариант (а вообще лучше я свое написал бы), хотя посмотрим
У меня в принципе нет особого желания делать, ленюсь, одному не интересно делать. Я кажется повзрослел. Но не могу четко сказать что не хочу. Могу месяц отдохнуть от вара и потом в варик делать эту мапу. Может карты открытые в барахолку выставить, кто хочет доделает. Да я думаю это никому не надо. Что форумчане думают?
Надо бы сейчас сделать все что в планах (за исключением АИ и способностей, это можно уже потом сделать), тогда вообще будет может поделать что-то
создать удобную систему скрещивания предметов (с рунами), складывания зарядов предметов (тоже расчитываем на руну). То есть расчитываю в игре сделать почти все на рунах, чтобы у игрока было больше времени (даже если полон инвентарь, то можно скрестить или сложить заряды при подборе рун)
добавить много различных уникальных предметов
Сферы. Хотел сделать различные сферы, каждая сфера будет улучшать урон конкретной магии. К примеру сфера яда магию природы, сфера огня магю огня, сфера льда магию воды и льда, сфера молнии электрическую атаку. Есть заклинания, которые не относятся из одному из перечисленных типов, ну есть идея делать общие. Чем больше зарядов, тем выше урон наносимой магии, и больше зарядов - тем меньше перезарядка способностей.
=======Нейтралы=======
Сделать новую систему респа нейтралов. Я хотел бы, чтобы эта система сочиталась с уровнями героев на карте, и возможно с предметами.
=======Наемники=======
Повышение уровня обычных наемников при убийстве юнитов. Расчитываю при повышении сделать без лагов так, чтобы урон, хп, мана, регенерация, защита повышались.
=======АИ-Боты========
Улучшить взаимодействия союзников друг с другом. Хочу разделить на два отряда: защиты и нападения на каждого бота. Хочется увеличить для нежити варианты действия, сделать более непредсказуемым (скажем на одно условие имеем 10 и более действии, согласитесь такой вариант интереснее?) Легче всего решить проблему с нежитью, с ИИ ботами союзников сложнее. Пока я думаю как это сделать.
=======Способности======
Щас пока делаются еле-еле. У меня пока нет идеи (фантазии) как сделать, да и времени тоже нет, лень иногда. Вернее с фантазией туго. Но пока щас решаю другие проблемы. Я думаю первое время будет пока старые абилки из Necris 0.84 (у меня есть копия карты автора). Потом сделаю задуманное, придумаю и реализую новое. Сейчас что отталкивает, так это код автора. Немного не разобраться, и очень для меня не удобно (написано на cjass). Думаю что когда закончу с выше перечисленным, стоит ли переписать код под себя? Я хотел бы получить помощи от вас в реализации абилок. Со временем я их буду заменять
Хотелось бы реализовать нормальную систему прокачки абилок. Чего стоило отказаться? это конечно зависимость от древесины. Лишних отдельных даймиков. Я вот хочу еще одновременно управлять героем. И вернуть красный крестик с зарядами. Я дискутировал с автором и нашли идеальное решение этой проблемы. Конечно пока она недоработана.
======Квесты и ловушки=======
переписано коды на квесты.
Реализовано:
Оптимизирован код. Убрано много лишнего, впрочем очень много лишних квестов, одинаковых событии, функции, и лишних переменных. Очень люблю почему то этим заниматься. Было доработано много недочетов.
добавлены руны к предметам.
исправлена ошибка, когда при покупке предмета не вашего класса, снимались деньги.
Одновременная покупка. Теперь есть возможно закупать юнитов издалека, и покупать предметы герою, не зависимо от того что покупает/улучшает союзник-бот там. Раньше это мешало.
Я решил дать выбор расы, а следовательно выбирать интерфейс для игрока
BruceWillisss, нет, домик не неуязвим, а просто у него брони до фига, и поэтому никто и не может нанести урон, но домик может быть атакован. Что приходится бегать - отбиваться. Кстати монстры очень слабые, почему то когда я беру прокаченного покемона 50 лв, и мне хочется взять какого-нибудь покемона в покебол, то моя жертва умирает раньше, не успев запихнуть. Так надо конечно бы уравнять всех монстрах в лв. Кстати Marowak это не конечная форма, в мультиках был покемон и побольше был.
Можно было бы сделать так еще с выбором имеющего покемона: Если покемона обратно в покебол запихивают, можно было бы этого героя-покемона передать нейтральному игроку, ну чтобы на экране не заграждали иконками героев.
Многие абилки покемонов вообще при изучении не имеют описания. Также почему я не могу найти пикачу? и еще я хотел бы иметь больше 6 покемонов, разве нельзя так сделать? Немного скучновато играть, абилки не соответствуют к многим способностям покемонов. И вам бы стоило сделать кампанию про покемонов, переходишь из одной карты - переход в другой регион. Еще раздражаешь домик, который ты построишь, в итоге все, кому не лень, начинают бить это сооружение, а предупреждения бесят что оно атаковано.
Оптимизировал, убрал лишнее, добавил много чего. Теперь не лагает больше ничего, теперь самому нравится, приятно играть. Осталось скиллы добавить/доделать и интеллект АИ ботам, еще предметы (от них какие-то ошибки сыпаются). Вот союзников подтянул, что теперь нежить немного выглядит слабенькой. Исправлять ошибки АИ ботов - страшная штука, очень трудно обычно взяться за это дело. Я думаю не скоро выйдет то сама карта, может вообще не выйти
Вот как интересная идея. Еще знаете, возможно интереснее было бы, если бы еще слухи расползались. Например кто-то узнает, что кто-то что сделал что-то (а вероятнее всего это вы, а хотелось чтоб кроме вас еще кто-то делал, обычно если это кто-то другой, так винят другого, а так хотелось что и в вас заподозрили. Но чаще это вы, кто кроме вас может сделать, да никто, обычно вы и определяете судьбу игр, подобно игре в Готике 3). То была возможность распознать и так далее. Тоже вероятность. Короче предупредить НПС персонажей или стражей других городов (или этого города), и так далее. Чем больше кражей, тем сильнее город поставлен на уши в краже. Если ты прокололся или попался, то хотелось бы чтоб слухи расползались и дальше, но с какой то вероятностью, но с меньшей. Также еще можно систему слухов и в других ситуации применить. Например что вы герои и так далее. Было б интересно. А то персонажи какие сухие.
Мне вот интересно, когда еще делают так что скажем жители в городе делают свои дела, а ты там пробегаешь и они тебе говорят. Или скажем пробегают детишки и начинают передразнивать. Хотелось чтобы и слухи дополняли это с игрой. Также и репутация герою надо бы. хотя это очень бы подогрело мой интерес к игре.
Ред. MpW
» WarCraft 3 / Помощь с триггерами
Минусов много если делать триггерно (там удаляется юнит и создаётся новый):
Ред. MpW
» WarCraft 3 / Отследить тип урона
» WarCraft 3 / Disconnect игроков
https://www.xgm.guru/forum/showthread.php?t=57352
https://www.xgm.guru/forum/showthread.php?t=56506
https://www.xgm.guru/forum/showthread.php?t=54932
» WarCraft 3 / Лечение
» Администрация XGM / неправильно отображается активность
Ред. MpW
» WarCraft 3 / Condition и её аргумент
короче я такие глобалки использую обычно для мгновенных операции, как сейчас.
Ред. MpW
» WarCraft 3 / Condition и её аргумент
Единственное, что я бы убрал это true, ведь от этого ничего не потеряешь.
И заменил бы GetOwningPlayer(GetTriggerUnit()) на GetTriggerPlayer(), а лучше на глобальную темповую переменную типа игрок.
return ( IsPlayerEnemy(GetTriggerPlayer(), GetOwningPlayer(GetFilterUnit())) )
endfunction
function Trig_TR_F01 takes nothing returns boolean
return((IsUnitEnemy(GetFilterUnit(), GetTriggerPlayer()))
endfunction
function Trig_TR_Actions takes nothing returns nothing
local group g = CreateGroup()
local boolexpr f=Condition(function Trig_TR_F01)
call GroupEnumUnitsInRange(g, GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()), 350.00, f)
call DestroyBoolExpr(f)
call DestroyGroup(g)
set g=null
set f=null
endfunction
можно даже отказаться от локалки, так как локалки не всегда хороши. берем варварскую переменную, которая вшита в варе. я взял переменную последняя созданная группа
local boolexpr f=Condition(function Trig_TR_F01)
set bj_groupLastCreatedDest= CreateGroup()
call GroupEnumUnitsInRange(bj_groupLastCreatedDest, GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()), 350.00, f)
call DestroyBoolExpr(f)
call DestroyGroup(bj_groupLastCreatedDest)
set f=null
endfunction
Ред. MpW
» WarCraft 3 / ИИ или ходьба
Ред. MpW
» WarCraft 3 / Texttag не исчезает
set bj_lastCreatedTextTag = CreateTextTag()
call SetTextTagTextBJ(bj_lastCreatedTextTag,text,size)
call SetTextTagPosUnitBJ(bj_lastCreatedTextTag,u,0.00)
call SetTextTagColorBJ(bj_lastCreatedTextTag,red,green,blue,alpha)
call SetTextTagPermanent(bj_lastCreatedTextTag,false)
call SetTextTagFadepoint(bj_lastCreatedTextTag,2)
call SetTextTagLifespan(bj_lastCreatedTextTag,4)
call SetTextTagVelocity(bj_lastCreatedTextTag,0.,0.027)
endfunction
а SetTextTagVelocity заставляет текст двигаться по оси x и y
» WarCraft 3 / Condition и её аргумент
call DestroyBoolExpr(filter)
Ред. MpW
» StarCraft 2 / Создаем предметы для новичков
Ред. MpW
» WarCraft 3 / Как спрятать полоску здоровья у юнитов
Ред. MpW
» Necris / Necris
nvc123, ну вырвать дерево - это для отображения текстуры. Вырываешь и тебе показывают текстуру декорации, это для кнопки. Еще там используют сфинк для высоты - в принципе удобно, тогда в декор не проваливается
Ред. MpW
» Necris / Necris
» Necris / Necris
» Necris / Necris
Ред. MpW
» Necris / Necris
Надо бы сейчас сделать все что в планах (за исключением АИ и способностей, это можно уже потом сделать), тогда вообще будет может поделать что-то
Ред. MpW
» Necris / Necris
=======Предметы=======
Щас пока делаются еле-еле. У меня пока нет идеи (фантазии) как сделать, да и времени тоже нет, лень иногда. Вернее с фантазией туго. Но пока щас решаю другие проблемы. Я думаю первое время будет пока старые абилки из Necris 0.84 (у меня есть копия карты автора). Потом сделаю задуманное, придумаю и реализую новое. Сейчас что отталкивает, так это код автора. Немного не разобраться, и очень для меня не удобно (написано на cjass). Думаю что когда закончу с выше перечисленным, стоит ли переписать код под себя? Я хотел бы получить помощи от вас в реализации абилок. Со временем я их буду заменять
переписано коды на квесты.
» Amazing Pokemon World / Amazing Pokemon World
Можно было бы сделать так еще с выбором имеющего покемона: Если покемона обратно в покебол запихивают, можно было бы этого героя-покемона передать нейтральному игроку, ну чтобы на экране не заграждали иконками героев.
» Amazing Pokemon World / Amazing Pokemon World
» Necris / Necris
Ред. MpW
» Necris / Necris
» Блог Кета Голосова / Воровство в RPG
Мне вот интересно, когда еще делают так что скажем жители в городе делают свои дела, а ты там пробегаешь и они тебе говорят. Или скажем пробегают детишки и начинают передразнивать. Хотелось чтобы и слухи дополняли это с игрой. Также и репутация герою надо бы. хотя это очень бы подогрело мой интерес к игре.
» Necris / Necris
» Necris / Necris