UO-Dev Arama


Sphere, Mysql ve Php İlişkisi hakkında ayrıntılı açıklama

Yazar: suicide
Tarih: 29-07-2009 20:42


Paylaş : Paylaş

Bu dökümanı, pek çok kişiye faydalı olabileceğini düşündüğüm için yazma gereği duydum. Devamı da gelecek.


- !DİKKAT! -

Aşağıdaki örneklerimde güvenlik açığı vardır. Kullanmanız durumunda oluşabilecek hasarlardan, zararlardan ve diğer bilumun şeylerden ben sorumlu tutulamam. Kullanmak ya da kullanmamak tamamiyle sizin elinizdedir.

Neden güvenli bir şekilde yazmadın diye soracak olursanız. Bunları herkesin kullanmasını istemedim diyebilirim. Kullanabilecekler kullansın. Ayak altı olmasın.

- !DİKKAT! -


Öncelikle yeteri derecede mysql bilginizin olması gerekli. (ve tabiki sphere diline de hakim olmanız)

Mysql konusunda yardımcı olabilecek bir link;
http://www.tizag.com/mysqlTutorial/
Google da iyi bir arkadaş olabiliyor.


Neyse sphere içinde nerede kullanabiliriz diye düşünüyorum şimdi mysql'i.

Cevap tabiki heryerde olacak.

Sphere.ini'deki mysql ayarlarınızı yaptığınızı ve sunucunuzdaki mysqlin sorunsuz olarak çalıştığını varsayarak, basit bir sistem ile başlayalım;

Sistemin amacı: Mysql kullanarak online player listesi yapmak. Devamında online playerları web sitesi üzerinde ve oyun içerisinde listeletmek.


adım 1 - mysql de tablo yok ise oluşturmak ve içine veri girmek, silmek.

playerlarınıza tanımladığınız eventin (ivent diye okunur) @login ve @logout triggerlarını kullanacağız.

Kod:
on @login
db.connect
db.execute "create table if not exists online_players (playerUid text,playerName text);"
db.execute "insert into online_players values ('<uid>', '<name>');"

on @logout
db.connect
db.execute "delete from online_players where playerUid='<uid>';"


Evet, bu kadarcık. Herhangi bir oyuncu login olduğunda sphere mysqle bağlanıp tablo yok ise tabloyu yaratıyor. Ardından oyuncuyu tabloya giriyor.
Çıktığında ise tablodan siliyoruz. Tabloya istediğiniz kadar alan ekleyebilirsiniz. Kills, Deaths vs.


adım 2 - ince bir ayar
Herhangi bir crash olur da sphere istemediğimiz bir şekilde kapanırsa, elbette playerlardaki @logout triggerları tetiklenemeyecek ve playerlar tabloda asılı kalacaklardır. Bunun için de sphere_serv_triggers.scp adlı dosyada bulunan f_onserver_start fonksiyonu şu şekilde değiştiriyoruz;

Kod:
[function f_onserver_start]
db.connect
db.execute "drop table online_players;"


Böylelikle sunucu açıldığında online_players adındaki tabloyu silecek.
Tekrar playerlar login olmaya başladığında tablo sıfırlanmış olacak.




adım 3 - Peki php ile ben online playerlarımı nasıl sitede gösterebilirim?

O da şöyle oluyor;
Kod:
<?php

$dbhost = 'localhost';
$dbuser = 'kullanici_adi';
$dbpass = 'sifre';
$dbname = 'database_adi';

$connect = mysql_connect($dbhost,$dbuser,$dbpass) or die("Veritabanına bağlanılamıyor<br/><b>Detay:</b>".mysql_error());
mysql_select_db($dbname,$connect) or die("Veritabanına bağlanılamıyor<br/><b>Detay:</b>".mysql_error());

$player_list = mysql_query("select * from online_players");
if(mysql_num_rows($player_list) >= 1){
while ($player_data = mysql_fetch_array($player_list)) {
$playerName = $player_data['playerName'];
echo $playername;
echo "<br />";
}
}
?>



Yorumlar

1.   Gönderen anilkan   05-04-2011 12:08    

suicide
Bu dökümanı, pek çok kişiye faydalı olabileceğini düşündüğüm için yazma gereği duydum.

herkesin kullanmasını istemedim diyebilirim. Kullanabilecekler kullansın. Ayak altı olmasın.




Bi iş yapıcaksan adam gibi yap.

Oylamalar

Oylama :
Üyelerin oylama ortalaması (10 dışında) : 1.00   
Oylar: 1 den itibaren 05-04-2011 12:09

Benzer Sayfalar

SayfalarYorumlarGönderenTarih
Sphere Level Ayarları0muhacan11-03-2012
UO Sphere Scripter0TheRaskol05-08-2010
Sphere Lbr Ve Diğerleri0synix3528-07-2010
Açık arttırma v1 (MySql)0aldarson17-07-2010
Sitede Sphere İstatistik0Tycondrious11-07-2010


Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,