2017-02-03 2 views
0

Я просто хочу создать простой скрипт, который печатает цветной текст в чате отправителя после выполнения определенной команды.GMod | Хотите сделать простую команду, которая печатает цветное сообщение в чате чата отправителей

Сначала консоль дала мне ошибку [попытка индексации глобального «чата» (значение nil)]. После перезагрузки Singleplayer и открытия скрипта он ничего не сделал.

Текущий код:

local ply = LocalPlayer() 

local function Test(ply, text, team) 
    if string.sub(text, 1, 8) == "!command" then 
     chat.AddText(Color(100, 100, 255), "Test") 
    end 
end 
hook.Add("PlayerSay", "Test", Test) 

Я надеюсь, что кто-то может мне помочь.

+0

Ваш код отлично выглядит на первый взгляд. Не могли бы вы изменить свой вопрос, чтобы включить то, что точно не работает? Вы получаете какие-либо ошибки? Или просто ничего не делает? – Lignum

ответ

0

Вы используете LocalPlayer(), который называется только клиентской стороной), а также chat.AddText() (опять же, только называемый клиентской стороной) внутри крюка PlayerSay (который является сервером- боковой крюк). Вы должны были бы что-то еще, как ChatPrint()

EDIT: Просто понял ChatPrint() не принимает цвет() аргументы в этом ... вы всегда можете попробовать отправить чистое сообщение:

if SERVER then 
    util.AddNetworkString("SendColouredChat") 

    function SendColouredChat(ply, text) 
     if string.sub(text, 1, 8) == "!command" then 
      net.Start("SendColouredChat") 
       net.WriteTable(Color(255, 0, 0, 255)) 
       net.WriteString("Test") 
      net.Send(ply) 
     end 
    end 
    hook.Add("PlayerSay", "SendColouredChat", SendColouredChat) 
end 

if CLIENT then 
    function ReceiveColouredChat() 
     local color = net.ReadTable() 
     local str = net.ReadString() 

     chat.AddText(color, str) 
    end 
    net.Receive("SendColouredChat", ReceiveColouredChat) 
end 
+0

net.message будет работать точно. Я предлагаю не использовать «WriteTable», потому что это медленнее, чем отправка строки или даже 1 string && 4 int. –

Смежные вопросы