Jump to content

[HELP] GridList ColorCode


Calvinher

Recommended Posts

Hello

I found a script that was walking in the community Private Message

but it seems the color code in ten

for example : #0066ffCalvinher

How do I forbid it ?

Client :

--- Scriptin kodları acıktır. 
 
g_LocalPlayer = getLocalPlayer()
g_Root = getRootElement()
g_ThisResource = getThisResource()
g_ResourceRoot = getResourceRootElement(getThisResource())
 
chat = {} -- table to store chat windows in
newmsg = {show=false, tick=getTickCount(), showtime=5000, img=nil, lbl=nil } -- new msg table
 
 
anims = {}
 
function buildPlayerList()
    local x,y = guiGetScreenSize()
    local width,height = 175,350
    x = x-width
    y = (y-height)/2
    newmsg.img = guiCreateStaticImage(681.0000,134.0000, 42.0000,34.0000, "image/chat-icon.png", false) -- mail message icon
    newmsg.lbl = guiCreateLabel(553.0000,175.0000, 244.0000, 19.0000, "", false)
        guiLabelSetHorizontalAlign(newmsg.lbl, "right", true)
    guiSetAlpha(newmsg.img, 0)
    --guiSetAlpha(newmsg.lbl, 0)
   
    wndPlayers = guiCreateWindow(x,y,width,height, "MTATR.com Ozel Chat", false)
    grdPlayers = guiCreateGridList(.025,.065, .975,.915, true, wndPlayers)
    colPlayers = guiGridListAddColumn(grdPlayers, "Oyuncular", 0.85)
 
    local players = getElementsByType("player")
    for k,v in ipairs(players) do
        addPlayerToList(v)
    end
   
    guiWindowSetSizable(wndPlayers, false)
    guiSetProperty(wndPlayers, "RollUpEnabled", "true")
    guiSetProperty(wndPlayers, "Dragable", "true")
    guiSetAlpha(wndPlayers, 0)
   
   
    -- create animations for it
    anims.plfadein = Animation.create(wndPlayers, Animation.presets.guiFadeIn(1000))
    anims.plfadeout = Animation.create(wndPlayers, Animation.presets.guiFadeOut(1000))
 
    anims.nmfadein = Animation.create(newmsg.img, Animation.presets.guiFadeIn(1000))
    anims.nmfadeout = Animation.create(newmsg.img, Animation.presets.guiFadeOut(1000))
   
    anims.nmtextin = Animation.create(newmsg.lbl, Animation.presets.guiFadeIn(1000))
    anims.nmtextout = Animation.create(newmsg.lbl, Animation.presets.guiFadeOut(1000))
   
 
    local x,y = guiGetPosition(newmsg.img)
    outputDebugString("guigetPostions: " ..tostring(x).." "..tostring(y))
    local scrx,scry = guiGetScreenSize()
    anims.nmslidein = Animation.create(newmsg.img, Animation.presets.guiMove(x,y))--, 1000,false, scrx,scry, false))
    anims.nmslideout = Animation.create(newmsg.img, Animation.presets.guiMove(scrx,scry))--, 1000,false, x,y, false))
   
    bindKey("F4", "down", togglePmGui) 
end
 
 
function addPlayerToList(ply)
    --outputDebugString("addPlayerToList:" ..getPlayerName(ply))
    local row = guiGridListAddRow(grdPlayers)
    local name = getPlayerName(ply)
    guiGridListSetItemText( grdPlayers, row, colPlayers, bHideColorCodes and removeColorCoding(name) or name, false, false )
end
 
function removeColorCoding(name)
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name
end
 
 
function removePlayerFromList(ply)
    --outputDebugString("removePlayerFromList:" ..getPlayerName(ply))
    local name=getPlayerName(ply)
    for row=0,guiGridListGetRowCount(grdPlayers) do
        if guiGridListGetItemText(grdPlayers, row, colPlayers) == name then
            guiGridListRemoveRow(grdPlayers, row)
            outputDebugString("remove row" ..tostring(row))
        end
    end
end
 
 
function showPmGui(state)
    if state == true then
        anims.plfadein:play()
        for k,v in pairs(chat) do
            guiSetVisible(chat[k].wnd,true)
        end
        showCursor(true)
    elseif state == false then
        anims.plfadeout:play()
        for k,v in pairs(chat) do   
            guiSetVisible(chat[k].wnd,false)
        end
        showCursor(false)
        guiSetInputEnabled(false)
    end
end
function togglePmGui()
    if not anims.plfadein:isPlaying() and not anims.plfadeout:isPlaying() then
        if guiGetAlpha(wndPlayers) > .1 then showPmGui(false)
        else showPmGui(true)
        end
    end
end
 
function buildChatWindow(ply)
    local x,y = guiGetScreenSize()
    local width,height = 300,250
    x = x*.5
    y = y*.5
   
    chat[ply] = {}
    chat[ply].wnd = guiCreateWindow(x,y,width,height, getPlayerName(ply), false)
    chat[ply].memo = guiCreateMemo(.025,.075, .95,.55, "", true, chat[ply].wnd)
    chat[ply].edit = guiCreateEdit(.025,.65, .95,.15, "", true, chat[ply].wnd)
    chat[ply].btnClose = guiCreateButton(.1,.83, .3,.125, "Kapat", true, chat[ply].wnd)
    chat[ply].btnSend = guiCreateButton(.6,.83, .3,.125, "Gonder", true, chat[ply].wnd)
   
    guiMemoSetReadOnly(chat[ply].memo, true)
   
    guiWindowSetSizable(chat[ply].wnd, false)
    guiSetProperty(chat[ply].wnd, "RollUpEnabled", "true")
    guiSetProperty(chat[ply].wnd, "Dragable", "true")
   
    if anims.plfadein:isPlaying() then-- in process of fading in
        guiSetVisible(chat[ply].wnd, true)
    elseif anims.plfadeout:isPlaying() then -- in process of fading out
        guiSetVisible(chat[ply].wnd, false)
    else -- not in process of either
        if guiGetAlpha(wndPlayers) > .1 then
            guiSetVisible(chat[ply].wnd, true) -- is showing
        else
            guiSetVisible(chat[ply].wnd, false) -- isnt showing
        end 
    end
end
function destroyChatWindow(ply)
    if chat[ply] and isElement(chat[ply].wnd) then
        destroyElement(chat[ply].wnd)
        chat[ply] = nil 
    end
end
 
function sendChatMessage(ply)
    --outputDebugString("sendChatMessage: " .. tostring(ply))
    if chat[ply] and isElement(chat[ply].wnd) then
        local newText = guiGetText(chat[ply].edit)
        if newText and string.len(newText) > 0 then
            local oldText = guiGetText(chat[ply].memo)
            if not oldText then oldText = "" end
            oldText = oldText .. getPlayerName(g_LocalPlayer) .. ": " .. newText .. "\n"
            guiSetText(chat[ply].memo, oldText)
            guiSetText(chat[ply].edit, "")
            guiMemoSetCaretIndex(chat[ply].memo, string.len(oldText))
 
            triggerServerEvent("onGUIPrivateMessage", g_LocalPlayer, ply,newText)
        end 
    end
end
function recieveChatMessage(ply, msg)
    --outputDebugString("recieveChatMessage: " .. msg)
    if not chat[ply] then
        buildChatWindow(ply)
    end
   
    newmsg.show = true
    newmsg.tick = getTickCount()
   
    ---guiSetText(newmsg.lbl, getPlayerName(ply) .. ": " .. msg .. "\n")
guiSetText(newmsg.lbl, "Bir mesaj geldi " .. getPlayerName(ply) .. "\n")
    anims.nmfadein:play()
    anims.nmtextin:play()
    --anims.nmslidein:play()
 
    local oldText = guiGetText(chat[ply].memo)
    if not oldText then oldText = "" end
    oldText = oldText .. getPlayerName(ply) .. ": " .. msg .. "\n"
    guiSetText(chat[ply].memo, oldText)
    guiMemoSetCaretIndex(chat[ply].memo, string.len(oldText))
end
 
event_resource_start = function(res)
    buildPlayerList()
    outputChatBox("F4 Basarak Özel Mesaj Sistemini Açabilirsiniz",0,255,255,true)
end
 
event_resource_stop = function(res)
    unbindKey("F4", "down", togglePmGui)   
    showPmGui(false)
end
 
event_player_join = function()
    outputDebugString("onClientPlayerJoin")
    addPlayerToList(source)
end
 
event_player_quit = function()
    outputDebugString("onClientPlayerQuit")
    removePlayerFromList(source)
    destroyChatWindow(source)
end
 
event_gui_click = function(button, state, absx, absy)
    if button == "left" and state == "up" then
        if getElementType(source) == "gui-button" then
            local parent = getElementParent(source)
            if parent ~= false then
                local ply = getPlayerFromName(guiGetText(parent))
                if ply then
                    if source == chat[ply].btnClose then
                        destroyChatWindow(ply)
                        guiSetInputEnabled(false)
                    elseif source == chat[ply].btnSend then
                        sendChatMessage(ply)
                        guiSetInputEnabled(false)
                    end
                end
            end
        elseif getElementType(source) == "gui-edit" then
            local parent = getElementParent(source)
            if parent ~= false then
                local ply = getPlayerFromName(guiGetText(parent))
                if source == chat[ply].edit then
                    guiSetInputEnabled(true)
                end
            end
        else
            guiSetInputEnabled(false)
        end
    end
end
 
event_gui_doubleclick = function(button, state, absx, absy)
    if button == "left" and state == "up" then
        if source == grdPlayers then
            local row, col = guiGridListGetSelectedItem(grdPlayers)
            --outputDebugString("double clicked row: "..tostring(row))
            if row == -1 or col == -1 then return end              
            local name = guiGridListGetItemText(grdPlayers, row, col)
            local ply = getPlayerFromName(name)
            if not chat[ply] then
                buildChatWindow(ply)
            end
            guiBringToFront(chat[ply].wnd)         
        end
    end
end
 
 
Link to comment
  
function removeColorCoding(name) --Line 68 
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name --Line 69 
end --Line 70 
--replace with,  
function removeColorCoding ( str ) 
    assert(str, type(str)=="string", "Invalid argument @ removeColorCoding. Expected 'string', got '"..type(str).."'.") 
    while str:find("#%x%x%x%x%x%x") do 
        str = str:gsub ( "#%x%x%x%x%x%x", "" ) 
    end 
    return str 
end 

This code will also prevent "escaped" hex codes (i.e. on the normal code, ##FFFFFF000000 would change to #000000 and change the colour.) This will realise that another HEX is still there and keep removing until all HEX codes are gone.

oldText = oldText .. getPlayerName(g_LocalPlayer) .. ": " .. newText .. "\n" --Line 154 
oldText = oldText .. getPlayerName(ply) .. ": " .. msg .. "\n" --Line 180 

change them to

oldText = oldText .. removeColorCoding(getPlayerName(g_LocalPlayer)) .. ": " .. newText .. "\n" --Line 154 
oldText = oldText .. removeColorCoding(getPlayerName(ply)) .. ": " .. msg .. "\n" --Line 180 

Link to comment

tried the new codes I gave ( at the bottom ) can you give him change me while I'm breaking it

  
--- DONT TRY TO COPY LITTLE BITCH
 
g_LocalPlayer = getLocalPlayer()
g_Root = getRootElement()
g_ThisResource = getThisResource()
g_ResourceRoot = getResourceRootElement(getThisResource())
 
chat = {} -- table to store chat windows in
newmsg = {show=false, tick=getTickCount(), showtime=5000, img=nil, lbl=nil } -- new msg table
 
 
anims = {}
 
function buildPlayerList()
    local x,y = guiGetScreenSize()
    local width,height = 175,350
    x = x-width
    y = (y-height)/2
    --newmsg.img = guiCreateStaticImage(681.0000,134.0000, 42.0000,34.0000, "image/chat-icon.png", false) -- mail message icon
    newmsg.lbl = guiCreateLabel(553.0000,175.0000, 244.0000, 19.0000, "", false)
    guiLabelSetColor(newmsg.lbl,0, 170, 255)
        guiLabelSetHorizontalAlign(newmsg.lbl, "right", true)
    guiSetAlpha(newmsg.img, 0)
    --guiSetAlpha(newmsg.lbl, 0)
   
    wndPlayers = guiCreateWindow(1140,256,222,343, "MTATR.com Mesaj Sistemi", false)
    --fond = guiCreateMemo(0.0405,0.0525,0.9189,0.9213,"",true,wndPlayers)
 
    grdPlayers = guiCreateGridList(0,0.10,3,2, true, wndPlayers)
 
        colPlayers = guiGridListAddColumn(grdPlayers, "Oyuncular", 0.85)
 
    local players = getElementsByType("player")
    for k,v in ipairs(players) do
        addPlayerToList(v)
    end
    guiSetProperty(fond,"Disabled","true")
    guiWindowSetSizable(wndPlayers, false)
    guiSetProperty(wndPlayers, "RollUpEnabled", "true")
    guiSetProperty(wndPlayers, "Dragable", "true")
    guiSetAlpha(wndPlayers, 0)
   
   
    -- create animations for it
    anims.plfadein = Animation.create(wndPlayers, Animation.presets.guiFadeIn(1000))
    anims.plfadeout = Animation.create(wndPlayers, Animation.presets.guiFadeOut(1000))
 
    anims.nmfadein = Animation.create(newmsg.img, Animation.presets.guiFadeIn(1000))
    anims.nmfadeout = Animation.create(newmsg.img, Animation.presets.guiFadeOut(1000))
   
    anims.nmtextin = Animation.create(newmsg.lbl, Animation.presets.guiFadeIn(1000))
    anims.nmtextout = Animation.create(newmsg.lbl, Animation.presets.guiFadeOut(1000))
   
--[[    local x,y = guiGetPosition(newmsg.img)
    outputDebugString("guigetPostions: " ..tostring(x).." "..tostring(y))
    local scrx,scry = guiGetScreenSize()
    anims.nmslidein = Animation.create(newmsg.img, Animation.presets.guiMove(x,y))--, 1000,false, scrx,scry, false))
    anims.nmslideout = Animation.create(newmsg.img, Animation.presets.guiMove(scrx,scry))--, 1000,false, x,y, false))
]] 
    bindKey("F4", "down", togglePmGui) 
end
function addPlayerToList(ply)
    --outputDebugString("addPlayerToList:" ..getPlayerName(ply))
    local row = guiGridListAddRow(grdPlayers)
    local name = getPlayerName(ply)
    guiGridListSetItemText(grdPlayers,row,colPlayers, name, false, false)
    --guiGridListSetItemText ( grdPlayers, row, colPlayers, (string.gsub ( getPlayerName(player), '#%x%x%x%x%x%x', '' ) or getPlayerName(player)), false, false)   
end
 
 
function removeColorCoding(name) --Line 68
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name --Line 69
end --Line 70
--replace with,
function removeColorCoding ( str )
    assert(str, type(str)=="string", "Invalid argument @ removeColorCoding. Expected 'string', got '"..type(str).."'.")
    while str:find("#%x%x%x%x%x%x") do
        str = str:gsub ( "#%x%x%x%x%x%x", "" )
    end
    return str
end
 
 
function showPmGui(state)
    if state == true then
        anims.plfadein:play()
        for k,v in pairs(chat) do
            guiSetVisible(chat[k].wnd,true)
        end
        showCursor(true)
    elseif state == false then
        anims.plfadeout:play()
        for k,v in pairs(chat) do   
            guiSetVisible(chat[k].wnd,false)
        end
        showCursor(false)
        guiSetInputEnabled(false)
    end
end
function togglePmGui()
    if not anims.plfadein:isPlaying() and not anims.plfadeout:isPlaying() then
        if guiGetAlpha(wndPlayers) > .1 then showPmGui(false)
        else showPmGui(true)
        end
    end
end
 
function buildChatWindow(ply)
    local x,y = guiGetScreenSize()
    local width,height = 300,250
    x = x*.5
    y = y*.5
   
    chat[ply] = {}
    chat[ply].wnd = guiCreateWindow(337,277,395,252, getPlayerName(ply), false) 
    --chat[ply].img = guiCreateStaticImage(0.0228,0.0754,0.9544,0.8889,"image/shruk.png",true,chat[ply].wnd)
    chat[ply].memo = guiCreateMemo(0.043,0.1746,0.9089,0.623, "", true, chat[ply].wnd)
    chat[ply].edit = guiCreateEdit(0.043,0.8214,0.7089,0.1111, "", true, chat[ply].wnd)
    chat[ply].btnX = guiCreateButton(0.9215,0.0754,0.0557,0.0794, "X", true, chat[ply].wnd)
    chat[ply].btnSend = guiCreateButton(0.757,0.8135,0.2127,0.1429, "Gonder", true, chat[ply].wnd)
    guiSetProperty(chat[ply].img,"Disabled","true")
   
    guiMemoSetReadOnly(chat[ply].memo, true)
   
    guiWindowSetSizable(chat[ply].wnd, false)
    guiSetProperty(chat[ply].wnd, "RollUpEnabled", "true")
    guiSetProperty(chat[ply].wnd, "Dragable", "true")
   
    if anims.plfadein:isPlaying() then-- in process of fading in
        guiSetVisible(chat[ply].wnd, true)
    elseif anims.plfadeout:isPlaying() then -- in process of fading out
        guiSetVisible(chat[ply].wnd, false)
    else -- not in process of either
        if guiGetAlpha(wndPlayers) > .1 then
            guiSetVisible(chat[ply].wnd, true) -- is showing
        else
            guiSetVisible(chat[ply].wnd, false) -- isnt showing
        end 
    end
end
function destroyChatWindow(ply)
    if chat[ply] and isElement(chat[ply].wnd) then
        destroyElement(chat[ply].wnd)
        chat[ply] = nil 
    end
end
 
function sendChatMessage(ply)
    --outputDebugString("sendChatMessage: " .. tostring(ply))
    if chat[ply] and isElement(chat[ply].wnd) then
        local newText = guiGetText(chat[ply].edit)
        if newText and string.len(newText) > 0 then
            local oldText = guiGetText(chat[ply].memo)
            if not oldText then oldText = "" end
oldText = oldText .. removeColorCoding(getPlayerName(g_LocalPlayer)) .. ": " .. newText .. "\n" --Line 154
            guiSetText(chat[ply].memo, oldText)
            guiSetText(chat[ply].edit, "")
            guiMemoSetCaretIndex(chat[ply].memo, string.len(oldText))
 
            triggerServerEvent("onGUIPrivateMessage", g_LocalPlayer, ply,newText)
        end 
    end
end
function recieveChatMessage(ply, msg)
    --outputDebugString("recieveChatMessage: " .. msg)
    if not chat[ply] then
        buildChatWindow(ply)
    end
   
    newmsg.show = true
    newmsg.tick = getTickCount()
   
    ---guiSetText(newmsg.lbl, getPlayerName(ply) .. ": " .. msg .. "\n")
guiSetText(newmsg.lbl, " Message from " .. getPlayerName(ply) .. "\n")
    outputChatBox("F4 Mesaj Geldi",255,0,0,true)
                local sound = playSound("GatkResalh~.mp3",false)
                setSoundVolume(sound, 0.2)
 
 
    anims.nmfadein:play()
    anims.nmtextin:play()
    --anims.nmslidein:play()
 
    local oldText = guiGetText(chat[ply].memo)
    if not oldText then oldText = "" end
oldText = oldText .. removeColorCoding(getPlayerName(ply)) .. ": " .. msg .. "\n" --Line 180
    guiSetText(chat[ply].memo, oldText)
    guiMemoSetCaretIndex(chat[ply].memo, string.len(oldText))
end
 
event_resource_start = function(res)
    buildPlayerList()
end
 
event_resource_stop = function(res)
    unbindKey("F3", "down", togglePmGui)   
    showPmGui(false)
end
 
event_player_join = function()
    --outputDebugString("onClientPlayerJoin")
    addPlayerToList(source)
end
 
event_player_quit = function()
    --outputDebugString("onClientPlayerQuit")
    removePlayerFromList(source)
    destroyChatWindow(source)
end
 
event_gui_click = function(button, state, absx, absy)
    if button == "left" and state == "up" then
        if getElementType(source) == "gui-button" then
            local parent = getElementParent(source)
            if parent ~= false then
                local ply = getPlayerFromName(guiGetText(parent))
                if ply then
                    if source == chat[ply].btnX then
                        destroyChatWindow(ply)
                        guiSetInputEnabled(false)
                    elseif source == chat[ply].btnSend then
                        sendChatMessage(ply)
                        guiSetInputEnabled(false)
                    end
                end
            end
        elseif getElementType(source) == "gui-edit" then
            local parent = getElementParent(source)
            if parent ~= false then
                local ply = getPlayerFromName(guiGetText(parent))
                if source == chat[ply].edit then
                    guiSetInputEnabled(true)
                end
            end
        else
            guiSetInputEnabled(false)
        end
    end
end
 
event_gui_doubleclick = function(button, state, absx, absy)
    if button == "left" and state == "up" then
        if source == grdPlayers then
            local row, col = guiGridListGetSelectedItem(grdPlayers)
            --outputDebugString("double clicked row: "..tostring(row))
            if row == -1 or col == -1 then return end              
            local name = guiGridListGetItemText(grdPlayers, row, col)
            local ply = getPlayerFromName(name)
            if not chat[ply] then
                buildChatWindow(ply)
           
Link to comment
g_LocalPlayer = getLocalPlayer() 
g_Root = getRootElement()
g_ThisResource = getThisResource()
g_ResourceRoot = getResourceRootElement(getThisResource())
 
chat = {} -- table to store chat windows in
newmsg = {show=false, tick=getTickCount(), showtime=5000, img=nil, lbl=nil } -- new msg table
 
 
anims = {}
 
function buildPlayerList()
    local x,y = guiGetScreenSize()
    local width,height = 175,350
    x = x-width
    y = (y-height)/2
    --newmsg.img = guiCreateStaticImage(681.0000,134.0000, 42.0000,34.0000, "image/chat-icon.png", false) -- mail message icon
    newmsg.lbl = guiCreateLabel(553.0000,175.0000, 244.0000, 19.0000, "", false)
    guiLabelSetColor(newmsg.lbl,0, 170, 255)
        guiLabelSetHorizontalAlign(newmsg.lbl, "right", true)
    guiSetAlpha(newmsg.img, 0)
    --guiSetAlpha(newmsg.lbl, 0)
   
    wndPlayers = guiCreateWindow(1140,256,222,343, "MTATR.com Mesaj Sistemi", false)
    --fond = guiCreateMemo(0.0405,0.0525,0.9189,0.9213,"",true,wndPlayers)
 
    grdPlayers = guiCreateGridList(0,0.10,3,2, true, wndPlayers)
 
        colPlayers = guiGridListAddColumn(grdPlayers, "Oyuncular", 0.85)
 
    local players = getElementsByType("player")
    for k,v in ipairs(players) do
        addPlayerToList(v)
    end
    guiSetProperty(fond,"Disabled","true")
    guiWindowSetSizable(wndPlayers, false)
    guiSetProperty(wndPlayers, "RollUpEnabled", "true")
    guiSetProperty(wndPlayers, "Dragable", "true")
    guiSetAlpha(wndPlayers, 0)
   
   
    -- create animations for it
    anims.plfadein = Animation.create(wndPlayers, Animation.presets.guiFadeIn(1000))
    anims.plfadeout = Animation.create(wndPlayers, Animation.presets.guiFadeOut(1000))
 
    anims.nmfadein = Animation.create(newmsg.img, Animation.presets.guiFadeIn(1000))
    anims.nmfadeout = Animation.create(newmsg.img, Animation.presets.guiFadeOut(1000))
   
    anims.nmtextin = Animation.create(newmsg.lbl, Animation.presets.guiFadeIn(1000))
    anims.nmtextout = Animation.create(newmsg.lbl, Animation.presets.guiFadeOut(1000))
   
--[[    local x,y = guiGetPosition(newmsg.img)
    outputDebugString("guigetPostions: " ..tostring(x).." "..tostring(y))
    local scrx,scry = guiGetScreenSize()
    anims.nmslidein = Animation.create(newmsg.img, Animation.presets.guiMove(x,y))--, 1000,false, scrx,scry, false))
    anims.nmslideout = Animation.create(newmsg.img, Animation.presets.guiMove(scrx,scry))--, 1000,false, x,y, false))
]]
    bindKey("F4", "down", togglePmGui)
end
function addPlayerToList(ply)
    --outputDebugString("addPlayerToList:" ..getPlayerName(ply))
    local row = guiGridListAddRow(grdPlayers)
    local name = getPlayerName(ply)
    guiGridListSetItemText(grdPlayers,row,colPlayers, name, false, false)
    --guiGridListSetItemText ( grdPlayers, row, colPlayers, (string.gsub ( getPlayerName(player), '#%x%x%x%x%x%x', '' ) or getPlayerName(player)), false, false)  
end
 
function removeColorCoding ( str )
    assert(str, type(str)=="string", "Invalid argument @ removeColorCoding. Expected 'string', got '"..type(str).."'.")
    while str:find("#%x%x%x%x%x%x") do
        str = str:gsub ( "#%x%x%x%x%x%x", "" )
    end
    return str
end
 
 
function showPmGui(state)
    if state == true then
        anims.plfadein:play()
        for k,v in pairs(chat) do
            guiSetVisible(chat[k].wnd,true)
        end
        showCursor(true)
    elseif state == false then
        anims.plfadeout:play()
        for k,v in pairs(chat) do  
            guiSetVisible(chat[k].wnd,false)
        end
        showCursor(false)
        guiSetInputEnabled(false)
    end
end
function togglePmGui()
    if not anims.plfadein:isPlaying() and not anims.plfadeout:isPlaying() then
        if guiGetAlpha(wndPlayers) > .1 then showPmGui(false)
        else showPmGui(true)
        end
    end
end
 
function buildChatWindow(ply)
    local x,y = guiGetScreenSize()
    local width,height = 300,250
    x = x*.5
    y = y*.5
   
    chat[ply] = {}
    chat[ply].wnd = guiCreateWindow(337,277,395,252, getPlayerName(ply), false)
    --chat[ply].img = guiCreateStaticImage(0.0228,0.0754,0.9544,0.8889,"image/shruk.png",true,chat[ply].wnd)
    chat[ply].memo = guiCreateMemo(0.043,0.1746,0.9089,0.623, "", true, chat[ply].wnd)
    chat[ply].edit = guiCreateEdit(0.043,0.8214,0.7089,0.1111, "", true, chat[ply].wnd)
    chat[ply].btnX = guiCreateButton(0.9215,0.0754,0.0557,0.0794, "X", true, chat[ply].wnd)
    chat[ply].btnSend = guiCreateButton(0.757,0.8135,0.2127,0.1429, "Gonder", true, chat[ply].wnd)
    guiSetProperty(chat[ply].img,"Disabled","true")
   
    guiMemoSetReadOnly(chat[ply].memo, true)
   
    guiWindowSetSizable(chat[ply].wnd, false)
    guiSetProperty(chat[ply].wnd, "RollUpEnabled", "true")
    guiSetProperty(chat[ply].wnd, "Dragable", "true")
   
    if anims.plfadein:isPlaying() then-- in process of fading in
        guiSetVisible(chat[ply].wnd, true)
    elseif anims.plfadeout:isPlaying() then -- in process of fading out
        guiSetVisible(chat[ply].wnd, false)
    else -- not in process of either
        if guiGetAlpha(wndPlayers) > .1 then
            guiSetVisible(chat[ply].wnd, true) -- is showing
        else
            guiSetVisible(chat[ply].wnd, false) -- isnt showing
        end
    end
end
function destroyChatWindow(ply)
    if chat[ply] and isElement(chat[ply].wnd) then
        destroyElement(chat[ply].wnd)
        chat[ply] = nil
    end
end
 
function sendChatMessage(ply)
    --outputDebugString("sendChatMessage: " .. tostring(ply))
    if chat[ply] and isElement(chat[ply].wnd) then
        local newText = guiGetText(chat[ply].edit)
        if newText and string.len(newText) > 0 then
            local oldText = guiGetText(chat[ply].memo)
            if not oldText then oldText = "" end
oldText = oldText .. removeColorCoding(getPlayerName(g_LocalPlayer)) .. ": " .. newText .. "\n" --Line 154
            guiSetText(chat[ply].memo, oldText)
            guiSetText(chat[ply].edit, "")
            guiMemoSetCaretIndex(chat[ply].memo, string.len(oldText))
 
            triggerServerEvent("onGUIPrivateMessage", g_LocalPlayer, ply,newText)
        end
    end
end
function recieveChatMessage(ply, msg)
    --outputDebugString("recieveChatMessage: " .. msg)
    if not chat[ply] then
        buildChatWindow(ply)
    end
   
    newmsg.show = true
    newmsg.tick = getTickCount()
   
    ---guiSetText(newmsg.lbl, getPlayerName(ply) .. ": " .. msg .. "\n")
guiSetText(newmsg.lbl, " Message from " .. getPlayerName(ply) .. "\n")
    outputChatBox("F4 Mesaj Geldi",255,0,0,true)
                local sound = playSound("GatkResalh~.mp3",false)
                setSoundVolume(sound, 0.2)
 
 
    anims.nmfadein:play()
    anims.nmtextin:play()
    --anims.nmslidein:play()
 
    local oldText = guiGetText(chat[ply].memo)
    if not oldText then oldText = "" end
oldText = oldText .. removeColorCoding(getPlayerName(ply)) .. ": " .. msg .. "\n" --Line 180
    guiSetText(chat[ply].memo, oldText)
    guiMemoSetCaretIndex(chat[ply].memo, string.len(oldText))
end
 
event_resource_start = function(res)
    buildPlayerList()
end
 
event_resource_stop = function(res)
    unbindKey("F3", "down", togglePmGui)  
    showPmGui(false)
end
 
event_player_join = function()
    --outputDebugString("onClientPlayerJoin")
    addPlayerToList(source)
end
 
event_player_quit = function()
    --outputDebugString("onClientPlayerQuit")
    removePlayerFromList(source)
    destroyChatWindow(source)
end
 
event_gui_click = function(button, state, absx, absy)
    if button == "left" and state == "up" then
        if getElementType(source) == "gui-button" then
            local parent = getElementParent(source)
            if parent ~= false then
                local ply = getPlayerFromName(guiGetText(parent))
                if ply then
                    if source == chat[ply].btnX then
                        destroyChatWindow(ply)
                        guiSetInputEnabled(false)
                    elseif source == chat[ply].btnSend then
                        sendChatMessage(ply)
                        guiSetInputEnabled(false)
                    end
                end
            end
        elseif getElementType(source) == "gui-edit" then
            local parent = getElementParent(source)
            if parent ~= false then
                local ply = getPlayerFromName(guiGetText(parent))
                if source == chat[ply].edit then
                    guiSetInputEnabled(true)
                end
            end
        else
            guiSetInputEnabled(false)
        end
    end
end
 
event_gui_doubleclick = function(button, state, absx, absy)
    if button == "left" and state == "up" then
        if source == grdPlayers then
            local row, col = guiGridListGetSelectedItem(grdPlayers)
            --outputDebugString("double clicked row: "..tostring(row))
            if row == -1 or col == -1 then return end              
            local name = guiGridListGetItemText(grdPlayers, row, col)
            local ply = getPlayerFromName(name)
            if not chat[ply] then
                buildChatWindow(ply)
            end
            guiBringToFront(chat[ply].wnd)        
        end
    end
end
 
event_gui_accepted = function(element)
   
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...