XPro Posted August 21, 2015 Share Posted August 21, 2015 طلب فنكشات اذا الاعب قتل بسنايبر تسجل في الالمنت دات بعذين راح اسوي نافذة تجيب فيها صاحب اكبر قتلات بسنايبر يعني دائما الاكبر لو كنت انا قاتل الف تجيب اسمي لو تجاوزني شخص بقتل بسلاح السنايبر فقط يجيبو اسمه و يتحط بدال اسمي في النافذة ذي GUI و بعدين راح اسوي اسلحة اخرى Link to comment
</Mr.Tn6eL> Posted August 21, 2015 Share Posted August 21, 2015 تحتاج نظامين الأول إدخال وهي لما يقتل الاعب بسنايبر يعطيه داتا "onPlayerWasted" setElementData getElementData الثانية إخراج وهي انك تجيب كل الاعبين وتحطهم بالجدول مع الداتا getElementsByType getElementData table.insert وخارج اللوب نسوي ترتيب للجدول حسب الأكثرية table.sort ثم نضيف الاعبين بالقائمة نسوي لوب لجميع محتويات الجدول اللي ضفناه ثم نضيفهم للقائمة guiGridListAddRow guiGridListSetItemText اذ كنت تبي تحفظ البيانات استخدم الاكوانت داتا(بيانات الحساب)ء setAccountData "onPlayerLogin" getAccountData setElementData -- هنا نحط للاعب الداتا بعد ماستخرجناها من الاكوانت داتا اذ كنت ماتعرف بالجداول شي تابع الشرح viewtopic.php?f=164&t=89424 Link to comment
XPro Posted August 21, 2015 Author Share Posted August 21, 2015 لا انا ما ابي اجيب كل الاعبين مثلا تكون في النافذة صورة ديقل يسار وعلى اليمين اسم لاب الذي يملك اكبر عدد قتل بديقل بس Link to comment
</Mr.Tn6eL> Posted August 21, 2015 Share Posted August 21, 2015 لا انا ما ابي اجيب كل الاعبينمثلا تكون في النافذة صورة ديقل يسار وعلى اليمين اسم لاب الذي يملك اكبر عدد قتل بديقل بس سهلة جيب كل الاعبين وحطهم بجدول مع الداتا getElementsByType getElementData table.insert وخارج اللوب نسوي ترتيب للجدول حسب الأكثرية table.sort ثم تجيب أول لاعب Table[1] Link to comment
XPro Posted August 21, 2015 Author Share Posted August 21, 2015 طلب تصحيح بما اني ما اسخدمت الجداول ابدا من قبل ذا وش فهمت اسويه addEventHandler("onPlayerWasted",getRootElement(), function ( ammo, attacker, weapon, bodypart ) if attacker then if ( attacker ~= source and getElementType ( attacker ) == "player" ) then if ( getWeaponNameFromID ( attacker ) == 34 ) then setElementData ( attacker, "kills" ) end end end end ) function sniperkill() Snipers = {} local players = getElementsByType("player") for i,player in ipairs (players) do local SniperData = getElementData(player,"kills") table.insert(Snipers, {SniperData}) end end function sortTable(v1, v2) return #(tostring(v1) or "") > #(tostring(v2) or "" ) end table.sort(Snipers, sortTable) for k=1,#Snipers do print(Snipers[k]) end ارجو تصحيح Link to comment
Simple. Posted August 22, 2015 Share Posted August 22, 2015 viewtopic.php?f=160&t=88178 Link to comment
XPro Posted August 22, 2015 Author Share Posted August 22, 2015 مشكوور كلاسيك موضوع مشابه تقريبا وعلى حسب ما انا شايف كودي مو غلط كبير يعني اخطاء في الترتيب و كذا ذا لاني اول مره استخدم جداول مشكورين على اي حال Link to comment
XPro Posted August 22, 2015 Author Share Posted August 22, 2015 ممكن تصحيح هذا الكود local snipers = {} -- snipers table addEventHandler("onPlayerWasted",getRootElement(), function ( ammo, attacker, weapon, bodypart ) if attacker and getElementType ( attacker ) == "player" and attacker ~= source then if tonumber(weapon) == 34 then snipers[attacker] = (snipers[attacker] or 0) + 1 end end end ) -- Table sort function topSniper() sortedTopSniper = {} for a, b in pairs(snipers) do table.insert(sortedTopSniper, {getPlayerName(a), b}) end table.sort(sortedTopSniper, function(a,b) return a[2] > b[2] end) -- end كيف اخلي افضل لاعب يجي اسمو في لوحة انا صممتها وش استخدم؟ 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