Jump to content

طلب مساعدة بكود


Recommended Posts

السلام عليكم

Take يا شباب انا سويت نافذة فيها قريد ليست وازرار , داخل القريد ليست فيها وظيفتين (شرطي و مسعف ) وزر اسمه

ويحفظ على هذا الاسم لوظيفة الشرطي فقط Cancel لما يضغط على وظيفة الشرطي مثلآ وضغط الزر , يتغير اسم الزر لـ

ولما يضغط على وظيفة المسعف او ترك القريد فاضي يرجع الزر إلى اسمه الاول , وكل مايضغط وظيفة الشرطي

Cancel يطلع له الزر

وحتى لو قفل النافذة وفتحها تكون محفوظة بالزر

اما إذا ضغط كانسل , يرجع الزر لأسمه الاصلي

الكود

function isPlayerOnMission (Mission) 
               Mission = guiGridListGetItemText(MGrid , guiGridListGetSelectedItem(MGrid) , 1) 
                  BName = guiGetText(TButton) 
        if Mission == "Police" then 
  
                 guiSetText(TButton ,getElementData(TButton,"CancelButton") ) 
      if source == TButton then 
       if BName == "Take" and BName ~= "Cancel"  then  
              triggerServerEvent("GiveJob" , localPlayer) 
                   guiSetText(TButton , "Cancel") 
                           setElementData(source , "CancelButton" , BName) -- هل هذا مطلوب علشان يحفظ الاسم ؟  
   else 
      CancelMission() 
    end 
  end 
  
     else 
              guiSetText(TButton , "Take") 
    end 
    if source == CButton then 
    guiSetVisible(Mwindow , false) 
    showCursor(false) 
    end 
end 
  
  

Link to comment

^ اعرف اغير اسم الزر

بس مو هذا اللي ابيه بالضبط

مثال على اللي ابيه

RikAmg3.png

Takeالحين اخترت المهمة وضغطت زر

Cancel فــ راح يتحول اسم الزر إلى

E4KwKxg.png

Take فأبيه يحفظ ان كل ما اختار وظيفة الشرطي يطلع الزر كانسل , بس إذا اخترت وظيفة المسعف او تركت القريد ليست فاضي يرجع الزر لأسم

DpZT99g.png

وإن قفلت النافذة ورجعت فتحتها ثاني مرة وحددت على وظيفة الشرطي يبقى يطلع لي زر كانسل , إلى ان ضغطت كانسل , ترجع لأسمها الاصلي

بإختصار :

اللاعب يفتح النافذة ويختار وظيفة ويضغط الزر , فيتعين في الوظيفة اللي اختارها , فطالما هو بالوظيفة يطلع الزر كانسل أما إذا حدد وظيفة المسعف او ترك القريد فاضي يطلع له الزر الاصلي , وإذا ضغط كانسل وهو محدد وظيفة الشرطي يرجع بدون وظيفة

^ ارجو ان الحين وضح قصدي :D

Link to comment

مادري بس كودك ناقص

يحط فيها اسم الوظيفه الي اختارها setElementData استخدم وظيفة

getElementDataويتاكد اذا كان معه المنت داتا او لا بـ فنكشن

وحط الكود كامل اذا ماعرفت له نحاول نساعدك شوي

Link to comment

اخوي جربته بالكود فوق

لما اضغط على الوظيفة في القريد يتأكد بالالمنت داتا

guiSetText ويحطه في

, بس يطلع لي بالديبوق

expected string at arument 2 , got "boolean"

Link to comment
Mwindow = guiCreateWindow(318 , 26 , 316 ,460 , "Job " , false) 
  
MInfo = guiCreateLabel(176 , 43 , 130 ,193 , "Job Info: \n " , false , Mwindow) 
MMoney = guiCreateLabel(179 , 249 ,127 , 84 , "Money: \n " , false , Mwindow) 
TButton = guiCreateButton(179 , 338 , 127, 45 , "Take" , false , Mwindow) 
CButton = guiCreateButton(179 , 397 , 127 , 45 , "Close" , false , Mwindow) 
---------------------- GridList --------------------------- 
MGrid = guiCreateGridList(9 , 31 , 166 , 421 , false , Mwindow) 
guiGridListAddColumn(MGrid , "Job" , 0.6) 
row = guiGridListAddRow(MGrid) 
guiGridListSetItemText(MGrid , row , 1 , "Police" , false ,false) 
row1 = guiGridListAddRow(MGrid) 
guiGridListSetItemText(MGrid , row1 , 1 , "Medic" , false ,false) 
----------------------------------------------------------- 
guiSetVisible(Mwindow , false) 
  
  
  
addEvent("opeenGui" , true) 
addEventHandler("opeenGui" , resourceRoot ,  -- ServerSide = onMarkerHit 
function () 
  
guiSetVisible(Mwindow , true) 
showCursor(true)     
end) 
  
  
  
function TheMissions() 
  
            if not guiGridListGetSelectedItem(MGrid) then  
            guiSetText(MInfo , "")  
        else 
            text1 = guiGridListGetItemText(MGrid , guiGridListGetSelectedItem(MGrid) , 1) 
        if text1 == "Police" then  
                guiSetText(MInfo , "Job Info: \n ") 
                    guiSetText(MMoney , "Money: 650") 
        elseif text1 == "Medic" then 
                guiSetText(MInfo , "Job Info: \n ") 
                    guiSetText(MMoney , "Money: 750") 
        elseif text1 == "" then 
                guiSetText(MInfo , "Job Info: ") 
                    guiSetText(MMoney , "Money:") 
            end  
    end 
end 
addEventHandler("onClientGUIClick" , resourceRoot , TheMissions) 
  
  
  
function TakeMission()  
isPlayerOnMission() 
end 
  
addEventHandler("onClientGUIClick" , resourceRoot , TakeMission)  
  
  
function isPlayerOnMission (Mission) 
        Mission = guiGridListGetItemText(MGrid , guiGridListGetSelectedItem(MGrid) , 1) 
        BName = guiGetText(TButton) 
            if Mission == "Police" then  
                guiSetText(TButton ,getElementData(TButton,"CancelButton")) 
            if source == TButton then 
            if BName == "Take" and BName ~= "Cancel"  then  
                triggerServerEvent("GiveJob" , localPlayer) 
                    guiSetText(TButton , "Cancel") 
                        setElementData(TButton , "CancelButton" , BName) 
            else 
                CancelMission() 
  
        end 
  
    end 
     
    else 
        guiSetText(TButton , "Take") 
    end 
     
    if source == CButton then 
        guiSetVisible(Mwindow , false) 
        showCursor(false) 
        end 
end 
  
function CancelMission () 
        triggerServerEvent("TakeJob" , localPlayer) 
    guiSetText(TButton , "Take") 
end  

Link to comment

ي اخي

setElementData انت حفظته بـ

عشان تجيب القيمه حقت الزر هي كنسل او تيك getElementData يعني لازم تستخدم

تبي تعرف وين تستخدمه \\

في كود فتح النافذة حط تحقيق الشرط

ان كان عنده الوظيفة خل الزر كنسل

والعكس

Link to comment

هل هذي طريقة صحيحة ؟

بإختصــــــــار

  
guiSetVisible(Window , true) -- عند فتح النافذة  
showCursor(true) 
getElementData(source , "CancelButton") 
-------------- 
  
if Mission == "Police" then 
if source == TButton then  
guiSetText(TButton , "Cancel"  
setElementData(source , "CancelButton" , guiGetText(TButton))  -- بس محتاج افهم شنو اسوي هنا لو سمحتواا  
  
  

Link to comment
هل هذي طريقة صحيحة ؟

بإختصــــــــار

  
guiSetVisible(Window , true) -- عند فتح النافذة  
showCursor(true) 
getElementData(source , "CancelButton") 
-------------- 
  
if Mission == "Police" then 
if source == TButton then  
guiSetText(TButton , "Cancel"  
setElementData(source , "CancelButton" , guiGetText(TButton))  -- بس محتاج افهم شنو اسوي هنا لو سمحتواا  
  
  

كيف تعطية الوظيفة ؟؟ Take اول شي جاوبني على سؤالي الحين لما اللاعب يضغظ زر

Link to comment

^ الكود مو كامل للحين , انا بس حبيت تساعدوني بالنقطة المطلوبة وانا اتكلف بالباقي !إن شاء الله

ويحفظ بهذا الزر دام هو بالوظيفة Cancel الحين بس محتاج إذا اختار اللاعب الوظيفة , يتحول الزر لـ

Edit : معاند , لو تلاحظ الكود الكامل فوق , لما يضغط الزر راح يسوي تريقر للسيرفر ومنها راح اكمل الوظيفة

Link to comment
^ الكود مو كامل للحين , انا بس حبيت تساعدوني بالنقطة المطلوبة وانا اتكلف بالباقي !إن شاء الله

ويحفظ بهذا الزر دام هو بالوظيفة Cancel الحين بس محتاج إذا اختار اللاعب الوظيفة , يتحول الزر لـ

Edit : معاند , لو تلاحظ الكود الكامل فوق , لما يضغط الزر راح يسوي تريقر للسيرفر ومنها راح اكمل الوظيفة

لنفترض انك لما سويت تريقر للسيرفر تدخل اللاعب بتيم الشرطه في الحاله هذي نسوي تحقق من التيم

function TakeMission() 
       local row,col = guiGridListGetSelectedItem(MGrid ) 
       if ( row and col and row ~= -1 and col ~= -1 ) then 
       local Mission = guiGridListGetItemText(MGrid,guiGridListGetSelectedItem(MGrid),1) 
       if  Mission == "Police" then 
       if  getPlayerTeam(localPlayer) and getTeamName(getPlayerTeam(localPlayer)) == 'Police' then 
           guiSetText(TButton ,"Cancel") 
   elseif  getPlayerTeam(localPlayer) and getTeamName(getPlayerTeam(localPlayer)) ~= 'Police' then     
           guiSetText(TButton ,"Take") 
          end 
       end 
   else 
          guiSetText(TButton ,"Take") 
     end 
   end 
  addEventHandler("onClientGUIClick" , MGrid , TakeMission) 
  

Link to comment

^ طيب معاند

لو فرضآ نفس الطريقة ولكن في (القريد ليست) مهمات للشرطي , إن قبل المهمة , يتحول الزر لكانسل

يعني يكون في تيم الشرطة , ويختار مهمة في قريد ليست(مثال يروح لمنطقة) , وإذا أخذ مهمة يتحول الزر لكانسل للمهمة (وليس الوظيفة ) طالما هو شغال على المهمة

ولا ضغط كانسل تنلغي المهمة

أرجوا ان يكون مقصدي واضح وآسفين على كثرة الطلب

Link to comment
^ طيب معاند

لو فرضآ نفس الطريقة ولكن في (القريد ليست) مهمات للشرطي , إن قبل المهمة , يتحول الزر لكانسل

يعني يكون في تيم الشرطة , ويختار مهمة في قريد ليست(مثال يروح لمنطقة) , وإذا أخذ مهمة يتحول الزر لكانسل للمهمة (وليس الوظيفة ) طالما هو شغال على المهمة

ولا ضغط كانسل تنلغي المهمة

أرجوا ان يكون مقصدي واضح وآسفين على كثرة الطلب

اذا كان قصدك بنفس القريد ليست يعني بدل ماتخليه ياخذ الوظيفة تخليه يقبل مهمه محدده سوي له داتا مثلا

function isPlayerOnMission (Mission) 
    if source == TButton then 
    local row,col = guiGridListGetSelectedItem(MGrid ) 
    if ( row and col and row ~= -1 and col ~= -1 ) then 
    local Mission = guiGridListGetItemText(MGrid, guiGridListGetSelectedItem(MGrid), 1) 
    if  Mission == "Mission1" then 
    if  getPlayerTeam(localPlayer) and getTeamName(getPlayerTeam(localPlayer)) == 'Police' then 
    if  getElementData(localPlayer,"Mission1") == false then  
        guiSetText(TButton ,"Cancel") 
        setElementData(localPlayer , "Mission1" , true) 
elseif  getElementData(localPlayer,"Mission1") == true then     
        guiSetText(TButton ,"Take") 
        setElementData(localPlayer , "Mission1" , false) 
       end 
     end 
   end 
 end 
elseif source == CButton then 
         guiSetVisible(Mwindow , false) 
         showCursor(false) 
      end 
 end 
addEventHandler("onClientGUIClick", resourceRoot, isPlayerOnMission) 
  
     
  
function TakeMission() 
    local row,col = guiGridListGetSelectedItem(MGrid ) 
    if ( row and col and row ~= -1 and col ~= -1 ) then 
    local Mission = guiGridListGetItemText(MGrid, guiGridListGetSelectedItem(MGrid), 1) 
    if  Mission == "Mission1" then 
    if  getPlayerTeam(localPlayer) and getTeamName(getPlayerTeam(localPlayer)) == 'Police' then 
    if  getElementData(localPlayer,"Mission1") == true then   
        guiSetText(TButton ,"Cancel") 
elseif  getElementData(localPlayer,"Mission1") == false then    
        guiSetText(TButton ,"Take") 
          end 
       end 
    end 
 else 
        guiSetText(TButton ,"Take") 
    end 
end 
addEventHandler("onClientGUIClick" , MGrid , TakeMission)  

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