Удаление бафа

  • Автор темы Автор темы UZzip
  • Дата начала Дата начала
Cry, у него видишь что за ошибка, что keys.PlayerID пустой.

UZzip, сделай, что тебя Cry попросил и еще скинь полностью свой код.
 
[quote author=CryDeS link=topic=834.msg4061#msg4061 date=1462280220]
Код:
function OnUsedAbility(keys)
print('------------------------------------------------------------')
for i,x in pairs(keys) do print(i,x)
print('------------------------------------------------------------');
end
Чекни что там вылазит
[/quote]

данная вставка ломает гейм мод.
Код:
for i,x in pairs(keys) do print(i,x)

Фул код:
Код:
function main:InitGameMode()

GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_GOODGUYS, 3 )
GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_BADGUYS, 3 )

ListenToGameEvent("dota_player_killed", Dynamic_Wrap(main, "OnHeroKilled"), self)


ListenToGameEvent('dota_player_used_ability', OnUsedAbility, self)
end

function OnUsedAbility(keys)
Say(nil, "ON USED ABILITY", false)

print('------------------------------------------------------------')
for i,x in pairs(keys) do print(i,x)
print('------------------------------------------------------------');

hero :RemoveModifierByName("modifier_templar_assassin_refraction_damage")
end
 
Последнее редактирование модератором:
если оставить так:
Код:
print('------------------------------------------------------------')
print(i,x)
print('------------------------------------------------------------');

то консоль:
[ VScript ]: ------------------------------------------------------------
[ VScript ]: nil nil
[ VScript ]: ------------------------------------------------------------
 
Тебе бы статью по lua почитать.
Чего у тебя не описан OnHeroKilled?

Код:
function main:InitGameMode()

GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_GOODGUYS, 3 )
GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_BADGUYS, 3 )

ListenToGameEvent("dota_player_killed", Dynamic_Wrap(main, "OnHeroKilled"), self)
ListenToGameEvent("dota_player_used_ability", Dynamic_Wrap(main, "OnUsedAbility"), self)


end

function main:OnUsedAbility(keys)
  print("--------------------------"ON USED ABILITY"----------------------------------")
  for k,v in pairs(keys) do 
    print(k,v)
  end
  print("------------------------------------------------------------");
end


function main:OnHeroKilled(keys)
  print("--------------------------"OnHeroKilled"----------------------------------")
end
 
Последнее редактирование модератором:
[quote author=UZzip link=topic=834.msg4076#msg4076 date=1462341889]
данная вставка ломает гейм мод.
Код:
for i,x in pairs(keys) do print(i,x)

Фул код:
Код:
function main:InitGameMode()

GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_GOODGUYS, 3 )
GameRules:SetCustomGameTeamMaxPlayers( DOTA_TEAM_BADGUYS, 3 )

ListenToGameEvent("dota_player_killed", Dynamic_Wrap(main, "OnHeroKilled"), self)


ListenToGameEvent('dota_player_used_ability', OnUsedAbility, self)
end

function OnUsedAbility(keys)
Say(nil, "ON USED ABILITY", false)

print('------------------------------------------------------------')
for i,x in pairs(keys) do print(i,x)
print('------------------------------------------------------------');

hero :RemoveModifierByName("modifier_templar_assassin_refraction_damage")
end
[/quote]
Замени
Код:
for i,x in pairs(keys) do print(i,x)
на
Код:
for i,x in pairs(keys) do print(i,x) end
Я end забыл)
 
Последнее редактирование модератором:
Так тогда слушателя закомментируй, ибо он будет пытаться найти по событию функцию, а ее нет. Вывод - еще ошибка.
 
[quote author=CryDeS link=topic=834.msg4081#msg4081 date=1462361776]
Замени
Код:
for i,x in pairs(keys) do print(i,x)
на
Код:
for i,x in pairs(keys) do print(i,x) end
Я end забыл)
[/quote]

консоль:
[ VScript ]: ------------------------------------------------------------
[ VScript ]: __class__ table: 0x001b8628
[ VScript ]: __getbase__ function: 0x001b2e68
[ VScript ]: __getclass__ function: 0x001bcd30
[ VScript ]: __initprops__ table: 0x001f0048
[ VScript ]: __instanceof__ function: 0x001d4f98
[ VScript ]: OnHeroKilled function: 0x001f11a8
[ VScript ]: InitGameMode function: 0x001f1080
[ VScript ]: ------------------------------------------------------------
[ VScript ]: EntIndexToHScript parameter 1: expected integer but got void.
[ Developer ]: ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:113: Parameter type mismatch
[ Developer ]: stack traceback:
[ Developer ]: [C]: in function 'EntIndexToHScript'
[ Developer ]: ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:113: in function <...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:104>
[ W VScript ]: Script Runtime Error: ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:113: Parameter type mismatch
[ W VScript ]: stack traceback:
[ W VScript ]: [C]: in function 'EntIndexToHScript'
[ W VScript ]: ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:113: in function <...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:104>

113 local player = EntIndexToHScript(keys.PlayerID)
104 function OnUsedAbility(keys)
 
Последнее редактирование модератором:
Че-то, по моему, вывел совсем не то, что мы ожидали ))

Не ты, а таблица эта.
 
вроде но сложная проблема, указать в переменной кастера....
 
вроде но сложная проблема, указать в переменной кастера....
Так, скидывай код полного файла, ибо я вижу что ты пытаешься вывести содержимое _G, что довольно странно.
 
Последнее редактирование модератором:
Код:
function Activate()
	GameRules.main = main()
	GameRules.main:InitGameMode()
end
Код:
function main:OnUsedAbility(keys)
	local player = PlayerResource:GetPlayer( keys.PlayerID )
	local ability_name = keys.abilityname
	if not player or not ability_name or not IsValidEntity(player) then return	end
	local hero = PlayerResource:GetSelectedHeroEntity(keys.PlayerID)

	if not hero then return end
	
	print('-------------USED ABILITY----------');
	for i,x in pairs(keys) do print(i,x) end
	print('-----------------------------------------');


end
 
Реклама: