Мне нужна система на GUI,Ну или если нет на GUI то JASS,которая при вводе в чат -spawn (ID Unit),заспавнит рядом с выделенным юнитом того кого ввёл по ID!?

Принятый ответ

Slashur, вы даете
call CreateUnitAtLoc(GetTriggerPlayer(), udg_ItemID, udg_temp_point, 0)
изменяете на
call CreateUnitAtLoc(GetTriggerPlayer(), udg_ItemID, udg_temp_point, 270)
всего 1 строчку. всего 1 аргумент. с нуля на 270 поменял и все. стандартное ориентация зданий = 270 град, записана в переменную.
хотел чтобы вы сами помучались. пробуй брать гуи,конвентировать в код. сравнивали. пример
статьи читали бы.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
27
6 лет назад
Отредактирован MpW
0
а выше скинул ссылку на карту с равкодом ID
карта с равкодом ID вводишь например "-hfoo" и спавнится пехотинец. Вводишь "-Hpal" создается герой паладин. Тут не только равкод можно юнита, но и итема, декора. Только надо брать соответствующую функцию, типа CreateItem для предмета или CreateUnit для юнита. Немного ту карту редакт с пояснениями, а то там может быть непонятно.
пример со строками вводишь в чат название юнита. Например: "-spawn Пехотинец", и вам спавнится пехотинец.
Загруженные файлы
2
21
6 лет назад
2
Slashur, с id просто не надо бд мутить но так всем, кто будет пользоваться, надо все id помнить
что проще запомнить - id или осмысленное название?
это как раз тот случай, когда бд оправдана
upd: а, да, выше примерно про то же вот написали
кстати, в Battle for Souls такое используется, но там не ид хотя бы, а номер
и неплохая идея и имена использовать, да, позже как альтернативу
0
26
6 лет назад
0
ClotPh, а как автоматически БД сделать, чтобы не руками название каждого юнита вводить?
3
25
6 лет назад
Отредактирован Jack-of-shadow
3
8gabriel8:
ClotPh, а как автоматически БД сделать, чтобы не руками название каждого юнита вводить?
Слк скриптом разбирать.
Либо закинуть всех нужных юнитов на карту. Выбрать группу и для каждого
SaveInteger (hash, BdNameHandle,StringHash(GetUnitName(u)), GetUnitId())
Сохранить прелоадом в текстовик.
тип того:
cjass
nothing PreloadAddString (string unitname, string unitid, ){
Preload ("SaveInteger (hash,BdNameHandle,StringHash("unitname"),"unitid")" )
}
nothing SaveUnitName (){
unit u = GetFilterUnit()
PreloadAddString (GetUnitName(u), I2S(GetUnitId(u)))
}
nothing SaveUnitsName () {
ForGroupBJ( GetUnitsInRectAll(GetPlayableMapRect()), function SaveUnitName )
PreloadGenEnd (path)
PreloadGenClear()
}
0
21
6 лет назад
0
8gabriel8, ну вот именно это как раз тот случай где имхо и руками можно и всех новых тоже руками только пометку сделать чтобы не забыть
хотя в идеале конечно вообще вот как-то через мемхак по id имя боевой единицы считывать, оно же есть в РО
1
25
6 лет назад
Отредактирован Jack-of-shadow
1
поправочка, I2S забыл. теперь вроде должно сработать. Для сохранения нужно включить доступ к локальным файлам и указать переменные :
YourHash
YourBdHandle
YourFolderPath

vjass
nothing PreloadAddString (string unitname, string unitid, ){
Preload ("SaveInteger ("+YourHash+,+YourBdHandle+",StringHash("+unitname+"),"+unitid+")") 
}

nothing SaveUnitName (){
 unit u = GetFilterUnit()
 PreloadAddString (GetUnitName(u), I2S(GetUnitId(u)))
}

nothing SaveUnitsName () { 
  ForGroupBJ( GetUnitsInRectAll(GetPlayableMapRect()), function SaveUnitName ) 
  PreloadGenEnd (YourFolderPath)
  PreloadGenClear() 
}
0
26
6 лет назад
0
А если не slk разбирать и не на карту всех ставить, а вообще универсальный триггер? Пусть даже триггер этот какое-то время займёт в самом начале карты. Типа делаем перебор равкодов, всего это 26 букв латиницы в строчном и прописном виде и цифры, то есть 62 разных символа в четвёртой степени, получается 62х62х62х62=14.776.336 вариантов, из них лишь часть юнитов, остальное предметы, разрушаемые объекты, способности и прочее. Каким условием проверить, что равкод принадлежит юниту?
1
28
6 лет назад
1
ClotPh:
Уверен, что именно по ID лучше? Может, удобнее бд сделать и, скажем, через -spawn Драконид спавнить драконида и т. п.?
Вообще, есть функция CreateUnitByName.
native          CreateUnit              takes player id, integer unitid, real x, real y, real face returns unit
native          CreateUnitByName        takes player whichPlayer, string unitname, real x, real y, real face returns unit
native          CreateUnitAtLoc         takes player id, integer unitid, location whichLocation, real face returns unit
native          CreateUnitAtLocByName   takes player id, string unitname, location whichLocation, real face returns unit
native          CreateCorpse            takes player whichPlayer, integer unitid, real x, real y, real face returns unit
0
7
6 лет назад
0
ClotPh:
Slashur, с id просто не надо бд мутить но так всем, кто будет пользоваться, надо все id помнить
что проще запомнить - id или осмысленное название?
это как раз тот случай, когда бд оправдана
upd: а, да, выше примерно про то же вот написали
кстати, в Battle for Souls такое используется, но там не ид хотя бы, а номер
и неплохая идея и имена использовать, да, позже как альтернативу
на русском если Пехотинец написать пойдет,в игре сработает?
0
25
6 лет назад
Отредактирован Jack-of-shadow
0
< 8gabriel8:
Каким условием проверить, что равкод принадлежит юниту?
Если для бд, без выставления юнитов на карту, то спавнить все подряд, все 14 лямов)) потом енум юнитов и сейв
0
7
6 лет назад
0
Steal nerves:
а выше скинул ссылку на карту с равкодом ID
карта с равкодом ID вводишь например "-hfoo" и спавнится пехотинец. Вводишь "-Hpal" создается герой паладин. Тут не только равкод можно юнита, но и итема, декора. Только надо брать соответствующую функцию, типа CreateItem для предмета или CreateUnit для юнита. Немного ту карту редакт с пояснениями, а то там может быть непонятно.
пример со строками вводишь в чат название юнита. Например: "-spawn Пехотинец", и вам спавнится пехотинец.
мне нужен спавн рядом с юнитом которого я выделил!
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.