Jump to content

Filachilla

Member
  • Posts

    115
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Filachilla

  1.  

    Hi,

    I don't know if you've noticed, but every time you open a shop or want to add a stone to an item, the window inexplicably opens somewhere on the right at the top near the inventory.
    It bothered me for quite a while, so I looked into the code, and the fix is very easy.
    I'm sharing it with you, and I would appreciate it if you let me know if any other window does the same, as I've only noticed these two so far.

    Open uiattachmetin.py and search in def Open(self, metinItemPos, targetItemPos):
    
    self.UpdateDialog()			
    
    Add under:
    
    self.SetCenterPosition()
    
    ############################
    
    Open uishop.py and search in def Open(self, vid):
    
    self.Refresh()
    
    Add under:
    
    self.SetCenterPosition()
    
    Thats all :D
    
  2. 15 hours ago, devdeza said:

    PythonMiniMap, change like this

     

    		else if (pkInstEach->IsEnemy())
    		{
    			if (pkInstEach->IsBoss())
    			{
    				aMarkPosition.m_fX = (m_fWidth - (float)m_WhiteMark.GetWidth()) / 2.0f + fDistanceFromCenterX + m_fScreenX;
    				aMarkPosition.m_fY = (m_fHeight - (float)m_WhiteMark.GetHeight()) / 2.0f + fDistanceFromCenterY + m_fScreenY;
    
    				m_BossPositionVector.push_back(aMarkPosition);
    			}
    			else
    			{
    				aMarkPosition.m_fX = (m_fWidth - (float)m_WhiteMark.GetWidth()) / 2.0f + fDistanceFromCenterX + m_fScreenX;
    				aMarkPosition.m_fY = (m_fHeight - (float)m_WhiteMark.GetHeight()) / 2.0f + fDistanceFromCenterY + m_fScreenY;
    
    				m_MonsterPositionVector.push_back(aMarkPosition);
    			}
    		}

     

    or move boss before IsEnemy it works too

     

  3. 19 minutes ago, Ulthar said:

    Set it to m1, for me its owrking on M1, but not on P.

    Because when you check char_skill.cpp, M1 is the maximum.. It's akin to fishing.. Notice that it's not even in the skill_proto (thus has no level), and this isn't a tutorial copy and paste. This is a clean foundation where you need to go through all the skills and their index and adapt it to your game."

  4. 2 hours ago, TMP4 said:

    It's not a bug. It comes from the PM Flood kick hack fix. I believe It does not affect normal players, since a normal player does not send a lot of messages in such speed. "two or more messages at high speed" It's actually 4 if you check the src or your gif..

    Do not uninstall completely this fix. If you edit "ch->GetPMCounter() > 3" in input_main.cpp to something bigger then you can flood other players more before the disconnect happens, if your players are typing champions 🙂

    Thats a true, it is impossible be kicked from normal conversation.. As you said normal people cannot be kicked that easy (tested with rlly fast chat)

  5. On 12/15/2023 at 8:01 AM, ugm2 said:

    Hello!

    thanks that helped 🙂 But now I have the following problem :

    The equipment I put on like sword/helmet/shoes etc is not put on in the designated place, but on the third inventory page ?

    Here is a video about it :



    Do you perhaps know why this is and what I have messed up again? Many thanks in advance 🙂 

    You miss grid part in source, check again tutorial

  6. 2 hours ago, Volkan said:

    in src/game - desc_client.cpp find

    memcpy(p.szIP, g_szPublicIP, 16); and change to memcpy(p.szIP, "hamahi IP", 16);

    strlcpy(p.szPublicIP, g_szPublicIP, sizeof(p.szPublicIP)); change to strlcpy(p.szPublicIP, "hamahi IP", sizeof(p.szPublicIP));

    in serverinfo.py you need normal hamachi ip, without .100

    and check in ch1/config e.t.c. whether you have all ports open

    Why?

    Already maded by @ TMP4 via config:

    # BIND_IP: Your Private/Internal IPv4 address
    # PROXY_IP: Your Public/External IPv4 address

  7. On 11/29/2023 at 10:30 PM, Gurgarath said:

    Do not do that on a live-server!

    It is an excellent tutorial, it works just fine and it is really cool. However, and like the following tutorial : Do not do it on a live server.

    For those wondering why the skills are completely broken, or why you have "skill.GetSkillType - Failed to find skill by 119" or why you have your character entirely broken, it is normal.

    I won't get into details, but all skill data, like quickslots, are stored in what we call a BLOB. When it comes to skill, all skill data, including passives and all classes from Warrior to Wolfman (if you have it), along with the skill level, are stored in this blob as hexadecimal. Depending on your datatype, it should be 1.49KB. However, if you add from tables.h a new byte, it will end up weighting 1.74KB. A direct result will be that the second line, which should start at offset 0x060 and end at offset 0x07F will have an additional byte, which will shift every skill result and end up overflowing into the next skill then, for example other columns. Well, in that case it is the other way around (it will read more than it should and end up short for the last skills) but your skills will be completely messed up anyway. 

    You have tree solutions if you want to add this on a live-server :

    • Rewrite skills to be stored in their own table instead of a BLOB in the player table, allowing you to properly extend data without having to mess with the Hexadecimal blob and export necessary data to the table.
    • Properly understand the blob, then tinker with the data for every players to compensate this new BYTE.
    • Replace every blob with a proper, reset one, but the impact will be a complete reset of every skill, for everyone.

    Bonus solution:

    • Write your own version of the tutorial not impacting packets. For example through cmdchat, but it will be less clean, but that is what we used to do up to 2014 (legacy solution).

    Excellent tutorial however, I love this kind of quality of life, and it applies for both of what you shared! 😄

    So its pointless and useless for 70% of comunity 😄 btw. cmdchat is not the best way, but as you said we never had better solution in past tense 😄 personally from what you wrote, I recommend the first option 🙂

    • Metin2 Dev 1
  8. This is not possible by official way.. Mysql 5.6 is deleted from repo, because is not supported anyway.  Mysql 5.7 is now too outdated (October 21, 2023 end life)

    You have 2 options:

    1.  Use mysql8 and wrap some database tables (here is no sense to use old mysql - its something like using rain with 404 core..)
    2. Use mariadb - also I too using mariadb (10.6) and works like a charm.. I never had any problem with that option

    When you have problem with some mysql versions on your server, Im 100% sure this is not problem from mysql..

    if you are interesting I can give you easy tutorial for install and settings mariadb (I can with source changes - lib - c connector -> this is not necessary but recommend it.)

  9. I dont know if I do something wrong, but it works only for M1-M9 (M10 and more doesnt show anything)

    Edit: So its only for books? If yes, it would by nice when M10 to G1 is too showed and not only M1-M9

    Edit2: Ahhh

    					if app.ENABLE_SKILL_DESCRIPTION_RENEWAL:
    						if skillGrade == 1: #Show the remaining books on 'M' level only
    							if self.HasSkillLevelDescription(skillIndex, skillLevel):
    								self.AppendTextLine(localeInfo.TOOLTIP_SKILL_BOOKS % (player.GetRemainingBooks(slotIndex), need_bookcount), 0xff375cd4)

    but problem is when you got M9 you cannot see books from M9 to M10

  10. 11 hours ago, SCOOB said:

    yeah but now the mall password is not saved anymore.

    I think it's better with my fix from above.

    Both corrections have their advantages and disadvantages.. For you, it is an opportunity to test the password combination faster..

    Edit: @ xP3NG3Rx tested and now it works all correctly 😄 finally fixed all issues 😄 

  11. 58 minutes ago, SCOOB said:

    @Filachilla, there's an easy fix for this.

    You have to move SetSafeboxLoadTime(); from ReqSafeboxLoad func. to the Safebox Load func. so:

     

    In char.cpp:  void CHARACTER::ReqSafeboxLoad(const char* pszPassword)

    comment or remove: 

    SetSafeboxLoadTime();

    and add it in void CHARACTER::LoadSafebox, under:

        bool bLoaded = false;
    
        //PREVENT_TRADE_WINDOW
        SetOpenSafebox(true);

     

    You are definetly right 😄 this makes sense 😄 I will test it in moment.. 😄  Ive been trying everything for about 20 minutes now and I havent found anything else besides this thing.. 😄

    Edit: Its work 😄

  12. Now I found out that it doesnt always do it.. Try to put wrong password and fast clicking to reopen safebox and if you got clean input, try to again and again put wrong password.. After some attemps I got wrong password board instadead clean input.. 😄

    edit: Finally problem is only when you try to reopen safebox with wrong password before 10s limit, just by fast clickings.. 😄 When you wait 10s its without problem as your gif.. 😄

    • Good 1
×
×
  • 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.