Вот гайд https://customgames.ru/tutorial/panorama-sozdaem-prostuyu-knopku .
Вообщем хочу переделать эту кнопку под пик, что я делаю.Иду в луа,и js.
Значит для начала, как типичный ноунейм в программировании и языке луа. Беру и ставлю у команды
PlayerResource:ReplaceHeroWith(v, "npc_dota_hero_night_stalker", 0, 0)
Как айди игрока ставлю v и что же происходит, кажется, что все работает ,но нет у нас ещё и пишеться по мимо айди игрока ещё и эта строчка из js. Казалось бы удалил её и все но это слишком просто. Тут в моей голове пришло 2 варианта норм изучуть for и pairs из луа, либа юзать что нибудь другое. Пока остановился на 1.Пошел гуглить pairs lua. Вот что я нашел http://www.lua.ru/doc/5.1.html
pairs (t)
Возвращает три значения: функцию next (результат вызова, примечание переводчика), таблицу t, и nil, поэтому конструкция
for k,v in pairs(t) do body end
будет выполнять итерацию по всем ключевым парам таблицы t.
См. предупреждения для функции next если Вы хотите в процессе итерации модифицировать таблицу.
И брат этой функции
ipairs (t)
Возвращает три значения: итератор, таблицу t, и 0, поэтому конструкция
for i,v in ipairs(t) do body end
будет выполнять цикл парами (1,t[1]), (2,t[2]), ···, до первого целого ключа, отсутствующего в таблице.
И вижу я, что у ipairs есть массив, но не знаю ,как его сюда написать заместо v...
PlayerResource:ReplaceHeroWith(v, "npc_dota_hero_night_stalker", 0, 0)
Вот такой вопрос ноунейма в луа, подскажите плз
Вообщем хочу переделать эту кнопку под пик, что я делаю.Иду в луа,и js.
Код:
function onBtnTestClick(event){
$.Msg("onBtnTestClick") // вывод в консоль
var plyID = Game.GetLocalPlayerID(); // Game - глобальная штука, смотри API JS
var data = { // Обьект для передачи в Луа
playerID: plyID,
msg: event // аргумен, который указывали в хмл onactivate="onBtnTestClick('myArgument')
}
// кладем "придуманное_имя_события" и наш обьект
GameEvents.SendCustomGameEventToServer( "event_test", data );
}
Код:
function GameMode:OnTest( keys )
for k,v in pairs(keys) do
print(k,v)
PlayerResource:ReplaceHeroWith(v, "npc_dota_hero_night_stalker", 0, 0)
end
end
PlayerResource:ReplaceHeroWith(v, "npc_dota_hero_night_stalker", 0, 0)
Как айди игрока ставлю v и что же происходит, кажется, что все работает ,но нет у нас ещё и пишеться по мимо айди игрока ещё и эта строчка из js. Казалось бы удалил её и все но это слишком просто. Тут в моей голове пришло 2 варианта норм изучуть for и pairs из луа, либа юзать что нибудь другое. Пока остановился на 1.Пошел гуглить pairs lua. Вот что я нашел http://www.lua.ru/doc/5.1.html
pairs (t)
Возвращает три значения: функцию next (результат вызова, примечание переводчика), таблицу t, и nil, поэтому конструкция
for k,v in pairs(t) do body end
будет выполнять итерацию по всем ключевым парам таблицы t.
См. предупреждения для функции next если Вы хотите в процессе итерации модифицировать таблицу.
И брат этой функции
ipairs (t)
Возвращает три значения: итератор, таблицу t, и 0, поэтому конструкция
for i,v in ipairs(t) do body end
будет выполнять цикл парами (1,t[1]), (2,t[2]), ···, до первого целого ключа, отсутствующего в таблице.
И вижу я, что у ipairs есть массив, но не знаю ,как его сюда написать заместо v...
PlayerResource:ReplaceHeroWith(v, "npc_dota_hero_night_stalker", 0, 0)
Вот такой вопрос ноунейма в луа, подскажите плз
Последнее редактирование модератором: