Basit Browser Oyunu Yapalım (Crime City) 3

Herkese selam. Bu yazımızda asp.net ile Basit Browser Oyunu Yapımı yazalım istedim. Adını da Crime City koydum. 🙂 Çünkü yapacağımız oyun suç işlemek üzerine olacak. 🙂 Üye olan kullanıcılar suç işleyerek para kazanacak. Neyse çok uzatmadan oyunun senaryosunu yazmaya başlayalım.

Crime City Senaryo

Basit Browser Oyunu Yapımı senaryomuza başlamadan önce bu oyunun +18 olacağını belirtmek isterim. Hemen öyle aklınıza başka başka şeyler gelmesin. Oyun suç işlemek üzerine olacağı için kendi kararlarını veremeyecek yaşta olanların bu oyunu oynamalarını engellememiz gerekir.

(Aslında bu yazıyı yazarken şuanda bazı endişelerim olmaya başladı. Her ne kadar bu oyunu yayınlamayacak olsam da yaşı tutmayıp beni takip eden yazılım meraklıları için uygun olur mu diye düşünüyorum. Onlara buradan sesleniyorum sadece yazılım mantığını  anlayın. 🙂 Bir diğer endişemde burada anlatırken oyunda kullanacağım bazı suç sayılan malzemeleri yazarken SEO ya etkisi. 🙂 neyse sadece endişelerimi belirtmek istedim sanırım.)

Öncelikle en basitinden siteye girenler üye olup oynamaya başlayacak. Üyelik aşamasında “Kullanıcı adı, Şifre, Email adresi, Şehir” alanlarını doldurup kayıt olması gerekmekte.

Kullanıcı adı benzersiz olması gerekmekte. Kontrol ettirip kayıt ettireceğiz.

Kayıt alanında şehir seçtirmek işi aslında oyunun Türkiye’deki şehirlerde oynanmasını istemem. Mesela kullanıcı Kırklareli’ni seçtiğinde diğer Kırklareli ilini seçen oyuncular ile düşman ya da ittifak olacak. Bölgesel olarak üstünlüklerini kurduklarında uçak alacak kadar parayı kazanmış olacaklar ve bölgelerini genişletmek için diğer bölgelerde de üsler kurabilecekler.

Oyun süreli olacak. 3 ay boyunca geliştirdikleri oyun 3 ayın sonunda sıfırlanacak ve top 10 listesine göre sıralamalar açıklanacak. Sıralamaya göre ödüller hesaplarına eklenecek. Bu ödüller oyun içinde herhangi bir avantaj sağlamayacak. Sadece kurdukları ittifak sisteminde yazacakları isimlere, renk yıldız, kuru kafa, tabanca gibi çeşitli renk ve ikonları ekleme olanakları olacak.

Oyunda başlarken ilk olarak 1 tane kahvehane ve bir miktar para verilecek. Bu kahvehane geliri en az olan binalardan olacak.

Market bölümü olacak ve bu marketten para karşılığında ürün alıp satabilecekler. Bu ürünler oyun içi uyuşturucular olacak. Çeşitli binalar ve laboratuvarlar yaparak bu malzemelerden üretebilecekler.

Binalar arasında kumarhanelerde olacak ve sadece para kazandıracak.

Senaryomuz şimdilik bu kadar olsun ve yavaş, yavaş işin teknik tarafına doğru ilerlemeye başlayalım.

Oyunumuzu yazmak için kullanacağım programlar Visual Studio 2013, Sql server, notepad++ olacak.

Oyun responsive yani cihaz duyarlı bir site olacağından bootstrap kullanacağız.

Basit Browser Oyunu Yapımına Şimdi Başlayalım.

Öncelikle veritabanımızı ve tablolarını oluşturalım.

Veritabanı ismini CrimeCity olarak tanımladım. Sırasıyla tablolarımız Kullanıcılar, Binalar, BinaCinsi, KullanıcıBinaları, Malzemeler, KullanıcıMalzemeleri, Klanlar, KlanÜyeleri, Market. Şimdilik tablolarımız bunlar olsun.

Tablolarımızın içerikleri;

Kullanıcılar: ID(int, Primary KEY), Kullanıcı Adı(nvarchar(50)), Şifre(nvarchar(50)), Email(nvarchar(50)), Şehir(nvarchar(50))

Binalar: ID(int, Primary KEY)BinaCinsi(int)Bina Adı(nvarchar(50)), Üretim(int), Fiyat(decimal)

BinaCinsi: ID(int, Primary KEY), Cinsi(nvarchar(50))

KullanıcıBinaları: ID(int, Primary KEY), KullanıcıID(int), BinaID(int), Adet(int)

Malzemeler: ID(int, Primary KEY), MalzemeCinsi(nvarchar(50)), MalzemeAdı(nvarchar(50)), Fiyat(decimal)

KullanıcıMalzemeleri: ID(int, Primary KEY), KullanıcıID(int), MalzemeID(int), Adet(int)

Klanlar: ID(int, Primary KEY), KlanAdı(nvarchar(50)), KurucuID(int), Banka(decimal)

KlanÜyeleri: ID(int, Primary KEY), KlanID(int), ÜyeID(int)

Market: ID(int, Primary KEY), SatılanÜrünAdı(nvarchar(50)), SatıcıID(int), Fiyat(decimal), Adet(int)

Tablolarımızın yapıları şimdilik bu şekilde.

Veritabanımızda bu şekilde tablolarımızı oluşturduktan sonra sıra geliyor metodlarımızın bulunduğu sınıfımızı yazmaya. Bu sınıfta iş yapıcı tüm metodlarımızı yazacağız. Kullanıcı kaydından market alış satışlarına kadar her şey bu sınıfın içinde olacak. Sınıfıma Core ismini vereceğim. Sizde aynı şekilde verirseniz ileride karışıklık yaşamazsınız anlatılanlarla.


Basit Browser Oyunu Yapımı Devam Edecek…

 

Kaldığımız yerden devam. 16.10.2017

Veritabanı ve tablolarımızı oluşturduğumuza göre sıra geldi projemizi oluşturmaya. Visual Studio’muzu açalım ve yeni proje > web > asp.net web application Empty seçelim.

Açılan projeye Entity Frameworks 5,0 ekleyelim. Böylece projemize veritabanımızı eklemiş olduk.

Şimdi projemize birde Core isminde class ekleyelim. Bu class’a tüm işlerimizi yaptıracağız. 🙂

Kullanıcı kaydı ile başlayalım.

public class Core
   {
       //veritabanımızı db isminde örnekledik.
       CrimeCityEntities db = new CrimeCityEntities();

       //metodumuu yazmaya başlıyoruz. metodun bizden isteyeceği değerleri de yazıyoruz.
       public bool Kullanici_Kayit(string KullaniciAdi, string Sifre, string Email, string Sehir)
       {
           //email ve kullanıcı adının olup olmadığını kontrol etmek için db sorgusu yapıyoruz.
           var EmailVarmi = db.Kullanicilars.Where(s => s.Email == Email).FirstOrDefault();
           var KullaniciAdiVarmi = db.Kullanicilars.Where(s => s.Kullanici_Adi == KullaniciAdi).FirstOrDefault();

           //dönen değere göre false yada true dönecek if yapımızı oluşturuyoruz.
           if(EmailVarmi !=null && KullaniciAdiVarmi!=null)
           {
               return false;
           }
           else
           {
               //eğer email ve kullanıcı adi yoksa veritabanımıza kayıt işlemini yapıyoruz.
               Kullanicilar YeniKullanici = new Kullanicilar();
               YeniKullanici.Kullanici_Adi = KullaniciAdi;
               YeniKullanici.Email = Email;
               YeniKullanici.Sifre = Sifre;
               YeniKullanici.Sehir = Sehir;

               db.Kullanicilars.Add(YeniKullanici);
               db.SaveChanges();
               return true;
           }
       }
   }

 

Login Metodu

public bool Login(string KullaniciAdi, string Sifre)
      {
          //Kullanıcı adının olup olmadığını kontrol ediyoruz.
          var KullaniciKontrol = db.Kullanicilars.Where(s => s.Kullanici_Adi == KullaniciAdi).FirstOrDefault();

          if (KullaniciKontrol == null)
          {
              return false;
          }

          else
          {
              //Kullanici adının şifre ile eşleşip eşleşmediğini kontrol ediyoruz.
              var KullaniciSifre = db.Kullanicilars.Where(s => s.Kullanici_Adi == KullaniciAdi && s.Sifre == Sifre).FirstOrDefault();

              if (KullaniciSifre == null)
              {
                  return false;
              }
              else
              {
                  return true;
              }
          }
      }

 

Basit Browser Oyunu Yapımı Devam Edecek… 

 

Kaldığımız yerden devam. 23.10.2017

Biliyorum aradan biraz zaman geçti ve projede bir kaç değişiklik yaptım. İlk değişikliğimiz veritabanımızda.

Geniş düşününce veritabanı değişikliği gerekliydi çünkü aşırı basit olsun istemedim. 🙂

Değişiklikler:

Kullanıcılar: ID(int, Primary KEY), Kullanıcı Adı(nvarchar(50)), Şifre(nvarchar(50)), Email(nvarchar(50)), Şehir(nvarchar(50),DoğumTarihi(Date), Para(decimal), UnvanID(int), Alacak(decimal), Verecek(decimal), Puan(int), Sayginlik(int), KorumaSayisi(int), SilahSayisi(int), Silahlanma(int), HarcananPara(decimal))

Binalar: ID(int, Primary KEY)BinaCinsi(int)Bina Adı(nvarchar(50)), Üretim(int), Fiyat(decimal), Resim(nvarchar(MAX)), Aciklama(nvarchar(MAX)), UretimCinsi(nvarchar(50))

KullanıcıBinaları: ID(int, Primary KEY), KullanıcıID(int), BinaID(int), Adet(int)

Malzemeler: ID(int, Primary KEY), MalzemeCinsi(nvarchar(50)), MalzemeAdı(nvarchar(50)), Fiyat(decimal)

KullanıcıMalzemeleri: ID(int, Primary KEY), KullanıcıID(int), MalzemeID(int), Adet(int)

Klanlar: ID(int, Primary KEY), KlanAdı(nvarchar(50)), KurucuID(int), Banka(decimal)

KlanÜyeleri: ID(int, Primary KEY), KlanID(int), ÜyeID(int)

Market: ID(int, Primary KEY), SatılanÜrünAdı(nvarchar(50)), SatıcıID(int), Fiyat(decimal), Adet(int)

 

Değişiklikleri yeşil renk ile belirttim. BinaCinsi tablosunu sildim. Gelelim kod kısmımıza.

Öncelikle Basit Browser Oyunu Yapımı >  Default.aspx dosyamızın kodları:

<section>
  
  <div class="leftpanel">
    
    <div class="logopanel">
        <h1><span>[</span> CrimeCity<span>]</span></h1>
    </div><!-- logopanel -->
        
    <div class="leftpanelinner">    
 
      <h5 class="sidebartitle">Menu</h5>
      <ul class="nav nav-pills nav-stacked nav-bracket">
        <li class="active"><a href="Default.aspx"><i class="fa fa-home"></i> <span>Genel Bakış</span></a></li>
        <li><a href="tables.html"><i class="fa fa-th-list"></i> <span>Binalar</span></a></li>

        
        
      </ul>
      
      <div class="infosummary">
        <h5 class="sidebartitle">Information Summary</h5>    
        <ul>
            <li>
                <div class="datainfo">
                    <span class="text-muted">Daily Traffic</span>
                    <h4>630, 201</h4>
                </div>
                <div id="sidebar-chart" class="chart"></div>   
            </li>
            <li>
                <div class="datainfo">
                    <span class="text-muted">Average Users</span>
                    <h4>1, 332, 801</h4>
                </div>
                <div id="sidebar-chart2" class="chart"></div>   
            </li>
            <li>
                <div class="datainfo">
                    <span class="text-muted">Disk Usage</span>
                    <h4>82.2%</h4>
                </div>
                <div id="sidebar-chart3" class="chart"></div>   
            </li>
            <li>
                <div class="datainfo">
                    <span class="text-muted">CPU Usage</span>
                    <h4>140.05 - 32</h4>
                </div>
                <div id="sidebar-chart4" class="chart"></div>   
            </li>
            <li>
                <div class="datainfo">
                    <span class="text-muted">Memory Usage</span>
                    <h4>32.2%</h4>
                </div>
                <div id="sidebar-chart5" class="chart"></div>   
            </li>
        </ul>
      </div><!-- infosummary -->
      
    </div><!-- leftpanelinner -->
  </div><!-- leftpanel -->
  
  <div class="mainpanel">
    
    <div class="headerbar">
      
      <a class="menutoggle"><i class="fa fa-bars"></i></a>
      
      
      <div class="header-right">
        <ul class="headermenu">
          <%--<li>
            <div class="btn-group">
              <button class="btn btn-default dropdown-toggle tp-icon" data-toggle="dropdown">
                <i class="glyphicon glyphicon-user"></i>
                <span class="badge">2</span>
              </button>
            </div>
          </li>
          <li>
            <div class="btn-group">
              <button class="btn btn-default dropdown-toggle tp-icon" data-toggle="dropdown">
                <i class="glyphicon glyphicon-envelope"></i>
                <span class="badge">1</span>
              </button>
             
            </div>
          </li>
          <li>
            <div class="btn-group">
              <button class="btn btn-default dropdown-toggle tp-icon" data-toggle="dropdown">
                <i class="glyphicon glyphicon-globe"></i>
                <span class="badge">5</span>
              </button>
            
            </div>
          </li>--%>
          <li>
            <div class="btn-group">
              <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                <img src="images/photos/loggeduser.png" alt="" />
                <asp:Label ID="LblKullaniciAdi" runat="server" Text=""></asp:Label>
                <span class="caret"></span>
              </button>
              <ul class="dropdown-menu dropdown-menu-usermenu pull-right">
                <li><a href="profile.html"><i class="glyphicon glyphicon-user"></i> My Profile</a></li>
                <li><a href="#"><i class="glyphicon glyphicon-cog"></i> Account Settings</a></li>
                <li><a href="#"><i class="glyphicon glyphicon-question-sign"></i> Help</a></li>
                <li><a href="signin.html"><i class="glyphicon glyphicon-log-out"></i> Log Out</a></li>
              </ul>
            </div>
          </li>

        </ul>
      </div><!-- header-right -->
      
    </div><!-- headerbar -->


      
    
    <div class="pageheader">
      <h2><i class="fa fa-home"></i> Genel Durum <span>Suç durumun ve kazançların buradadır.</span></h2>
      <div class="breadcrumb-wrapper">
        <span class="label">Buradasın:</span>
        <ol class="breadcrumb">
          <li><a href="index.html">CrimeCity</a></li>
          <li class="active">Genel Durum</li>
        </ol>
      </div>
    </div>
          <div class="contentpanel">
      
      <div class="row">
        
        <div class="col-sm-6 col-md-3">
          <div class="panel panel-success panel-stat">
            <div class="panel-heading">
              
              <div class="stat">
                <div class="row">
                  <div class="col-xs-4">
                    <img src="images/is-user.png" alt="" />
                  </div>
                  <div class="col-xs-8">
                    <small class="stat-label">Korumaların</small>
                    <h1><asp:Label ID="LblKorumaAdet" runat="server" Text=""></asp:Label></h1>
                  </div>
                </div><!-- row -->
                
                <div class="mb15"></div>
                
                <div class="row">
                  <div class="col-xs-6">
                    <small class="stat-label">Silah</small>
                    <h4><asp:Label ID="LblSilahAdet" runat="server" Text=""></asp:Label></h4>
                  </div>
                  
                  <div class="col-xs-6">
                    <small class="stat-label">% Silahlandırıldı</small>
                    <h4><asp:Label ID="LblSilahlanma" runat="server" Text=""></asp:Label></h4>
                  </div>
                </div><!-- row -->
              </div><!-- stat -->
              
            </div><!-- panel-heading -->
          </div><!-- panel -->
        </div><!-- col-sm-6 -->
        
        <div class="col-sm-6 col-md-3">
          <div class="panel panel-danger panel-stat">
            <div class="panel-heading">
              
              <div class="stat">
                <div class="row">
                  <div class="col-xs-4">
                    <img src="images/is-document.png" alt="" />
                  </div>
                  <div class="col-xs-8">
                    <small class="stat-label">Saygınlık</small>
                    <h1><asp:Label ID="LblSayginlik" runat="server" Text=""></asp:Label></h1>
                  </div>
                </div><!-- row -->
                
                <div class="mb15"></div>
                
                <small class="stat-label">Unvan</small>
                <h4><asp:Label ID="LblUnvan" runat="server" Text=""></asp:Label></h4>
                  
              </div><!-- stat -->
              
            </div><!-- panel-heading -->
          </div><!-- panel -->
        </div><!-- col-sm-6 -->
        
        <div class="col-sm-6 col-md-3">
          <div class="panel panel-primary panel-stat">
            <div class="panel-heading">
              
              <div class="stat">
                <div class="row">
                  <div class="col-xs-4">
                    <img src="images/is-document.png" alt="" />
                  </div>
                  <div class="col-xs-8">
                    <small class="stat-label">Sıralama</small>
                    <h1><asp:Label ID="LblSiralama" runat="server" Text=""></asp:Label></h1>
                  </div>
                </div><!-- row -->
                
                <div class="mb15"></div>
                
                <small class="stat-label">Klan</small>
                <h4><asp:Label ID="LblKlan" runat="server" Text=""></asp:Label></h4>
                  
              </div><!-- stat -->
              
            </div><!-- panel-heading -->
          </div><!-- panel -->
        </div><!-- col-sm-6 -->
        
        <div class="col-sm-6 col-md-3">
          <div class="panel panel-dark panel-stat">
            <div class="panel-heading">
              
              <div class="stat">
                <div class="row">
                  <div class="col-xs-4">
                    <img src="images/is-money.png" alt="" />
                  </div>
                  <div class="col-xs-8">
                    <small class="stat-label">Hasılat / Tahsilat</small>
                    <h1>$<asp:Label ID="LblPara" runat="server" Text=""></asp:Label></h1>
                  </div>
                </div><!-- row -->
                
                <div class="mb15"></div>
                
                <div class="row">
                  <div class="col-xs-6">
                    <small class="stat-label">Alacak</small>
                    <h4>$<asp:Label ID="LblAlacak" runat="server" Text=""></asp:Label></h4>
                  </div>
                  
                  <div class="col-xs-6">
                    <small class="stat-label">Verecek</small>
                    <h4>$<asp:Label ID="LblVerecek" runat="server" Text=""></asp:Label></h4>
                  </div>
                </div><!-- row -->
                  
              </div><!-- stat -->
              
            </div><!-- panel-heading -->
          </div><!-- panel -->
        </div><!-- col-sm-6 -->
      </div><!-- row -->

    </div><!-- contentpanel -->

      </section>

<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/jquery-migrate-1.2.1.min.js"></script>
<script src="js/jquery-ui-1.10.3.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.min.js"></script>
<script src="js/jquery.sparkline.min.js"></script>
<script src="js/toggles.min.js"></script>
<script src="js/retina.min.js"></script>
<script src="js/jquery.cookies.js"></script>

<script src="js/flot/jquery.flot.min.js"></script>
<script src="js/flot/jquery.flot.resize.min.js"></script>
<script src="js/flot/jquery.flot.spline.min.js"></script>
<script src="js/morris.min.js"></script>
<script src="js/raphael-2.1.0.min.js"></script>

<script src="js/custom.js"></script>
<script src="js/dashboard.js"></script>

    </form>

Ve Basit Browser Oyunu Yapımı >  Default.aspx.cs kodları

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CrimeCity2
{
    public partial class Default : System.Web.UI.Page
    {
        CrimeCityEntities db = new CrimeCityEntities();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["KullaniciID"] == null)
            {
                Response.Redirect("Login.aspx");
            }

            int ID = Convert.ToInt32(Session["KullaniciID"]);

            var Kullanici = db.Kullanicilars.Where(s => s.ID == ID).FirstOrDefault();
            LblKullaniciAdi.Text = Kullanici.Kullanici_Adi;
            LblKorumaAdet.Text = Kullanici.Koruma_Sayisi.ToString();
            LblSilahAdet.Text = Kullanici.Silah_Sayisi.ToString();
            if (Kullanici.Silah_Sayisi >= Kullanici.Koruma_Sayisi)
            {
                Kullanici.Silahlanma = 100;
                LblSilahlanma.Text = Kullanici.Silahlanma.ToString() + "%";
            }

            else
            {
                int Yuzde = 0;
                Yuzde = (Kullanici.Silah_Sayisi.Value / Kullanici.Koruma_Sayisi.Value) * 100;
                Kullanici.Silahlanma = Yuzde;
                LblSilahlanma.Text = Kullanici.Silahlanma.ToString() + "%";

            }

            int Sayginlik = 100;

            if (Kullanici.Silah_Sayisi < Kullanici.Koruma_Sayisi)
            {
                int EksiksilahYuzdesi = 0;
                EksiksilahYuzdesi = (Kullanici.Koruma_Sayisi.Value / Kullanici.Silah_Sayisi.Value) * 100;
                Sayginlik -= EksiksilahYuzdesi;

            }
            else if (Kullanici.Unvan_ID <= 10)
            {
                Sayginlik -= 50;
            }

            else if (Kullanici.Unvan_ID <= 19 && Kullanici.Unvan_ID >= 11)
            {
                Sayginlik -= 20;
            }

            else if (Kullanici.Unvan_ID == 41)
            {
                Sayginlik = 100;
            }

            else
            {
                Sayginlik = 0;
            }

            Kullanici.Sayginlik = Sayginlik;
            db.SaveChanges();

            LblSayginlik.Text = Kullanici.Sayginlik.ToString() + "%";

            decimal ToplamPara = 1;
            if(Kullanici.Alacak==null)
            {
                Kullanici.Alacak = 0;
            }
            if(Kullanici.HarcananPara==null)
            {
                Kullanici.HarcananPara = 0;
            }
            db.SaveChanges();
            ToplamPara = Kullanici.Para.Value + Kullanici.Alacak.Value + Kullanici.HarcananPara.Value;

            if (Kullanici.Koruma_Sayisi >= 10 && ToplamPara >= 100000 && ToplamPara < 200000)
            {
                Kullanici.Unvan_ID = 2;
            }
            else if (Kullanici.Koruma_Sayisi >= 100 && ToplamPara >= 200000 && ToplamPara < 500000)
            {
                Kullanici.Unvan_ID = 3;
            }
            else if (Kullanici.Koruma_Sayisi >= 250 && ToplamPara >= 500000 && ToplamPara < 1000000)
            {
                Kullanici.Unvan_ID = 4;
            }
            else if (Kullanici.Koruma_Sayisi >= 500 && ToplamPara >= 1000000 && ToplamPara < 5000000)
            {
                Kullanici.Unvan_ID = 5;
            }
            else if (Kullanici.Koruma_Sayisi >= 1000 && ToplamPara >= 5000000 && ToplamPara < 10000000)
            {
                Kullanici.Unvan_ID = 6;
            }
            else if (Kullanici.Koruma_Sayisi >= 2500 && ToplamPara >= 10000000 && ToplamPara < 50000000)
            {
                Kullanici.Unvan_ID = 8;
            }
            else if (Kullanici.Koruma_Sayisi >= 5000 && ToplamPara >= 50000000 && ToplamPara < 100000000)
            {
                Kullanici.Unvan_ID = 9;
            }
            else if (Kullanici.Koruma_Sayisi >= 10000 && ToplamPara >= 100000000 && ToplamPara < 250000000)
            {
                Kullanici.Unvan_ID = 13;
            }
            else if (Kullanici.Koruma_Sayisi >= 15000 && ToplamPara >= 250000000 && ToplamPara < 450000000)
            {
                Kullanici.Unvan_ID = 14;
            }
            else if (Kullanici.Koruma_Sayisi >= 20000 && ToplamPara >= 450000000 && ToplamPara < 750000000)
            {
                Kullanici.Unvan_ID = 15;
            }
            else if (Kullanici.Koruma_Sayisi >= 30000 && ToplamPara >= 750000000 && ToplamPara < 1000000000)
            {
                Kullanici.Unvan_ID = 12;
            }
            else if (Kullanici.Koruma_Sayisi >= 40000 && ToplamPara >= 1000000000 && ToplamPara < 2000000000)
            {
                Kullanici.Unvan_ID = 16;
            }
            else if (Kullanici.Koruma_Sayisi >= 60000 && ToplamPara >= 2000000000 && ToplamPara < 4000000000)
            {
                Kullanici.Unvan_ID = 20;
            }
            else if (Kullanici.Koruma_Sayisi >= 100000 && ToplamPara >= 4000000000 && Kullanici.Sayginlik == 100 && Kullanici.Silahlanma == 100)
            {
                Kullanici.Unvan_ID = 41;
            }

            db.SaveChanges();
            var Unvan = db.Unvanlars.Where(s => s.ID == Kullanici.Unvan_ID).FirstOrDefault();
            LblUnvan.Text = Unvan.Unvan;

            var Siralama = db.Kullanicilars.OrderBy(s => s.HarcananPara).ToList();
            int Sira = 0;
            Sira = Siralama.IndexOf(Kullanici) + 1;

            LblSiralama.Text = Sira.ToString();

            var Klanlar = db.Klan_Uyeleri.Where(s => s.UyeID == Kullanici.ID).FirstOrDefault();
            if(Klanlar==null)
            {
                LblKlan.Text = "[YOK]";
            }
            else
            {
                var Klan = db.Klanlars.Where(s => s.ID == Klanlar.KlanID).FirstOrDefault();
                if(Klan!=null)
                {
                    LblKlan.Text = Klan.KlanAdi;
                }
            }

            LblPara.Text = Kullanici.Para.ToString();
            LblAlacak.Text = Kullanici.Alacak.ToString();
            if (Kullanici.Verecek == null)
            {

            }
                Kullanici.Verecek = 0;
            db.SaveChanges();
            LblVerecek.Text = Kullanici.Verecek.ToString();



        }


    }
}

 

Yaptığım bir kaç değişikliği fark edeceksinizdir. Silahlanma ve harcanan ve kasadaki para toplamı Unvanı belirlemek için kullandım.

gelelim Basit Browser Oyunu Yapımı > Login.aspx dosyamıza.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="CrimeCity2.Login" EnableEventValidation="false" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
  <meta name="description" content="">
  <meta name="author" content="">
  <link rel="shortcut icon" href="images/favicon.png" type="image/png">

  <title>CrimeCity Browser Oyunu Login</title>

  <link href="css/style.default.css" rel="stylesheet">

  <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!--[if lt IE 9]>
  <script src="js/html5shiv.js"></script>
  <script src="js/respond.min.js"></script>
  <![endif]-->
</head>
<body class="signin">
    <form id="form1" runat="server">
<section>
  
    <div class="signinpanel">
        
        <div class="row">

            <asp:Panel ID="PnlAlert" runat="server">

                        <div class="alert alert-danger">
                            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
                            <asp:Label ID="LblAlert" runat="server" Text=""></asp:Label>
                        </div>

                    </asp:Panel>
            
            <div class="col-md-7">
                
                <div class="signin-info">
                    <div class="logopanel">
                        <h1><span>[</span> CrimeCity <span>]</span></h1>
                    </div><!-- logopanel -->
                
                    <div class="mb20"></div>
                
                    <h5><strong>CrimeCity'ye Hoş Geldin.</strong></h5>
                    <ul>
                        <li><i class="fa fa-arrow-circle-o-right mr5"></i> Macera</li>
                        <li><i class="fa fa-arrow-circle-o-right mr5"></i> Aksiyon</li>
                        <li><i class="fa fa-arrow-circle-o-right mr5"></i> Taktik</li>
                        <li><i class="fa fa-arrow-circle-o-right mr5"></i> Çete Kur</li>
                        <li><i class="fa fa-arrow-circle-o-right mr5"></i> ve daha fazlası...</li>
                    </ul>
                    <div class="mb20"></div>
                    <strong>Üye değil misin? <a href="signup.html">Katıl</a></strong>
                </div><!-- signin0-info -->
            
            </div><!-- col-sm-7 -->
            
            <div class="col-md-5">
                
                <form method="post" action="index.html">
                    <h4 class="nomargin">Giriş</h4>
                    <p class="mt5 mb20">CrimeCity için giriş yap.</p>
                
                    
                    <asp:TextBox ID="TxtKullaniciAdi" class="form-control uname" placeholder="Kullanıcı Adı" runat="server"></asp:TextBox>

                   
                    <asp:TextBox ID="TxtSifre" class="form-control pword" placeholder="Şifre" runat="server"></asp:TextBox>
                    <a href=""><small>Şifrenimi Unuttun?</small></a>
                    <asp:Button ID="Button1" OnClick="Button1_Click" class="btn btn-success btn-block" runat="server" Text="Giriş Yap" />
                    
                    
                </form>
            </div><!-- col-sm-5 -->
            
        </div><!-- row -->
        
        <div class="signup-footer">
            <div class="pull-left">
                &copy; 2017. All Rights Reserved. CrimeCity Game
            </div>
            <div class="pull-right">
                Created By: <a href="https://delicenneti.com/" target="_blank">DeliCenneti</a>
            </div>
        </div>
        
    </div><!-- signin -->
  
</section>


<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/jquery-migrate-1.2.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/modernizr.min.js"></script>
<script src="js/jquery.sparkline.min.js"></script>
<script src="js/jquery.cookies.js"></script>

<script src="js/toggles.min.js"></script>
<script src="js/retina.min.js"></script>

<script src="js/custom.js"></script>
<script>
    jQuery(document).ready(function () {

        // Please do not use the code below
        // This is for demo purposes only
        var c = jQuery.cookie('change-skin');
        if (c && c == 'greyjoy') {
            jQuery('.btn-success').addClass('btn-orange').removeClass('btn-success');
        } else if (c && c == 'dodgerblue') {
            jQuery('.btn-success').addClass('btn-primary').removeClass('btn-success');
        } else if (c && c == 'katniss') {
            jQuery('.btn-success').addClass('btn-primary').removeClass('btn-success');
        }
    });
</script>
    </form>
</body>
</html>

ve Basit Browser Oyunu Yapımı > Login.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CrimeCity2
{
    public partial class Login : System.Web.UI.Page
    {
        Core p = new Core();
        CrimeCityEntities db = new CrimeCityEntities();

        protected void Page_Load(object sender, EventArgs e)
        {
            PnlAlert.Visible = false;

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            PnlAlert.Visible = false;


            bool Tamammi = p.Login(TxtKullaniciAdi.Text, TxtSifre.Text);

            if (Tamammi == true)
            {
                var Kullanici = db.Kullanicilars.Where(s => s.Kullanici_Adi == TxtKullaniciAdi.Text).FirstOrDefault();
                Session["KullaniciID"] = Kullanici.ID;

                Response.Redirect("Default.aspx");
            }

            else
            {
                LblAlert.Text = "Hatalı Giriş";
                PnlAlert.Visible = true;
            }
        }
    }
}

 

Şimdide Basit Browser Oyunu Yapımı > Register.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="CrimeCity2.Register" EnableEventValidation="false" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="shortcut icon" href="images/favicon.png" type="image/png">

    <title>CrimeCity Browser Oyunu Kayıt</title>

    <link href="css/style.default.css" rel="stylesheet">

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
  <script src="js/html5shiv.js"></script>
  <script src="js/respond.min.js"></script>
  <![endif]-->
</head>
<body class="signin">
    <form id="form1" runat="server">
        <section>

            <div class="signuppanel">

                <div class="row">
                    <asp:Panel ID="PnlAlert" runat="server">

                        <div class="alert alert-danger">
                            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
                            <asp:Label ID="LblAlert" runat="server" Text=""></asp:Label>
                        </div>

                    </asp:Panel>


                    <div class="col-md-6">

                        <div class="signup-info">
                            <div class="logopanel">
                                <h1><span>[</span> CrimeCity <span>]</span></h1>
                            </div>
                            <!-- logopanel -->

                            <div class="mb20"></div>

                            <h5><strong>CrimeCity dünyasında neler var?</strong></h5>
                            <p>Bracket is a theme that is perfect if you want to create your own content management, monitoring or any other system for your project.</p>
                            <p>Below are some of the benefits you can have when purchasing this template.</p>
                            <div class="mb20"></div>

                            <div class="feat-list">
                                <i class="fa fa-wrench"></i>
                                <h4 class="text-success">Easy to Customize</h4>
                                <p>Bracket is made using Bootstrap 3 so you can easily customize any element of this template following the structure of Bootstrap 3.</p>
                            </div>

                            <div class="feat-list">
                                <i class="fa fa-compress"></i>
                                <h4 class="text-success">Fully Responsive Layout</h4>
                                <p>Bracket is design to fit on all browser widths and all resolutions on all mobile devices. Try to scale your browser and see the results.</p>
                            </div>

                            <div class="feat-list mb20">
                                <i class="fa fa-search-plus"></i>
                                <h4 class="text-success">Retina Ready</h4>
                                <p>When a user load a page, a script checks each image on the page to see if there's a high-res version of that image. If a high-res exists, the script will swap that image in place.</p>
                            </div>

                            <h4 class="mb20">ve daha fazlası...</h4>

                        </div>
                        <!-- signup-info -->

                    </div>
                    <!-- col-sm-6 -->

                    <div class="col-md-6">

                        <form method="post" action="index.html">

                            <h3 class="nomargin">Kayıt</h3>
                            <p class="mt5 mb20">Kayıtlı mısın? <a href="signin.html"><strong>Giriş</strong></a></p>



                            <div class="mb10">
                                <label class="control-label">Kullanıcı Adı</label>

                                <asp:TextBox ID="TxtKullaniciAdi" class="form-control" required="required" placeholder="Kullanıcı Adı" runat="server"></asp:TextBox>
                            </div>

                            <div class="mb10">
                                <label class="control-label">Şifre</label>

                                <asp:TextBox ID="TxtSifre" class="form-control" required="required" placeholder="Şifre" runat="server"></asp:TextBox>
                            </div>

                            <div class="mb10">
                                <label class="control-label">Tekrar Şifre</label>
                                <asp:TextBox ID="TxtSifre2" placeholder="Tekrar Şifre" required="required" class="form-control" runat="server"></asp:TextBox>

                            </div>

                            <label class="control-label">Doğum Tarihi</label>
                            <div class="row mb10">
                                <div class="col-sm-5">

                                    <asp:DropDownList ID="DrpAy" class="select2" required="required" placeholder="Ay" runat="server"></asp:DropDownList>
                                </div>
                                <div class="col-sm-3">
                                    <asp:TextBox ID="TxtGun" class="form-control" required="required" placeholder="Gün" runat="server"></asp:TextBox>

                                </div>
                                <div class="col-sm-4">
                                    <asp:TextBox ID="TxtYil" class="form-control" required="required" placeholder="Yıl" runat="server"></asp:TextBox>

                                </div>
                            </div>

                            <div class="mb10">
                                <label class="control-label">Email Adresi</label>
                                <asp:TextBox ID="TxtEmail" class="form-control" required="required" placeholder="Delicenneti@CrimeCity.com" runat="server"></asp:TextBox>
                            </div>

                            <div class="mb10">
                                <label class="control-label">Lokasyon</label>

                                <asp:DropDownList ID="DrpSehirler"  placeholder="Şehir" required="required" class="select2-2" runat="server" AutoPostBack="True"></asp:DropDownList>
                            </div>
                            <br />


                            <asp:Button ID="BtnKayıt" OnClick="BtnKayıt_Click" class="btn btn-success btn-block" runat="server" Text="Kayıt Ol" />
                        </form>
                    </div>
                    <!-- col-sm-6 -->

                </div>
                <!-- row -->

                <div class="signup-footer">
                    <div class="pull-left">
                        &copy; 2017. All Rights Reserved. CrimeCity Game
           
                    </div>
                    <div class="pull-right">
                        Created By: <a href="https://delicenneti.com/" target="_blank">DeliCenneti</a>
                    </div>
                </div>

            </div>
            <!-- signuppanel -->

        </section>


        <script src="js/jquery-1.11.1.min.js"></script>
        <script src="js/jquery-migrate-1.2.1.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <script src="js/modernizr.min.js"></script>
        <script src="js/jquery.sparkline.min.js"></script>
        <script src="js/jquery.cookies.js"></script>

        <script src="js/toggles.min.js"></script>
        <script src="js/retina.min.js"></script>

        <script src="js/select2.min.js"></script>

        <script src="js/custom.js"></script>
        <script>
            jQuery(document).ready(function () {

                jQuery(".select2").select2({
                    width: '100%',
                    minimumResultsForSearch: -1
                });

                jQuery(".select2-2").select2({
                    width: '100%'
                });


                // Please do not use the code below
                // This is for demo purposes only
                var c = jQuery.cookie('change-skin');
                if (c && c == 'greyjoy') {
                    jQuery('.btn-success').addClass('btn-orange').removeClass('btn-success');
                } else if (c && c == 'dodgerblue') {
                    jQuery('.btn-success').addClass('btn-primary').removeClass('btn-success');
                } else if (c && c == 'katniss') {
                    jQuery('.btn-success').addClass('btn-primary').removeClass('btn-success');
                }

            });
</script>
    </form>
</body>
</html>

Basit Browser Oyunu Yapımı > Register.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CrimeCity2
{
    public partial class Register : System.Web.UI.Page
    {

        CrimeCityEntities db = new CrimeCityEntities();
        Core p = new Core();




        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

                PnlAlert.Visible = false;
                DrpAy.Items.Add("Ocak");
                DrpAy.Items.Add("Şubat");
                DrpAy.Items.Add("Mart");
                DrpAy.Items.Add("Nisan");
                DrpAy.Items.Add("Mayıs");
                DrpAy.Items.Add("Haziran");
                DrpAy.Items.Add("Temmuz");
                DrpAy.Items.Add("Ağustos");
                DrpAy.Items.Add("Eylül");
                DrpAy.Items.Add("Ekim");
                DrpAy.Items.Add("Kasım");
                DrpAy.Items.Add("Aralık");

                var Sehirler = db.Sehirlers.ToList();
                DrpSehirler.DataTextField = "Sehir_Adi";
                DrpSehirler.DataValueField = "ID";
                DrpSehirler.DataSource = Sehirler;
                DrpSehirler.DataBind();
            }

        }

        protected void BtnKayıt_Click(object sender, EventArgs e)
        {
            DateTime DogumTarihi = new DateTime(Convert.ToInt32(TxtYil.Text), Convert.ToInt32(TxtGun.Text), Convert.ToInt32(DrpAy.SelectedIndex + 1), 0, 0, 0);

            string sehir = DrpSehirler.SelectedValue;

            int DonenDeger = p.Kullanici_Kayit(TxtKullaniciAdi.Text, TxtSifre.Text, TxtSifre2.Text, TxtEmail.Text, sehir, DogumTarihi);

            if (DonenDeger == 1)
            {
                PnlAlert.Visible = true;
                LblAlert.Text = "Email Adresi Mevcut";
            }
            else if (DonenDeger == 2)
            {
                PnlAlert.Visible = true;
                LblAlert.Text = "Kullanıcı Adı Mevcut";
            }

            else if (DonenDeger == 3)
            {
                PnlAlert.Visible = true;
                LblAlert.Text = "Şifreler Eşleşmiyor";
            }
            else if (DonenDeger == 4)
            {
                PnlAlert.Visible = true;
                LblAlert.Text = "18 Yaşından Küçükler Kayıt Olamaz";
            }

            else if (DonenDeger == 9)
            {
                var Kullanici = db.Kullanicilars.Where(s => s.Email == TxtEmail.Text).FirstOrDefault();

                Session["KullaniciID"] = Kullanici.ID;

                Kullanici.Koruma_Sayisi = 0;
                Kullanici.Para = 50000;
                Kullanici.Puan = 0;
                Kullanici.Sayginlik = 0;
                Kullanici.Silah_Sayisi = 1;
                Kullanici.Silahlanma = 100;
                Kullanici.Unvan_ID = 1;

                Kullanici_Binalari KulBina = new Kullanici_Binalari();
                KulBina.BinaID = 1;
                KulBina.KullaniciID = Kullanici.ID;
                KulBina.Adet = 1;
                db.Kullanici_Binalari.Add(KulBina);

                db.SaveChanges();


                Response.Redirect("Default.aspx");
            }
        }
    }
}

Sanırım bu şekilde konu çok uzuyor. bundan sonra dosyalar halinde paylaşacağım.

 

Basit Browser Oyunu Yapımı Devam Edecek… 

 

 

1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız (Bu yazıya oy vermek ister misiniz?)
Burak Gezgin https://delicenneti.com

1987 Kırklareli doğumlu olup İstanbulda yaşıyor. Küçük yaştan beri bilgisayarlar ile haşır neşir. Şuan özel firmalarda Bilgi Teknolojileri Uzmanı olarak çalışıyor. 2013'te Yazılım Uzmanlığı kursunu bitirdi. Bir senedir aktif olarak Wordpress geliştiriciliği yapıyor. C#, Asp.Net, Sql, Php, Para kazanmaca...

Yazı hakkında görüşlerinizi belirtmek istermisiniz?


Bu yazıya 1 yorum yapılmış.


  • abi harikasın 🙂 bende seninle başladım takıldığım yerde yardım edeermisin.