SOL
SAĞ
Metin2 Source Dosyalarının Ayrıntılı Açıklaması
SİDEBAR REKLAMI

Bu tarz konuları açması zaman alan bir işlem ve bu tarz konuları açmak yılların bilgi birikimini de beraberinde getiriyor. Bu konu da tabii ki de övünmüyorum ama şu noktada sitemimi bulundurmak istiyorum.
Platformumuzda paylaşılan içerikler herkese açık ve isteyenlerin de kaynağı belirtmek şartıyla paylaşabileceğini sürekli belirtiyorum ama insanlara iyilik yaramıyor. Kendi yazdığım bir sistemi paylaşıyorum bakıyorum başka sitelerde kendisi yapmış gibi paylaşanlar, rehber hazırlıyorum kendisi yapmış gibi paylaşanlar. Bu yakındığım kesimin çok az olduğunu da belirtmek istiyorum; bu yüzden de olabildiğinde bu sektöre katkılarımı sunmak istiyorum. Gelelim konumuza. Bu konumuz daha çok sistem yazmak isteyen kişiler için hazırlanmıştır. Bir platform üzerinde bir şeyler geliştirmek istiyorsanız ilk önce o platformu iyice tanımanız gerek. Bu konu da en azından bu işe yarayacak. İmkan olsa tüm kodları tek tek açıklayabileceğimiz bir konu açardık ama kitap haline getirsek binlerce sayfa yer kaplar.


Başlamadan önce şunu bilmelisiniz.
metin2'nin kaynak kodları 2 parçadan oluşur: Bunlar Server ve Client.

Peki nedir bu server ve client?
Çok oyunculu oyunlarda server oyuncuların bilgilerini hafıza da tutmak ve bağlı olan tüm clientlere bilgi göndermekle yükümlüdür. Client ise oyunumuzu oynadığımız program. Serverden gelen verileri bizim anlayacağımız şekilde gösterir.
Mesela Turkmmo'dan örnek verelim. Tarayıcı ile bu siteyi açtınız ve size sunulan şeyleri görüyorsunuz. Bu kısım client oluyor. Server kısmı ise tüm herkesten gelen verileri işleyip, kaydedip başka bağlı olanlara göndermesini örnek gösterebiliriz. metin2 gibi oyunlar da buna benzer bir yapı. Terimler de çok iyi değilim ama terimlerle sizi sıkmak istemiyorum. Merak edenler için socket programlama diye aratabilir.

metin2'nin kaynak kodlarının 2 parçadan oluştuğunu ve gerekli açıklamaları yaptım. Lakin bu her parçanın kendi arasında da parçaları mevcut.
Client kısmı 16 ayrı parçaya ayrılmıştır. Tüm bu parçalar tek bir clienti oluşturur.
Server kısmı ise 8 ayrı parçaya ayrılmıştır. Serverde ki bu parçalar ise game ve dbyi oluşturur.

Ben server kısmının çoğuna baya hakimim ama cliente o kadar hakim değilim. Bu konu da sadece bildiğim şeyleri yazacağım. Bilmediğim yerleri bilmiyorum diye yazacağım. Eğer bilinmeyen yerlerle ilgili bilginiz varsa yorum olarak belirtirseniz konuya dahil ederim.

Şimdi başlayalım Server kısmını incelemeye
Not: Klasör yapısı filesten filese değişiklik gösterebilir. Ben kendi dosyalarımdan örnekliyorum!

Server şu yapıda bulunur.

  • common : Sabitlerin bulunduğu yer.
  • db : Veritabanı işlemlerini yapan çekirdek.
  • game : Veritabanından (db çekirdeğinden) ve clientlerden gelen bilgileri işleyen ve client ile bağlantısı olan yer. Yani oyunun kalbi.
    • lzo : Packların şifrelenmesiyle alakalı bir şey.
    • quest : Server filesimizde ./qc whistle.quest şeklinde komut yazıyoruz. qc'nin kaynak kodlarının bulunduğu yer burası.
  • libgame : game'ye yardımcı dosyalar bulundurur. Daha çok envanter kutucukları ve item efsunları için.
  • liblua : Server filesimizde bulunan lua (quest) kodlarının çalışması için.
  • libpoly : Oyunda ki dönüşüm.
  • libsql : Db için sql eklentisi. (veritabanı)
  • libthecore : Bilinmiyor.


Biz sadece commondb ve game içindeki dosyaları inceleyeceğiz. Sırasıyla incelemeye başlayalım o halde.


Common içinde ki dosyalar;

  • billing.h : bilinmiyor.
  • cache.h : Adından da anlaşılayacağı üzere önbellek.
  • d3dtype.h : Renklerle alakalı şeyler.
  • noncopyable.h : Bilinmiyor.
  • pool.h : Bilinmiyor.
  • service.h : Definelerin tanımlı olduğu kısım. Makroları (#ifdef, #ifndef) tetikler. Genelde buraya sistemlerin sabitleri atanır. Örnek: #define CASRO2_OFFLINESHOP gibi.
  • singleton.h : Bilinmiyor.
  • teen_packet.h : Bilinmiyor.
  • VnumHelper.h : Oyunda ki mevcut itemlerin vnumuna göre kategoriye ayrılması. Örneğin: 71136 ise cadılar bayramı ile alakalı item.
  • building.h : Lonca binaları
  • item_length.h : İtemlerle akalı bilgiler bulunur. Flaglar, efsunlar vs.
  • length.h : Oyunun geneliyle alakalı bilgiler bulunur. Bir hesapta açılacak maks karakter miktarı, envanter boyutu, maks depolanan yang miktarı, karakter türleri, mob türleri, chat türleri vs.
  • auction_table.h : Bilinmiyor.
  • stl.h : Bilinmiyor.
  • tables.h : Game ile db arasında burada tanımlanan bilgilere göre veri gönderir (packet). Örn: Oyuna giriş yapılan karakterin bilgileri ve eşyaları, protoların yüklenmesi vs.
  • utils.h : Tam bilmiyorum ama kodlarda yazıları sayıya çeviren fonksiyonlar var.


db içinde ki dosyalar;

  • AuictionManager.cpp/h: Bilinmiyor.
  • BlockCountry.cpp/h : Ülkelere göre engelleme. (Veritabanında belirtilen ip aralıklarına sahip olan yerlerden oyuna girişi yasaklar.)
  • Cache.cpp/h : Önbellekleri bulundurur. Oyunda yerden item aldığınızda veya sattığınızda bunlar anlık olarak veritabanına yazılmaz. Hafıza da tutulur ve belli süre aralıklarla kayıt yapılır. Bu yüzden oyunu reboot attığınızda item kaybı varsa oyunu kapatırken yanlış işlem yaptığınız içindir.
  • ClientManager.h: Bu header birden fazla cpp dosyası içindir. Bunlar sırayla;
    • ClientManager.cpp : Burayı db çekirdeğinin kalbi diyebiliriz. game'den gelen verileri burada işler.
    • ClientManagerBoot.cpp : Oyun açılırken veritabanında ki verileri çeker. (npcler de satılan eşyalar, protolar, loncalar, lonca binaları vs)
    • ClientManagerEventFlag.cpp : player.quest tablosunda dwPID değeri 0 olanları çeker ve event flag olarak oyuna tanımlar. Örnek: ay ışığı eventi, exp_rate gibi.
    • ClientManagerGuild.cpp : Loncaların oluşturulması, silinmesi, loncaya üyelerin eklenmesi gibi işlemlerin bulunduğu dosya.
    • ClientManagerHorseName.cpp : Bunu açıklamaya gerek var mı bilmiyorum ama at şekeri ile atınıza isim verdiğinizde bu dosya da çalışır.
    • ClientManagerLogin.cpp : Kullanıcı girişi yaparken, karakteri seçerken gereken bilgileri game gönderir. Game'den gelen bilgileri de veritabanına kayıt eder. Bu listede ki çoğu dosyanın görevi bu. Gelen verileri kayıt eder, veri gönderir. Bu dosya da kısaca oyuncu hesabı bilgilerini barındırır.
    • ClientManagerParty.cpp : Oyunda kurduğumuz gruplar.
    • ClientManagerPlayer.cpp : Oyuna girişte seçilen karakterin bilgilerini işler. İtemler, statüler vs.
  • Config.cpp/h : Server filesinizin db içinde CONFIG, conf.txt gibi dosyalar var. Bunlarda ki verileri alır ve işler.
  • CsvReader.cpp/h : Server filesinizde ki bulunan (item_names.txtitem_proto.txtmob_names,txtmob_proto.txt) dosyaların okunmasını için yardımcı dosya. Bu program her tab ile ayrılan şeyleri ayrı sütün olarak algılar. Excel programı ile de protoları açarsanız düzgün bir şekilde sütünlara ayrıldığını görebilirsiniz. (Bu dosyalar ClientManagerBoot.cpp'de okunur, işlenir ve game'ye gönderilir.)
  • DBManager.cpp/h - DBManager_mainline.cpp : Sql sorguları için yazılmış.
  • Grid.cpp/h : Envanterde bulunan kutucuklar var. Onlar için. Görevleri kısaca şu. Belirtilen kutu da item varsa bilgilerini alır. İtem olup olmama kontrolünü filan yapar. Detaylar için dosyayı inceleyebilirsiniz.
  • GuildManager.cpp/h : Loncaların işlendiği yer. Boot aşamasında tüm loncaları veritabanından alır. Oyun kapanırken kayıt yapar vs.
  • HB.cpp/h : Bilinmiyor.
  • ItemAwardManager.cpp/h : player.item_award tablosunda ki verilerin okunması için.
  • ItemIDRangeManager.cpp/h : player.item tablosunda itemlerin idsi var. Bu idlerin tanımlanması için.
  • Lock.cpp/h : Bilinmiyor.
  • LoginData.cpp/h : Giriş yapılan hesapla ilgili bazı bilgileri alır. Premium durumu vs.
  • main.cpp/h : Bunu açıklamaya gerek var mı bilmiyorum ama c++ projelerinde main dosyası bulunur. Bu da onun için. Diğer tüm dosyaların kullanımını burada tanımlanır. db açıldığında sırasıyla yapılacak işlemler burada belirtilir.
  • Marriage.cpp/h : Evlilik.
  • Monarch.cpp/h : Bu kullanılmayan bir özellik olduğu için pas.
  • MoneyLog.cpp/h : Oyuncunun yang log kayıtları.
  • NetBase.cpp/h : Bilinmiyor.
  • Peer.cpp/h : Bilinmiyor.
  • PeerBase.cpp/h : Bilinmiyor.
  • PrivManager.cpp/h : Oyunda drop açıyoruz. Bunla ilgili işlemler.
  • ProtoReader.cpp/h : Protoların okunması için gerekli.
  • QID.h : Bilinmiyor.
  • stdafx.h : Bu da c++ projelerinde bulunan header dosyası.
  • version.cpp : Versiyonla alakalı şey. Filesinizde VERSION.txt diye bir dosya vardır. Bu dosyayı oluşturup versiyonu yazdıran kodlar burada.


Game içindeki dosyaları;

  • affect.cpp/h : Oyunuda sol üst kısımda bulunan etkiler. (oto yang toplama, exp artış miktarı vs)
  • affect_flag.h : Efektlerin kontrolü için fonksiyonlar sunar.
  • ani.cpp/h : Karakter animasyonlarının kontrolü yapıldığı yer.
  • arena.cpp/h : Oyuncuların birbirleri ile ws attığı bir harita vardı. Sistemin çalışması için gerekli kontroller burada.
  • auction_manager.cpp/h : Bilinmiyor.
  • auction_packet.h : Bilinmiyor.
  • auth_brazil.cpp/h : Bilinmiyor.
  • banword.cpp/h : Küfür filtresi. (player.banword tablosunda yazan kelimeleri sansürler.)
  • battle.cpp/h : Savaş dinamiklerinin bulunduğu dosya.
  • BattleArena.cpp/h : Savaş arenası.
  • belt_inventory_helper.h : Kemer taktığınız zaman envanterin yanında ki küçük bölgeye potlar koyuluyor. Bu dosya ise hangi itemlerin koyulabileceğini, ne kadar slotun açılacağını denetler.
  • blend_item.cpp/h : Bilinmiyor.
  • block_country.cpp/h : Ülkelere yönelik engelleme kontrolleri. Mesela oyuna ABD'den giriş yapılmasını istemiyorsunuz diyelim. Bu dosya işlemleri yapıyor.
  • BlueDragon.cpp/h : Sürgün mağarasında ki mavi ejderha.
  • BlueDragon_Binder.cpp/h : Bilinmiyor.
  • BlueDragon_Skill.h : Mavi ejderhanın becerileri. Mesela size karşı mavi bi ateş atıyor.
  • buff_on_attributes.cpp/h : Giydiğiniz itemlerin efsunlarına göre karakterinize bufflar verir.
  • buffer_manager.cpp/h : Karakter bufflarını yönetir.
  • building.cpp/h : Lonca binalar.
  • castle.cpp/h : Oyunda kaleler vardı. Bunlarla alakalı.
  • char.h: Karakterlerle ve moblarla alakalı fonksiyon ve structlar burada bulunur. Bu header dosyası birden fazla cpp dosyası tarafından kullanılmaktadır. Sırasıyla;
    • char.cpp : Karakter bilgilerinin saklandığı yer. Karakterin adını, leveli ve bir çok şey burada saklanır.
    • char_affect.cpp : Karakter etkileri. Can yenileme vs.
    • char_battle.cpp : Karakter savaş dinamikleri. Bir moba veya oyuncuya saldırdığınız da ne kadar hasar vereceğiniz hesaplanır. Ya da siz saldırı aldığınız da canınızın ne kadar gideceği filan belirlenir. Efsunlara, yeteneklerinize, statülerinize, ekipman seviyenize kadar her şeyi hesaplar.
    • char_change_empire.cpp : Kralların İzi itemi ile bayrak değiştirdiğiniz zaman bu dosyada ki fonksiyonlar çalışır.
    • char_dragonsoul.cpp : Simya sistemi.
    • char_hackshield.cpp : Hackshield programının çalışması için.
    • char_horse.cpp : At, binekler vs
    • char_item.cpp : İtemler kullanıldığında yapılacak işlemlerden tutun, envanter yönetimine kadar bir çok şey bu dosyada. Game çekirdeğinde en fazla kod bulunan dosyalardan birisi de budur.
    • char_quickslot.cpp : Yetenekleri ve bazı itemleri aşağı kısımda ki taskbara ekliyoruz. Bu özelliğin çalışması için gerekli.
    • char_resist.cpp : Zehir, bleding gibi etkilerin karakterinize uygulayacağı etkiler.
    • char_skill.cpp : Karakter yetenekleri.
    • char_state.cpp : Mob durumları agrasiflik, npc vs.
  • char_manager.cpp/h : Tüm karakterlerin bilgilerinin saklandığı yer burası.
  • check_server.h : Server key kontrolü ile alakalı.
  • cipher.cpp/h : Şifreleme ile alakalı şeyler.
  • ClientPackageCryptInfo.cpp/h : Şifrelenmiş packlarla alakalı.
  • cmd.h: Komut yazdığımız zaman çalışması için gereken fonksiyonlar. Bu header dosyası birden fazla cpp dosyasında kullanılır. Sırayla;
    • cmd.cpp : Komutlar ve komutların kullanabilmek için gerekli yetkilerin ayarlandığı dosya.
    • cmd_emotion.cpp : Duygular.
    • cmd_general.cpp : GM kodu dışında genel olarak kullanılan komutlar. Burada ki komutlar oyuncular tarafından da kullanılabilir.
    • cmd_gm.cpp : GM'lerin kullanabildiği kodlar burada bulunur.
    • cmd_oxevent.cpp : OX eventle ilgili komutlar.
  • config.cpp/h : Filesinizin kanal dosyaları içinde CONFIG dosyası bulunur. Bu dosyaların okunması için.
  • constants.cpp/h : Bazı sabitlerin bulunduğu yer. Örn: Efsun listesi, lonca ve karakter level atlaması için gerekli exp oranlarının bulunduğu bölge.
  • crc32.cpp/h : Bilinmiyor.
  • cube.cpp/h : Craft sistemi. İksir yapımı, item dönüşümleri vs.
  • db.cpp/h : Veritabanı ile alakalı şeyler. Query çalıştırma vs.
  • debug_allocator.h : Bilinmiyor.
  • debug_allocator_adapter.h : Bilinmiyor.
  • debug_ptr.h : Bilinmiyor.
  • desc.cpp/h : Packet gönderip almak için gerekli fonksiyonlar.
  • desc_client.cpp/h : Yeni bir client açıldığında socket bağlantısı kurması için.
  • desc_manager.cpp/h : Bağlı clientler, hesaplar ve karakter bilgilerinin bulunduğu dosya.
  • desc_p2p.cpp/h : Yeni bir p2p bağlantısı açıp sonlandırma.
  • dev_log.cpp/h : Bilinmiyor.
  • dragon_soul_table.cpp/h : Simya taş kademeleri.
  • DragonLair.cpp/h: Sürgün içinde ki mavi ejderha ile alakalı.
  • DragonSoul.cpp/h : Simya sistemi.
  • dungeon.cpp/h : Dungeon kontrolleri. game99 içinde bulunan haritalar için. Yeni bir giriş yapıldığında sanal core oluşturma, grup halinde oyuncuları aynı bölgeye atma vs.
  • empire_text_convert.cpp/h : Aynı krallıkta olmayan oyuncular ile iletişim kurulmuyor. Lisanı geliştirdikçe ufak ufak anlaşılır oluyordu. Bu dosya da yazdığınız yazının karşıda ki oyuncu da nasıl gözükeceği düzenler.
  • entitiy.cpp/h entitiy_view.cpp : Varlıklar (karakter mob vs.) gözükmesi için
  • event.cpp/h : Zaman ayarlı eventlerin düzenlenmesi için.
  • event_queue.cpp/h : Bilinmiyor.
  • exchange.cpp/h : Oyuncular arası ticaret. (ticaret penceresi)
  • fifo_allocator.h : Bilinmiyor.
  • file_loader.cpp/h : Filesinizde ki metin dosyalarının okunması için.
  • FileMonitor_Freebsd.cpp/h : Bilinmiyor.
  • fishing.cpp/h : Balıkçılık.
  • FSM.cpp/h : Bilinmiyor.
  • gm.cpp/h : GM 

    :D

  • group_text_parse_tree.cpp/h : Bilinmiyor.
  • guild.cpp/h : Lonca bilgilerine ulaşmak için.
  • guild_manager.cpp/h : Tüm loncaların hafıza tutulduğu bölge.
  • guild_war.cpp : Lonca savaşı.
  • HackShield.cpp/h : HackShield programı için.
  • HackShield_Impl.cpp/h : HackShield programı için.
  • horse_rider.cpp/h : At sürme ile alakalı.
  • horsename_manager.cpp/h : Atına özel olarak isim ekleyen oyuncuların at isimleri burada bulunur.
  • IFileMonitor.h : Bilinmiyor.
  • input.h: Packetlerin işlenmesi için gerekli. Bu header dosyası birden fazla dosyada kullanılır. Sırasıyla;
    • input_auth.cpp : Login işlemleri.
    • input_db.cpp : DB ile Game arasında iletişim sonucu yapılacak işlemler. Mesela lonca eklediniz ve db gönderdiniz. db çekirdeği eklemeleri yaptıktan sonra tekrardan bu dosyaya packet gönderir ve bu dosya da loncanın objesinin yaratılması için guild_manager'a verileri gönderir.
    • input_login.cpp : Karakter seçtikten sonra oyuna girerken yapılacak işlemler.
    • input_main.cpp : Bu dosya da ise Client (istemci) ~ Server arasında ki ilişki içindir. Clientten gelen packetler burada analiz edilir ve yapılacak işlemler belirlenir. Mesela Casro2'de arkadaş ekleyeceksiniz diyelim. Siz clientte kişinin adını yazıp gönderiyorsunuz. Packet buraya geliyor ve arkadaş eklemek için tanımlanan fonksiyona CInputMain::Messenger gönderdiğiniz veri iletiliyor. Casro2 serveri bazı kontrolleri yaptıktan sonra MessengerManager'a arkadaşın eklenmesi için veriyi gönderiyor. Daha detaylı öğrenmek için kodları okumalısınız.
    • input_p2p.cpp : Coreler arası iletişimde kullanılır. Mesela siz genel sohbet kanalın da bir şey yazdınız. Yazdığınız tüm kanallar da gözükür.
    • input_teen.cpp : Bilinmiyor.
    • input_udp.cpp : TCP ve UDP terimlerini araştırın.
  • ip_ban.cpp/h : Banlı olan ip adreslerinden oyuna bağlanmasını engellemek için.
  • item.h: İtemlerle alakalı fonksiyonların ve structların bulunduğu header dosyası. Bu dosya birden fazla cpp dosyasında kullanılıyor. Sırasıyla;
    • item.cpp : Oyunda bulunan itemlerin bilgileri burada tutulur. Siz oyuna giriş yaptınız diyelim. Her bir eşyanız için tek tek item.cpp'de ki sınıf yaratılacak ve managerda ki vectörlere eklenecek. Protolarda tanımlı eşyalarda tanımlıdır.
    • item_addon.cpp : Eşyanın verdiği hasar vs.
    • item_attribute.cpp : Eşyalar efsun eklemek, efsun bilgilerini almak vs gibi işlemlerin bulunduğu dosya.
  • item_manager.h: Tüm itemlerin kontrolünün yapıldığı yer. İtem oluşturma, bulmak ve silme gibi fonksiyonlar bulunur. Bu header dosyası birden fazla cpp dosyası tarafından kullanılır. Sırasıyla;
    • item_manager.cpp : Tüm itemlerin kontrolerinin yapıldığı yer. İtem oluşturma, bulma, silme.
    • item_manager_idrange.cpp : Yeni item oluşturulduğunda id oluşturmak için.
    • item_manager_private_types.h : Droplarla alakalı.
    • item_manager_read_tables.cpp : Filesiniz de mob_drop_item.txtspecial_item_group.txtcommon_drop_item.txt bulunan txt dosyalarını okur.
  • limit_time.h : Zaman ayarlarıyla ilgili sabitler var.
  • locale.cpp : Ülkeden ülkeye serverde değişiklikler mevcut. Server türkiye için ayarlanmışsa locale/turkey dizininde ki verilerin alınması için yardımcı fonksiyonlar bulunur.
  • locale_service.cpp/h : Sabit olarak tanımlanan ülkeler bulunur. Bu ülkelerin karşılığında hangi dosyaların yükleneceği belirtilir. Almanya için ayarlanmışsa locale/germany dizini yüklenir.
  • log.cpp/h : Oyunda yapılan aktivitelerin kaydını veritabanına ekler.
  • login_data.cpp/h : Giriş yapmış kullanıcıların bilgilerini tutar.
  • login_sim.h : Login için veritabanına packetler gönderir.
  • lua_incl.h : Lua için eklenmiş.
  • lzo_manager.cpp/h : Lzo şifrelemesi ile ilgili.
  • main.cpp : c++ projelerinde main dosyası bulunur. Bu da onun için. Diğer tüm dosyaların kullanımını burada tanımlanır. game açıldığında sırasıyla yapılacak işlemler burada belirtilir.
  • malloc_allocator.h : Bilinmiyor.
  • map_location.cpp/h : Haritaların lokasyon bilgileri için. Mevcut konumu verdiğinizde haritanın indexini alır vs.
  • MarkManagar.h : Bu birden fazla cpp dosyasında kullanılıyor. Lonca ikonları için eklenen bir dosya. Kullanan diğer dosyalar sırayla şu şekilde;
    • MarkConvert.cpp : Resimlerin dönüştürülmesi.
    • MarkManager.cpp : Lonca resmi eklemiş tüm loncaların bilgilerini tutar.
  • MarkImage.cpp/h : Lonca ikonu resimlerini oluşturma, silme vs.
  • marriage.cpp/h : Evlilik.
  • matrix_card.cpp/h : Bilinmiyor.
  • messenger_manager.cpp/h : Arkadaş listesi.
  • mining.cpp/h : Madencilik.
  • mob_manager.cpp/h : Oyunda ki slotlar.
  • monarch.cpp/h : Bu özellik kullanılmadığı için pas.
  • motion.cpp/h : Slotların, oyuncuların hareketleriyle ilgili. share/data içinde ki dosyaları okur.
  • object_allocator.h : Classlarla ilgili. Obje ekleme, silme vs.
  • over9refine.cpp/h : Dönüşüm.
  • OXEvent.cpp/h : OX eventi.
  • p2p.cpp/h : P2P bağlantısı. Yeni bağlantı oluşturma, sonlandırma, packet gönderme vs gibi işlemleri yapar.
YAZAR HAKKINDA;
arcface
Admin

Web Developer

KONU YORUMLARI
YORUM YAP
Image

FreeBSD

Metin2 Source Dosyalarının Ayrıntılı Açıklaması

Metin2 Source Dosyalarının Ayrıntılı Açıklaması Metin2 Source Dosyalarının Ayrıntılı Açıklaması Metin2 Source Dosyalarının Ayrıntılı Açıklaması Metin2 Source Dosyalarının Ayrıntılı Açıklaması

EN ÇOK OKUNAN 5 MAKALELER
arcface
Admin Yazdı;

2 ay önce

Yarı insan denilince ne anlıyoruz önce ona bir bakalım. Yarı insan; bi..

arcface
Admin Yazdı;

2 ay önce

Rubinum2 Web Panel Rubinum2 Web Panel Rubinum2 Web PanelRubinum2 Web..

arcface
Admin Yazdı;

2 ay önce

Afro2 Web Panel Kodlaması Afro2 Web Panel Kodlaması Afro2 Web Pane..

arcface
Admin Yazdı;

2 ay önce

Discord Widget Discord Widget Discord Widget Discord Widget Di..

arcface
Admin Yazdı;

2 ay önce

Aegea2 Site Teması İndir Aegea2 Site Teması İndir Aegea2 Site Teması..