Jump to content

TMP4

Contributor
  • Posts

    1112
  • Joined

  • Last visited

  • Days Won

    20
  • Feedback

    100%

Posts posted by TMP4

  1. New Update:

    This is the hidden content, please

    2021.11.22: - Project migrated to FreeBSD13.0. CryptoPP (8.4.0) included in the /usr/metin2/src/etc folder,
                  and placed all non-main project folders to that 'etc' folder like libmysql, libdevil, teen etc.
                  Here is a patch file if you need: https://pastebin.com/ZtnmEuvP
                - Hackshield commented out from the source, it's lib was not compatible and it was unused anyway.
                - Googletest code commented out, it was totally unnecessary and mostly unused. (main.cpp)
                - Changed a return null to return false in bool DSManager::ExtractDragonHeart. (DragonSoul.cpp)
                - ClientVS19.zip removed, please use ClientVS22.zip and update your Visual Studio to 2022.
                - Fixed EterLib/NetStream.cpp, if you enable _PACKETDUMP it will work now.
                - 71051 & 71052 clientside description was swapped, fixed it in itemdesc.txt.

    The game & db compiled in FreeBSD13 may not run in FreeBSD12.
    If you don't want to update your VPS to FreeBSD13, I suggest you to compile the source in FreeBSD12.2 x32.
    If you install these packages via pkg the source should compile without an issue in FreeBSD12.2 x32 too:

    Spoiler
    -mysql55-server
    -mysql55-client
    -python27
    -devil (1.7.8)
    -boost-all (1.72.0)
    -llvm-devel
    -cmake
    -gmake
    -makedepend
    -gdb

    Please report bugs, it was a big milestone for the project so bugs can happen.

    • Metin2 Dev 8
    • Good 4
    • Love 13
  2. 1 hour ago, .NyanCat said:

    I experienced that exact samr peoblem as well yesterday ?

    On login. Auth crashes.

    Well I just went for https://cryptopp.com/cryptopp840.zip (8.5.0 works too but I have 8.4.0 in the clientside so I choose that)

    Unzip it in your freebsd then cd there then gmake then gmake install or point to that directory in your MakeFIle.
    (Be sure to remove cryptopp before if you have already installed via pkg or from ports)

    Still don't know why the pkg and the port version not working tho, but honestly I don't care at this point,
    at least the downloadable version works ?

    • Love 1
  3. 14 hours ago, SmyleMDFK said:

    At new version i have this error:

     

    Process: FDWATCH: peer null in event: ident 21

     

     

    I think that is independent from any update, it can happen in every serverfile. Mostly when you shut down your server or your core crash.
    But please give me more info where you get it (db probably) and when you get it.

    ----------------------------------

    A little announcement, I'm working on migrating the project to FreeBSD13, I can release it soon, maybe today tomorrow If I'll have time after work, but expect soon ?

    • Good 4
    • Love 2
  4. 11 minutes ago, Denizeri24 said:

    etc/make.conf

    CFLAGS += -march=x86-64

    CXXFLAGS += -march=x86-64

    rebuild crpytopp (pkg delete crpytopp --> make clean --> make install) and game.

     

    If the error is not resolved, search this;

    Program terminated with signal SIGILL, Illegal instruction. Privileged opcode.

    Yep I rebuilt cryptopp, game, db too. When I rebuilt cryptopp I saw it was compiled with clang++-devel so that part is ok.

    I have benn looked for SIGILL, Illegal instruction for hours yesterday, I know what it means but I don't know why I get that when I built crytopp from ports and not manually.

  5. 22 minutes ago, Denizeri24 said:

    etc/make.conf

    CC = clang-devel

    CXX = clang++-devel

     

    Freebsd has changed default compiler (gcc to clang).

    The devel version is the developer version and the devel version does not come by default in operating systems.

     

    Clang-Devel --> Version 12 or 13

    Clang --> Version 8

    I see your point and I did it, now the port version compiled with clang++-devel too.
    However it's still the same, auth crash and I getting lost my faith.

     

  6. 8 minutes ago, Denizeri24 said:

     

    whats your compiler? gcc or clang? and what versions?

     

    and when you compile from ports, what you using compiler?  The reason for getting errors in cryptopp is usually compiler diffs (optimizations) and c++ versions..

    clang for the project (game,db) clang++-devel

    "and when you compile from ports, what you using compiler?"
    Can we choose? I just give cd /usr/ports/security/cryptopp && make install clean command.

  7. 12 minutes ago, Denizeri24 said:

    dont use pkg.

    use make install (install from ports)

    pkg and the port version is the same, but I tried, same result, auth crash.

    What is weird is that when I installs it manually by download it from: https://cryptopp.com/#download and gmake & gmake install it works fine, auth does not crash. There is some difference in the port version and in the cryptopp.com version. As I said the lib (libcryptopp.a) size are different, but that mostly because of compression.

    To sum it up:

    • cd /usr/ports/security/cryptopp && make install clean (or via pkg) --> auth crash
    • Installing it by downloading & unzipping this: https://cryptopp.com/cryptopp850.zip and gmake and gmake install --> it works fine

    The result should be the same in either way, but it's not.

    • Metin2 Dev 6
    • Think 1
  8. Hi, 

    When I compile my game with Crypto++ 8.5.0 (current version from pkg install cryptopp) the game compiles fine but when I try to log in, the auth crash.

    GDB:

    Core was generated by `./auth'.
    Program terminated with signal SIGILL, Illegal instruction.
    Privileged opcode.
    #0  KeyAgreement::~KeyAgreement (this=0x213dd780) at cipher.cpp:100
    100       virtual ~KeyAgreement() {}
    [Current thread is 1 (LWP 100565)]
    (gdb) bt
    #0  KeyAgreement::~KeyAgreement (this=0x213dd780) at cipher.cpp:100
    #1  0x006024a0 in Cipher::Prepare (this=0x213cea2c, buffer=0xffbfb35d,
        length=0xffbfb354) at cipher.cpp:159
    #2  0x00542329 in DESC::SendKeyAgreement (this=0x213ce700) at desc.cpp:731
    #3  0x00564fc6 in CInputProcessor::Handshake (d=0x213ce700,
        c_pData=0x22023400 "\377\243*\251\300/l\002", this=<optimized out>)
        at input.cpp:212
    #4  CInputHandshake::Analyze (this=0x213ce72c, d=0x213ce700,
        bHeader=255 '\377', c_pData=0x22023400 "\377\243*\251\300/l\002")
        at input.cpp:646
    #5  0x00564697 in CInputProcessor::Process (this=0x213ce72c,
        lpDesc=0x213ce700, c_pvOrig=0x22023400, iBytes=13,
        r_iBytesProceed=@0xffbfb9cc: 0) at input.cpp:103
    #6  0x00541c55 in DESC::ProcessInput (this=0x213ce700) at desc.cpp:313
    #7  0x00633524 in io_loop (fdw=0x213be520) at main.cpp:1059
    #8  0x00633229 in idle () at main.cpp:948
    #9  0x00631ef5 in main (argc=<optimized out>, argv=0xffbfecbc) at main.cpp:609
    (gdb)

    GDB Full: https://pastebin.com/jwLNHPGn (it's long so I used pastebin)

    If you want to have a look in the source files: 

    This is the hidden content, please

    (It's the same as https://metin2.dev/topic/27610-40250-reference-serverfile-client-src-15-available-languages/ just removed hackshield because hs lib wasen't compatible)

    Any idea how to make it work?

    Edit: When I install cryptopp manually from https://cryptopp.com/cryptopp850.zip it works fine. I have no clue what's happening ?
    The file sizes are different in the lib folder when I install it via pkg and when I install it manually, but maybe just compression.

    Thanks in advance,
    TMP4

     

    • Metin2 Dev 17
    • Scream 1
    • Good 2
    • Love 1
    • Love 6
  9. Hi,

    Thank you for the prepared FreeBSD13 vm what you provided for me in DM.

    After I removed hackshield the game compiled just fine: 

    This is the hidden content, please

    You can owerwrite it because I did not change other things just commented out hackshield lines, but you can use notepad++ compare plugin or similar.
    I couldn't solve it without removing the hackshield, but since we are not using that, it is okey to remove.

    • Metin2 Dev 16
    • Confused 1
    • Good 1
    • Love 1
  10. 6 hours ago, narcisxb said:

    Welp it turns out your backup command creates a src folder but does not backup the actual source files. As I just deleted a months worth of work on the source now I m just going to go fkin kill (shot or hang - not decided as of yet -) myself in the livingroom.

    It is a lie, sorry.

    Backup.sh do nothing but a tar -cf metin2.tar.gz metin2 command to make tar archives.

    The tar gz archives what are in mega are created with the backup.sh, and it does include src. 

    If your metin2/src folder are empty, it wasent existed there when you did the backup.sh. 

    Spoiler

    Not to mention not doing any backup for months... It's better I not comment on this.

     

  11. 16 minutes ago, narcisxb said:

    I literally don t have any syserr or syslog in any of them. I can t even start the server, as soon as I type start and select channel number it dumps stuff in var/crash and reboots freebsd. Any ideea what I m doing wroing? It worked great until last night and this morning I got this crash. ?

    I added a bunch of stuff (mainly malis and p3nger) but I always did a lot of testing and made sure everything worked. Last night I had 0 errors but this morning I just started getting this crash. 

    I get this: 

    ...
    savecore 560 - - reboot after panic: ffs_write: type 0x19307360 0 (0,57)
    savecore 560 - - writting core to /var/crash/vmcore.0
    Writing crash summary to /var/crash/core.txt.0
    ...
    

    Then it is a FreeBSD error most likely. To make things easy I would make a backup via backup.sh then redownload the vdi and restoring your backup.

  12. 3 minutes ago, CjMt2 said:

    1. this project NOT RUN on updated x86 machine

    2. this project NOT COMPILE on updated x86 machine

    3. If your goal is to run forever in x86 machine must be a joke in 2021, please see news from last 10 years from, intel, amd.

    I also tested in the virtual machine and on the real physical server before deciding to say about this files, both on the image downloaded here and on 12.2 i386, 12.2 amd64, 13 i386, 13 amd64.

    The only way to compile files is to use 12.0 i386 from this vdi WITHOUT ANY UPDATE. Why is must to make a game or db with all these vulnerabilities and then put it on a live server?

     

    I'm not gonna repeat myself. There is something you are right about, there is something you are not. Thank you for the feedback.

  13. @ Draveniou1 I hope you don't take it as an insult, I just want to explain this itemshop problem to you.

    The non-item_award item_shop's problem are not coming from the DB, but the itemshop(.php) itself.
    To solve the problem you have to do 2 things:

    • Checking your item id range in db/conf.txt
    • Inserting with a random id BUT outside of that vnum range in your itemshop.php

    Doing that way, you'll never have id conflict even if you skip item_award.
    Official chinese/hongkong server actually did this long time ago before item_award was a thing. (M2H conversation about this.)

    Item_award was made to solve this problem, so I really not understand people who want to skip using it.

    ---------------------------------------------------------------------------------------

    19 hours ago, ASIKOO said:

    Hi,

    The condition is empty, it should be deleted, right?

    He didn't delete it because there is an else right after that and he probably didn't know what to do in this situation so he left it blank.
    His code would look like this in the right formatting:

    void CItemCache::OnFlush()
    {
    	if (m_data.vnum != 0) // not equal instead of equal
    	{
    		[...] // this is the former else statement content!
    	}
    
    	[...]
    }

    But as I said, the problem lies in the itemshop.php, not in the db, so I do not advise to edit this.

    • Good 2
    • Love 1
    • Love 4
  14. 1 hour ago, 4peppe said:

    What?

    Basicly he objects to 2 things:

    • The source does not have x64 port
    • The VM is FreeBSD12.0, not 12.2 / 13.0

    My answers:

    • Porting the source to the x64 platform was never a goal for this project. Please have a look here if you want a project with an x64 port.
    • It can run fine on x64 system, you just need to compile it in a x32 system. Sum it up, you can run it even in a FreeBSD13 x64 VPS, you just can't compile there.
    • VM should be used for localhost testing, not live environement. (What if I wouldn't even include a VM?)

    Updating the VM is in my todo list btw. But do not except x64 port.

    ---------------------------

    1 hour ago, CjMt2 said:

    I won't get involved here at least until I see that it's a major update

    It's like going to a free shop and saying you won't buy anything in the future again for free from here until you see improvent of the free shop service.

    • Love 4
  15. On 11/14/2021 at 12:56 PM, TMP4 said:

    But I may update the ClientVS19 to 22 sooner since as I said there wasen't that many change in the client?

    New update ?:

    2021.11.14: - Added ClientVS22.zip so you can use Visual Studio 2022 from now (optional). Every changes I made
                  in ClientVS19 have been done in ClientVS22. Special thanks for Mali for providing the base source!
                - Fixed dump_proto, there was some missing empty subtype and while it wasen't a problem with
                  Visual Studio 2019, it crashed with Visual Studio 2022. (ItemCSVReader.cpp)

    ClientVS22 is optional, you can still use ClientVS19 and I will most likely maintain and keep it in the Mega drive. So you can choose what would you like to use. If you find any bug with VS22 please report it to me. It's new for me too and I couldn't test it for hours and days.

    Special thanks to @ Mali for his updated & clean sources. If he never released his sources probably I would never released this whole serverfile.

    • Metin2 Dev 2
    • Lmao 2
    • Good 2
    • Love 2
  16. 2 minutes ago, GoldCash said:

    Yes When i redownload Mali's VS Now its work, i dont know why, but work ?

    Probably because the old one was made for the Preview (beta) visual studio 22, not for the Release visual studio 22.
    Anyway you have to apply the changes I made in the vs19 to the vs22.

    But I may update the ClientVS19 to 22 sooner since as I said there wasen't that many change in the client?

  17. 23 minutes ago, GoldCash said:

    When i try build client i got this error ? Building Client What is wrong? I didn't change anything, I tried to build a client

    ClientVS19 does not have discord rich presence, so I'm not sure what are you doing there.

    You may work with Metin2-Client-Build-With-VS2022-master.zip because that have it, but that is totally untouched as I mentioned in the Readme.txt, I just left the archive there if anyone needs it and provide credit to Mali. In case you work with it, you may want to redownload it because Mali just updated it yesterday:

    It's planned that I upgrade the ClientVS19 to 22 sometimes in the future. If you not wait for it, you have to do the changes on your own by checking the whole Changelog.txt, but in the client there wasen't that many change.

  18. Start your investiagtion in uiinventory.py:

    	def RefreshBagSlotWindow(self):
    		getItemVNum=player.GetItemIndex
    		getItemCount=player.GetItemCount
    		setItemVNum=self.wndItem.SetItemSlot
    		
    		for i in xrange(player.INVENTORY_PAGE_SIZE):
    			slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i)
    			
    			itemCount = getItemCount(slotNumber)
    			# itemCount == 0ŔĚ¸é ĽŇÄĎŔ» şńżî´Ů.
    			if 0 == itemCount:
    				self.wndItem.ClearSlot(i)
    				continue
    			elif 1 == itemCount:
    				itemCount = 0
    				
    			itemVnum = getItemVNum(slotNumber)
    			setItemVNum(i, itemVnum, itemCount)
    • Good 1
  19. 6 minutes ago, GoldCash said:

    This not working for me i got error from SSH 

    This Error

    You need python2.7 for your vps. Pkg install python will not install 2.7 but 3.x.

    pkg install python2.7

    then

    cd /usr/metin2/server/share/locale/english/quest && python2.7 make.py

    ------------------------------------------------------------------------------

    New update:

    2021.11.13: - Changed the default bind_ip from 0 to 127.0.0.1 in db/ClientManager.cpp to prevent
                  attackers to make a fake auth and join to your db when it's port publicly available.
                - Fixed player/object_proto table to silence syserr. I used Shogun's version previously. I took the
                  reg_x original values now but since it is hard to place objects with them (that's why Shogun edited
                  it), I divided them by two. If you need full original table I left it as object_proto_original.
                - Fixed LoadMonsterAreaInfo syserr, it is a feature for WorldEditor, not the client, so I wrapped the
                  call for it with #ifdef WORLD_EDITOR [...] #endif in MapOutdoorLoad.cpp.
                - Added Extensions folder to the Mega drive what contains: 4 Inventory tutorial, 6th skill
                  tutorial and a Firewall script to use. Those are optional.

    About the object_proto: Previously I used Shogun's version what had all reg_1-4 values -10 and 10. With that you could place objects in your guild land very close to each other but the game's sectree manager does not liked that values so it had syserrs. With the original reg_1-4 values it is a pain to place objects, like if you place a guild house, you can't place anything near to it, but the syserr is empty. So I divided the original values by 2 and it looks like that's ok for the sectree manager and placing objects are not as a pain as with original values. I left an object_proto_original table with the original reg_1-4 values in case you need that.

    About the Extension folder: Since I did not want to include 4 inventory and 6th skills for warrior and assassin but lots of people wanted it, I made a tutorial for them. I didn't just took a random tutorial and saying here they are and solve yourself but I made them dedicated to this release, so you'll not encounter an error at installing, everything prepared and checked. Currently the Extension folder have: 

    • 4 Inventory tutorial
    • 6th skill tutorial
    • An ipfw script prepared to use

    I Included all 15 languages for the 4Inventory and 6th skills, even for the skillbooks. While I tested the tutorial I am grateful for any feedback.

    Spoiler

    1304241113-005941.jpg

    Ps: if you didn't read but just checking this img, 4 inventory and 6th skills are just extensions, not pre-installed!

    • Love 9
  20. 2 minutes ago, backtop said:

    This is the hidden content, please

    This is the hidden content, please

    You lost your range somewhere

    110000~99    Roher Drachendiamant
    110000~99    ĂÖÇĎ±Ţ ŔĎąÝ ąé·ćĽ®    ITEM_DS    DS_SLOT1    1    ANTI_SELL | ANTI_SAFEBOX    NONE    NONE        0    0    0    0    0    TIMER_BASED_ON_WEAR    86400    LIMIT_NONE    0    APPLY_CON    1    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0

    110000~99 --> 110000~110099

    You probably used the reverse/ProtoReaderNew.exe because that do this, however you are not supposed to use it, it is for a situations where you lost your txt protos.
    If you want to edit the clientside proto, download protos from the serverside and dump it with the dump_proto.exe

    I'll probably remove the reverse/ProtoReaderNew.exe since that is not needed for this release and just confuses people what it is.

    • Good 1
    • Love 2
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.