Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi bi yerde

  • Konbuyu başlatan Konbuyu başlatan EXCAVATOR
  • Başlangıç tarihi Başlangıç tarihi
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

güzel olmus eline sağlık en yakın zamanda denicem inş kodların resmini wermişsin bari source verseydin :D
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

Deneyen herkese ve yorum yapanlara teşekkür ediyorum.

Skill puanlarını ayarlamayı unutmuşum. Şimdi onun üzerinde çalışıyorum, bir sonraki sürümde eklenmiş olacaktır. Kaynak kodunu programı geliştirdiğim sürece yayınlamayı düşünmüyorum, ne zaman durursam o zaman yayınlarım.

Klan modülünü ekledim. Şimdilik klan ırkı değiştirilemiyor, onu ekleyeceğim gelecek sürümde. Ayrıca klan lideri değiştirmek ve asist yapmak gibi özelliklerde ekleyeceğim.
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

bu mute ban normal user lerin yanına bi de kral komutu ekleyebilirmisin bi iki kod a bakar ellerinden oper :D sonraki sürümü bekliyorum ve şunu istiyorum eski olan source yi atarmısın hata ve bug olsada olur biraz kendimizi geliştirelim tşkler
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

emostyle,
Kral olayını iyi oldu söylediğin, onu da ekleyeyim. Ama listeleme ekranı çok kalabalık oldu gibi ,oraya koyamayız herhalde. Sadece "edit" ekranına koysakta bir anlamı olmaz. Uygun birşey düşüneyim ben ona. Ayrıca kod olayına gelince neden bu kadar isteklisiniz anlamıyorum. Ben Delphi'nin çok farklı bir komponent ailesini kullanıyorum. Üstünde kod geliştirmeniz zaten zor olacaktır. Ama dediğim gibi hala devam ettiğim için yayınlamayı düşünmüyorum.
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

cok cimrisin ya :D bi kaç ufak kod ve sql baglantısı kodunu paylaşırmısın peki ona göre bişiler yapabiliriz eheh
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

emostyle,
Kral olayını iyi oldu söylediğin, onu da ekleyeyim. Ama listeleme ekranı çok kalabalık oldu gibi ,oraya koyamayız herhalde. Sadece "edit" ekranına koysakta bir anlamı olmaz. Uygun birşey düşüneyim ben ona. Ayrıca kod olayına gelince neden bu kadar isteklisiniz anlamıyorum. Ben Delphi'nin çok farklı bir komponent ailesini kullanıyorum. Üstünde kod geliştirmeniz zaten zor olacaktır. Ama dediğim gibi hala devam ettiğim için yayınlamayı düşünmüyorum.

Çok farklı component ailesi derken ? cxgrid vs kullanıyosun kurması biraz zor okadar...
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

AVCI,
Evet Developer Express kullanıyorum. Senin gibi geçmişi olanlar kullanabilir ama Delphi ve VCL kütüphanelerine henüz yeni olan arkadaşlar zorlanacaktır. Çünkü koddan ziyade "event" tabanlı bir program yazmak gerekiyor, ve komponent özelliklerine ince ayar çekmek gerekiyor. Komponenti geliştirenler birçok şeyi düşünmüş, sadece vakit lazım kurcalayıp bulmak için. Misal geçtiğimiz 2 gün boyunca bir hatayı çözmek için uğraştım; aynı anda iki tane karakter listesi ekranı açıp listeye dokunmadan (yani sql cursor değişmeyecek) arama yaptığında işlemciyi sonuna kadar kullanacak şekilde kilitleniyordu. Nedeni ise Form.OnShow olduğunda en soldaki Edit nesnesine SetFocus (yazım kolay olsun diye) yapmammış. Dolayısıyla Sql Cursor kurulamıyor ve ADO.Refresh olunca hata meydana geliyor. Onun için şuanda çok çetrefilli hale gelmiş olan koda yanlış yerinden dokununca mutlaka patlak verecektir. Yoksa kimsenin bilgisine laf ediyor değilim.
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

cok cimrisin ya :D bi kaç ufak kod ve sql baglantısı kodunu paylaşırmısın peki ona göre bişiler yapabiliriz eheh

Bağlantı için ADO => OLE DB => ODBC => SQL SERVER ve ADO => OLE DB => SQL SERVER şeklinde iki ayrı mimariyi kullanıyorum. TADOConnection'ın kullanılmasını soruyorsan onu ayarladığım kodlar şu şekilde ama bu haliyle pek işine yaramayacaktır. Daha fazlasını isteme, kendin yapmadığın sürece bir anlamı yok herhalde?

Kod:
procedure TMainForm.btnConnectClick(Sender: TObject);
var
  ConnectionStr:String;                                                         // result string
  SqlName:String;                                                               // Sql server provider: Insctance Name
  Password:String;                                                              // Temporary holder of password
begin
  try
    Screen.Cursor := crHourGlass;                                               // fire the time
    try
      if acMain.Connected = False then begin                                    // connect if not already connected
        if IsOdbc = True then begin
          if OdbcTrusted = False then begin                                     // ODBC PREPARE: mixed mode
            if OdbcPassNoSave = True then begin                                 // ODBC PREPARE: Password. display dialog if user chose not to save
              if InputQuery(resPassDialogTitle, resPassDialogContent, Password) = False then begin
                btnConnect.Down := False;                                       // cancel pressed, restore button and exit
                Exit;
              end;
            end else
              Password := OdbcPass;
            ConnectionStr := Format(OdbcMixed, [OdbcName, OdbcUser, Password]);
          end else                                                              // ODBC PREPARE: windows authentication
            ConnectionStr := Format(OdbcWindows, [OdbcName]);
        end else begin                                                          // SQL Server Provider
          if SqlIsDefault = True then                                           // SQL PREPARE: Default Instance or Named Instance
            SqlName := SqlLocal
          else
            SqlName := SqlName;
          if SqlTrusted = False then begin                                      // SQL PREPARE: mixed mode
            if SqlPassNoSave = True then begin                                  // SQL PREPARE: Password. display dialog if user chose not to save
              if InputQuery(resPassDialogTitle, resPassDialogContent, Password) = False then begin
                btnConnect.Down := False;                                       // cancel pressed, restore button and exit
                Exit;
              end;
            end else
              Password := SqlPass;
            ConnectionStr := Format(SqlMixed, [SqlDb, SqlName, SqlUser, Password]);
          end else                                                              // SQL PREPARE: windows authentication
            ConnectionStr := Format(SqlWindows, [SqlDb, SqlName]);
        end;
        acMain.ConnectionString := ConnectionStr;
        acMain.Connected := True;                                               // connect
      end else                                                                  // already connected
        acMain.Connected := False;                                              // disconnect
    except
      on e: Exception do begin                                                  // if any error
        MessageDlg(Format(resDbError, [E.ClassName, E.Message]), mtError, [mbOK], 0);
        btnConnect.Down := False;                                               // uncheck the button
        Exit;                                                                   // and exit (to finally routine)
      end;
    end;
  finally
    Screen.Cursor := crArrow;
  end;
end;

Gerekli açıklamalar
Kod:
acMain: TADOConnection komponenti
btnConnect: Connect/Disconnect dediğimiz tuş

IsOdbc: Boolean. Ayarlar penceresindeki "ODBC" veya Doğrudan "SQL Server" olduğunu belirtiyor
OdbcTrusted: Boolean. Oturum açma bilgileri için "Windows authentication" seçilmiş
OdbcPassNoSave: Boolean. kullanıcı ini dosyasına şifre kaydedilmemesini seçmiş
OdbcName: String. Bağlanılacak ODBC kaynak adı
OdbcUser: String. Windows authentication seçilmemişse gerekli olan kullanıcı adı
OdbcPass: String. "              "         gerekli olan şifre

SqlIsDefault: Boolean. Default Instance seçilmiş
SqlName: String. Default Instance seçilmemişse kullanılacak olan Named Instance adı
SqlTrusted: Boolean. Oturum açma bilgileri için "Windows authentication" seçilmiş
SqlPassNoSave: Boolean. kullanıcı ini dosyasına şifre kaydedilmemesini seçmiş
SqlUser: String. Windows authentication seçilmemişse gerekli olan kullanıcı adı
SqlPass: String. "              "         gerekli olan şifre

const
  SqlMixed                    = 'Provider=SQLOLEDB.1;Initial Catalog=%s;Data Source=%s;Persist Security Info=True;User ID=%s;Password=%s';
  SqlWindows                  = 'Provider=SQLOLEDB.1;Initial Catalog=%s;Data Source=%s;Persist Security Info=False;Integrated Security=SSPI';
  SqlLocal                    = '.';
  OdbcMixed                   = 'Provider=MSDASQL.1;Data Source=%s;Persist Security Info=True;User ID=%s;Password=%s';
  OdbcWindows                 = 'Provider=MSDASQL.1;Data Source=%s;Persist Security Info=False';

resourcestring
  resPassDialogTitle          = 'Enter sql server password';
  resPassDialogContent        = 'You chose not to save password.'+sLineBreak+'Leave it blank for empty password.'+sLineBreak+'Press cancel to return.';
  resDbError                  = 'Error while database connection.'+sLineBreak+sLineBreak+'Error Class: %s'+sLineBreak+'Error Message: %s';
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

çok teşekkürler eline sağlık
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

AVCI,
Evet Developer Express kullanıyorum. Senin gibi geçmişi olanlar kullanabilir ama Delphi ve VCL kütüphanelerine henüz yeni olan arkadaşlar zorlanacaktır. Çünkü koddan ziyade "event" tabanlı bir program yazmak gerekiyor, ve komponent özelliklerine ince ayar çekmek gerekiyor. Komponenti geliştirenler birçok şeyi düşünmüş, sadece vakit lazım kurcalayıp bulmak için. Misal geçtiğimiz 2 gün boyunca bir hatayı çözmek için uğraştım; aynı anda iki tane karakter listesi ekranı açıp listeye dokunmadan (yani sql cursor değişmeyecek) arama yaptığında işlemciyi sonuna kadar kullanacak şekilde kilitleniyordu. Nedeni ise Form.OnShow olduğunda en soldaki Edit nesnesine SetFocus (yazım kolay olsun diye) yapmammış. Dolayısıyla Sql Cursor kurulamıyor ve ADO.Refresh olunca hata meydana geliyor. Onun için şuanda çok çetrefilli hale gelmiş olan koda yanlış yerinden dokununca mutlaka patlak verecektir. Yoksa kimsenin bilgisine laf ediyor değilim.

Paylaşmandan yana değilim zaten. Paylaşınca olacaklarda: birsürü editor kirliliği :)
 
Son düzenleme:
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

Evet onlarda benim hesaplarım.
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

skill puan işi noldu acaba ? halldebildinmi dostum
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

Arkadaşım o kısmını yazdım ama programda başka hatalar tespit ettim. Kod geliştikçe bazı yerlerde uyum sorunları yaşıyor. Bunun en büyük nedeni aynı anda birçok pencere açabiliyor olma özelliği. Birbiriyle sorun yaşatmadan kod eklemek biraz incelik istiyor. Onun için sorunsuz hale gelene kadar yayınlayamayacağım. Ama bir sonraki sürümde çıkmış olacak emin olabilirsin. Sadece 1 haftadan biraz daha uzun olabilir.
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

Şuan için programda çok fazla işlev yok. Sadece component ler güzellik katmış gibime geldi.. Ne stat değiştirebildim ne skill.
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

Stat değiştirme özelliği aktif. Sadece skill özelliği yok, onu da unutmuşum. Ayrıca bu programa piyasadaki hiçbir programda olmayan denetimleri ekledim. Gelişi güzel yazılmış programlarla isim değişikliği yaparken veritabanında primary key olmadığı için o ismin daha önceden varlığını kontrol etmeden hemen UPDATE yapan programlar var. Ayrıca karakterin oyunda olup olmadığını da sorgulatıyorum, dolayısıyla hiçbir hata meydana gelmiyor. Ayrıca ırk değişikliğini yapan programlar klan disband etmiyordu, bırak ki ally varsa onları ayırsın öncelikle. Ben bunların hepsini kodladım. Irk değişikliğini yapanların kodlarında en büyük kısmı CLASS değerini seçmek oluyor, yüzlerce satır CASE WHEN yazıyorlar. Benim SQL kodumu incelemişsen ben bunu 47 satır içerisinde çözdüğümü görmüşsündür (Bu 47 satırın 13 satırı sırf hata kontrolü). Mesela yeni ırkı bulmak için XOR fonksyionu kullanmışım, bu bile bir ayrıcalıktır. IF ELSE ile sunucuyu yormuyorum bile.

Karakter düzenleyiciye gelirsek; seninkinden eksik kalır yanı yok, fazlası var. Belki bu sayacağım özellikler birçoğunun işine yaramayacaktır, ama ihtiyaç duyulduğunda bunları yapabilmenin yolu bu programdan geçer. Oyundaki oyuncuları listeleme, oyundaki oyunculardan rogue olanları listeleme, isminde bug karakter olanları bulma, np simgesine en çok sahip olan sınıf bulma (eşit oyun mu değil mi), ırk dengesini bulma, en iyi klanları listeleme (hangi ırkın klanı daha güçlü), kolluğu yanan klanları bulma, sadece banlı oyuncuları görüntüleme, sadece GM'leri listeleme.......

Bunları kullanmayı öğrendiğinizde işleriniz çok hızlakacaktır. Özellik eklemeye devam ediyorum, "inventory editor" ve dahası gelmiş olacak. Sonuçta bu kadarını yapıp bırakacağız diye çıkmadık yola. Her birine 1 hafta versek, birkaç ay sonra bütün editörler tek programda ve bütün hepsi birbirine bağlı çalışacak. Şuan klan listesinden kullanıcı hesabına geçildiği ve oradan ırk değişikliğine geçildiği gibi.
 
Son düzenleme:
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

Stat değiştirme özelliği aktif. Sadece skill özelliği yok, onu da unutmuşum. Ayrıca bu programa piyasadaki hiçbir programda olmayan denetimleri ekledim. Gelişi güzel yazılmış programlarla isim değişikliği yaparken veritabanında primary key olmadığı için o ismin daha önceden varlığını kontrol etmeden hemen UPDATE yapan programlar var. Ayrıca karakterin oyunda olup olmadığını da sorgulatıyorum, dolayısıyla hiçbir hata meydana gelmiyor. Ayrıca ırk değişikliğini yapan programlar klan disband etmiyordu, bırak ki ally varsa onları ayırsın öncelikle. Ben bunların hepsini kodladım. Irk değişikliğini yapanların kodlarında en büyük kısmı CLASS değerini seçmek oluyor, yüzlerce satır CASE WHEN yazıyorlar. Benim SQL kodumu incelemişsen ben bunu 47 satır içerisinde çözdüğümü görmüşsündür (Bu 47 satırın 13 satırı sırf hata kontrolü). Mesela yeni ırkı bulmak için XOR fonksyionu kullanmışım, bu bile bir ayrıcalıktır. IF ELSE ile sunucuyu yormuyorum bile.

Karakter düzenleyiciye gelirsek; seninkinden eksik kalır yanı yok, fazlası var. Belki bu sayacağım özellikler birçoğunun işine yaramayacaktır, ama ihtiyaç duyulduğunda bunları yapabilmenin yolu bu programdan geçer. Oyundaki oyuncuları listeleme, oyundaki oyunculardan rogue olanları listeleme, isminde bug karakter olanları bulma, np simgesine en çok sahip olan sınıf bulma (eşit oyun mu değil mi), ırk dengesini bulma, en iyi klanları listeleme (hangi ırkın klanı daha güçlü), kolluğu yanan klanları bulma, sadece banlı oyuncuları görüntüleme, sadece GM'leri listeleme.......

Bunları kullanmayı öğrendiğinizde işleriniz çok hızlakacaktır. Özellik eklemeye devam ediyorum, "inventory editor" ve dahası gelmiş olacak. Sonuçta bu kadarını yapıp bırakacağız diye çıkmadık yola. Her birine 1 hafta versek, birkaç ay sonra bütün editörler tek programda ve bütün hepsi birbirine bağlı çalışacak. Şuan klan listesinden kullanıcı hesabına geçildiği ve oradan ırk değişikliğine geçildiği gibi.

Bunları component kendi yapıyor zaten diyorum :)
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

Program güzel fakat işlevlerin teknik içeriğiyle ilgili bu kadar fazla detay vermeni anlamıyorum :S IF ELSE yerine XOR kullanmanı bile burda söylemek bence böbürlenmekten başka birşey değil :)
 
Cevap: Complete Control Panel: Karakter ve hesap editör, ncs, nation transfer hepsi b

Arkadaş Bu program snoda taa nezamandan beri var ve sorunlu bir program sen o olduğuna eminmisin
 
Geri
Üst Alt