mody134 Posted November 16, 2016 Share Posted November 16, 2016 (edited) اما اجى اختار اسم الاعب يجيب اسمى انا 13 hours ago, mody134 said: --[[----------------------------- --| Private Chat -| Author : PaiN^ -| ver. : 1.1.0 -| file : pc_client.lua --| --]]----------------------------- --// variables : local me = getLocalPlayer( ) local chatwindows = { } local chatLog = { } local screen = { guiGetScreenSize( ) } --// functions : function addPlayers( ) guiGridListClear( players ) for k, v in ipairs( getElementsByType( "player" ) ) do local name = getPlayerName( v ):gsub( "#%x%x%x%x%x%x", "" ) local row = guiGridListAddRow( players ) guiGridListSetItemText( players, row, 1, k, false, true ) guiGridListSetItemText( players, row, 2, name, false, false ) guiGridListSetItemData( players, row, 2, getPlayerSerial( v ) ) end return true end function guiSetSpot( wnd, spot ) local wX, wY = guiGetSize( wnd, false ) if spot == "c" then return guiSetPosition( wnd, ( screen[1] - wX ) / 2, ( screen[2] - wY ) / 2, false ) elseif spot == "r" then return guiSetPosition( wnd, ( screen[1] - wX ), ( screen[2] - wY ) / 2, false ) end end function sendNewMessage( player ) if chatwindows[player] and chatwindows[player].wnd then local msg = guiGetText( chatwindows[player].msgBox ) if msg:len( ) >= 2 then local msgLog = guiGetText( chatwindows[player].msgLog ) if not msgLog then msgLog = "" end msgLog = msgLog .. getPlayerName( me ):gsub( "#%x%x%x%x%x%x", "" ) .. " : " .. msg .. "\n" guiSetText( chatwindows[player].msgLog, msgLog ) guiSetText( chatwindows[player].msgBox, "" ) return triggerServerEvent( "onMessageSend", me, msg, player ) end end end function getSendMessage( msg ) if not chatwindows[source] then buildChatWindow( source ) end outputChatBox( "--------", 100, 100, 100, true ) outputChatBox( "لـديـك رســآلة خـآصة جديـدة", 255, 0, 0, true ) outputChatBox( "--------", 100, 100, 100, true ) playSound( "newMessage.mp3", false ) local msgLog = guiGetText( chatwindows[source].msgLog ) if not msgLog then msgLog = "" end msgLog = msgLog .. getPlayerName( source ):gsub( "#%x%x%x%x%x%x", "" ) .." : " .. msg .. "\n" guiSetText( chatwindows[source].msgLog, msgLog ) end function buildChatWindow( player ) chatwindows[player] = { } chatwindows[player].wnd = guiCreateWindow( 145, 218, 414, 315, getPlayerName( player ):gsub( "#%x%x%x%x%x%x", "" ), false, false ) chatwindows[player].msgLog = guiCreateMemo( 19, 29, 376, 198, "", false, chatwindows[player].wnd ) chatwindows[player].send = guiCreateButton( 19, 233, 71, 28, "إرسال", false, chatwindows[player].wnd ) chatwindows[player].closeC = guiCreateButton( 324, 271, 71, 28, "إغلاق", false, chatwindows[player].wnd ) chatwindows[player].msgBox = guiCreateEdit( 19, 264, 299, 35, "", false, chatwindows[player].wnd ) chatwindows[player].warning = guiCreateLabel( 114, 237, 281, 20, "قال تعالى : { ما يلفظ من قول إلا لديه رقيب عتيد } .", false, chatwindows[player].wnd ) guiWindowSetSizable( chatwindows[player].wnd, false ) guiSetSpot( chatwindows[player].wnd, "c" ) guiSetAlpha( chatwindows[player].wnd, 1 ) guiBringToFront( chatwindows[player].wnd ) guiMemoSetReadOnly( chatwindows[player].msgLog, true ) addEventHandler( "onClientGUIAccepted", chatwindows[player].msgBox, function( ) sendNewMessage( player ) end, false ) addEventHandler( "onClientGUIClick", chatwindows[player].send, function( ) sendNewMessage( player ) end, false ) addEventHandler( "onClientGUIClick", chatwindows[player].closeC, function( ) setElementData( me, "c_state", false ) destroyElement( chatwindows[player].wnd ) chatwindows[player] = nil chatLog[me] = nil chatLog[player] = nil end, false ) end function getPlayerFromSerial( serial ) for k, v in ipairs( getElementsByType( "player" ) ) do if getPlayerSerial( v ) == serial then return v end end return false end --// events & commands : addEvent( "onMessageReceive", true ) addEventHandler( "onClientPlayerJoin", root, addPlayers ) addEventHandler( "onClientPlayerQuit", root, addPlayers ) addEventHandler( "onMessageReceive", root, getSendMessage ) addEventHandler( "onClientPlayerNickChange", root, addPlayers ) addEventHandler( "onClientResourceStart", resourceRoot, function( ) wndMain = guiCreateWindow( 686, 194, 338, 431, "# الرسائل الخاصة .,", false, true ) guiSetVisible( wndMain, false ) guiSetSpot( wndMain, "r" ) --- players = guiCreateGridList( 14, 41, 309, 314, false, wndMain ) guiGridListAddColumn( players, "#", 0.1 ) guiGridListAddColumn( players, "Players", 0.8 ) addPlayers( ) --- close = guiCreateButton( 208, 387, 104, 28, "إغلاق", false, wndMain ) start = guiCreateButton( 28, 387, 104, 28, "بدء محادثة", false, wndMain ) for k, v in ipairs( getElementsByType( "gui-button", resourceRoot ) ) do guiSetFont( v, "default-bold-small" ) guiSetProperty( v, "NormalTextColour", "FFAAAAAA" ) end --- allow = guiCreateRadioButton( 14, 359, 148, 22, "السماح بالرسائل الخاصة", false, wndMain ) guiRadioButtonSetSelected( allow, true ) disallow = guiCreateRadioButton( 192, 359, 130, 22, " منع الرسائل الخاصة", false, wndMain ) for k, v in ipairs( getElementsByType( "gui-radiobutton", resourceRoot ) ) do guiSetFont( v, "default-bold-small" ) guiSetProperty( v, "NormalTextColour", "FF000000" ) end --- bindKey( "F2", "down", function( ) local isInChat = getElementData( me, "c_state" ) if isInChat then if guiGetVisible( wndMain ) then guiSetVisible( wndMain, false ) showCursor( false ) for k, v in pairs( chatwindows ) do guiSetVisible( chatwindows[k].wnd, false ) end else guiSetVisible( wndMain, true ) showCursor( true ) for k, v in pairs( chatwindows ) do guiSetVisible( chatwindows[k].wnd, true ) end end else guiSetVisible( wndMain, not guiGetVisible( wndMain ) ) showCursor( guiGetVisible( wndMain ) ) end end ) setElementData( me, "allowing", true ) setElementData( me, "c_state", false ) end ) addEventHandler( "onClientGUIClick", resourceRoot, function( ) if source == close then guiSetVisible( wndMain, false ) showCursor( false ) for k, v in pairs( chatwindows ) do guiSetVisible( chatwindows[k].wnd, false ) end elseif source == start then local row = guiGridListGetSelectedItem( players ) if row and row ~= -1 then local playerName = guiGridListGetItemText( players, row, 2 ) local player = getPlayerFromSerial( guiGridListGetItemData( players, row, 2 ) ) if player then if getElementData( player, "allowing" ) then if chatLog[me] and chatLog[me] == player or chatLog[player] and chatLog[player] == me then return end buildChatWindow( player ) setElementData( me, "c_state", true ) chatLog[me] = player chatLog[player] = me else outputChatBox( "! هذا اللاعب قام بإغلاق الرسائل الخاصة", 200, 0, 0, true ) end else outputChatBox( "! حصل خطأ في النظام, تواصل مع أي ادمن للمساعدة", 200, 0, 0, true ) end else outputChatBox( "! يجب أن تختار لاعبا لبدء المحادثة معه", 200, 0, 0, true ) end elseif source == allow or source == disallow then setElementData( me, "allowing", guiRadioButtonGetSelected( allow ) ) end end ) addEventHandler( "onClientGUIDoubleClick", resourceRoot, function( button, state ) if source == players then if button == "left" and state == "up" then local row = guiGridListGetSelectedItem( players ) if row and row ~= -1 then local playerName = guiGridListGetItemText( players, row, 2 ) local player = getPlayerFromSerial( guiGridListGetItemData( players, row, 2 ) ) if player then if getElementData( player, "allowing" ) then if chatLog[me] and chatLog[me] == player or chatLog[player] and chatLog[player] == me then return end buildChatWindow( player ) setElementData( me, "c_state", true ) chatLog[me] = player chatLog[player] = me else outputChatBox( "! هذا اللاعب قام بإغلاق الرسائل الخاصة", 200, 0, 0, true ) end else outputChatBox( "! حصل خطأ في النظام, تواصل مع أي ادمن للمساعدة", 200, 0, 0, true ) end else outputChatBox( "! يجب أن تختار لاعبا لبدء المحادثة معه", 200, 0, 0, true ) end end end end ) Spoiler Quote Edited November 16, 2016 by mody134 Link to comment
mody134 Posted November 17, 2016 Author Share Posted November 17, 2016 كيف احذف الموضوع Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now