Source [Windows / FreeBSD] Mainline geliştirme ortamı - Tertemiz altyapı.

Kaptan Yosun

Moderatör
Moderatör
Geliştirici
Yardımsever Üye
Mesaj
1.077
Çözümler
38
Beğeni
1.177
Puan
1.339
Ticaret Puanı
0
Lütfen yaşadığınız sorunlar için bana özel mesaj atmayın veya bu konuya yorum yazmayın, Soru, Cevap ve Yardım bölümünü kullanın.

Metin2 geliştirmeye başkalarının hazırladığı fileslerle değil, doğrudan 2014'te sızdırılan Kraizy.tgz kaynak kodlarındaki mainline ile başlamak isteyenlere, hatasız hızlı bir başlangıç sunmak için bu konuyu hazırladım.
  • Dosyaları Visual Studio 2022 ile hatasız derlenebilecek kadar düzelttim.
  • Dosya düzenini iyileştirdim.
  • Kullanılmayan/ölü sistem ve kodları kaldırdım.
  • Official Client Locale String güncellemesini yaptım.
  • Birtakım bilinen açıkları kapattım. Hata düzeltmeleri yaptım.
Server kaynak kodu hem Windows, hem de FreeBSD üzerinde hatasız derlenebilir. Benim kullandığım Windows sürümü Windows 11, FreeBSD sürümü ise FreeBSD 14.0-RELEASE'dir. Serveri iki platformda derlemenin faydası, FreeBSD'nin sunucu stabilite ve performansının Windowstan daha iyi olması, Windows'ta ise hata ayıklamanın daha kolay olmasıdır. Server taraflı sistemlerinizi Windows'ta ekleyip test edebilir, hata ayıklayabilir ve ardından FreeBSD'ye aktarabilirsiniz.

Server Files detayları
Linkleri görebilmek için giriş yap veya kayıt ol.
Güncelleme geçmişi
Linkleri görebilmek için giriş yap veya kayıt ol.
Hata düzeltmeleri listesi
Linkleri görebilmek için giriş yap veya kayıt ol.
Server Filesi indirmek için (Son ücretsiz güncelleme: u10)
Linkleri görebilmek için giriş yap veya kayıt ol.
(Arşiv şifresi: kaptanyosun)

Dosya önizlemesi:
1713703810381.png


Dosyaların arşivden çıkarıldıktan sonra Windows Defender taraması:
virusscan.png


FreeBSD 14 kurduktan sonra aşağıdaki adımları izleyerek sunucuyu derlemeye ve açmaya hazır hale getirebilirsiniz.​


!!! mysql80-server'i pkg ile kuramıyorsanız veya FreeBSD kurulumu yapmak istemiyorsanız buradan hazır FreeBSD sanal makinesi indirebilirsiniz:
Linkleri görebilmek için giriş yap veya kayıt ol.
!!!
Arşivin şifresi: kaptanyosun
FreeBSD K. Adı: root
Şifre: 123


Öncelikle sanal makineye erişimi açın::
Genişlet Daralt Kopyala
ee etc/ssh/sshd_config
bu seçenekleri bulun ve değiştirin:
Genişlet Daralt Kopyala
permitrootlogin yes
PasswordAuthentication yes

Artık sunucuya Windows Terminal ile bağlanabilirsiniz.:
Genişlet Daralt Kopyala
paketleri yükleyin:
Genişlet Daralt Kopyala
pkg install python mysql80-client mysql80-server gmake makedepend openssl llvm-devel gdb

MySQL kurulumunu yapın
MySQL makine ile birlikte açılsın:
Genişlet Daralt Kopyala
pwd_mkdb -p /etc/master.passwd
chown -R mysql /var/db/mysql/
chgrp -R mysql /var/db/mysql/
echo 'mysql_enable="YES"' >> /etc/rc.conf
service mysql-server start
MySQL admin şifresini değiştirin:
Genişlet Daralt Kopyala
mysqladmin -uroot -p password
Enter password: <burayı boş bırakın.>
New password: <yeni şifrenizi girin.>
Confirm new password: <yeni şifrenizi girmeyi onaylayın.>
MySQL kullanıcıları ve izinlerini ayarlayın (123 yazan yere şifre tanımlayın, veya olduğu gibi bırakın):
Genişlet Daralt Kopyala
mysql -p
CREATE USER 'root'@'%' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

CREATE USER 'kaptan'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON *.* TO 'kaptan'@'localhost' WITH GRANT OPTION;
MySQL veritabanlarını oluşturun:
Genişlet Daralt Kopyala
CREATE DATABASE account;
CREATE DATABASE log;
CREATE DATABASE common;
CREATE DATABASE player;
Serverin MySQL'e bağlanacağı kullanıcıya izinleri sağlayın:
Genişlet Daralt Kopyala
GRANT ALL ON `account`.* TO 'kaptan'@'localhost';
GRANT ALL ON `common`.* TO 'kaptan'@'localhost';
GRANT ALL ON `log`.* TO 'kaptan'@'localhost';
GRANT ALL ON `player`.* TO 'kaptan'@'localhost';
İşlemleri kaydedip MySQL'den çıkın:
Genişlet Daralt Kopyala
flush privileges;
quit;
MySQL 8 sürümünü kullandığımız için bu bağlantı fixini yapmalıyız:
Genişlet Daralt Kopyala
ee /usr/local/etc/mysql/my.cnf

Bul:
bind-address            = 127.0.0.1
Değiştir:
bind-address            = 0.0.0.0

service mysql-server restart

Ana dizine ışınlanın:
Genişlet Daralt Kopyala
cd /
Home klasörü oluşturun:
Genişlet Daralt Kopyala
mkdir home
Şimdi ise MySQL veritabanınıza Navicat ile bağlanıp, MySQL Databases klasöründeki .sql dosyalarını ilgili veritabanlarının üzerine sürükleyerek veritabanlarını kurabilirsiniz.

Şimdi ise sunucuya WinSCP ile bağlanın:​

FreeBSD ana dizindeki /home klasörünü açın ve içine bu klasörleri atın:
  • ServerFiles-FreeBSD
  • ServerExtern-FreeBSD
  • ServerSource

Artık sunucu derlenip açılmaya hazır. Windows Terminal'e dönüp bu adımları takip edin:​

Server kaynak dosyalarının olduğu dizine ışınlanın:
Genişlet Daralt Kopyala
cd /home/ServerSource/
sunucuyu derlemeden önce temizlik:
Genişlet Daralt Kopyala
gmake clean
şimdi sunucuyu tam derleyin (-j değeri aynı anda kaç dosya derleneceğini belirler, makine hızınıza göre bir değer belirleyin):
Genişlet Daralt Kopyala
gmake all -j10
serverfiles'e ışınlanın::
Genişlet Daralt Kopyala
cd /home/ServerFiles-FreeBSD/
gerekli izinleri sağlayın:
Genişlet Daralt Kopyala
chmod 777 *.sh
gerekli dosya ve bağlantıları oluşturun:
Genişlet Daralt Kopyala
./generate.sh
questlere ışınlanın:
Genişlet Daralt Kopyala
cd /home/ServerFiles-FreeBSD/share/locale/turkey/quest
quest derleyiciye izin sağlayın:
Genişlet Daralt Kopyala
chmod 777 qc
questlerı derleyin:
Genişlet Daralt Kopyala
sh make.sh
artık oyun başlatmaya hazır, serverfilese ışınlanın:
Genişlet Daralt Kopyala
cd /home/ServerFiles-FreeBSD
oyunu başlatın:
Genişlet Daralt Kopyala
./start.sh
ek komut: oyunu bu komutla durdurun ki veritabanı sorunları yaşanmasın:
Genişlet Daralt Kopyala
./stop.sh
ek komut: arta kalan syserr ve log dosyalarını bu komutla silin:
Genişlet Daralt Kopyala
./clear.sh

FreeBSD kısmı bitti.

Sıra geldi Windows'a. Burada işler çok daha kolay.​

Linkleri görebilmek için giriş yap veya kayıt ol.
adresteki (mysql-5.6.51-win32.zip) adlı dosyayı indirin.
Mysql kurulumunu bu videoyu takip ederek yapabilirsiniz. Süre: 00:19 - 00:50
(mt2 kullanıcı adı yerine kaptan yazabilir veya kendiz başka bir şey belirleyebilirsiniz, ancak dosyaların içindeki varsayılan kullanıcı adı: kaptan)
(Windows'ta MySQL kurarken şifreye 123 yazmanıza izin vermez, 1234 yazabilirsiniz, kurulum bittikten sonra Navicat üzerinden şifreleri yeniden 123 olacak şekilde değiştirebilirsiniz. Yoksa ServerFiles-Windows\cores\db\ konumundaki conf.txt dosyasındaki şifreyi 1234 olarak güncellemeniz gerekir)


MySQL komutları::
Genişlet Daralt Kopyala
CREATE DATABASE account;
CREATE DATABASE log;
CREATE DATABASE common;
CREATE DATABASE player;

GRANT ALL PRIVILEGES ON *.* TO 'kaptan'@'localhost' WITH GRANT OPTION;

Ardından videodaki 3:25 - 4:05 aralığında gösterilen gibi database'leri kurabilirsiniz.

Sıra geldi sunucuyu kurup başlatmaya:​

ServerSource içindeki m2server.2008.sln dosyasını açın.
Serveri 32 bit modda Release ve Debug olarak derleyin.
ServerSource/Bin içindeki SendToServerfiles.bat komutunu çalıştırın.
ServerFiles-Windows içindeki start.bat komutunu çalıştırın.
Sunucuyu kapatmak için sırayla auth, ch1, ch2, ch99 ve db tıklayıp ESC tuşuna basın.

Questleri derlemek için ServerSource\Bin\Release içindeki qc.exe'yi ServerFiles-Windows\cores\xx\locale\turkey\quest konumuna kopyalayıp, derlemek istediğiniz questleri qc.exe'ye sürükleyin.

Hatırlatma: Windows ile FreeBSD ayrı veritabanlarında çalıştığı için birinde yaptığınız oyun içi işlemler diğerine yansımaz.

Güle güle geliştirin​

0523_000213.jpg
 
Son düzenleme:
Güncelleme:
-Pack sadeleştirildi ve aynı dosyaların kopyaları silindi. 4000+ kopya dosya silindi.
-Season packleri silindi ve dosyaları normal packlerin arasına eklendi, maplerin ve modellerin dosya yollarını season yerine ymir work'e yönlendirdim.
-Uiscprit, Root'un içine taşındı.
-DumpProto'daki eskik PC_BANG kodları eklendi.
-Işınlanırken clienti çökerten bir bug fixlendi.
-Mob_names.txt iyileştirildi.
-PackMakerLite 3.0, Tools'a eklendi.
-Granny Texture Path Changer, Tools'a eklendi.

Konudaki indirme linkinden güncel versiyonu indirebilirsiniz.
Konuya fix listesini de ekledim.
 
Update 2
Epey bir ölü kodu temizledim. Toplam 17000 satırdan fazla kod silindi. (Yarısından çoğu Teen projesi)
Üstteki ana konudan indirebilirsiniz.

-XTrap kaldırıldı.
-HackShield kaldırıldı.
-NProtect_GameGuard kaldırıldı.
-Netmarble kaldırıldı.
-Hammer of Tor kaldırıldı.
-Auth_Brazil kaldırıldı.
-Auth_Japan kaldırıldı.
-OpenID kaldırıldı.
-Matrix_card kaldırıldı.
-Passpod kaldırıldı.
-Blocked_Country_ip kaldırıldı.
-Vcard kaldırıldı.
-Teen kaldırıldı.
-Number_ex fix eklendi. (Windows server'de yaratıklar düşürebilecekleri tüm itemleri düşürüyordu.)
 
sanırım portsları kurmadığım için onları kuruyorum suan
Portslarla ilgili değil, muhtemelen sunucu hatasıdır, kendiliğinden düzelir. Ben de pkg'de sadece mysql client'i bulabildim, server yok. belki sunucu çökmüştür yada güncelleniyordur, bilemedim
 
Portslarla ilgili değil, muhtemelen sunucu hatasıdır, kendiliğinden düzelir. Ben de pkg'de sadece mysql client'i bulabildim, server yok. belki sunucu çökmüştür yada güncelleniyordur, bilemedim
mysql clienti kurunca not olarak serveri portslar üzerinden kurabilirsiniz diyor onun yöntemi varsa denenebilir
 
Portslarla ilgili değil, muhtemelen sunucu hatasıdır, kendiliğinden düzelir. Ben de pkg'de sadece mysql client'i bulabildim, server yok. belki sunucu çökmüştür yada güncelleniyordur, bilemedim
Çözümü buldum

Sırasıyla şu kodları yazıyoruz

mkdir -p /usr/local/etc/pkg/repos
echo 'FreeBSD: { url: "pkg+
Linkleri görebilmek için giriş yap veya kayıt ol.
{ABI}/latest" }' > /usr/local/etc/pkg/repos/FreeBSD.conf
pkg update -f
pkg search mysql

bunu yazınca serveride görmeye başlıyor clientide ondan sonra senin dediğin işlemlerden devam edilebilir
 
hocam derleme yaparken bir sürü warning çıktı bunları düzeltmenin bir konusu falan varsa yardımcı olabilir misiniz oradan başlayalım
 
hocam derleme yaparken bir sürü warning çıktı bunları düzeltmenin bir konusu falan varsa yardımcı olabilir misiniz oradan başlayalım
Konuda belirttiğim gibi dosyaları hatasız build alacak kadar fixledim. Gerisi sizde. Warninglerin çoğu Korece yazılar yüzünden invalid encoding warningi, onu makefileden kapatabilirsiniz.
 
1713822590304.png



build alırken şöyle bir hata aldım


hocam elinde hazır olan freebsd yi de paylaşma imkanın var mı ?
 
Son düzenleme:
Konuya bir sonra ki güncelleme olarak topluca bilindik açıklar ve bugların fixi gelir mi ?
 
16538 eklentisini görüntüle


build alırken şöyle bir hata aldım


Freebsd 13 olduğu için olabilir bi 14 ile tekrar deneyeceğim

hocam elinde hazır olan freebsd yi de paylaşma imkanın var mı ?
OpenSSL kurmamışsın, ondan bilinmeyen sembol hatası veriyor
discord'a girdiğimde bir değişiklik olmadı o yüzden sordum çalışıyor mu diye ?
Kurulumunu yapman gerek. Olduğu gibi herkeste çalışmaz. Sistemin sahibi bu konuda anlatmış kurulumu:
Linkleri görebilmek için giriş yap veya kayıt ol.

Konuya bir sonra ki güncelleme olarak topluca bilindik açıklar ve bugların fixi gelir mi ?
Bazılarını ekleyebilirim.
 
openssl kurdum şimdi de bu hatayı alıyorum 16542 eklentisini görüntüle
FreeBSD 13.3 ile denedim, aynı bu hatayı verdi. Yani sadece size özel değil durum. FreeBSD 14.0'da da malesef mysql80-server paketini bulamıyor, sizin paylaştığınız çözüm ile de olmadı. pkg'de bir gariplik olduğunu düşünüyorum. Kendi kendine düzelir bence. Siz pkg düzelene kadar Windows üzerinden çalıştırabilirsiniz serveri. Ara sıra dener, pkg düzelince yazarım buraya.
 
Geri
Üst