• 09-10-2012, 19:18:57
    #1
    Edit: Silinebilir
  • 09-10-2012, 19:55:06
    #2
    Eğ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:52
    #3
    parası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, 13:06:57
    #4
    if else kullanarak yapılabilir.
  • 10-10-2012, 21:34:25
    #5
    Ö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
  • 22-10-2012, 21:23:10
    #6
    Editlenmiştir.