Jump to content

xP3NG3Rx

Honorable Member
  • Posts

    855
  • Joined

  • Days Won

    402
  • Feedback

    100%

Everything posted by xP3NG3Rx

  1. No, it isn't like that. It's a local database inside the client only. Anyway, I don't recommend to use that lib either , anytime when you use it, it generates a small freeze during it saves the database. I'm using it for my accountboard but I will change it later. Here is a small example to update the last used account to place it to the top of the list during the Connect method: con = sqlite3.connect("lib/sqlite3/db.cpd") cur = con.cursor() try: cur.execute("UPDATE accounts SET last_use=? WHERE login = ?;", (time.time(), id,)) except sqlite3.Error, e: dbg.TraceError("An error occurred during updating the last_use field:" + e.args[0]) con.commit() cur.close() con.close()
  2. The CHARACTER::UpdatePacket function supposed to get called in the CItem::ModifyPoints where it attaches the hair.
  3. Forever fav. Billy oh, my god
  4. Nope, I haven't finished yet the effect and the mesh(mde) scaling. Although this topic is not a promo your stuff .
  5. Hello everyone. In this small guide I'm gonna show you how to load the new Aura effects in automatically from the item_list.txt Oh, yes. There are some of argument mistmatches because of the scaling and repositioning of the effects, what you can just delete. Have fun with it
  6. Hello boys and girls! With this small release you will be able to check every single affects on your character. The official server implemented this with their autohunt system to check the duration of taus and other potions. I had to do the same for the dragon soul I have decided to make it. After a small trip in the official binary, I figured out my solution, here it is: How to check if the first or the second deck of the dragon soul is activated? if player.CheckAffect(chr.NEW_AFFECT_DRAGON_SOUL_DECK1, 0): print("Hurray! The first deck is active now") elif player.CheckAffect(chr.NEW_AFFECT_DRAGON_SOUL_DECK2, 0): print("Oh, gosh! The second deck is activated, be careful") else: print("Without activated dragon soul you are weak....") If you find any problem with it, just let me know. I did test it, but not that much.
  7. resources You can follow the tutorial from the original post, I have changed some names, you can compare them.
  8. Good idea, nice code, thanks. I did extend a bit.
  9. Here are the actual protos in XML format for every each language. Mega.nz - Metin2 Download TXT format is on the 2nd page.
  10. Metin2 Download v19.4.5 MPacks v19.4.5 eterPacks Special thanks to @metin2team
  11. I think that file is a mistake only. Have a look at the attaching code:
  12. Karma is the biggest b**ch in life .
  13. New pet, mount and new aura system parts: DL1 - Pet and Mount - DL2 - Aura stuff (All) Metin2 Download
  14. @ReFresh You're welcome, and all good.
  15. Hi everyone. I'd like to share a small guide for the official .mss file. It is a new Token in the sound script files which is controlling the volume, if the Token has been set of course. Couple of sound scripts are using this option: 0.0.) Make a backup of your files. 0.1.) Copying the codes from the board brings some invisible white characters with it, paste first into notepad++ and remove all the "?" characters. 1.0.) Open MilesLib/Type.h. 1.1.) Add the following variable to the two structured types by name: TSoundData and TSoundInstance. float fSoundVolume; 2.0.) Open MilesLib/Type.cpp. 2.1.) In the function by name "NSound::LoadSoundInformationPiece" look for the following code: int iCount; if (!rkTextFileLoader.GetTokenInteger("sounddatacount", &iCount)) { SetResultString((strResult + " File format error, SoundDataCount Unable to find.").c_str()); return false; } 2.2.) Paste the following below of it: float fVolume = 0.0f; if (rkTextFileLoader.GetTokenFloat("soundpositionenable", &fVolume)) { SetResultString((strResult + " SoundPosition has checked.").c_str()); } else { SetResultString((strResult + " SoundPosition has not checked.").c_str()); } 2.3.) Bit scrolled down extend the for cycle like this: for (DWORD i = 0; i < rSoundDataVector.size(); ++i) { //Some random stuff //{} rSoundDataVector[i].fSoundVolume = fVolume; } 2.4.) At the bottom of the file you will find this function: "NSound::DataToInstance", extend the for cycle with this line: rSoundInstance.fSoundVolume = c_rSoundData.fSoundVolume; 3.0.) Open the MilesLib/SoundManager.h. 3.1.) Add a new argument to the definition of the "PlaySound2D" function: void PlaySound2D(const char * c_szFileName, float fVolume = 0.0f); 4.0.) Open the MilesLib/SoundManager.cpp. 4.1.) Replace the function "PlaySound2D" with this: void CSoundManager::PlaySound2D(const char * c_szFileName, float fVolume) { if (0.0f == GetSoundVolume()) return; ISoundInstance * pInstance; if (!GetSoundInstance2D(c_szFileName, &pInstance)) return; float fNewVolume = fVolume; if (fVolume == 0.0f) fNewVolume = GetSoundVolume(); pInstance->SetVolume(fNewVolume); pInstance->Play(1); } 4.2.) Replace this function "CSoundManager::UpdateSoundInstance" with this: <!> Attention: Of this function you will find two, be sure you will replace the correct one, check the arguments! I think the second one is not in used at all <!> void CSoundManager::UpdateSoundInstance(float fx, float fy, float fz, DWORD dwcurFrame, const NSound::TSoundInstanceVector * c_pSoundInstanceVector, BOOL bCheckFrequency) { for (DWORD i = 0; i < c_pSoundInstanceVector->size(); ++i) { const NSound::TSoundInstance & c_rSoundInstance = c_pSoundInstanceVector->at(i); if (c_rSoundInstance.dwFrame == dwcurFrame) { if (0.0f == c_rSoundInstance.fSoundVolume) { //Tracenf("PLAY SOUND %s", c_rSoundInstance.strSoundFileName.c_str()); PlayCharacterSound3D(fx, fy, fz, c_rSoundInstance.strSoundFileName.c_str(), bCheckFrequency); } else { PlaySound2D(c_rSoundInstance.strSoundFileName.c_str(), c_rSoundInstance.fSoundVolume); } } } } Any problem occurs, post a comment below.
  16. Patch v19.3.9 Contains: New costumes with hairstyles New weapon set New armor set New shining for the weapons and armors at level +15 Locales(de,en,hu), with new login and loading backgrounds Map copys via 'ParentMapName' A new pet Redesigned monsters "Awakened" Download locale_ae locale_tr Metin2 Download PS.: I am not able to unpack the proto files, sorry.
  17. foa the bumping is allowed every 48 hrs. soa any syserr?
  18. Some locales have been added to the release topic.
  19. Hello guys! After job, before sleep here is the latest patch, the v19.2. Have fun /emoticons/default_wink.png Ramadan costumes, hairstyles, pets New minigame "samemonster" gui elements 6th7th attribute gui elements Download locale_de locale_en locale_hu Metin2 Download (All)
  20. This one is not happening to me. Put some debug message everywhere where the CalcMeleeDamage has been called and figure it out why it called with bow combined with quiver.
  21. Oh yes, I made an extra modification for that, because of the quivers gave me some meaningless errors in syserr. The remain time is stored in the sockets so basically the game recognised as a stone into it so I've put this: And @anagonda1 which errors you got?
×
×
  • 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.