Не работает функция

TRex

Пользователь
8 Авг 2018
38
0
6
18
VK
https://vk.com/dbelokopytov0
Реакции
0 0 0
#1
У меня не работает объявление победы сил тьмы.
function GameMode:OnEntityKilled( events ) --550
--551
local killedUnit = EntIndexToHScript( event.entindex_killed ) --552
if killedUnit == "GiantBoy" then --553
GameRules:SetGameWinner( DOTA_TEAM_BADGUYS ) --554
end --555
--556
end --557
Хз вообще что делать. Иногда пишет что ошибка в 552 строке но я её не вижу
scripts\vscripts\barebones.lua:552: attempt to index global 'event' (a nil value)
stack traceback:
scripts\vscripts\barebones.lua:552: in function <scripts\vscripts\barebones.lua:550>
Script Runtime Error: scripts\vscripts\barebones.lua:552: attempt to index global 'event' (a nil value)
stack traceback:
scripts\vscripts\barebones.lua:552: in function <scripts\vscripts\barebones.lua:550>
 
28 Июн 2017
131
41
18
Проект
HOOK WARS REBORN
Реакции
40 0 1
#2
Вот эта функция в barebones:
Lua:
function GameMode:OnEntityKilled( keys )
  DebugPrint( '[BAREBONES] OnEntityKilled Called' )
  DebugPrintTable( keys )


  -- The Unit that was Killed
  local killedUnit = EntIndexToHScript( keys.entindex_killed )
  -- The Killing entity
  local killerEntity = nil

  if keys.entindex_attacker ~= nil then
    killerEntity = EntIndexToHScript( keys.entindex_attacker )
  end

  -- The ability/item used to kill, or nil if not killed by an item/ability
  local killerAbility = nil

  if keys.entindex_inflictor ~= nil then
    killerAbility = EntIndexToHScript( keys.entindex_inflictor )
  end

  local damagebits = keys.damagebits -- This might always be 0 and therefore useless

  -- Put code here to handle when an entity gets killed
end
Теория: заменить event на events
 

TRex

Пользователь
8 Авг 2018
38
0
6
18
VK
https://vk.com/dbelokopytov0
Реакции
0 0 0
#3
Вот эта функция в barebones:
Lua:
function GameMode:OnEntityKilled( keys )
  DebugPrint( '[BAREBONES] OnEntityKilled Called' )
  DebugPrintTable( keys )


  -- The Unit that was Killed
  local killedUnit = EntIndexToHScript( keys.entindex_killed )
  -- The Killing entity
  local killerEntity = nil

  if keys.entindex_attacker ~= nil then
    killerEntity = EntIndexToHScript( keys.entindex_attacker )
  end

  -- The ability/item used to kill, or nil if not killed by an item/ability
  local killerAbility = nil

  if keys.entindex_inflictor ~= nil then
    killerAbility = EntIndexToHScript( keys.entindex_inflictor )
  end

  local damagebits = keys.damagebits -- This might always be 0 and therefore useless

  -- Put code here to handle when an entity gets killed
end
Теория: заменить event на events
все равно не получается, но я сделал через гейм евент что при смерти юнит сообщает гейм евенту чтобы тот объявил победу и сработало
 

I_GRIN_I

Друзья CG
15 Мар 2016
981
58
28
19
Реакции
57 0 1
#4
Ты передаваемую в функцию таблицу объявляешь как events, а в коде вызываешь event(без s)
 

TRex

Пользователь
8 Авг 2018
38
0
6
18
VK
https://vk.com/dbelokopytov0
Реакции
0 0 0
#5
я дописал 'S' но не помогло имел ввиду
 
Реклама:

I_GRIN_I

Друзья CG
15 Мар 2016
981
58
28
19
Реакции
57 0 1
#6
Ты сравниваешь строку с таблицей. HScript - это таблица. killedUnit:GetUnitName() =='idi_uchi_api_leat'
 
Реклама:
//SNOW CHRISTMAS