Как передаются аргументы

  • Автор темы Автор темы justjew
  • Дата начала Дата начала

justjew

Пользователь
19 Мар 2016
18
0
С программированием на объектно-ориентированных языках я знаком (java, c#), но со скриптовыми никогда не работал.
Вот в чем вопрос: есть следующий код
Код:
function teleportPlayer(event)
   local unit = event.activator
   local wws= "tpPoint" -- вот та сама точка, куда мы будем телепортировать героя, мы её указали в скрипте

   local ent = Entities:FindByName( nil, wws) --строка ищет как раз таки нашу точку pnt1
   local point = ent:GetAbsOrigin() --эта строка выясняет где находится pnt1 и получает её координаты
   event.activator:SetAbsOrigin( point ) -- получили координаты, теперь меняем место героя на pnt1
   FindClearSpaceForUnit(event.activator, point, false) --нужно чтобы герой не застрял
   event.activator:Stop() --приказываем ему остановиться, иначе он побежит назад к предыдущей точке
end
Entity Script'у триггера я присваиваю имя файла.lua, затем в самом триггере CallScriptFunction'у я передаю название функции, без передачи каких-либо аргументов.

Собственно, откуда функция teleportPlayer берет этот самый event?
 
Последнее редактирование модератором:
[quote author=justjew link=topic=777.msg3142#msg3142 date=1458504793]
С программированием на объектно-ориентированных языках я знаком (java, c#), но со скриптовыми никогда не работал.
Вот в чем вопрос: есть следующий код
Код:
function teleportPlayer(event)
   local unit = event.activator
   local wws= "tpPoint" -- вот та сама точка, куда мы будем телепортировать героя, мы её указали в скрипте

   local ent = Entities:FindByName( nil, wws) --строка ищет как раз таки нашу точку pnt1
   local point = ent:GetAbsOrigin() --эта строка выясняет где находится pnt1 и получает её координаты
   event.activator:SetAbsOrigin( point ) -- получили координаты, теперь меняем место героя на pnt1
   FindClearSpaceForUnit(event.activator, point, false) --нужно чтобы герой не застрял
   event.activator:Stop() --приказываем ему остановиться, иначе он побежит назад к предыдущей точке
end
Entity Script'у триггера я присваиваю имя файла.lua, затем в самом триггере CallScriptFunction'у я передаю название функции, без передачи каких-либо аргументов.

Собственно, откуда функция teleportPlayer берет этот самый event?
[/quote]
ниоткуда, ключи ты сам называешь, эта функция передает все ключи и их значения, которые прописаны в c++
function teleportPlayer(kokoko) хоть так можно
 
Последнее редактирование модератором:
[quote author=justjew link=topic=777.msg3142#msg3142 date=1458504793]
С программированием на объектно-ориентированных языках я знаком (java, c#), но со скриптовыми никогда не работал.
Вот в чем вопрос: есть следующий код
Код:
function teleportPlayer(event)
   local unit = event.activator
   local wws= "tpPoint" -- вот та сама точка, куда мы будем телепортировать героя, мы её указали в скрипте

   local ent = Entities:FindByName( nil, wws) --строка ищет как раз таки нашу точку pnt1
   local point = ent:GetAbsOrigin() --эта строка выясняет где находится pnt1 и получает её координаты
   event.activator:SetAbsOrigin( point ) -- получили координаты, теперь меняем место героя на pnt1
   FindClearSpaceForUnit(event.activator, point, false) --нужно чтобы герой не застрял
   event.activator:Stop() --приказываем ему остановиться, иначе он побежит назад к предыдущей точке
end
Entity Script'у триггера я присваиваю имя файла.lua, затем в самом триггере CallScriptFunction'у я передаю название функции, без передачи каких-либо аргументов.

Собственно, откуда функция teleportPlayer берет этот самый event?
[/quote]
Эвент идет из хаммера автоматически. Прочекать его можно типа for i,x in pairs(event) do print(i,x) end
 
Последнее редактирование модератором:
ниоткуда, ключи ты сам называешь, эта функция передает все ключи и их значения, которые прописаны в c++
function teleportPlayer(kokoko) хоть так можно
А где я могу узнать какие вообще есть "ключи, которые прописаны в с++"?
 
Последнее редактирование модератором:
А где я могу узнать какие вообще есть "ключи, которые прописаны в с++"?
[quote author=CryDeS link=topic=777.msg3144#msg3144 date=1458508896]
Эвент идет из хаммера автоматически. Прочекать его можно типа
for i,x in pairs(event) do print(i,x) end
[/quote]
 
Последнее редактирование модератором:
Реклама: