Спавни, после смерти, нового юнита с неуязвимостьюКак сделать так чтоб модель юнита после смерти не исчезала, можно ли это как-то контролировать?
function InitGameMode()
TEAM_PLAYERS_VALID = {}
TEAM_PLAYERS_VALID = {
0,0,0,0,0,0,0,0,0,0
}
end
function OnGameRulesStateChange(keys)
local newState = GameRules:State_Get()
if newState == DOTA_GAMERULES_STATE_HERO_SELECTION then
for Player = 0, PlayerResource:GetPlayerCount() - 1 do
local PlayerId = PlayerResource:GetSteamID(Player)
-- local hero = PlayerResource:GetSelectedHeroEntity(Player)
local player_team = PlayerResource:GetTeam(Player) - 1
TEAM_PLAYERS_VALID[player_team] = TEAM_PLAYERS_VALID[player_team] + 1
end
end
end
function OnDisconnect(keys)
local PlayerID = keys.PlayerID
local player_team = PlayerResource:GetTeam(PlayerID) - 1
TEAM_PLAYERS_VALID[player_team] = TEAM_PLAYERS_VALID[player_team] - 1
end
function OnThink()
WIN_TEAM = 0
EMPTY_TEAM = 0
for team = 1,#TEAM_PLAYERS_VALID do
if TEAM_PLAYERS_VALID[team] < 1 then
EMPTY_TEAM = EMPTY_TEAM + 1
elseif TEAM_PLAYERS_VALID[team] > 0 then
WIN_TEAM = team
end
end
if #TEAM_PLAYERS_VALID - EMPTY_TEAM == 1 and isgameend == nil and GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
isgameend = true
GameRules:SetGameWinner(WIN_TEAM + 1)
end
return 1
end
MoveToPosition вводищь nil,после этого идёт эффект бабочки.Script Runtime Error: ...фаел.lua:30: attempt to call global 'MoveToPosition' (a nil value)
stack traceback:
...фаел.lua:30: in function <...фаел.lua:2>
И после этого 2-3 юнита перестают бегать и встают афк, в то время как другие продолжают. Как исправить?
Прекэшя же говорю так какие-то особые правила , я пробовал звук молнии зевса подставить по разному и не получалось ,а потом подставил звук дагона и получилось...
function Test()
return 1
end
function _G.Test()
return 1
end
Функцию test в первом случае ты сможешь вызвать только в файле, в котором эта функция написана, или в файле, к которому подключён файл с этой функцией, а во втором случае ты можешь просто подключить файл к аддону в одном месте и использовать функцию в любой точке, то же самое с переменнымиКакая разница между записями? _G. вообще на что-то влияет?
Lua:function Test() return 1 endLua:function _G.Test() return 1 end
Этой функции нет в таблице, у которой ты эту функцию вызываешь. Проще говоря ты просто вызвал функцию не у крипа, а у чего то другого.Script Runtime Error: ...фаел.lua:30: attempt to call global 'MoveToPosition' (a nil value)
stack traceback:
...фаел.lua:30: in function <...фаел.lua:2>
И после этого 2-3 юнита перестают бегать и встают афк, в то время как другие продолжают. Как исправить?
Я просто вызывал функцию, т. е. ни у чего, а то что другие юниты двигались, выполнялось другое условие, слишком невнимательный я(Этой функции нет в таблице, у которой ты эту функцию вызываешь. Проще говоря ты просто вызвал функцию не у крипа, а у чего то другого.
Я в addon_init прописал функции без _G, но их можно отовсюду вызывать.Функцию test в первом случае ты сможешь вызвать только в файле, в котором эта функция написана, или в файле, к которому подключён файл с этой функцией, а во втором случае ты можешь просто подключить файл к аддону в одном месте и использовать функцию в любой точке, то же самое с переменными
Потому что addon_init вызывается и на сервере и на клиенте всегда, соответственно, он всегда подключен.Я в addon_init прописал функции без _G, но их можно отовсюду вызывать.
https://customgames.ru/forum/threads/Простые-вопросы-2.1330/page-45#post-13701Кто шарит,как сделать плавное изминение цвета? Скрин ниже:Посмотреть вложение 130
Создаём файл "addon_init" и там через IsClient() делаем.Как дополнить классы/функции на клиенте? addon_init срабатывает до их инициализации.
Я же написал, что он прогружается до инициализации нужных мне классов.Создаём файл "addon_init" и там через IsClient() делаем.
CDOTA_Modifier_Lua:GetInfo
...
end
Надо, чтоб у всех былоА добавить в самом модификаторе не судьба