Sphere MySQL — Sitede Ölüm İstatistiği
UO-Developer.com — olum tablosu, @Death kaydı ve PHP web listesiBu rehber, Sphere 0.56b sunucusunda ölen oyuncu, öldüren, yer ve saat bilgisini MySQL'e yazıp web sitenizde göstermenizi anlatır. Oyuncu öldüğünde veri tabloya eklenir; PHP sayfası bu kayıtları okuyup ziyaretçilere listeler.
Konu: MySQL ölüm logu + PHP istatistik sayfası | Seviye: Orta
İlgili: Online Ölüm Saatleri | Sitede İstatistik Gösterme | MySQL Komutları
Ön koşul: MySQL Kurulumu | projedeki Sphere MySQL Entegrasyonu rehberi
Bu döküman, Nemesi'nin hazırladığı Sphere MySQL Komutları dökümanından yararlanılarak yazılmıştır.
! DİKKAT !
Aşağıdaki PHP örneği eski mysql_* fonksiyonlarını kullanır — PHP 7+ sürümlerinde kaldırılmıştır. Modern hosting'de mysqli veya PDO tercih edin. Örnek eğitim amaçlıdır; canlı sitede SQL injection riskine karşı parametreli sorgu kullanın.
! DİKKAT !İçindekiler
- Gereksinimler
- sphere.ini — MySQL ayarları
- f_onserver_start — bağlantı
- MySQL — olum tablosu
- PHP — web listesi
- @Death — Sphere kayıt
- Kontrol listesi
1. Gereksinimler
- SphereServer 0.56b — MySQL desteği yalnızca 56b'de vardır
- MySQL kurulu ve çalışır durumda
- libMySQL.dll 32-bit — SphereSvr.exe yanında
- Web hosting veya yerel Apache/PHP — MySQL erişimi
- Temel Sphere script bilgisi
Not: Sürümünüz 0.56b olmalıdır. sphere.ini üzerinden veritabanı ayarlarını mutlaka yapın.
2. sphere.ini — MySQL Ayarları
Öncelikle sphere.ini dosyasından veritabanı ayarlarınızı yapın:
MYSQL=1
MySqlHost=localhost
MySqlUser=kullanici
MySqlPassword=sifren
MySqlDatabase=sphereAyrıntılı açıklama: Türkçe Sphere.ini
3. f_onserver_start — MySQL Bağlantısı
scripts klasöründeki sphere_serv_triggers.scp dosyasını açın. f_onserver_start fonksiyonunun altına şunu ekleyin:
[FUNCTION f_onserver_start]
db.connect
if (<db.connected>)
serv.log MySQL debug: MySQL baglantisi tamamlandi
else
serv.log MySQL debug: MySQL baglantisi tamamlanamadi.
endif
return 1Sunucu açıldığında konsolda bağlantı mesajını kontrol edin. Bağlantı yoksa sphere.ini bilgilerini ve libMySQL.dll dosyasını doğrulayın.
4. MySQL — olum Tablosu
Kullanacağınız veritabanında phpMyAdmin veya mysql komut satırı ile şu sorguyu çalıştırın:
CREATE TABLE `olum` (
`olen` varchar(255) NOT NULL,
`olduren` varchar(255) NOT NULL,
`yer` varchar(255) NOT NULL,
`saat` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;Kolonlar:
- olen — ölen karakter adı
- olduren — öldüren karakter adı
- yer — bölge adı
- saat — sunucu zamanı
5. PHP — Web Listesi
Web sitenizin www köküne — örnek olum.php — aşağıdaki kodu ekleyin. Veritabanı adı, kullanıcı ve şifreyi kendi bilgilerinizle değiştirin:
<?
$tablo = "olum";
$veritabani_ismi = "sphere";
$dbbaglan = mysql_connect("localhost","kullanici","sifren")
or die ("Database servera baglanilamadi...");
$database = mysql_select_db("$veritabani_ismi", $dbbaglan) or die("Database secilemedi...");
$son = "select * from $tablo";
$bitti = mysql_query($son) or die("Sorgulama yapilamadi...");
while ($row = mysql_fetch_object($bitti))
{
$olen = $row->olen;
$olduren = $row->olduren;
$yer = $row->yer;
$saat = $row->saat;
echo "Olen = $olen";
echo "<br />";
echo "Olduren = $olduren";
echo "<br />";
echo "Yer = $yer";
echo "<br />";
echo "Saat = $saat";
echo "<br />";
echo "----------------------------------------";
echo "<br />";
}
mysql_free_result($bitti);
mysql_close($dbbaglan);
?>Dosyayı kaydedip çıkın. Tarayıcıdan http://siteniz.com/olum.php adresini açarak tablonun okunduğunu test edin — henüz kayıt yoksa boş sayfa normaldir.
Değişken adlarında Türkçe karakter kullanmayın; örnekte $veritabani_ismi tercih edildi.
6. @Death — Sphere Kayıt
Karakter veya global trigger dosyanızda fix event bölümüne on=@Death ekleyin. Oyuncu öldüğünde MySQL tablosuna satır yazılır:
on=@Death
db.execute "INSERT INTO olum (olen, olduren, yer, saat) VALUES('<name>','<act.name>','<region.name>','<serv.rtime>')"Alan eşlemesi:
- olen — ölen — name
- olduren — öldüren — act.name
- yer — bölge — region.name
- saat — zaman — serv.rtime
db.execute öncesi MySQL bağlantısının açık olduğundan emin olun — f_onserver_start içinde db.connect yeterlidir. Bağlantı koparsa konsolda db.connect ile tekrar deneyin.
Sistem bu adımdan sonra tamamdır: biri öldüğünde kayıt tabloya düşer, PHP sayfası listeler.
7. Test Adımları
- sphere.ini MySQL ayarları kaydedildi
- Sunucu açılış logunda MySQL baglantisi tamamlandi mesajı
- olum tablosu phpMyAdmin'de görünüyor
- Test karakter ile ölüm — tabloda yeni satır var mı?
- olum.php sayfası kayıtları gösteriyor mu?
8. Sık Yapılan Hatalar
- 56b değil — MySQL komutları 55x'te çalışmaz
- libMySQL.dll eksik — db.connected 0 döner
- Yanlış DB bilgisi — PHP ve Sphere aynı veritabanını göstermeli
- @Death yanlış dosya — trigger aktif char template veya global trigger'da olmalı
- mysql_* PHP 7+ — hosting mysqli/PDO isteyebilir
9. Kontrol Listesi
- Sphere 0.56b
- sphere.ini — MYSQL=1 ve DB bilgileri
- sphere_serv_triggers.scp — f_onserver_start db.connect
- CREATE TABLE olum çalıştırıldı
- olum.php — DB ayarları düzenlendi
- on=@Death db.execute eklendi
- Ölüm testi + web sayfası doğrulandı
DB API referansı: projedeki Sphere MySQL Komutları rehberi | MySQL Komutları

