Jump to content
Cydh

Release: Script command: itemlink to generate <ITEML>

Recommended Posts

Script command: itemlink to generate <ITEML>


To simple generate <ITEML> string by using itemlink. <ITEML> is string that auto-parsed by client that support item link feature, when user SHIFT+Click the item or equipment.

Quote

*itemlink(<item_id>{,<refine>,<card0>,<card1>,<card2>,<card3>});
*itemlink2(<item_id>,<refine>,<card0>,<card1>,<card2>,<card3>,<RandomIDArray>,<RandomValueArray>,<RandomParamArray>);

Generate <ITEML> string for an item and can be used for npctalk, message,
dispbottom, and broadcast commands. The result is clickable-item name just
like from SHIFT+Click from player's inventory/cart/equipment window. In mes
command is still usable but the item name is not clickable.

Examples:

    npctalk "Knife [3] : "+itemlink(1202)+"";
    npctalk "+16 Knife [3] : "+itemlink(1202,16)+"";
    npctalk "+13 BXB Bapho+VR+EA2+EA1 : "+itemlink(18110,13,4147,4407,4833,4832)+"";
    setarray [email protected]_ids[0],RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_ATTMPOWER,0,0;
    setarray [email protected]_values[0],3,5,20,0,0;
    setarray [email protected]_params[0],0,0,0,0,0;
    npctalk "+13 BXB Bapho+VR+EA2+EA1 + 3 Options : "+itemlink2(18110,13,4147,4407,4833,4832,[email protected]_ids,[email protected]_values,[email protected]_params)+"";


For RandomIDArray, RandomValueArray, and RandomParamArray only works if
client (& server is complied) with supporter Item Random Options feature is
PACKETVER >= 20150225. But using itemlink2, all command parameters must be
specified if PACKETVER is not supported, use dummy arrays to avoid errors!

 

Credits:

  • These people from OpenKore: lututui, exaxia, and jchcc

 

Edited by Cydh
  • Upvote 3
  • Love 2
  • MVP 1
  • Like 1
Link to comment
Share on other sites

*itemlink(<item_id>{,<refine>,<card0>,<card1>,<card2>,<card3>});

compare with getitem2
*getitem2(<item id>, <amount>, <identify>, <refine>, <attribute>, <card1>, <card2>, <card3>, <card4>{, <account ID>})

what happen to the <identify> and <attribute> field ?

 

EDIT: ->

Testing ...
1. if the item is not identify ... I can't even get the shift-click to work ..
2. if the item is broken, shift-click it will display non-broken item ....

hmm ....
I think these guys have thought it out ...

nvm, disregard this post

Edited by AnnieRuru
Link to comment
Share on other sites

2 hours ago, AnnieRuru said:

*itemlink(<item_id>{,<refine>,<card0>,<card1>,<card2>,<card3>});

compare with getitem2
*getitem2(<item id>, <amount>, <identify>, <refine>, <attribute>, <card1>, <card2>, <card3>, <card4>{, <account ID>})

what happen to the <identify> and <attribute> field ?

 

EDIT: ->

Testing ...
1. if the item is not identify ... I can't even get the shift-click to work ..
2. if the item is broken, shift-click it will display non-broken item ....

hmm ....
I think these guys have thought it out ...

nvm, disregard this post

amount and atribut is not needed by ITEML. we never talk about ITEML here, but you can found the info here

  • Love 1
Link to comment
Share on other sites

just took a crack on this
http://herc.ws/board/topic/16648-iteml-function/

it seems your script command missing to view the costumes

 

>>> this script is tested on rathena

function	script	F_ITEML	{
	.@id = getarg(0);
	.@itemid$ = callsub( S_Base62, .@id );

	.@itemtype = getiteminfo( .@id, 2 );
	if ( .@itemtype == IT_WEAPON || .@itemtype == IT_ARMOR )
		.@show_slot = true;
	.@equip_loc$ = callsub( S_Base62, getiteminfo( .@id, 5 ), 5 );
	.@viewid$ = "&"+ callsub( S_Base62, getiteminfo( .@id, 11 ) );
	return "<ITEML>"+ .@equip_loc$ + .@show_slot + .@itemid$ + .@viewid$ +"</ITEML>";
S_Base62:
	.@num = getarg(0);
	while ( .@num ) {
		.@base62_value$ = [email protected]$[ .@num % 62 ] + .@base62_value$;
		.@num /= 62;
	}
	.@default_zeroes = getarg(1, 2);
	while ( getstrlen(.@base62_value$) < .@default_zeroes )
		.@base62_value$ = insertchar( .@base62_value$, "0", 0 );
	return .@base62_value$;
}
-	script	ITEML	FAKE_NPC,{
OnInit:
	setarray [email protected]$,"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z";
	end;
}

prontera,155,185,3	script	itemlinktest#1	1_F_MARIA,{
	input .@a;
	npctalk itemlink(.@a);
	npctalk F_ITEML(.@a);
	debugmes itemlink(.@a);
	debugmes F_ITEML(.@a);
	end;
}

result in

[Debug]: script debug : 2000000 110000034 : <ITEML>0000011jZ</ITEML>
[Debug]: script debug : 2000000 110000034 : <ITEML>0004811jZ&2H</ITEML>

 

the difference is when input an item with costume enable

screen2019rAthena014.jpgscreen2019rAthena015.jpg

yours to the left, mine to the right

48 is convert as 256, which is EQP_HEAD_TOP
2H is 167, which is the ViewID

  • Upvote 1
Link to comment
Share on other sites

Tried this today, got these errors.

I used the example itemlink.txt provided by cyhd.

Any thoughts what i need to fix or what is wrong?

Thanks!

sshot.PNG

Link to comment
Share on other sites

18 hours ago, Dev G Inc said:

Tried this today, got these errors.

I used the example itemlink.txt provided by cyhd.

Any thoughts what i need to fix or what is wrong?

Thanks!

sshot.PNG

It's just a debug message not an error.

Link to comment
Share on other sites

15 hours ago, Radian said:

It's just a debug message not an error.

Sorry new to scripting, how do i debug it? No clue how to debug. 😅

Link to comment
Share on other sites

Since this has been updated fairly recently, I decided to give it a try. However, I can't seem to get it to work. I'm sure I've applied everything correctly. The test script gives me this;

Spoiler

itemlink.png.11208946b249ffc4742bbc9d95bd863b.png

For `itemlink2`, I've tried with other items, other random options, same result.

For the regular `itemlink`, only the item ID and refine works, it doesn't display the card(s) you input.

Edited by Conflicts
Link to comment
Share on other sites

On 11/2/2021 at 1:52 PM, Conflicts said:

Since this has been updated fairly recently, I decided to give it a try. However, I can't seem to get it to work. I'm sure I've applied everything correctly. The test script gives me this;

  Hide contents

itemlink.png.11208946b249ffc4742bbc9d95bd863b.png

For `itemlink2`, I've tried with other items, other random options, same result.

For the regular `itemlink`, only the item ID and refine works, it doesn't display the card(s) you input.

working fine on me

screenrAthena099.thumb.jpg.e86425d7f8a161e8c4de0c11b7e5c395.jpg

Link to comment
Share on other sites

Spoiler
On 11/8/2021 at 1:58 PM, Cydh said:

working fine on me

screenrAthena099.thumb.jpg.e86425d7f8a161e8c4de0c11b7e5c395.jpg

 

 

I forgot to mention, I tested this on 2020-09-02aRagexeRE and 2021-01-07-aRagexeRE, both giving me the same results, so yeah it might be broken for 2020+ clients.

Link to comment
Share on other sites

On 6/3/2022 at 11:01 PM, kalabasa said:

itemlink not working in 2015 clients?

just like https://github.com/rathena/rathena/blob/479954af304d93e7cf10fe03646f6b1db2cfdf21/doc/script_commands.txt#L1114

im using the 2021 diff. or im implementing it wrong? can someone gave an example using mes script

It should work on 2015 clients not unless you have it disabled via hexing.

Link to comment
Share on other sites

Just now, PsyOps said:

It should work on 2015 clients not unless you have it disabled via hexing.

can you provide me some examples? i am going to try again.

im using 2015-11-04a

and i have no idea about hexing.

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

Important Information

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