Jump to content

[HELP] GridList ColorCode


Calvinher

Recommended Posts

Posted

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
 
 
Posted
  
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 

Posted

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)
           
Posted

This should work, however, you can remove lines 72 to 75. That function gets overridden, so its just an unnecessary couple of bytes of file size to the script.

Posted
This should work, however, you can remove lines 72 to 75. That function gets overridden, so its just an unnecessary couple of bytes of file size to the script.

Oopss not again .

You can get the codes ?

Posted
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)
   

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...