Простые вопросы #2

Статус
В этой теме нельзя размещать новые ответы.
Как сделать так чтоб модель юнита после смерти не исчезала, можно ли это как-то контролировать?
 
Нужно чтобы когда оставалась одна команда игра заканчивалась. Но не работает, и скорее всего из-за Disconnect (Не обращайте внимания на названия функций)
Lua:
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
 
Script Runtime Error: ...фаел.lua:30: attempt to call global 'MoveToPosition' (a nil value)
stack traceback:
...фаел.lua:30: in function <...фаел.lua:2>
И после этого 2-3 юнита перестают бегать и встают афк, в то время как другие продолжают. Как исправить?
 
Script Runtime Error: ...фаел.lua:30: attempt to call global 'MoveToPosition' (a nil value)
stack traceback:
...фаел.lua:30: in function <...фаел.lua:2>
И после этого 2-3 юнита перестают бегать и встают афк, в то время как другие продолжают. Как исправить?
MoveToPosition вводищь nil,после этого идёт эффект бабочки.
 
Какая разница между записями? _G. вообще на что-то влияет?
Lua:
function Test()
    return 1
end
Lua:
function _G.Test()
    return 1
end
Функцию test в первом случае ты сможешь вызвать только в файле, в котором эта функция написана, или в файле, к которому подключён файл с этой функцией, а во втором случае ты можешь просто подключить файл к аддону в одном месте и использовать функцию в любой точке, то же самое с переменными
 
Script Runtime Error: ...фаел.lua:30: attempt to call global 'MoveToPosition' (a nil value)
stack traceback:
...фаел.lua:30: in function <...фаел.lua:2>
И после этого 2-3 юнита перестают бегать и встают афк, в то время как другие продолжают. Как исправить?
Этой функции нет в таблице, у которой ты эту функцию вызываешь. Проще говоря ты просто вызвал функцию не у крипа, а у чего то другого.
 
Этой функции нет в таблице, у которой ты эту функцию вызываешь. Проще говоря ты просто вызвал функцию не у крипа, а у чего то другого.
Я просто вызывал функцию, т. е. ни у чего, а то что другие юниты двигались, выполнялось другое условие, слишком невнимательный я(
 
Функцию test в первом случае ты сможешь вызвать только в файле, в котором эта функция написана, или в файле, к которому подключён файл с этой функцией, а во втором случае ты можешь просто подключить файл к аддону в одном месте и использовать функцию в любой точке, то же самое с переменными
Я в addon_init прописал функции без _G, но их можно отовсюду вызывать.
 
Кто шарит,как сделать плавное изминение цвета? Скрин ниже:554bb9b18035a6949c26b155d8223082.png
 
Создаём файл "addon_init" и там через IsClient() делаем.
Я же написал, что он прогружается до инициализации нужных мне классов.
Например мне нужно сделать на клиенте такое:
Код:
CDOTA_Modifier_Lua:GetInfo
...
end
Консоль же шлет меня нахуй, и пишет, что CDOTA_Modifier_Lua не существует.
Поэтому я сделал отдельную функцию, которая инициализирует все остальные, осталось только как-то вызвать ее на клиенте в Activate или где-то около того. Но я не знаю как.
 
Статус
В этой теме нельзя размещать новые ответы.
Реклама: