Hesabına erişemeyen eski üyeler Discord üzerinden yardım alabilir.



Master
59.2997
Bugünlerde şahsıma yapılan top15 isteklerinin artması üzerine bu sistemi yazıp yayınlamak geldi içimden :) Umarım işinize yarar.

Yapmanız gereken tek şey sphere ile mysql arasındaki bağlantıyı ayarlamanız ve oyun içerisinden yetkili bir karakter aracılığı ile "f_create_table_sorted" fonksiyonunu bir kere kullanmanız.

Daha sonra ise sistemi oyuncular üzerine entegre edebilmeniz için oyuncuların üzerinde bulunan genel bir event içerisine;

on=@kill
f_insert_data

tetikleyicisini eklemeniz gerekmektedir. Şu an sistem karakter üzerindeki cinayet sayısına (kill) göre çalışıyor. Eğer isterseniz bunu dilediğiniz gibi değiştirmeniz mümkün. Değiştirmek için de "f_insert_data" fonksiyonundaki "<eval <src.kills>>" bölümlerini, sıralanmasını istediğiniz puan düzenindeki puanlara göre düzenlemeniz yeterlidir.

Oluşabilecek hata ve karşılaştığınız sorunları bana ileterek gerekli desteği alabilirsiniz.



[comment top15]
yazan: slothere
tarih: 13/07/2009 - 14:30
version: 056b+

[function top15]
dialogclose d_top15
dialog d_top15

[dialog d_top15]
0,0
nomove

f_dbcontrol
db.query "select * from sorted order by point desc limit 0, 15"
for 0 <eval <db.row.numrows> -1>
  local.height +=25
endfor
resizepic 100 75 5054 250 <eval <local.height> + 50>
checkertrans 110 85 230 <eval <local.height> + 30>
dorigin 130 100
dtext +0 +0 55 Karakter             Point
for 0 <eval <db.row.numrows> -1>
  dcroppedtext +0 *20 250 20 1152 <eval <local._for> +1>. <uid.<db.row.<dlocal._for>.uid>.name>
  dcroppedtext +152 +0 50 20 60 <eval <db.row.<dlocal._for>.point>>
endfor

[function f_insert_data]
f_dbcontrol
db.query "select uid from sorted where uid = '<src>'"
if <db.row.numrows>
  db.query "update sorted set point = '<eval <src.kills>>' where uid = '<src>'"
else
  db.query "insert into sorted values (null, '<addslashes <account>>', '<uid>', '<eval <src.kills>>')"
endif
db.close

[function f_create_table_sorted]
f_dbcontrol
db.execute "create table if not exists sorted (id int not null auto_increment primary key, account text, uid text, point int)"
db.close

[function f_dbcontrol]
if !<db.connected>
  db.connect
endif
Silindi
Master
59.2997
Ellerine Sağlık
Elinize sağlıkda çok yoruyorsunuz kendinizi bildiğiniz üzere biraz nankör bir milletimiz var :).
Silindi
Journeyman
5.8
ya hocam ben bu mysql işlerinden falan hiç anlamıyorum bunu yapmak için önce bi siteye mi ihtiyacımız vaR?
Master
59.2997
Hayır siteye ihtiyacınız yok. Sadece bir mysql veritabanı ve onunla bağlantısı kurulmuş bir sphere gerekli.
Silindi
Master
59.2997
peki mysql veritabanı ücretlimi acaba
Master
59.2997
Hayır ücretsiz. Mysql ile ilgili detaylı bir bilgi istersen şu adrese göz atabilirsin, güzel anlatmışlar temel olarak.

https://www.mysqlnedir.com/
Silindi
Master
59.2997
hocam senide yoruyorum ama bi türlü anlamadım bu iş ben o verdiğin uzun kodu nereye ekliecm script mi o
Master
59.2997
Evet, normal script olarak sunucuya eklemelisin.
Silindi
Master
59.2997
Slothere Bende Bir Şey Sorabilirmyim Bu Scpriti Spehere Dosyasının İçindeki Scpritlere mi atıcaz Dosya Halinde ?
hocam sistem çok güzel ellerine sağlik , fakat benim bir sorunum var bu top15 listesini nasil web sitemizde gösterebiliriz?
Şimdi gördüm konuyu uzun zamandır çalişiyorum mysql üstünde başaramadım sitede göstermeyi felan.
Öncelikle selamlar,

@Slothere güzel paylaşım teşekkürler.

@Rhinehart

Bu sistemi kullanıp sitede göstertmek istiyorsan dbye yazdırırken karakter isminide yazdırmanda fayda var , arkadaşımız yazarken db ye sadece uid,accname,kill değerleri yazdırıp sphere yardımıyla uid üzerinden karakterin ismini çektirdi fakat site üzerinde bunu yapamazsın.

Php kodları ile db ye bağlandıktan sonra nasıl göstereceğini örnekliyecek olursak ;

$ask = mysql_query("SELECT * FROM tabo ORDER BY killdeger DESC LIMIT 0, 10");
while ($answer = mysql_fetch_array($ask))
{

}

While döngüsü parantezleri arasında yazdırma yada değişken atama işlerini yapabilirsin , sırasıyla büyükten küçüğe doğru $answer değişkeninin dizi elemanlarını değiştirecektir.

Ör :

$answer["point"] değişkenini yazdıracak olursak kill sayısını büyükten küçüğe doğru sıralıyacaktır.

Tam olarak vermedim çünkü üzerinde uğraşıp kendinizin kavramasının sizin için daha iyi olacağını düşündüm umarım işinize yarar.
Güzel çalışma Mysql'un faydaları :asik2
eline sağlık gökberk :)
Master
59.2997
Eski kodlarımı ve kullananları görmek güzel. :)

@Rhinehart
Unknow konu hakkında temel bilgileri vermiş. Biraz daha kurcalayıp düzenleyerek istediğinizi elde edebilirsiniz. Tek yapmanız gereken temel SQL komutlarını kullanıp, sistemin kullandığı tablodaki verileri çektirtmek.

Eğer uğraşıpta çözüm yoluna ulaşamazsanız slothere[at]gmail.com adresini ekleyip bana ulaşırsanız gerekli yardımı yaparım.

Bu konu Slothere tarafından düzenlendi(2011-05-30 22:44, 12 yıl önce)



Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.