[?] Kullanıcının Veritabanındaki Özelliklerini Artırması
5
●346
- 09-10-2012, 19:55:06Eğer seviyenin belli bir limiti yoksa, matematiksel formül yazmanız lazım
1. seviye 100 istiyorsa, 2. seviye 200 isteyecek diyelim, onu da şu şekilde
site ayarlarının olduğu dosya yahut mysql tablosunda
gelisim_fiyat ayarını 100 olarak değer veren bir değişken atarsınız $gelisim_fiyat diyelim bu 100 değerini temsil edecek
geliştirme işlemi sırasında kullanıcının son gelisim seviyesi çekilir
SELECT gelisim_seviye FROM kullanicilar WHERE kulladi = 'örnek'
bu sorgudan dönen gelisim_seviye miktarı $gelisim_seviye olsun
$gelisim_seviye ile $gelisim_fiyati çarpacaksın bunun sonucundaki fiyat $fiyat olsun
$fiyat = $gelisim_seviye * $gelisim_fiyat; // örnek 4. seviye kullanıcı gelişim yaparken 4*100 olacak yani 400
ondan sonra çıkan sonuç sorgu haline getirilir
UPDATE kullanicilar SET gelisim_seviye=gelisim_seviye+1, kalanpara=kalanpara-$fiyat WHERE kulladi = 'örnek' - 10-10-2012, 01:02:52parasına bak: SELECT para FROM uyeler WHERE nickname='$session'
bunu mysql_fetch_array ile array'e ata.
if ($para[0]>gereken) {
geliştir butonunu göstert
}
UPDATE uyeler SET zeka=zeka+1 WHERE nickname='$session'
UPDATE uyeler SET para=para-harcanan WHERE nickname='$session'
bu örnek kodları bir incele. - 10-10-2012, 21:34:25Öncelikle daha önceleri oyun programlamayla ugrastigim için ve suan biraz vaktim oldugu için sorunuza detayli cevap verecegim..
Örnegin Tablolariniz:
Oyuncu ( Tablo Alanlari )
---------------------
ID - Uye ID
KullaniciAdi - Oyuncu Adi
Guc - Karakter Gücü
Zeka - Karakter Zekasi
Beceri - Karakter Becerisi
Para - O an kullanicinin üstünde bulunan para..
Simdi kodlama kismini geçecek olursak,
<?php include('inc/baglanti.php'); // Gerekli SQL baglanti ayarlarinin bulundugu baglanti dosyasi oldugunu farzediyorum adida "baglanti.php".. $ozellik = mysql_real_escape_string($_GET["GelistirilenOzellik"]); // + ya basildiginda gelistirilmis özellik olarak söyle linkler vericeksin ( sayfa adini islem.php farzettim ) her birine islem.php?GelistirilenOzellik=Guc, islem.php?GelistirilenOzellik=Beceri, islem.php?GelistirilenOzellik=Zeka gibi $kullaniciadi = $_SESSION['kullaniciadi']; // Bu alani kendine göre düzenleyebilirsin.. if($ozellik != 'Guc' || $ozellik != 'Zeka' || $ozellik != 'Beceri' || empty($ozellik) || !isset($kullaniciadi)){ echo "Bu iste bir hata var"; // Burada gerekli kontrolleri yaptim.. exit(); // Yapilacak bütün islemlerede son veriyorum.. } $seviye_ucret = '200'; // Bunu isteginize göre degistirebilirsiniz, 1. seviye 200, 2. 400, 3. 600 diye gider bu.. $kontrol = mysql_fetch_array(mysql_query('SELECT Para, Guc, Zeka, Beceri FROM Oyuncu WHERE KullaniciAdi=\''.$kullaniciadi.'\' LIMIT 1')); $gerekli_miktar = $kontrol[$ozellik] * $seviye_ucret; if($kontrol['Para'] < $gerekli_ucret){ // Eger gerekli ücreti yoksa echo 'Üzgünüm <b>'.$ozellik.'</b> gelistirmek için yeterli paraniz yok..'; }else{ mysql_query('UPDATE Oyuncu SET \''.$ozellik.'\' = \''.$kontrol[$ozellik].'\' + 1, Para = Para - \''.$gerekli_miktar.'\' WHERE KullaniciAdi=\''.$kullaniciadi.'\''); echo '<b>'.$ozellik.'</b> seviyeniz artti.'; } ?>Kodu denemedim
simdi yazdim umarim çalisir çalismazsa özelimden bana ulasabilirsiniz
simdi yazdim umarim çalisir çalismazsa özelimden bana ulasabilirsiniz