Jump to content

spectrum

Member
  • Posts

    46
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by spectrum

  1. On 6/27/2023 at 9:23 PM, PandiCore said:

    Hi one question how to add more bonus?

    on this 

    { ALIGNMENT_LEVEL2 /* 8000 */, POINT_MAX_HP, 1500 }, i nedd 1,5k and 15 monster cand u help me?

    example

    int iAlignmentBonus[MAX_ALIGNMENT_LEVEL][31] = {
    		{ ALIGNMENT_LEVEL1 /* 12000 */, POINT_MAX_HP, 2000 },
    		{ ALIGNMENT_LEVEL2 /* 8000 */, POINT_MAX_HP, 1500 },
    		{ ALIGNMENT_LEVEL3 /* 4000 */, POINT_MAX_HP, 1000 },
    		{ ALIGNMENT_LEVEL4 /* 1000 */, POINT_POISON_PCT, 10 },
    		{ ALIGNMENT_LEVEL5 /* 1000 */, POINT_CRITICAL_PCT, 10 },
    		{ ALIGNMENT_LEVEL6 /* 1000 */, POINT_PENETRATE_PCT, 10 },
    		{ ALIGNMENT_LEVEL7 /* 1000 */, POINT_ATTBONUS_HUMAN, 10 },
    		{ ALIGNMENT_LEVEL8 /* 1000 */, POINT_ATTBONUS_ANIMAL, 10 },
    		{ ALIGNMENT_LEVEL9 /* 1000 */, POINT_ATTBONUS_ORC, 10 },
    		{ ALIGNMENT_LEVEL10 /* 1000 */, POINT_ATTBONUS_MILGYO, 10 },
    		{ ALIGNMENT_LEVEL11 /* 1000 */, POINT_ATTBONUS_UNDEAD, 10 },
    		{ ALIGNMENT_LEVEL12 /* 1000 */, POINT_ATTBONUS_DEVIL, 10 },
    		{ ALIGNMENT_LEVEL13 /* 1000 */, POINT_ATTBONUS_INSECT, 10 },
    		{ ALIGNMENT_LEVEL14 /* 1000 */, POINT_ATTBONUS_FIRE, 10 },
    		{ ALIGNMENT_LEVEL15 /* 1000 */, POINT_ATTBONUS_ICE, 10 },
    		{ ALIGNMENT_LEVEL16 /* 1000 */, POINT_ATTBONUS_MONSTER, 10 },
    		{ ALIGNMENT_LEVEL17 /* 1000 */, POINT_ATTBONUS_WARRIOR, 10 },
    		{ ALIGNMENT_LEVEL18 /* 1000 */, POINT_ATTBONUS_ASSASSIN, 10 },
    		{ ALIGNMENT_LEVEL19 /* 1000 */, POINT_ATTBONUS_SURA, 10 },
    		{ ALIGNMENT_LEVEL20 /* 1000 */, POINT_ATTBONUS_SHAMAN, 10 },
    		{ ALIGNMENT_LEVEL21 /* 1000 */, POINT_RESIST_WARRIOR, 10 },
    		{ ALIGNMENT_LEVEL22 /* 1000 */, POINT_RESIST_ASSASSIN, 10 },
    		{ ALIGNMENT_LEVEL23 /* 1000 */, POINT_RESIST_SURA, 10 },
    		{ ALIGNMENT_LEVEL24 /* 1000 */, POINT_RESIST_SHAMAN, 10 },
    		{ ALIGNMENT_LEVEL25 /* 1000 */, POINT_RESIST_SWORD, 10 },
    		{ ALIGNMENT_LEVEL26 /* 1000 */, POINT_RESIST_TWOHAND, 10 },
    		{ ALIGNMENT_LEVEL27 /* 1000 */, POINT_RESIST_DAGGER, 10 },
    		{ ALIGNMENT_LEVEL28 /* 1000 */, POINT_RESIST_BELL, 10 },
    		{ ALIGNMENT_LEVEL29 /* 1000 */, POINT_RESIST_BOW, 10 },
    		{ ALIGNMENT_LEVEL30 /* 1000 */, POINT_ATTBONUS_STONE, 10 },
    		{ ALIGNMENT_LEVEL31 /* 1000 */, POINT_ATTBONUS_BOSS, 10 },
    		{ ALIGNMENT_LEVEL32 /* 4000 */, POINT_MAX_HP, 2500 },
    	};

     

    On 8/28/2020 at 12:39 AM, Owsap said:

    GitHub Repository: 

    Hidden Content

    • Give reaction to this post to see the hidden content.

     

    Preview: https://metin2.download/picture/3m27cf351hv67tz592fY1akdHlKKN5Zs/.gif

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

    up here where it shows you +10, I would like it to show me what bonus there is, can you help me somehow? ( Penetration/Critic +10)

  2. On 7/15/2023 at 5:32 AM, Ionut BuBu said:

    Did you try to remove MAP_ALLOW from core?

    If not, then open the core config file and delete all index's and see what happens if core starts or not, if it starts and doesnt crash then boom you have a problem with a map!

    really???? :))) map_allow not every server has the problem at home, it may be because of the changes that he probably did not make correctly or on the source side he made a mistake in some declarations or arguments

  3. On 8/11/2020 at 9:06 PM, xP3NG3Rx said:

    Hello,

     

    Small performance snippet from the official binary after some reverse engineering.

    I did not make huge tests, but it seems just fine for me, if you have any problem, let me know in comment below.

     

    1.) Get rid of every __LoadMap function + calls from the introLoading.py file. Also you can completly remove the function net.Warp as well.

    6vVTYnH.png

    2.) Modify the following functions in the CPythonNetworkStreamPhaseLoading.cpp this way:

    bool CPythonNetworkStream::RecvMainCharacter()
    {
    //  [..] Add to the bottom the Warp function 
    	Warp(MainChrPacket.lX, MainChrPacket.lY);
    	SendClientVersionPacket();
    	return true;
    }
    bool CPythonNetworkStream::RecvMainCharacter2_EMPIRE()
    {
    //  [..] Add to the bottom the Warp function 
    	Warp(mainChrPacket.lX, mainChrPacket.lY);
    	SendClientVersionPacket();
    	return true;
    }
    bool CPythonNetworkStream::RecvMainCharacter3_BGM()
    {
    //  [..] Add to the bottom the Warp function 
    	Warp(mainChrPacket.lX, mainChrPacket.lY);
    	SendClientVersionPacket();
    	return true;
    }
    bool CPythonNetworkStream::RecvMainCharacter4_BGM_VOL()
    {
    //  [..] Add to the bottom the Warp function 
    	Warp(mainChrPacket.lX, mainChrPacket.lY);
    	SendClientVersionPacket();
    	return true;
    }

     

    Good, the tutorial is helpful, but there IS a big problem, somewhere around 40% of the folders don't load correctly and will give you the error.

    Something needs to be corrected

    CMapManager::GetHeight(392925.875000, 676427.937500) - Accessing in a not initialized map

  4. from 

    'register' is no longer a supported storage class

    in to EterBase/Random.cpp search

    unsigned long random()
    {       
    	register long x, hi, lo, t;
    	
    	/*
    	* Compute x[n + 1] = (7^5 * x[n]) mod (2^31 - 1).
    	* From "Random number generators: good ones are hard to find",
    	* Park and Miller, Communications of the ACM, vol. 31, no. 10,
    	* October 1988, p. 1195.
    	*/ 
    	x = randseed;
    	hi = x / 127773;
    	lo = x % 127773;
    	t = 16807 * lo - 2836 * hi;
    	if (t <= 0)
    		t += 0x7fffffff;
    	randseed = t;
    	return (t);
    }

    change like this or replace  

    unsigned long random()
    {
    	/*
    	* Compute x[n + 1] = (7^5 * x[n]) mod (2^31 - 1).
    	* From "Random number generators: good ones are hard to find",
    	* Park and Miller, Communications of the ACM, vol. 31, no. 10,
    	* October 1988, p. 1195.
    	*/
    	long x = randseed;
    	long hi = x / 127773;
    	long lo = x % 127773;
    	long t = 16807 * lo - 2836 * hi;
    	if (t <= 0)
    		t += 0x7fffffff;
    	randseed = t;
    	return (t);
    }

    search in to tea.cpp

    void tea_code(const unsigned long sz, const unsigned long sy, const unsigned long *key, unsigned long *dest)
    {
    	register unsigned long y = sy, z = sz, sum = 0;
    	unsigned long		n = TEA_ROUND;
    	
    	while (n-- > 0)
    	{
    		y	+= ((z << 4 ^ z >> 5) + z) ^ (sum + key[sum & 3]);
    		sum	+= DELTA;
    		z	+= ((y << 4 ^ y >> 5) + y) ^ (sum + key[sum >> 11 & 3]);
    	}
    	
    	*(dest++)	= y;
    	*dest	= z;
    }
    
    void tea_decode(const unsigned long sz, const unsigned long sy, const unsigned long *key, unsigned long *dest)
    {
    #pragma warning(disable:4307)
    	register unsigned long y = sy, z = sz, sum = DELTA * TEA_ROUND;
    #pragma warning(default:4307)
    
    	unsigned long		n = TEA_ROUND;
    	
    	while (n-- > 0)
    	{
    		z -= ((y << 4 ^ y >> 5) + y) ^ (sum + key[sum >> 11 & 3]);
    		sum -= DELTA;
    		y -= ((z << 4 ^ z >> 5) + z) ^ (sum + key[sum & 3]);
    	}
    	
    	*(dest++)	= y;
    	*dest	= z;
    }

    replace with this :

    void tea_code(const uint32_t sz, const uint32_t sy, const uint32_t * key, uint32_t * dest)
    {
    	uint32_t y = sy, z = sz, sum = 0;
    	uint32_t n = TEA_ROUND;
    
    	while (n-- > 0)
    	{
    		y += ((z << 4 ^ z >> 5) + z) ^ (sum + key[sum & 3]);
    		sum += DELTA;
    		z += ((y << 4 ^ y >> 5) + y) ^ (sum + key[sum >> 11 & 3]);
    	}
    
    	*(dest++) = y;
    	*dest = z;
    }
    
    void tea_decode(const uint32_t sz, const uint32_t sy, const uint32_t * key, uint32_t * dest)
    {
    #pragma warning(disable : 4307)
    	uint32_t y = sy, z = sz, sum = DELTA * TEA_ROUND;
    #pragma warning(default : 4307)
    
    	uint32_t n = TEA_ROUND;
    
    	while (n-- > 0)
    	{
    		z -= ((y << 4 ^ y >> 5) + y) ^ (sum + key[sum >> 11 & 3]);
    		sum -= DELTA;
    		y -= ((z << 4 ^ z >> 5) + z) ^ (sum + key[sum & 3]);
    	}
    
    	*(dest++) = y;
    	*dest = z;
    }

    search in to Utils.cpp:

    int MINMAX(int min, int value, int max)
    {
    	if (max < min)
    		return MAX(min, value);
    
        register int tv;
        tv = (min > value ? min : value);
        return (max < tv) ? max : tv;
    }

    replace with this :

    int MINMAX(int min, int value, int max)
    {
    	if (max < min)
    		return MAX(min, value);
    
    	int tv = (min > value ? min : value);
    	return (max < tv) ? max : tv;
    }

    search

    float fMINMAX(float min, float value, float max)
    {               
        register float tv;
    	
        tv = (min > value ? min : value);
        return (max < tv) ? max : tv;
    }

    replace with this :

    float fMINMAX(float min, float value, float max)
    {
    	float tv = (min > value ? min : value);
    	return (max < tv) ? max : tv;
    }

     

    • Love 1
  5. 4 hours ago, covfefe said:

    This isn't some trivial change for you to come and expect it to be handed to you on a silver platter. Have you even tried to do it yourself first? Even if you don't know shit in cpp, use google, that's how most of us learn, I think. Or pay someone to do it.

    if you tolk this shit everywhere shut up and sure you can use the button NEXT. 

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