17 Ekim 2018, 07:31:08

Gönderen Konu: Sıralama Kodu  (Okunma sayısı 652 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

ertrldtcu

  • Deneyimli Üye
  • *
  • İleti: 444
Sıralama Kodu
« : 24 Haziran 2017, 16:09:47 »
Herhangi bir hesap verisine göre tüm hesapları hesap verisi üzerinden sıralar. Kod Xiti userpanelinden alınmıştır.

Kod:
Kod: Lua
  1. function sirala()
  2.         local tableOrder = {}
  3.         for i, v in ipairs (getAccounts()) do
  4.                 table.insert (
  5.                         tableOrder,
  6.                 {
  7.                         name = getAccountName(v),
  8.                         data = getAccountData(v,"veri_adi") -- buraya hangi veriye göre sıralayacağını yazıyorsunuz
  9.                 }
  10.                                         )
  11.         end
  12.                 table.sort (
  13.                         tableOrder,
  14.                         function(a,b)
  15.                                 return (tonumber(a.data) or 0) > (tonumber(b.data) or 0)
  16.                         end
  17.                                         )
  18.         for i,player in pairs(getElementsByType("player")) do
  19.                 if not (isGuestAccount(getPlayerAccount(player))) then
  20.                         for i=1,#tableOrder do
  21.                                 if tableOrder[i].name == getAccountName(getPlayerAccount(player)) then
  22.                                         local hesap = getPlayerAccount(player)
  23.                                         setAccountData(hesap,"sira_verisinin_adi",i) -- buraya da sırasını kaydedeceği veriyi yazıyorsunuz
  24.                                 end
  25.                         end
  26.                 end
  27.         end
  28. end

Örnek kullanım:
Kod: Lua
  1. function sirala()
  2.         local tableOrder = {}
  3.         for i, v in ipairs (getAccounts()) do
  4.                 table.insert (
  5.                         tableOrder,
  6.                 {
  7.                         name = getAccountName(v),
  8.                         data = getAccountData(v,"puan") -- buraya hangi veriye göre sıralayacağını yazıyorsunuz
  9.                 }
  10.                                         )
  11.         end
  12.                 table.sort (
  13.                         tableOrder,
  14.                         function(a,b)
  15.                                 return (tonumber(a.data) or 0) > (tonumber(b.data) or 0)
  16.                         end
  17.                                         )
  18.         for i,player in pairs(getElementsByType("player")) do
  19.                 if not (isGuestAccount(getPlayerAccount(player))) then
  20.                         for i=1,#tableOrder do
  21.                                 if tableOrder[i].name == getAccountName(getPlayerAccount(player)) then
  22.                                         local hesap = getPlayerAccount(player)
  23.                                         setAccountData(hesap,"sira",i) -- buraya da sırasını kaydedeceği veriyi yazıyorsunuz
  24.                                 end
  25.                         end
  26.                 end
  27.         end
  28. end

Hesapları sıraladık.
Şimdi de oyuncuların sıralarını bir elemente aktaralım. Bu elementi de gridlist veya scoreboard gibi yerlerde kullanabilirsiniz.

Kod: Lua
  1. function siraOgren()
  2.         for i,pl in pairs(getElementsByType("player")) do
  3.                 local hesap = getPlayerAccount(pl)
  4.                 if not (isGuestAccount(hesap)) then
  5.                         local sira = getAccountData(hesap,"sira")
  6.                         setElementData(pl,"Sıra",sira)
  7.                 else
  8.                         setElementData(pl,"Sıra","Misafir")
  9.                 end
  10.         end
  11. end
Script yazmak için kod bilmek yetmez.
 
Mesajı Beğenenler: +LJ, By.Angel, Mahlukat, merterdem34, Yavuzay

MTASA-TURK | Türkiye'nin En Güncel MTA Platformu

Sıralama Kodu
« : 24 Haziran 2017, 16:09:47 »

Cynax

  • #
  • Uzman Üye
  • *
  • İleti: 540
  • Bıraktı
Ynt: Sıralama Kodu
« Yanıtla #1 : 24 Haziran 2017, 20:27:23 »
Daha önce paylaşsaydın keşke lazımdı.Yararlı konu.
 

#CrawL

  • ★ X-Treme Gaming ★
  • Yeni Üye
  • *
  • İleti: 87
  • Skype : mtacrawl
Ynt: Sıralama Kodu
« Yanıtla #2 : 24 Haziran 2017, 20:43:33 »
Linkleri Görebilmek İçin Kayıt Olun veya Giriş Yapın
Daha önce paylaşsaydın keşke lazımdı.Yararlı konu.

Kendin de az araştırsan, kurcalasan bulabilirdin.

X-Treme Gaming | Hayalini Yaşa
Çok yakında sizlerle!
 

Prose

  • Deneyimli Üye
  • *
  • İleti: 478
  • Gökhan Türkoglu
Ynt: Sıralama Kodu
« Yanıtla #3 : 24 Haziran 2017, 20:54:30 »
Yararlı Konu Teşekkürler.
 

+LJ

  • Moderatör
  • *
  • İleti: 348
  • #MustafaKemalAtatürk
Ynt: Sıralama Kodu
« Yanıtla #4 : 26 Haziran 2017, 12:10:12 »
Yararlı paylaşım, teşekkürler.
 

Asokanta

  • Her tercihin sonu güzel değildir.
  • Yeni Üye
  • *
  • İleti: 19
  • admin@asokanta.com
    • Efkarlı Coder
Ynt: Sıralama Kodu
« Yanıtla #5 : 01 Şubat 2018, 01:29:57 »
Yararlı.
Linkleri Görebilmek İçin Kayıt Olun veya Giriş Yapın
<Başladığın> her Linkleri Görebilmek İçin Kayıt Olun veya Giriş Yapın,
mahkumdur </bitmeye>
 

MTASA-TURK | Türkiye'nin En Güncel MTA Platformu

Ynt: Sıralama Kodu
« Yanıtla #5 : 01 Şubat 2018, 01:29:57 »