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

Kaptan Yosun

Moderatör
Moderatör
Premium Üye
Mesaj
758
Çözümler
24
Beğeni
637
Puan
839
Ticaret Puanı
0
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
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.
!!!
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

Ardından 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.

Yaşadığınız sorunlar için bu konuya yorum yazmayın, Soru, Cevap ve Yardım bölümünü kullanın.

Güle güle geliştirin​

0523_000213.jpg
 
Son düzenleme:
@Kaptan Yosun

Üyelerimizin ve ziyaretçilerimizin güvenliğini sağlamak için site içerisinde paylaştığınız dosyaların virüs tarama sonuçlarını 24 saat içerisinde eklemeniz gerekmektedir. Kendi bilgisayarınızdaki virüs programı ile taratabilir veya virüstotal benzeri siteleri kullanarak işlemleri tarama sonuçlarını ekleyebilirsiniz.
 
@Kaptan Yosun

Üyelerimizin ve ziyaretçilerimizin güvenliğini sağlamak için site içerisinde paylaştığınız dosyaların virüs tarama sonuçlarını 24 saat içerisinde eklemeniz gerekmektedir. Kendi bilgisayarınızdaki virüs programı ile taratabilir veya virüstotal benzeri siteleri kullanarak işlemleri tarama sonuçlarını ekleyebilirsiniz.
Windows Defender taraması ekledim.
 
Rar şifresini ben mi göremedim yoksa eklemeyi mi unuttunuz. Bu arada paylaşımın için teşekkürler.
 
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.
 
Merhaba, açmış olduğunuz konu için teşekkürler fakat daha önce yaşamış olduğunuz skillerin gm efekti verme sorunu var affectleri null yaptım ama devam ediyor.
 
Merhaba, açmış olduğunuz konu için teşekkürler fakat daha önce yaşamış olduğunuz skillerin gm efekti verme sorunu var affectleri null yaptım ama devam ediyor.
Serveri yeniden başlatınız mı? Bugün test eder skill protoyu değiştiririm olmadı. Source kaynaklı değil, çünkü değiştirilmemiş mainline bu.
 
Rica etsem skill protoyu nasıl düzenlemem gerektiğini söyler misiniz çünkü ben denediğimde silinmiyor affectler
Özel bir şey yapmadım. Navicat ile MySQL'e bağlanıp Skill protoda YMIR olan affectleri klavyenin delete tuşuyla sildim. Sizde silmeye çalıştığınızda nasıl bir hata veriyor?
 
Son düzenleme:
Özel bir şey yapmadım. Navicat ile MySQL'e bağlanıp Skill protoda YMIR olan affectleri klavyenin delete tuşuyla sildim. Sizde silmeye çalıştığınızda nasıl bir hata veriyor?
265 - Data truncated for column 'setAffectFlag' at row 1 hatası veriyordu dışarı aktardım kodlardan sildim ama yine gm efekti veriyor kafayı yicem skill protoyu rica etsem paylaşır mısınız birde savaşçı güçlü bedeni kontrol eder misiniz ?
 
265 - Data truncated for column 'setAffectFlag' at row 1 hatası veriyordu dışarı aktardım kodlardan sildim ama yine gm efekti veriyor kafayı yicem skill protoyu rica etsem paylaşır mısınız birde savaşçı güçlü bedeni kontrol eder misiniz ?
Test ettim, güçlü bedende de problem yok. Bence siz yanlış işletim sisteminin veritabanını değiştiriyorsunuz. Server Windows'ta açıksa Windows MySQL'ini değiştirdiğinize emin olun.

1713534623441.png

Skill protoyu eklere ekliyorum.
 

Dosya Eklentileri

Test ettim, güçlü bedende de problem yok. Bence siz yanlış işletim sisteminin veritabanını değiştiriyorsunuz. Server Windows'ta açıksa Windows MySQL'ini değiştirdiğinize emin olun.

16463 eklentisini görüntüle
Skill protoyu eklere ekliyorum.
bu skill protoyuda attım ama o sıradada hata verdi başka bir proto indirmişim ama nerden indirdim bilmiyorum o çalıştı efektler gitti buraya paylaşayım lazım olur
 

Dosya Eklentileri

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.)
 
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.)
Source kodlarında discord libleri var ama kodlar yarım mı kurcalayamadım sormak istedim ?
 
Üst