Jump to content

Xesil

Members
  • Content Count

    6
  • Joined

  • Last visited

Posts posted by Xesil


  1. On 3.8.2017 at 8:25 PM, Xesil said:
    
    /*==========================================
     * Converts the jobid from the format in itemdb
     * to the format used by the map server. [Skotlex]
     *------------------------------------------*/
    void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask)
    {
    	int i;
    	bclass[0]= bclass[1]= bclass[2]= 0;
    	//Base classes
    	if (jobmask & 1<<JOB_NOVICE) {
    		//Both Novice/Super-Novice are counted with the same ID
    		bclass[0] |= 1<<MAPID_NOVICE;
    		bclass[1] |= 1<<MAPID_NOVICE;
    	}
    	for (i = JOB_NOVICE+1; i <= JOB_THIEF; i++)
    	{
    		if (jobmask & 1<<i)
    			bclass[0] |= 1<<(MAPID_NOVICE+i);
    	}
    	//2-1 classes
    	if (jobmask & 1<<JOB_KNIGHT)
    		bclass[1] |= 1<<MAPID_SWORDMAN;
    	if (jobmask & 1<<JOB_PRIEST)
    		bclass[1] |= 1<<MAPID_ACOLYTE;
    	if (jobmask & 1<<JOB_WIZARD)
    		bclass[1] |= 1<<MAPID_MAGE;
    	if (jobmask & 1<<JOB_BLACKSMITH)
    		bclass[1] |= 1<<MAPID_MERCHANT;
    	if (jobmask & 1<<JOB_HUNTER)
    		bclass[1] |= 1<<MAPID_ARCHER;
    	if (jobmask & 1<<JOB_ASSASSIN)
    		bclass[1] |= 1<<MAPID_THIEF;
    	//2-2 classes
    	if (jobmask & 1<<JOB_CRUSADER)
    		bclass[2] |= 1<<MAPID_SWORDMAN;
    	if (jobmask & 1<<JOB_MONK)
    		bclass[2] |= 1<<MAPID_ACOLYTE;
    	if (jobmask & 1<<JOB_SAGE)
    		bclass[2] |= 1<<MAPID_MAGE;
    	if (jobmask & 1<<JOB_ALCHEMIST)
    		bclass[2] |= 1<<MAPID_MERCHANT;
    	if (jobmask & 1<<JOB_BARD)
    		bclass[2] |= 1<<MAPID_ARCHER;
    #if 0 // Bard/Dancer share the same slot now.
    	if (jobmask & 1<<JOB_DANCER)
    		bclass[2] |= 1<<MAPID_ARCHER;
    #endif // 0
    	if (jobmask & 1<<JOB_ROGUE)
    		bclass[2] |= 1<<MAPID_THIEF;
    	//Special classes that don't fit above.
    	if (jobmask & 1<<21) //Taekwon boy
    		bclass[0] |= 1<<MAPID_TAEKWON;
    	if (jobmask & 1<<22) //Star Gladiator
    		bclass[1] |= 1<<MAPID_TAEKWON;
    	if (jobmask & 1<<23) //Soul Linker
    		bclass[2] |= 1<<MAPID_TAEKWON;
    	if (jobmask & 1<<JOB_GUNSLINGER)
    	{//Rebellion job can equip Gunslinger equips. [Rytech]
    		bclass[0] |= 1<<MAPID_GUNSLINGER;
    		bclass[1] |= 1<<MAPID_GUNSLINGER;
    	}
    	if (jobmask & 1<<JOB_NINJA)
    		{bclass[0] |= 1<<MAPID_NINJA;
    		bclass[1] |= 1<<MAPID_NINJA;}//Kagerou/Oboro jobs can equip Ninja equips. [Rytech]
    	if (jobmask & 1<<26) //Bongun/Munak
    		bclass[0] |= 1<<MAPID_GANGSI;
    	if (jobmask & 1<<27) //Death Knight
    		bclass[1] |= 1<<MAPID_GANGSI;
    	if (jobmask & 1<<28) //Dark Collector
    		bclass[2] |= 1<<MAPID_GANGSI;
    	if (jobmask & 1<<29) //Kagerou / Oboro
    		bclass[1] |= 1<<MAPID_NINJA;
    	if (jobmask & 1<<30) //Rebellion
    		bclass[1] |= 1<<MAPID_GUNSLINGER;
    	if (jobmask & 1<<35) //Shinigami
    		bclass[0] |= 1<<MAPID_SHINIGAMI;
    	if (jobmask & 1<<36) //Dreadlord
    		bclass[0] |= 1<<MAPID_DREADLORD;
    }

    This is what I added at itemdb.c

     


  2. /*==========================================
     * Converts the jobid from the format in itemdb
     * to the format used by the map server. [Skotlex]
     *------------------------------------------*/
    void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask)
    {
    	int i;
    	bclass[0]= bclass[1]= bclass[2]= 0;
    	//Base classes
    	if (jobmask & 1<<JOB_NOVICE) {
    		//Both Novice/Super-Novice are counted with the same ID
    		bclass[0] |= 1<<MAPID_NOVICE;
    		bclass[1] |= 1<<MAPID_NOVICE;
    	}
    	for (i = JOB_NOVICE+1; i <= JOB_THIEF; i++)
    	{
    		if (jobmask & 1<<i)
    			bclass[0] |= 1<<(MAPID_NOVICE+i);
    	}
    	//2-1 classes
    	if (jobmask & 1<<JOB_KNIGHT)
    		bclass[1] |= 1<<MAPID_SWORDMAN;
    	if (jobmask & 1<<JOB_PRIEST)
    		bclass[1] |= 1<<MAPID_ACOLYTE;
    	if (jobmask & 1<<JOB_WIZARD)
    		bclass[1] |= 1<<MAPID_MAGE;
    	if (jobmask & 1<<JOB_BLACKSMITH)
    		bclass[1] |= 1<<MAPID_MERCHANT;
    	if (jobmask & 1<<JOB_HUNTER)
    		bclass[1] |= 1<<MAPID_ARCHER;
    	if (jobmask & 1<<JOB_ASSASSIN)
    		bclass[1] |= 1<<MAPID_THIEF;
    	//2-2 classes
    	if (jobmask & 1<<JOB_CRUSADER)
    		bclass[2] |= 1<<MAPID_SWORDMAN;
    	if (jobmask & 1<<JOB_MONK)
    		bclass[2] |= 1<<MAPID_ACOLYTE;
    	if (jobmask & 1<<JOB_SAGE)
    		bclass[2] |= 1<<MAPID_MAGE;
    	if (jobmask & 1<<JOB_ALCHEMIST)
    		bclass[2] |= 1<<MAPID_MERCHANT;
    	if (jobmask & 1<<JOB_BARD)
    		bclass[2] |= 1<<MAPID_ARCHER;
    #if 0 // Bard/Dancer share the same slot now.
    	if (jobmask & 1<<JOB_DANCER)
    		bclass[2] |= 1<<MAPID_ARCHER;
    #endif // 0
    	if (jobmask & 1<<JOB_ROGUE)
    		bclass[2] |= 1<<MAPID_THIEF;
    	//Special classes that don't fit above.
    	if (jobmask & 1<<21) //Taekwon boy
    		bclass[0] |= 1<<MAPID_TAEKWON;
    	if (jobmask & 1<<22) //Star Gladiator
    		bclass[1] |= 1<<MAPID_TAEKWON;
    	if (jobmask & 1<<23) //Soul Linker
    		bclass[2] |= 1<<MAPID_TAEKWON;
    	if (jobmask & 1<<JOB_GUNSLINGER)
    	{//Rebellion job can equip Gunslinger equips. [Rytech]
    		bclass[0] |= 1<<MAPID_GUNSLINGER;
    		bclass[1] |= 1<<MAPID_GUNSLINGER;
    	}
    	if (jobmask & 1<<JOB_NINJA)
    		{bclass[0] |= 1<<MAPID_NINJA;
    		bclass[1] |= 1<<MAPID_NINJA;}//Kagerou/Oboro jobs can equip Ninja equips. [Rytech]
    	if (jobmask & 1<<26) //Bongun/Munak
    		bclass[0] |= 1<<MAPID_GANGSI;
    	if (jobmask & 1<<27) //Death Knight
    		bclass[1] |= 1<<MAPID_GANGSI;
    	if (jobmask & 1<<28) //Dark Collector
    		bclass[2] |= 1<<MAPID_GANGSI;
    	if (jobmask & 1<<29) //Kagerou / Oboro
    		bclass[1] |= 1<<MAPID_NINJA;
    	if (jobmask & 1<<30) //Rebellion
    		bclass[1] |= 1<<MAPID_GUNSLINGER;
    	if (jobmask & 1<<35) //Shinigami
    		bclass[0] |= 1<<MAPID_SHINIGAMI;
    	if (jobmask & 1<<36) //Dreadlord
    		bclass[0] |= 1<<MAPID_DREADLORD;
    }

    This is what I added at itemdb.c

     

    And my


  3. Hello Hercules Forum,

     

    I added some Custom Jobs to my Hercules Server. I am not using the newest Hercules Version,because I have too much source modification. I use 2015/03/?? Hercules Source and 2014/02/05 Client. Do I have to edit any other Source tables,so my Classes are going to be able to wear my Items?

     

    Thank you!

    ~Xesil

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.