CustomGames.ru - Dota 2 пользовательские игры

Keys, event и т.д.

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн I_GRIN_I

  • Продвинутый
  • 389
  • Мощь: 6
  • Научиться бы скриптить...
Keys, event и т.д.
« : 21-08-2016, 12:57:52 »
Где можно найти все значения, передаваемые в луа через params, keys, event и подобному?

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: Keys, event и т.д.
« Ответ #1 : 21-08-2016, 13:55:21 »
Где можно найти все значения, передаваемые в луа через params, keys, event и подобному?
keys, event, kv, это все названия для таблиц, которые выбирают сами программисты. Хоть ты назови вроде my_fucked_lua_table, суть не изменится, и обращаться можно будем так же. А просмотреть все что есть в этой таблице можно через цикл:
for key, value in pairs(keys) do print(key, value) end

Оффлайн I_GRIN_I

  • Продвинутый
  • 389
  • Мощь: 6
  • Научиться бы скриптить...
Re: Keys, event и т.д.
« Ответ #2 : 21-08-2016, 18:56:44 »
CryDeS, ошибка 
Код
[ W VScript                ]: Script Runtime Error: ...ripts\vscripts\addon_game_mode.lua:650: bad argument #1 to 'pairs' (table expected, got nil)
Просто добавил это в функцию OnEntityTakeDamage(keys)
До этого эвент при получении урона ентити привязал к этой функции, просто чтобы проверить

Оффлайн Илья

  • Супермодератор
  • 1909
  • Мощь: 16
Re: Keys, event и т.д.
« Ответ #3 : 21-08-2016, 20:33:28 »
Ну тебе пишет, что ты ноль передаешь, а не таблицу.

Скинь весь код.

Оффлайн I_GRIN_I

  • Продвинутый
  • 389
  • Мощь: 6
  • Научиться бы скриптить...
Re: Keys, event и т.д.
« Ответ #4 : 21-08-2016, 22:00:19 »
Илья,
Код
ListenToGameEvent('entity_hurt', Dynamic_Wrap(GameMode, 'OnEntityTakeDamage'), self)
Код
function GameMode:OnEntityTakeDamag(keys)
   --print("[BAREBONES] Entity Hurt")
   --DeepPrintTable(keys)
   local entCause = EntIndexToHScript(keys.entindex_attacker)
   local entVictim = EntIndexToHScript(keys.entindex_killed)
   for key, value in pairs(keys) do 
      print(key, value)
   end
end

Оффлайн Илья

  • Супермодератор
  • 1909
  • Мощь: 16
Re: Keys, event и т.д.
« Ответ #5 : 21-08-2016, 23:07:10 »
Используй

DeepPrintTable(keys)

вместо цикла for

Оффлайн I_GRIN_I

  • Продвинутый
  • 389
  • Мощь: 6
  • Научиться бы скриптить...
Re: Keys, event и т.д.
« Ответ #6 : 22-08-2016, 02:57:47 »
Илья, оно принтит только те значения, которые учавствуют в этом гейм эвенте

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: Keys, event и т.д.
« Ответ #7 : 22-08-2016, 12:52:47 »
Я тебе очень очень тонко намекаю
ListenToGameEvent('entity_hurt', Dynamic_Wrap(GameMode, 'OnEntityTakeDamage'), self)

function GameMode:OnEntityTakeDamag(keys)

Оффлайн I_GRIN_I

  • Продвинутый
  • 389
  • Мощь: 6
  • Научиться бы скриптить...
Re: Keys, event и т.д.
« Ответ #8 : 22-08-2016, 15:32:48 »
CryDeS, в коде все правильно, я у меня тут просто буфер работать отказался и мне пришлось ручками писать, ошибка то выдается не просто так