Best Studio 1
Best Studio
TuZaKK 1
TuZaKK
Mt2Hizmet 1
Mt2Hizmet
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
kaptanmikro1 1
kaptanmikro1
R 1
Roksam
[DEV]AB 1
[DEV]AB
Sevdamsın 1
Sevdamsın
farkmt2official 1
farkmt2official
emirhanHCL 1
emirhanHCL
Scarlet 1
Scarlet
Hikaye Ekle

Sitedekı Sıralama saçmalıgı

  • Konuyu başlatan Konuyu başlatan deagle147
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 14
  • Görüntüleme Görüntüleme 1K

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!

Exp genelde aynı seviyede olan oyuncular arasındaki sıralamayı belirler

Mesela 99 levelda 25 tane oyuncu var bu sefer tecrübe puanları devreye girer ve en yüksek 99 levelde exp kimdeyse o 99 lar arasında 1. olur çok komplike bir olay

Şöyle bir durum var , eskiden yani 2 yıl öncesinde 130 level olunca 1.67'ye kadar exp kasabiliyorduk ama şu son 1yılda kastıgımız çarlar 0.00 da kaldığı için sonradan kastığımız çarlar sıralamada doğal olarak aşağılarda kalıyor .
 
PHP:
<?php

/*
 * @datetime : 11.Eki.2014 05:14:06
 * @encoding : UTF-8
 * @author : Shorty
 * 
 */

include dirname(__FILE__)."/../portal.php";

set_time_limit(0);

$db->query("DELETE FROM " . $config["database"]["name"] . ".rank_player_index WHERE past = '1'");
$db->query("UPDATE " . $config["database"]["name"] . ".rank_player_index SET past = '1' WHERE past = '0'");

foreach ($config["server"]["prefix"] as $key => $value) {
    $data = $db->query("SELECT player.account_id,player.skill_group,player.id,player.name,player.job,player.level,player.playtime,player_index.empire,guild.name AS guildname FROM " . $value . "_player.player
                        LEFT JOIN elym2_arkadia_account.account ON player.account_id = account.id
                        LEFT JOIN " . $value . "_player.player_index ON player.account_id = player_index.id
                        LEFT JOIN " . $value . "_player.guild_member ON player.id = guild_member.pid
                        LEFT JOIN " . $value . "_player.guild ON guild.id = guild_member.guild_id
                        WHERE account.status = 'OK'
                        AND player.playtime >= 60 
                        AND player.level >= 40 
                        AND player.last_play >= (NOW() - INTERVAL 1 MONTH)
                        ORDER BY player.level DESC, player.exp DESC, player.playtime DESC");

    if (count($data) > 0) {
        $sirap = 1;
        foreach ($data as $sira => $index) {
            if (IsGamemaster($index["id"], $key) == false) {
                $db->bind("sira", $sirap);
                $db->bind("id", $index["id"]);
                $db->bind("job", $index["job"]);
                $db->bind("name", $index["name"]);
                $db->bind("guildname", $index["guildname"]);
                $db->bind("accountid", $index["account_id"]);
                $db->bind("skillgroup", $index["skill_group"]);
                $db->bind("empire", $index["empire"]);
                $db->bind("level", $index["level"]);
                $db->bind("playtime", $index["playtime"]);
                $db->bind("server", $key);
                $index = $db->query("INSERT INTO " . $config["database"]["name"] . ".rank_player_index (sira, id, name, job, server, level, playtime, empire, guildname, accountid, skillgroup) VALUES (:sira, :id, :name, :job, :server, :level, :playtime, :empire, :guildname, :accountid, :skillgroup)");
                $sirap++;
            }
        }
    }
}

Oyuncu sıralamasını belirleyen script budur
 
PHP:
<?php

/*
 * @datetime : 11.Eki.2014 05:14:06
 * @encoding : UTF-8
 * @author : Shorty
 * 
 */

include dirname(__FILE__)."/../portal.php";

set_time_limit(0);

$db->query("DELETE FROM " . $config["database"]["name"] . ".rank_player_index WHERE past = '1'");
$db->query("UPDATE " . $config["database"]["name"] . ".rank_player_index SET past = '1' WHERE past = '0'");

foreach ($config["server"]["prefix"] as $key => $value) {
    $data = $db->query("SELECT player.account_id,player.skill_group,player.id,player.name,player.job,player.level,player.playtime,player_index.empire,guild.name AS guildname FROM " . $value . "_player.player
                        LEFT JOIN elym2_arkadia_account.account ON player.account_id = account.id
                        LEFT JOIN " . $value . "_player.player_index ON player.account_id = player_index.id
                        LEFT JOIN " . $value . "_player.guild_member ON player.id = guild_member.pid
                        LEFT JOIN " . $value . "_player.guild ON guild.id = guild_member.guild_id
                        WHERE account.status = 'OK'
                        AND player.playtime >= 60 
                        AND player.level >= 40 
                        AND player.last_play >= (NOW() - INTERVAL 1 MONTH)
                        ORDER BY player.level DESC, player.exp DESC, player.playtime DESC");

    if (count($data) > 0) {
        $sirap = 1;
        foreach ($data as $sira => $index) {
            if (IsGamemaster($index["id"], $key) == false) {
                $db->bind("sira", $sirap);
                $db->bind("id", $index["id"]);
                $db->bind("job", $index["job"]);
                $db->bind("name", $index["name"]);
                $db->bind("guildname", $index["guildname"]);
                $db->bind("accountid", $index["account_id"]);
                $db->bind("skillgroup", $index["skill_group"]);
                $db->bind("empire", $index["empire"]);
                $db->bind("level", $index["level"]);
                $db->bind("playtime", $index["playtime"]);
                $db->bind("server", $key);
                $index = $db->query("INSERT INTO " . $config["database"]["name"] . ".rank_player_index (sira, id, name, job, server, level, playtime, empire, guildname, accountid, skillgroup) VALUES (:sira, :id, :name, :job, :server, :level, :playtime, :empire, :guildname, :accountid, :skillgroup)");
                $sirap++;
            }
        }
    }
}

Oyuncu sıralamasını belirleyen script budur



Levela göre önce bütün 130 lvl Ely1 oyuncuları yazıyor , sonra Ely2nin oyuncuları başlıyor. Herkesin leveli zaten 130 bu bahsettiğimiz sıralamada , Facia07'ye kadar olanların expi mi var yani?
 
SELECT player.account_id,player.skill_group,player.id,player.name,player.job,player.level,player.playtime,player_index.empire,guild.name AS guildname FROM player.player
LEFT JOIN account ON player.account_id = account.id
LEFT JOIN player.player_index ON player.account_id = player_index.id
LEFT JOIN player.guild_member ON player.id = guild_member.pid
LEFT JOIN player.guild ON guild.id = guild_member.guild_id
WHERE account.status = 'OK'
AND player.playtime >= 60
AND player.level >= 40
AND player.last_play >= (NOW() - INTERVAL 1 MONTH)
ORDER BY player.level DESC, player.exp DESC, player.playtime DESC

Sıralamayı bu query ile belirliyoruz.

Önce Oyuncu seviyesi, sonra oyuncunun tecrübe puanı sonra oyuncunun oyun süresi

Sıralamayı etkileyen 3 olay bu ORDER BY player.level DESC, player.exp DESC, player.playtime DESC

Bunun tabi matematiksel farklı ince detayı var bu yazdığım ile kısaca mantığı anlıyosun zaten
130 Level'de exp kasılıyorda biz mi kasmıyoruz ?
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst