Jump to content

Custom Item Grade....


Dubxsion

Recommended Posts

Hello

       MaxCheaters,

Recently i tried to make new addition to my server, but i once again need your help to get there.

I've been searching a lot into client files, about how to change the Grade Icon, or add one to items that doesn't have (ex. Adena) and i found out they are variables into grp files located in system folder.

They vary from 1 till 5 as each number represents different grade.

1. D  2.C    3.B    4.A    5.S

What i need is , HOW to add new grade ? I don't want to edit the ones that already exist. (I don't need it to be updated into database, where u set item grade so it can be enchanted) so it could work only through client as for the grades i`m gonna use ain't gonna be enchantable items. There's a file symbolname-e that contains numbers/ID's from 101 till 105 for every grade as well as pointed path to its texture / ex. symbol.grade_s / , but that doesn't help me to just add new and change the numbers into grp files. Why? Because at symbolname, ID is 101 and into grp is number from 1-5.... and i`m stuck. Please if u have clue about it, let me know.

Edited by Dubxsion
Link to comment
Share on other sites


//Grade Mark
function AddTooltipItemGrade(ItemInfo Item)
{
	local string strTmp;
	
	strTmp = GetItemGradeString(Item.CrystalType);
	if (Len(strTmp)>0)
	{
		StartItem();
		m_Info.eType = DIT_TEXT;
		m_Info.t_bDrawOneLine = true;
		m_Info.t_strText = " ";
		EndItem();
		
		StartItem();
		m_Info.eType = DIT_TEXT;
		m_Info.t_bDrawOneLine = true;
		m_Info.t_strText = "`" $ strTmp $ "`";
		EndItem();
	}
}

interface u -> ToolTip

Link to comment
Share on other sites

On 9/24/2017 at 8:05 AM, big man bill said:

or you can always replace d grade with whatever you are gonna use it for..........

work smarter not harder

sdeee.png.56c23024d30f0bbb2d38ed00956811db.png

As for the rest, still it doesn't explain where the 1-2-3-4-5 grade numbers come from.. ;x

Edited by Dubxsion
Link to comment
Share on other sites

@Dubxsion from what i saw you mentined that the lines on the symbolname-e are  101,102,103,104,105.

Since no grp the numbers are 1,2,3,4,5 my idea is if 101=1, 102=2 and so on, i guess you can test to add a line with number 106 and on grp put 6.

Link to comment
Share on other sites

37 minutes ago, Designatix said:

@Dubxsion from what i saw you mentined that the lines on the symbolname-e are  101,102,103,104,105.

Since no grp the numbers are 1,2,3,4,5 my idea is if 101=1, 102=2 and so on, i guess you can test to add a line with number 106 and on grp put 6.

Yes, i tried that, i add 106 and 6 on grp but instead of a grade icon Arcana Mace fbwUP2w.png  i got inadequate symbols  Arcana Mace /``/

Which makes me think there's another place where grade ID's present.

PS: Also they weren't in logical sequence: 105 didn't count for 5 (S) , but for (D). They are upside-down.

Edited by Dubxsion
Link to comment
Share on other sites

4 minutes ago, Dubxsion said:

PS: Also they weren't in logical sequence: 105 didn't count for 5 (S) , but for (D). They are upside-down.

lel ;p

about the thing you're looking for, i check on my gracia final patch and on the symbolname-e  i got this

100	a,adena\0	a,symbol.adena\0	1
101	a,grades\0	a,symbol.grade_s\0	1
102	a,gradea\0	a,symbol.grade_a\0	1
103	a,gradeb\0	a,symbol.grade_b\0	1
104	a,gradec\0	a,symbol.grade_c\0	1
105	a,graded\0	a,symbol.grade_d\0	1
106	a,grades80\0	a,symbol.grade_s80\0	1
107	a,grades84\0	a,symbol.grade_s84\0	1

on interlude it's like that

100	adena	symbol.adena	1
101	grades	symbol.grade_s	1
102	gradea	symbol.grade_a	1
103	gradeb	symbol.grade_b	1
104	gradec	symbol.grade_c	1
105	graded	symbol.grade_d	1

on interlude grp arcana mace for example is like that (code 5)

0	6608	3	1	15	5	0	LineageWeapons.arcana_mace_m00_wp			LineageWeaponsTex.arcana_mace_t00_wp			icon.weapon_arcana_mace_i01					-1	1300	47	1	0	7	1	1	LineageWeapons.arcana_mace_m00_wp		1	LineageWeaponsTex.arcana_mace_t00_wp			4	ItemSound.sword_mid_7	ItemSound.sword_big_9	ItemSound.axe_3	ItemSound.sword_mid_9	ItemSound.itemdrop_spear	ItemSound.itemequip_spear		20	225	175	2	5	4	4	0	0	0	379	0	1	1	1000	0	-1	0	LineageEffect.c_u007		-8.000000	0.000000	0.000000	1.300000	0.200000						LineageWeapons.rangesample		1.100000	1.100000	1.100000	17.500000	0.000000	0.000000							7	-1	-1	-1	icon.weapon_arcana_mace_i01			

and on gracia let's say a dynasty item (s80) is like that it has the code 6

0	9376	1	1	7	10	0	LineageWeapons.dynasty_rapier_m00_wp			LineageWeaponsTex.dynasty_rapier_t00_wp				0	0	0	0	0	1	0	0	icon.weapon_dynasty_rapier_i00					-1	1280	8	1	14D89CD0	0		1		27	9	1	LineageWeapons.dynasty_rapier_m00_wp		1		1	LineageWeaponsTex.dynasty_rapier_t00_wp				4	ItemSound.sword_small_1	ItemSound.sword_great_4	ItemSound.sword_mid_2	ItemSound.public_sword_shing_4	ItemSound.itemdrop_sword	ItemSound.itemequip_sword		40	302	151	11	6	10	-1	0	0	0	406	0	1	1	1000	0	-1	0	LineageEffect.c_u010		2.20000005	0.00000000	0.00000000	1.20000005	1.29999995						LineageWeapons.rangesample		1.50000000	0.50000000	0.50000000	11.00000000	0.00000000	0.00000000							4	-1	-1	-1				

 

i did a little search from server side, on interlude (acis) there is CrystalType.java file you can edit

Here is the part with item grades

public enum CrystalType
{
	NONE(0, 0, 0, 0),
	D(1, 1458, 11, 90),
	C(2, 1459, 6, 45),
	B(3, 1460, 11, 67),
	A(4, 1461, 19, 144),
	S(5, 1462, 25, 250);
	
	private final int _id;
	private final int _crystalId;
	private final int _crystalEnchantBonusArmor;
	private final int _crystalEnchantBonusWeapon;
	
	private CrystalType(int id, int crystalId, int crystalEnchantBonusArmor, int crystalEnchantBonusWeapon)
	{
		_id = id;
		_crystalId = crystalId;
		_crystalEnchantBonusArmor = crystalEnchantBonusArmor;
		_crystalEnchantBonusWeapon = crystalEnchantBonusWeapon;
	}

if you check it explains every number (if i'm not wrong) i check on l2jserver from h5 (so i can have same examples) and here is the code, maybe try something like the ones on this code and it will work

NONE(0, 0, 0, 0),
	D(1, 1458, 11, 90),
	C(2, 1459, 6, 45),
	B(3, 1460, 11, 67),
	A(4, 1461, 20, 145),
	S(5, 1462, 25, 250),
	S80(6, 1462, 25, 250),
	S84(7, 1462, 25, 250);
	
	private final int _id;
	private final int _crystalId;
	private final int _crystalEnchantBonusArmor;
	private final int _crystalEnchantBonusWeapon;
	
	private CrystalType(int id, int crystalId, int crystalEnchantBonusArmor, int crystalEnchantBonusWeapon)
	{
		_id = id;
		_crystalId = crystalId;
		_crystalEnchantBonusArmor = crystalEnchantBonusArmor;
		_crystalEnchantBonusWeapon = crystalEnchantBonusWeapon;
	}

 

Link to comment
Share on other sites

Still same..

To be honest, thinking logically - why would it will be a server side? Since in grp u set number, that number should lead the client to a line that tells where the texture is. Something has to connect "5" line in grp to "symbol.grade_s" , which is only in symbolname-e.dat

(Server side should go only for database, so u can make the item benefit grade rules, also be enchantable with let's say different scrolls.)

Edited by Dubxsion
Link to comment
Share on other sites

12 hours ago, Dubxsion said:

Still same..

To be honest, thinking logically - why would it will be a server side? Since in grp u set number, that number should lead the client to a line that tells where the texture is. Something has to connect "5" line in grp to "symbol.grade_s" , which is only in symbolname-e.dat

(Server side should go only for database, so u can make the item benefit grade rules, also be enchantable with let's say different scrolls.)

True, i don't know because i didn't check it before, i've seen a topic somewhere before about adding s80 grade to interlude, i guess it will be the same way of adding your grade (icon), i'll check it and if i will find it i will update this reply.

Edit: It had only server side code, not client side but with a little search here and on other forums i've seen that this probably will be on nwindow.dll , if you're able to decompile this file and edit it you'll have some luck doing it.

Edited by Designatix
Update
Link to comment
Share on other sites

On 6/25/2016 at 11:03 PM, SweeTs said:

Most likely they replaces D/S icon into S80? As far as I remember, you can't add new grade, you have to replace existing one.

If what he/she says is true, i might not be so fortune and i`ll actually have no chance on making this happen. My last hope is withNeophron.

@L2Neophron , can u please tell us if adding new grade into interlude is possible or not. Thank you in advance.

Edited by Dubxsion
Link to comment
Share on other sites

I have just opened nwindow.dll but all i found there is l2 3d cursor images. And all of the .dll files located in system folder. Non of them seem to contain any "item grade" information. What do  i do next, i end up ideas...

Also

function AddTooltipItemGrade (ItemInfo item)
{
  local string strTmp;

  1
  GetItemGradeString(item.CrystalType);
  if ( UnknownFunction151(UnknownFunction125(strTmp),0) )
  {
    StartItem();
    m_Info.eType = 1;
    m_Info.t_bDrawOneLine = True;
    m_Info.t_strText = " ";
    EndItem();
    StartItem();
    m_Info.eType = 1;
    m_Info.t_bDrawOneLine = True;
    m_Info.t_strText = UnknownFunction112(UnknownFunction112("`",strTmp),"`");
    EndItem();
    return;

    // There are 1 jump destination(s) inside the last statement!
  }
  infNodeItem
  infNodeItem
}

m_Info.t_strText = UnknownFunction112(UnknownFunction112("`",strTmp),"`");

^ this code, located in Interface.u , kinda tells that grade icon will appear, but i dont find HOW it should appear. The line i just double paste above, in my opinion should type `/` if Unknownfunction, or in case where i put 6 in .grp. cuz based on ("`",strTmp),"`");  i understand that it should type " ` " then strTmp whatever it is supposed to mean, and another "`". And yes, in game i do get `/` symbol on grade icon place, when i use 6 in .grp

Edited by Dubxsion
Link to comment
Share on other sites

  • 2 weeks later...

Its possible to add the grade ;). Its added to his interface code which he sells (Neophron), as i needed the integration. Basically you need to edit the tooltip class in interface.u using a switch statement and add an icon from a new utx. Later perhaps i will share it to all. Atm im not near a pc, i would show it easily. And yeah ncsoft didint hardcode the tootlip(grp files) thats awesome, so when you set the tooltip to 6 you need to parse it ;). The modification is in interface.u

Edited by domis045
Link to comment
Share on other sites

  • 5 months later...

Im looking for change just the size of the "symbol.grade_X" from current to width 16 and height 16, do somebody know where is the size integer ?

 

//Edit

i found this part but function "GetItemGradeString(Item.CrystalType)" is not inside on any class (or .uc) of Interface.u

//Grade Mark
function AddTooltipItemGrade(ItemInfo Item)
{
    local string strTmp;
    
    strTmp = GetItemGradeString(Item.CrystalType);
    if (Len(strTmp)>0)
    {
        StartItem();
        m_Info.eType = DIT_TEXT;
        m_Info.t_bDrawOneLine = true;
        m_Info.t_strText = " ";
        EndItem();
        
        StartItem();
        m_Info.eType = DIT_TEXT;
        m_Info.t_bDrawOneLine = true;
        m_Info.t_strText = "`" $ strTmp $ "`";
        EndItem();
    }
}

 

 

 

Edited by Tony360
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...