Jump to content

enisina

Active+ Member
  • Posts

    195
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by enisina

  1. 22 hours ago, VegaS™ said:

    CLICK FOR VIDEO

    • Server\src\game\src\DragonSoul.h
      Reveal hidden contents
    
    
    //1.1) Search for:
    	bool	DragonSoulItemInitialize(LPITEM pItem);
    //1.2) Add after:
    	bool	AreActivedAllSlotsDragonSoulByPage(const LPCHARACTER ch, const BYTE bPageIndex = DRAGON_SOUL_DECK_0) const;
    • Server\src\game\src\DragonSoul.cpp
      Reveal hidden contents
    
    
    //1.1) Search for:
    BYTE GetStrengthIdx(DWORD dwVnum)
    {
    	return (dwVnum / 10) % 10;
    }
    //1.2) Add after:
    bool DSManager::HasActivedAllSlotsByPage(const LPCHARACTER ch, const uint8_t bPageIndex) const
    {
    	if (!ch || bPageIndex >= DRAGON_SOUL_DECK_MAX_NUM)
    		return false;
    
    	const uint16_t iDragonSoulDeckAffectType = AFFECT_DRAGON_SOUL_DECK_0 + bPageIndex; // 540 + [0 or 1]
    	if (!ch->FindAffect(iDragonSoulDeckAffectType))
    		return false;
    
    	// start : 32 + ([0 or 1] * 6) = [32 or 38]
    	// end : start + 6
    	const uint8_t iStartIndex = WEAR_MAX_NUM + (bPageIndex * DS_SLOT_MAX);
    	const uint8_t iEndIndex = iStartIndex + DS_SLOT_MAX;
    	
    	uint8_t bSlotActive = 0;
    	for (uint8_t bCell = iStartIndex; bCell < iEndIndex; ++bCell) // {0: 32-38, 1: 38-44}
    	{
    		const LPITEM pkItem = ch->GetWear(bCell);
    		if (pkItem && pkItem->IsDragonSoul())
    		{
    			if (IsTimeLeftDragonSoul(pkItem) && IsActiveDragonSoul(pkItem))
    				++bSlotActive;
    		}
    	}
    
    	return (bSlotActive == DS_SLOT_MAX);
    }

     

    • How-To-Use-Ex:
      Reveal hidden contents
    
    
    #include "DragonSoul.h"
    
    const DSManager & rkDSManager = DSManager::instance();
    if (rkDSManager.HasActivedAllSlotsByPage(ch, DRAGON_SOUL_DECK_0))
    {
    	ch->ChatPacket(CHAT_TYPE_INFO, "DragonSoul: You've all of the dragon souls active in page 1.");
    	// do something
    }
    
    if (rkDSManager.HasActivedAllSlotsByPage(ch, DRAGON_SOUL_DECK_1))
    {
    	ch->ChatPacket(CHAT_TYPE_INFO, "DragonSoul: You've all of the dragon souls active in page 2.");
    	// do something
    }

     

    You are a genius! can i ask you for help? I don't know the c ++ language. can you write a function for this to work?

    item.GetDSSetWeight(dsType, grade)
    item.GetDSBasicApplyCount(dsType, grade)

    item.GetDSBasicApplyValue(dsType, type)

    item.GetDSAdditionalApplyValue(dsType, type)

     

    	if app.ENABLE_DS_SET:
    		def __AppendDragonSoulAttributeInformation(self, attrSlot, dsType = 0, grade = 0):
    
    			if 0 != attrSlot:
    				if grade != 0:
    					setWeightValue = item.GetDSSetWeight(dsType, grade)
    					basicApplyCount = item.GetDSBasicApplyCount(dsType, grade)
    			
    					for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
    						type = attrSlot[i][0]
    						value = attrSlot[i][1]
    
    						if 0 == value:
    							continue
    
    						affectString = self.__GetAffectString(type, value)
    						if affectString:
    							affectColor = self.__GetAttributeColor(i, value)
    
    							setValue = 0
    							if i < basicApplyCount:
    								setValue = item.GetDSBasicApplyValue(dsType, type)
    							else:
    								setValue = item.GetDSAdditionalApplyValue(dsType, type)
    
    							if setValue != 0:
    								setValue = (setValue * setWeightValue - 1)/100 + 1
    								if affectString.find('%') == -1:
    									self.AppendTwoColorTextLine(affectString, affectColor, " (+%d)" % (setValue))
    								else:
    									self.AppendTwoColorTextLine(affectString, affectColor, " (+%d%%)" % (setValue))
    							else:
    								self.AppendTextLine(affectString, affectColor)
    				else:
    					for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
    						type = attrSlot[i][0]
    						value = attrSlot[i][1]
    
    						if 0 == value:
    							continue
    
    						affectString = self.__GetAffectString(type, value)
    						if affectString:
    							affectColor = self.__GetAttributeColor(i, value)
    							self.AppendTextLine(affectString, affectColor)

     

  2. Hi, i have a problem like this, guild icons don't show

     

    6jKvaab.png

     

    update

    when I try to load a signature it gives a syserr;

    invalid idx 0

    invalid idx 0

    markmanager.cpp

    bool CGuildMarkManager::GetBlockCRCList(DWORD imgIdx, DWORD * crcList)
    {
    	// Ŭ¶óÀ̾ğÆ®¿¡¼­ ¼­¹ö¿¡ ¾ø´Â À̹ÌÁö¸¦ ¿äûÇÒ ¼ö´Â ¾ø´Ù.
    	if (m_mapIdx_Image.end() == m_mapIdx_Image.find(imgIdx))
    	{
    		sys_err("invalid idx %u", imgIdx);
    		return false;
    	}
    
    	CGuildMarkImage * p = __GetImage(imgIdx);
    	
    	if (p)
    		p->GetBlockCRCList(crcList);
    
    	return true;
    }

     

    Uptade;

    devil updated 1.8 problem persists.

    • Metin2 Dev 2
    • Confused 1
    • Good 1
  3. On 10/2/2019 at 1:13 AM, xP3NG3Rx said:

    Holly kebab! This code looks like chernobyl.

     

    On 10/2/2019 at 1:54 AM, filipw1 said:
    
    ch->YukseltmePaneliniAc();

    Dunno what you are talking about

     

    On 10/2/2019 at 2:44 AM, ManiacRobert said:
    
    		self.AuraText1 = KygnObject("AuraText1")
    		self.AuraText2 = KygnObject("AuraText2")
    		self.AuraText3 = KygnObject("AuraText3")
    		self.AuraText4 = KygnObject("AuraText4")
    		self.AuraText5 = KygnObject("AuraText5")
    		self.AuraText6 = KygnObject("AuraText6")

    Ok

     

    On 10/2/2019 at 11:28 AM, Syreldar said:

    I think Jesus appeared before me for a brief moment after reading this.

     

    On 10/2/2019 at 12:12 PM, MrQuin said:

    Imagine buying this for 190 £

     48385395_817257071939151_3619911433363390464_n.jpg.8588d2f0e64dbfc9643a9eb9762198ed.jpg

     

    On 10/3/2019 at 12:14 AM, cBaraN said:

    Ugh... god bless us from these codes

     

    On 10/3/2019 at 7:10 AM, Helia01 said:

    OMFG...
    I was blinded

    you expect a system like a beggar in the forum, and then you raise words to others when you can't do shit yourself. If you know so much when you do share. the half-wit: D

  4. 9 hours ago, Dalí said:

     

    Of those mentioned by you, great is the best option

    ken and great systems are using sql. koray is using cache. Doesn't that make more sense?

     

    9 hours ago, Kori said:

    @Ikarus_ offline Shop 

    sorry but his system has a very ugly interface. :D

    8 hours ago, ManiacRobert said:

    All public offlineshop's have memory leak and at final server will crash with 'Segmentation Fault (core dumped)", don't use any public offlineshop, but, if you have general knowledge about memset and moving all querry to smart pointers, you're good, but remove edit function and don't use ken.

    koray says there is no problem. also why should we not use ken? I don't think of using edit functions at all.

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