Jump to content

numNum

Member
  • Posts

    87
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by numNum

  1. 5 hours ago, Ludwig said:

    How can I display the complete list because with you in the video is not the whole list available there are missing, for example, the sub-items in other items and the last main group Eventitems?

    The screen is from Official:

    XTqE0W.png

     

    You just need to increase the value of SCROLL_VALUE in uilootingsystem.py



     

    • Good 1
  2. Thanks mate, I love your small details fixes 🥰

     

    59 minutes ago, Cryptex said:

    why not working... 

    8e4956828af2be492c606c4a55b26ac9.png


    Pay your bills 😛

    • Good 1
  3. Hello there,

     

    I'm looking for a developer who can make Multi TextLine system compatible with Arabic 

     

    the system works fine with English, the problem with Arabic is that it is show the last sentence in the first line, that is due to Arabic read from right to left

     

    example in English to make it easy to understand:

    The text with multi TextLine: Pet Type 1 clumsy. Not particularly strong.\nOver time you can improve its skills.

    In game it will be shown like this:

    Over time you can improve its skills.
    Pet Type 1 clumsy. Not particularly strong.

    but it should be like this

    Pet Type 1 clumsy. Not particularly strong.
    Over time you can improve its skills.

     

    I hope someone can reverse how it works, to make it working fine with Arabic ...

     

    payment method: Paypal

     

    send me your contact in a private message

     

     

     

     

     

  4. 2 hours ago, Kafa said:

     

    You can actually do it yourself too, isnt too hard i guess  :D 

     

    I actually tried to do it for quests, but the problem was the string sent from server side like this 

    ex: [blalbalba][ENTER][DONE]

     

    I'm not that good to do it xD

     

     

     

  5. You have them since years ago and you kept them in you pc?!! 🤬

    do you know how Arabs suffer with adding any windows ?!!!!

     

    spacer.png

     

    thx for releasing it anyways ❤️

     

    • Confused 1
  6. 4 hours ago, Sonitex said:

    In cases such as horse name postfix, you can do it directly in client source. 

     

    In the following function, check if an instance is a horse and append the string to its name ('s Horse).

    
    void CInstanceBase::__Create_SetName(const SCreateData& c_rkCreateData)

     

    In other cases where you must use a locale string as an argument, you either add multilingual data to the server or create a separate packet just for this locale string. 

     

    Edit: There are also other ways like passing "[STRING_221]" as a string argument and on the client side you fetch a locale string with ID 221. This can be also useful for item and monster names :)

     

     

    Thx man ❤️

  7. Hi guys, 

     

    Does anyone have any idea of how to translate lines like this

     

    spacer.png

     

    or

     

    spacer.png

     

     

    using this system...

     

     

    I created a function that send a packet to get the proper string from client, but it didn't work as I expected

     

    any tips could be useful .. 

     

    thx in advance..

  8. uitarget.py

     

     

    search:

     

    			if not player.IsSameEmpire(self.vid):
    				self.__HideButton(localeInfo.TARGET_BUTTON_INVITE_PARTY)
    				self.__HideButton(localeInfo.TARGET_BUTTON_FRIEND)
    				self.__HideButton(localeInfo.TARGET_BUTTON_FIGHT)

     

     

    comment this line:

     

    			##self.__HideButton(localeInfo.TARGET_BUTTON_FIGHT)

     

     

     

     

    • Love 1
  9. 4 hours ago, tierrilopes said:

    I was reading until i saw this mentioned: "java". See ya.

     

    There is a game called Lineage 2 , it is a way bigger than Metin2 and there are many private servers using java emu ,

    but yeah you will be limited ,

     

     

     

     

     

     

    • Love 1
  10. Thank you for the release it works perfectly ❤️  

     

     

    hmm is there any way to make it through MySQL ( something like shop_ex and shop_item_ex ) ??

    i think it would be better than .txt 

     

     

     

     

     

     

     

  11. 2 hours ago, teatone said:

    The project was terminated by me on notice. No further explanation is needed.

    https://metin2.download/picture/t5QrzW5942ghbM20mq5e75085Bpd0H5K/.png

    https://metin2.download/picture/6491SsoS5v37pNeRYAEH9357z1d1qxMQ/.png

     

    Everyone will know RASCOLN.

    I'm sorry for your effort and your waste of time.

    Have a nice day.

     

     

    1- 

    e93fba1e03e5670bdc6cd8a120a6b88c.png

     

    2-

    58ecdcce18f76115d4069ade4a751609.png

     

     

    3-

    d3f3c70a9e05dda013485cd90586f912.png

     

     

     

    I saved Australia :$ ,

    next i will save the world from Global Warming

     

     

     

    • Love 7
  12. in char_skill.cpp


     

    //in:
    int CHARACTER::ComputeSkill(DWORD dwVnum, LPCHARACTER pkVictim, BYTE bSkillLevel)
    
    //bellow:
    
        if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
            pkVictim = this;
    // #ifdef ENABLE_WOLFMAN_CHARACTER
        // else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY))
            // pkVictim = this;
    // #endif
    
    //1-add:
    
        if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY2) && !GetParty() && !pkVictim)
            pkVictim = this;
    
    
    
    
    //in
    bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
      
    //below
    	if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
    		pkVictim = this;
    #ifdef ENABLE_WOLFMAN_CHARACTER
    	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY))
    		pkVictim = this;
    #endif
      
    //2-add
    	if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY2) && !GetParty() && !pkVictim)
    		pkVictim = this;
    
    
    
    //below
    	if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
    		ComputeSkill(dwVnum, this);	
    #ifdef ENABLE_WOLFMAN_CHARACTER
    	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY))
    		ComputeSkillParty(dwVnum, this);
    #endif
      
    //3-add
    	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY2) && !GetParty() && !pkVictim)
    		ComputeSkill(dwVnum, this);
    	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY2) && GetParty())
    	{
    		FPartyPIDCollector f;
    		GetParty()->ForEachOnMapMember(f, GetMapIndex());
    		for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++)
    		{
    			LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it);
    			ComputeSkill(dwVnum, ch);
    		}
    	}

     

    and then you have to add the flag "  SKILL_FLAG_PARTY2 " 

     

    after that go to your skill proto add new flag "party2 ", then set the skills that you want to be used with and without a group

     

     

    the reason why i added new flag is that there are some skills like lycan buff and shaman healing cannot be used to other people without group 

     

     

     

    hopefully it fix your problem 

     

     

     

     

    • Love 2
  13. Hi there 

     

    well i'm trying to clean any event flag with 0 value , 

     

    i did like this 

    void CClientManager::SetEventFlag(TPacketSetEventFlag* p)
    {
    	ForwardPacket(HEADER_DG_SET_EVENT_FLAG, p, sizeof(TPacketSetEventFlag));
    
    	// clear event flag
    	if (p->lValue == 0)
    	{
    		typeof(m_map_lEventFlag.begin()) it = m_map_lEventFlag.find(p->szFlagName);
    		if (it != m_map_lEventFlag.end())
    		{
    			m_map_lEventFlag.erase(it);
    
    			char szQuery[1024];
    			snprintf(szQuery, sizeof(szQuery),
    					"DELETE FROM quest%s WHERE dwPID=0 AND szName='%s'",
    					GetTablePostfix(), p->szFlagName);
    			szQuery[1023] = '\0';
    
    			CDBManager::instance().AsyncQuery(szQuery);
    			sys_log(0, "HEADER_GD_SET_EVENT_FLAG : DELETE CClientmanager::SetEventFlag(%s) ", p->szFlagName);
    			return;
    		}
    	}
    
    	else
    	{
    		bool bChanged = false;
    
    		typeof(m_map_lEventFlag.begin()) it = m_map_lEventFlag.find(p->szFlagName);
    		if (it == m_map_lEventFlag.end())
    		{
    			bChanged = true;
    			m_map_lEventFlag.insert(std::make_pair(std::string(p->szFlagName), p->lValue));
    		}
    		else if (it->second != p->lValue)
    		{
    			bChanged = true;
    			it->second = p->lValue;
    		}
    
    		if (bChanged)
    		{
    			char szQuery[1024];
    
    			snprintf(szQuery, sizeof(szQuery),
    					"REPLACE INTO quest%s (dwPID, szName, szState, lValue) VALUES(0, '%s', '', %ld)",
    					GetTablePostfix(), p->szFlagName, p->lValue);
    
    			szQuery[1023] = '\0';
    
    			//CDBManager::instance().ReturnQuery(szQuery, QID_QUEST_SAVE, 0, NULL);
    			CDBManager::instance().AsyncQuery(szQuery);
    			sys_log(0, "HEADER_GD_SET_EVENT_FLAG : Changed CClientmanager::SetEventFlag(%s %d) ", p->szFlagName, p->lValue);
    			return;
    		}
    		sys_log(0, "HEADER_GD_SET_EVENT_FLAG : No Changed CClientmanager::SetEventFlag(%s %d) ", p->szFlagName, p->lValue);
    	}
    }

     

    it deleted from mysql but it still in game 0 

     

    74BHRAA.png

     

    is there any mistake in my code , or it doesn't work this way ..

    i'm just a beginner xD

     

    thanks in advance 

     

     

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