Jump to content

- [مشكله ] - sفي كود


Recommended Posts

  
function aa() 
    guiGridListClear(GUIEditor.gridlist[1]) 
    
   for i,v in ipairs(getElementsByType("player")) do 
  
    local row = guiGridListAddRow(GUIEditor.gridlist[1]) 
    
    guiGridListSetItemText(GUIEditor.gridlist[1],row,1,getPlayerName(v),false,false) 
    
    end 
end 
addEventHandler ("onClientResourceStart",resourceRoot,aa) 
addEventHandler ("onClientPlayerJoin",root,aa) 
addEventHandler ("onClientPlayerChangeNick",root,aa) 
addEventHandler ("onClientPlayerQuit",root,aa) 
  
 addEventHandler ( "onClientGUIClick", root,---- هنا كود فتح لوحة الدردشه لو حدد ع لاعب من القريد ليست تنفك لوحة الدردشه 
function() 
    if ( source == GUIEditor.gridlist[1] ) then   
     
  if guiGridListGetSelectedItem(GUIEditor.gridlist[1]) ~= -1 then 
  
   guiSetVisible ( GUIEditor.window[2], true ) 
   end 
   end 
   ) 
  
function trim(s) -- from [url=http://lua-users.org/wiki/StringTrim]http://lua-users.org/wiki/StringTrim[/url] 
    return s:match "^%s*(.-)%s*$" 
end 
  
 addEventHandler ( "onClientGUIClick", root, 
function() 
    if ( source == GUIEditor.button[2] ) then             
        if guiGridListGetSelectedItem(GUIEditor.gridlist[1]) ~= -1 then 
        local player = guiGridListGetItemText(GUIEditor.gridlist[1], guiGridListGetSelectedItem(GUIEditor.gridlist[1]), 1) 
        local message = guiGetText(GUIEditor.edit[2]) 
        if trim(message) ~= "" then 
            triggerServerEvent("chat", localPlayer, message, player) 
            end 
        end 
     end 
end ) 
  
addEvent("chat1", true) 
addEventHandler("chat1", root, 
    function (message , name) 
        guiSetText(GUIEditor.memo[2], guiGetText(GUIEditor.memo[2]).."\n"..name:gsub("#%x%x%x%x%x%x", "").." : "..message) 
end ) 
  
  
  
 function TopGui() 
local guiS = guiGetVisible(GUIEditor.window[1]) 
guiSetVisible(GUIEditor.window[1],not guiS) 
showCursor(not guiS) 
guiSetInputEnabled(not guiS) 
end 
bindKey("F2","down",TopGui) 

addEvent("chat", true) 
addEventHandler("chat", root, 
function (message, player) 
    local playerName = getPlayerFromName(player) 
    local sourceName = getPlayerName(source) 
    triggerClientEvent(playerName,"chat1",playerName, message, sourceName) 
end ) 

المشكله ان انا لما ارسل ل نفسي ترسل

لكن لما خويي يرسلي اوا انا ارسله ماترسسل

Link to comment

الا فتحته شوف الكود

  
 addEventHandler ( "onClientGUIClick", root,---- هنا كود فتح لوحة الدردشه لو حدد ع لاعب من القريد ليست تنفك لوحة الدردشه 
function() 
    if ( source == GUIEditor.gridlist[1] ) then  --- لما يضرب ع احد من القريد ليست 
     
  if guiGridListGetSelectedItem(GUIEditor.gridlist[1]) ~= -1 then ----- تحقق على انه يكون محدد او لا 
  
   guiSetVisible ( GUIEditor.window[2], true ) --لو تحقق الشرط يفتح النآفثه حقت الدردشه 
   end 
   end 
   end 
   ) 

Link to comment

^ انت كذا فتحتها للي ضغط ع اسم اللاعب,

اوضح لك اكثر, انا فتحت اللوحه وضغطت على اسمك راح تفتح لي اللوحه انا بس, ماراح تفتح اللوحه للي ضغطت على اسمه.

اللي تحتاجه الحين, يوم ترسل التريقر من السيرفر للكلينت للاعب, افتح له النافذه عشان الكلام يوصله.

Link to comment
^ انت كذا فتحتها للي ضغط ع اسم اللاعب,

اوضح لك اكثر, انا فتحت اللوحه وضغطت على اسمك راح تفتح لي اللوحه انا بس, ماراح تفتح اللوحه للي ضغطت على اسمه.

اللي تحتاجه الحين, يوم ترسل التريقر من السيرفر للكلينت للاعب, افتح له النافذه عشان الكلام يوصله.

يعني الكود الي فوق اكنسله

ولا

اخليه واضيف

  
addEvent("chat1", true) 
addEventHandler("chat1", root, 
  
    function (message , name) 
        
        guiSetVisible ( GUIEditor.window[2], true ) 
  
        guiSetText(GUIEditor.memo[2], guiGetText(GUIEditor.memo[2]).."\n"..name:gsub("#%x%x%x%x%x%x", "").." : "..message) 
end ) 

Link to comment

عندك اند ناقص بالكلينت, احذف الحدث حق الضغط ع الجريد ليست وعدل حدث الضغط على الزر وخليها مع بعض كذا :

addEventHandler ( "onClientGUIClick", root, 
function() 
    if ( source == GUIEditor.button[2] ) then             
        if guiGridListGetSelectedItem(GUIEditor.gridlist[1]) ~= -1 then 
            local player = guiGridListGetItemText(GUIEditor.gridlist[1], guiGridListGetSelectedItem(GUIEditor.gridlist[1]), 1) 
                local message = guiGetText(GUIEditor.edit[2]) 
                    if trim(message) ~= "" then 
                        triggerServerEvent("chat", localPlayer, message, player) 
            end 
        end 
    elseif ( source == GUIEditor.gridlist [ 1 ] ) then 
        if guiGridListGetSelectedItem(GUIEditor.gridlist[1]) ~= -1 then 
            guiSetVisible ( GUIEditor.window[2], true ) 
        end 
    end 
end ) 

وعدل مستقبل الترقر (الايفنت) بالكلينت خليه كذا :

addEvent("chat1", true) 
addEventHandler("chat1", root, 
    function (message , name) 
    local text = trim( guiGetText ( GUIEditor.memo [ 1 ] ) ) ~= '' and guiGetText(GUIEditor.memo[1]).."\n"..name:gsub("#%x%x%x%x%x%x", "").." : "..message or name:gsub("#%x%x%x%x%x%x", "").." : "..message 
    guiSetText(GUIEditor.memo[ 1 ], text  ) 
end ) 

وعدل السيرفر كذا :

addEvent("chat", true) 
addEventHandler("chat", root, 
function (message, player) 
    triggerClientEvent(getPlayerFromName(player),"chat1",getPlayerFromName(player), message, getPlayerName(source)) 
end ) 
Link to comment

صار يقولي ان ذا

  
function trim(s) -- from [url=http://lua-users.org/wiki/StringTrim]http://lua-users.org/wiki/StringTrim[/url] 
    return s:match "^%s*(.-)%s*$" 
end 

في خطا يقول يقول s

ماله قيمه او حاجه مثل كذا ولما احذفه كمان يقولي

trim

ماله قيمه

Link to comment

addEvent("chat1", true) 
addEventHandler("chat1", root, 
    function (message , name) 
    local text = trim( guiGetText ( GUIEditor.memo [ 2 ] ) ) ~= '' and guiGetText(GUIEditor.memo[2]).."\n"..name:gsub("#%x%x%x%x%x%x", "").." : "..message or name:gsub("#%x%x%x%x%x%x", "").." : "..message 
    guiSetText(GUIEditor.memo[ 2 ], text  ) 
end ) 
Link to comment

اخي ممكن سوؤاتل خارج الموضوع :

مثل انا ابي اجيب لاعيبه في قروب محدد

هذا قروب مثل رتبتة

msolserver

مثل ابي الاعبيه الي مهم الرتبه يجي اسمهم في كولمن و الكولمن الثاني نقاط

انا ابي ازود نقطاهم على كيفيك من داخل الاعبه و كل لاعب ازوده

اكتب بي اديت و تنضاف له نقطه

اعرف انه مافهمت شكل

بس ابي

كولمن فيه لاعيبه

وكلمن ثاني يتحدث كل ماضيف نقاط لاعبين+ كيف اضيفهلم نقاط من داخل الاعبه

Link to comment

تقدر تسوي موضوع جديد :mrgreen:

اول شوي راح تسوي تريقر من الكلينت للسيرفر وتجيب اسماء الحسابات اللي داخل القروب, ثم ترسل تريقر للكلينت وتحطها بالجريد ليست, وتسوي لك نظام حفظ للنقاط سواء ...بقواعد البيانات او الاكس ام ال او

triggerServerEvent 
table 
getAccounts 
getPlayerAccount 
getAccountName 
isObjectInACLGroup 
table.insert 
triggerClientEvent 
executeSQLQuery 
var -- تسوي لك متغير عشان تزيد قيمته وتحفظه ف قاعدة البيانات 
Link to comment
  
GUIEditor = { 
    gridlist = {}, 
    button = {}, 
    window = {}, 
} 
GUIEditor.window[1] = guiCreateWindow(223, 65, 397, 401, "لوحة مراقبة رتبت المسوؤلينء", false) 
guiWindowSetSizable(GUIEditor.window[1], false) 
guiSetAlpha(GUIEditor.window[1], 1.00) 
  
GUIEditor.gridlist[1] = guiCreateGridList(9, 36, 379, 285, false, GUIEditor.window[1]) 
guiGridListAddColumn(GUIEditor.gridlist[1], "accountname", 0.5) 
guiGridListAddColumn(GUIEditor.gridlist[1], "nget", 0.5) 
GUIEditor.button[1] = guiCreateButton(49, 327, 135, 37, "آضآفة نقطه", false, GUIEditor.window[1]) 
GUIEditor.button[2] = guiCreateButton(205, 327, 135, 37, "سحب نقطه", false, GUIEditor.window[1]) 
  
  
  
  
  
addEventHandler ("onClientResourceStart",resourceRoot 
function() 
   
triggerServerEvent("getAccount1", localPlayer) 
  
end 
) 
  
  
addEvent("getAccounts", true) 
addEventHandler("getAccounts", root, 
  
function(acc,acc1,account,v1) 
  
    local row = guiGridListAddRow(GUIEditor.gridlist[1]) 
    
    guiGridListSetItemText(GUIEditor.gridlist[1],row,1,account),false,false) 
    guiGridListSetItemText(GUIEditor.gridlist[1],row,2,v1),false,false) 
  
end 
) 
  
  
  
addEventHandler('onClientGUIClick',root, 
function () 
if source == button then -- هنا لو ضربنا يزيد النقاطه الي بي الاديت بوكس مكتوبه 
  
 local v11 = guiGetText(GUIEditor.edit[1]) ---  
  
 v1 = v1 +  v11 
  
 triggerServerEvent("getAccount3", localPlayer) ---هنا نرسل القيم سيرفر و نحطه في قواعد بيانات صح؟ 
  
  
elseif  source == button2 then  --- هنا لو ضربنا يسحب منه النقاطه المكتوبه في الاديت بوكس 
  
 local v12 = guiGetText(GUIEditor.edit[2]) 
  
 v1 = v1 - v12 
  
 triggerServerEvent("getAccount4", localPlayer,v1) ---هنا نرسل القيم سيرفر و نحطه في قواعد بيانات صح؟ 
  
  
  
  
end 
end 
) 
  

  
bl = {} 
addEvent("getAccount1", true) 
addEventHandler("getAccount1", root, 
  
        function() 
     
        for k,v in ipairs ( getElementsByType("player") ) do 
         
        local account = getAccounts (v) 
         
        if #account ~= 0 then 
         
        local acc = getPlayerAccount(source) 
         
        if not isGuestAccount ( acc ) then 
         
            local acc1 = getAccountName(acc) 
             
        if isObjectInACLGroup ( "user." .. acc1, aclGetGroup ( "Admin" ) ) then 
             
            table.insert(bl,v) 
            v1 = 0 
              triggerClientEvent(root,"getAccounts",root,acc,acc1,account,v1) 
                 
                end  
            end 
        end 
    end 
end 
) 

قواعد البيانات لسع ماضفتهم

لكن الطريقه صح الي فوق ولا لا

Link to comment

للأسف كودك تقريباً ثلاثة ارباعه خطأ,

شوف سويت لك وظيفه تجيب لك الحسابات اللي بقروب معين :

function getAccountsFromGroup() 
    local t = {} 
        if #getAccounts() ~= 0 then 
            for k,v in ipairs ( getAccounts() ) do 
                if isObjectInACLGroup( 'user.'..getAccountName( v ),aclGetGroup('msolserver') ) then 
                    table.insert( t, getAccountName ( v ) ) 
            end 
        end 
    end 
    return t 
end 

يعني اول ما ترسل تريقر للسيرفر استخدم الوظيفه ذي زي كذا

getAccountsFromGroup () 

وارسلها مع التريقر للكلينت وسوي لوب زي كذا

for k,v in ipairs ( groups ) do 
    local row = guiGridListAddRow ( grid ) 
        guiGridListSetItemText ( grid, row, 1, v, false, false ) 
end 
Edited by Guest
Link to comment
  
function getAccountsFromGroup() 
    local t = {} 
        if #getAccounts() ~= 0 then 
            for k,v in ipairs ( getAccounts() ) do 
                if isObjectInACLGroup( 'user.'..getAccountName( v ),aclGetGroup('msolserver') ) then 
                    table.insert( t, getAccountName ( v ) ) 
            end 
        end 
    end 
    return t 
end 
  
  
  
addEvent("getAccount1", true) 
addEventHandler("getAccount1", root, 
  
        function getAccountsFromGroup() 
            v1 = 0 
              triggerClientEvent(root,"getAccounts",root,getAccountsFromGroup,v1) 
     
end 
) 
  

addEvent("getAccounts", true) 
addEventHandler("getAccounts", root, 
  
function(acc,acc1,account,v1) 
  
for k,v in ipairs ( getAccountsFromGroup () ) do 
    local row = guiGridListAddRow(GUIEditor.gridlist[1]) 
    
    guiGridListSetItemText(GUIEditor.gridlist[1],row,1,v,false,false) 
    guiGridListSetItemText(GUIEditor.gridlist[1],row,2,v1,false,false) 
  
end 
) 

Link to comment

-- Client Side # 
addEvent("getAccounts", true) 
addEventHandler("getAccounts", root, function( groups ) 
    for k,v in ipairs ( groups ) do 
        local row = guiGridListAddRow(GUIEditor.gridlist[1]) 
            guiGridListSetItemText(GUIEditor.gridlist[1],row,1,v,false,false) 
                guiGridListSetItemText(GUIEditor.gridlist[1],row,2,'0',false,false) 
        end 
    end 
) 

-- Server Side # 
function getAccountsFromGroup() 
    local t = {} 
        if #getAccounts() ~= 0 then 
            for k,v in ipairs ( getAccounts() ) do 
                if isObjectInACLGroup( 'user.'..getAccountName( v ),aclGetGroup('msolserver') ) then 
                    table.insert( t, getAccountName ( v ) ) 
            end 
        end 
    end 
    return t 
end 
  
addEvent("getAccount1", true) 
addEventHandler("getAccount1", root, function ( ) 
    triggerClientEvent( root, "getAccounts", root, getAccountsFromGroup() ) 
   end 
) 
Link to comment

اذا جيت تزيد النقاط, طبعاً من كلامك انك تكتب النقاط ف الاديت, طيب اذا جيت تضغط الزر ترسل تريقر للسيرفر ولازم تسوي له حفظ عشان ما تروح النقاط اذا سويت ريستارت او طلعت من السيرفر والعفو ماسوينا شي :) .

Link to comment
اذا جيت تزيد النقاط, طبعاً من كلامك انك تكتب النقاط ف الاديت, طيب اذا جيت تضغط الزر ترسل تريقر للسيرفر ولازم تسوي له حفظ عشان ما تروح النقاط اذا سويت ريستارت او طلعت من السيرفر والعفو ماسوينا شي :) .

طيب بعد

ما ارسله

وش اسوي

احط متغير و ازيده

+

اخي مود الدردشه الخاصه الا الان مايششتغل ماياقدر ارسل لخويي

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