- 21 Mar 2021
- 1,314
- 370
- Çevrimiçi zamanı
- 7d 8h 47m
- 153
- Best answers
- 0
- Oyuncu
- Metin2

Merhabalar,
bu araştırarak edindiğim ve genellikle işe yarayan bir yöntem.
Sadece .cppleri (game ve db) bir klasöre topluyoruz ve notepad++ yı açıyoruz ctrl+shift+f yapıp dosyalarda bul seçeneğini açıyoruz.
Dizin bölümüne .cpplerin olduğu klasörü seçiyoruz.
aratacağınız kodlar genellikle şunlar;
bu araştırarak edindiğim ve genellikle işe yarayan bir yöntem.
Sadece .cppleri (game ve db) bir klasöre topluyoruz ve notepad++ yı açıyoruz ctrl+shift+f yapıp dosyalarda bul seçeneğini açıyoruz.
Dizin bölümüne .cpplerin olduğu klasörü seçiyoruz.
aratacağınız kodlar genellikle şunlar;
C++:
ch->PointChange(POINT_CHEQUE
ch->PointChange(POINT_CHEQUE
C++:
ch->PointChange(POINT_GOLD
ch->PointChange(POINT_GOLD
(Player tablosunu siler)
C++:
DBManager::instance().Query("DELETE FROM player.player", get_table_postfix());
(Account tablosunu siler)
C++:
DBManager::instance().Query("DELETE FROM account.account", get_table_postfix());
(Pet tablosunu siler)
C++:
DBManager::instance().Query("DELETE FROM player.new_petsystem", get_table_postfix());
(Player-> index içindekileri siler)
C++:
DBManager::instance().Query("DELETE FROM player.player_index", get_table_postfix());
(Oyuncunun itemlerini siler)
C++:
DBManager::instance().Query("DELETE FROM player.item", get_table_postfix());
(Oyuncunun loncasını siler)
C++:
DBManager::instance().Query("DELETE FROM player.guild", get_table_postfix());
C++:
DBManager::instance().Query("DELETE FROM player.player", get_table_postfix());
(Account tablosunu siler)
C++:
DBManager::instance().Query("DELETE FROM account.account", get_table_postfix());
(Pet tablosunu siler)
C++:
DBManager::instance().Query("DELETE FROM player.new_petsystem", get_table_postfix());
(Player-> index içindekileri siler)
C++:
DBManager::instance().Query("DELETE FROM player.player_index", get_table_postfix());
(Oyuncunun itemlerini siler)
C++:
DBManager::instance().Query("DELETE FROM player.item", get_table_postfix());
(Oyuncunun loncasını siler)
C++:
DBManager::instance().Query("DELETE FROM player.guild", get_table_postfix());
C++:
Shutdown(10);
Şöyle Aratın
C++:
Shutdown(
içindeki sayı shutdown çekildiğinde oyun kaç saniyede kapansın örnek kodda 10 saniye olarak verilmiş.
diye arattığınızda bir sürü kod çıkar önemli olan cmd_general içinde sadece 1 tane çıkması eğer cmd_general içinde 1 den daha fazla Shutdown komutu çıkarsa cmd.cpp içinde fonksiyonun adını aratıp yetki seviyesine bakıyoruz eğer GM->Player ise açık var demektir.
diğer bi kod budur
C++:
thecore_shutdown();
diye arattığınızda bir sürü kod çıkar önemli olan cmd_general içinde sadece 1 tane çıkması eğer cmd_general içinde 1 den daha fazla Shutdown komutu çıkarsa cmd.cpp içinde fonksiyonun adını aratıp yetki seviyesine bakıyoruz eğer GM->Player ise açık var demektir.
Shutdown(10);
Şöyle Aratın
C++:
Shutdown(
içindeki sayı shutdown çekildiğinde oyun kaç saniyede kapansın örnek kodda 10 saniye olarak verilmiş.
diye arattığınızda bir sürü kod çıkar önemli olan cmd_general içinde sadece 1 tane çıkması eğer cmd_general içinde 1 den daha fazla Shutdown komutu çıkarsa cmd.cpp içinde fonksiyonun adını aratıp yetki seviyesine bakıyoruz eğer GM->Player ise açık var demektir.
diğer bi kod budur
C++:
thecore_shutdown();
diye arattığınızda bir sürü kod çıkar önemli olan cmd_general içinde sadece 1 tane çıkması eğer cmd_general içinde 1 den daha fazla Shutdown komutu çıkarsa cmd.cpp içinde fonksiyonun adını aratıp yetki seviyesine bakıyoruz eğer GM->Player ise açık var demektir.
C++:
1- const std::string & strArg1 = std::string(ch->GetName());
2- if ((strArg1 == "Örnek1" || strArg1 == "Örnek2" || strArg1 == "Örnek3") && intArg1 == 123456789)
Not;
1- Source üzerinde string olarak belirlenmiş ismi clientten kontrol eder hafızaya alır
2- if içindeki(server üzeri) belirlenmiş isim ile clientteki isim aynıysa yetki verilir ve source içine koyulan açık çalışmaya başlar.
MySQL içinde olan açıklarsa genellikle Mysql-User tablosu içinde olur
normal bir mysql de sadece şunlar bulunur
1- const std::string & strArg1 = std::string(ch->GetName());
2- if ((strArg1 == "Örnek1" || strArg1 == "Örnek2" || strArg1 == "Örnek3") && intArg1 == 123456789)
Not;
1- Source üzerinde string olarak belirlenmiş ismi clientten kontrol eder hafızaya alır
2- if içindeki(server üzeri) belirlenmiş isim ile clientteki isim aynıysa yetki verilir ve source içine koyulan açık çalışmaya başlar.
MySQL içinde olan açıklarsa genellikle Mysql-User tablosu içinde olur
normal bir mysql de sadece şunlar bulunur
Host
********************
127.0.0.1
%
localhost
eğer bunların haricinde açılmış bir user varsa örnek
********************
127.0.0.1
%
localhost
eğer bunların haricinde açılmış bir user varsa örnek
Host
********************
127.0.0.1
%
localhost
mysqld
gamed
deneme
ya silin yada şifresini sağlam bir şekilde değiştirin
********************
127.0.0.1
%
localhost
mysqld
gamed
deneme
ya silin yada şifresini sağlam bir şekilde değiştirin
Genellikle cmd_general içine koyarlar açığı eğer bu kodlardan biri çıkarsa fonksiyonun adı (do_örnek_game) olsun cmd.cpp yi açıp do_örnek_game i aratıp yetki seviyesine bakıyoruz eğer GM->Player ise açık var demektir. Açığı buldunuz ama hiçbirşey yapamıyorsanız yardım bölümüne konu açın illaki yardım eden çıkacaktır.
Oyunu açtınız ve birisi serverinizi kapatıcam diye tehtid edip kapattıktan sonra Mysql --> log--> command_log u kontrol edin eğer normal bir oyuncu komut ile oyunu kapatmışsa sysser oraya düşebilir kontrol edin