Bvural41 1
Bvural41
kralhakan2009 1
kralhakan2009
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
C 1
chengdu
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

[TuT] c++17 client side

  • Konuyu başlatan Konuyu başlatan SamuraiHUN
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 18
  • Görüntüleme Görüntüleme 5K
5.00 yıldız(lar) 1 Değerlendirme Değerlendirenler
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

SamuraiHUN

Level 1
TM Üye
Katılım
5 Tem 2021
Konular
11
Mesajlar
37
Online süresi
10d 6h
Reaksiyon Skoru
62
Altın Konu
0
Başarım Puanı
63
MmoLira
2,053
DevLira
30
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

How to Update Client src c++17


Step 1:

First, we open the client source with visual studio 2019/2022.

Select all projects and right click on them -> properties -> General -> c++ language standard -> Here we choose c++17.





Step 2:

In each file (ctrl + shift +f) , we search for the following & delete them:

C++:
using namespace std;
Step 3:

Now the following details need to be modified (every file):


C++:
string
pair
make_pair
vector

to
C++:
std::string
std::pair
std::make_pair
std::vector

Step 4:

Open Eterbase project stl.h file and delete this code:

C++:
namespace std
{
    template <class _Ty>
    class void_mem_fun_t
        : public unary_function<_Ty *, void> {
    public:
        explicit void_mem_fun_t(void (_Ty::*_Pm)())
            : _Ptr(_Pm) {}
        void operator()(_Ty *_P) const
        {((_P->*_Ptr)()); }
    private:
        void (_Ty::*_Ptr)();
        };
    template<class _Ty> inline
    void_mem_fun_t<_Ty> void_mem_fun(void (_Ty::*_Pm)())
    { return (void_mem_fun_t<_Ty>(_Pm)); }

    template<class _Ty>
    class void_mem_fun_ref_t : public unary_function<_Ty, void> {
    public:
        explicit void_mem_fun_ref_t(void (_Ty::*_Pm)())
            : _Ptr(_Pm) {}
        void operator()(_Ty& _X) const
        { return ((_X.*_Ptr)()); }
    private:
        void (_Ty::*_Ptr)();
    };

    template<class _Ty> inline
    void_mem_fun_ref_t<_Ty> void_mem_fun_ref(void (_Ty::*_Pm)())
    { return (void_mem_fun_ref_t< _Ty>(_Pm)); }


        // TEMPLATE CLASS mem_fun1_t
template<class _R, class _Ty, class _A>
    class void_mem_fun1_t : public binary_function<_Ty *, _A, _R> {
public:
    explicit void_mem_fun1_t(_R (_Ty::*_Pm)(_A))
        : _Ptr(_Pm) {}
    _R operator()(_Ty *_P, _A _Arg) const
        { return ((_P->*_Ptr)(_Arg)); }
private:
    _R (_Ty::*_Ptr)(_A);
    };
        // TEMPLATE FUNCTION mem_fun1
template<class _R, class _Ty, class _A> inline
    void_mem_fun1_t<_R, _Ty, _A> void_mem_fun1(_R (_Ty::*_Pm)(_A))
    { return (void_mem_fun1_t<_R, _Ty, _A>(_Pm)); }


}

Step 5:

In each file (ctrl + shift +f) , we search for the following & modify them:

C++:
std::void_mem_fun

to

C++:
std::mem_fn

this

C-like:
std::auto_ptr
to:

C++:
std::unique_ptr

Step 6:

Open userinterface/userinterface.cpp

Search this:

C++:
extern "C" {
extern int _fltused;
volatile int _AVOID_FLOATING_POINT_LIBRARY_BUG = _fltused;
};

add under this:
C++:
extern "C" { FILE __iob_func[3] = { *stdin,*stdout,*stderr }; }

Step 7:

Open Speherelib/spherepack.h

modify this:
C++:
inline void LostChild(SpherePack *pack);

to:

C++:
void LostChild(SpherePack *pack);

Step 8:


open etherBase/cipher.h

search this:

C++:
#include <cryptopp/cryptlib.h>
#pragma warning(pop)

add under this:

C++:
using CryptoPP::byte;


Step 9

Open etherpack/Eterpack.h


C++:
#include <boost/unordered_map.hpp>
#include <boost/shared_array.hpp>

modify to:

C++:
#include <unordered_map>

Replace all file this:

C++:
boost::

to:

C++:
std::

Open etherpack/EterpackManager.h & EterPackPolicy_CSHybridCrypt.h

modify this:

C++:
#include <boost/unordered_map.hpp>

to

C++:
#include <unordered_map>


Open GameLib/Area.cpp

remove this:

C++:
#include <boost/algorithm/string.hpp>

and this:

C++:
 boost::algorithm::to_lower(attrFileName);

modify to:

C++:
 std::transform(attrFileName.begin(), attrFileName.end(), attrFileName.begin(), [](unsigned char c) { return std::tolower(c); });


EterPythonLib>PythonWindow.cpp

"std::mem_fun"

değiştirin

"std::mem_fn"

"find"

değiştirin

"std::find"

You can also delete the boost in the include folder.

If you don't understand something, you can ask your questions here.


I edit the topic how to upgrade ikarus libconfig to compatibile with c++17​
 
Son düzenleme:
Paylaşım için teşekkürler
 
açıklayıcı paylaşımınız için teşekkür ederiz, tümünü yaptım hataları giderdim fakat oyuna girdiğimde ağaçlar gözükmüyor
imageb54db7b4fd13c884.png
 
SamuraiHUN#8174
 
Eline Sağlık, Paylaşım için Teşekkürler :)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst