Jump to content

Recommended Posts

Posted

iRO - Ben Recycle NPC


Ben Recycle  in Prontera allows players to turn certain equipment into Rough Elunium and Rough Oridecon.

 

How to use:

func_AddItem(<equipment_id>, <item1>, <amount1>, <item2>, <amount2>);
		
// WEAPONS
func_AddItem(1421, 757, 4, 756, 4);
func_AddItem(1822, 757, 2, 756, 2);
func_AddItem(1625, 757, 5, 756, 5);
func_AddItem(1819, 757, 3, 756, 3);
func_AddItem(1269, 757, 4, 756, 4);
func_AddItem(1142, 757, 3, 756, 3);
func_AddItem(1624, 757, 5, 756, 5);
func_AddItem(1626, 757, 5, 756, 5);
func_AddItem(13404, 757, 5, 756, 5);
func_AddItem(13027, 757, 6, 756, 6);
func_AddItem(1821, 757, 1, 756, 1);
func_AddItem(1268, 757, 5, 756, 5);

// ARMORS
func_AddItem(2422, 757, 3, 756, 3);
func_AddItem(2104, 757, 1, 756, 1);
func_AddItem(5124, 757, 2, 756, 1);
func_AddItem(2406, 757, 3, 756, 3);
func_AddItem(5122, 757, 2, 756, 1);
func_AddItem(5126, 757, 2, 756, 1);
func_AddItem(2504, 757, 2, 756, 1);
func_AddItem(2353, 757, 15, 756, 15);
func_AddItem(2514, 757, 6, 756, 6);
func_AddItem(2404, 757, 2, 756, 1);
func_AddItem(2315, 757, 2, 756, 1);
func_AddItem(2102, 757, 2, 756, 1);
func_AddItem(2114, 757, 2, 756, 2);

Additional:

// if enable shop UI (only work if items can sell to npc shop)
.shop_npc$ = "ben_recycle_shop#iro";

 

Mirror Link: https://pastebin.com/cCBdevB5


  • Submitter
  • Submitted
    04/28/2019
  • Category
  • Video
  • Content Author
    Emistry

 

  • Like 1
  • 2 months later...
Posted

Hi @Emistry im using your script and i modify it above to exchange for other items.

can you help me how to solve this?

i got an error saying
image.png.d043695ca080a0add39a9e6572e98e18.png
 

when selling 10 or more different items.

 

// https://irowiki.org/wiki/Ben_Recycle

-	shop	ben_recycle_shop	-1,909:-1

prt_mall,164,53,0	script	Ben Recycle	4_M_CRU_KNT,{
	function func_GetItemName;
	function func_AddItem;
	
	mes "Hi, I can convert certain equipment into ores.";
	mes "Would you give it a try?";
	next;
	if (select("Convert", "Information") == 2) {
		for (.@i = 0; .@i < .size; .@i++) {
			mes func_GetItemName(.nameid[.@i]);
			if (.amount1[.@i] > 0 && .nameid1[.@i] > 0)
				mes " ~ "+F_InsertComma(.amount1[.@i])+"x "+func_GetItemName(.nameid1[.@i]);
			if (.amount2[.@i] > 0 && .nameid2[.@i] > 0)
				mes " ~ "+F_InsertComma(.amount2[.@i])+"x "+func_GetItemName(.nameid2[.@i]);
			mes " ";
		}
		next;
	}
	if (.shop_npc$ != "") {
		mes "Place all the equipments you wish to convert into ores.";
		close2;
		npcshopattach .shop_npc$, 1;
		callshop .shop_npc$, 2;
		end;
	}
	else {
		for (.@i = 0; .@i < .size; .@i++)
			.@menu$ = .@menu$ + func_GetItemName(.nameid[.@i]) + ":";
		.@i = select(.@menu$) - 1;
		if (countitem(.nameid[.@i])) {
			delitem .nameid[.@i], 1;
			mes "Exchanged "+func_GetItemName(.nameid[.@i])+":";
			if (.nameid1[.@i] > 0 && .amount1[.@i] > 0) {
				mes " ~ "+F_InsertComma(.amount1[.@i])+"x "+func_GetItemName(.nameid1[.@i]);
				getitem .nameid1[.@i], .amount1[.@i];
			}
			if (.nameid2[.@i] > 0 && .amount2[.@i] > 0) {
				mes " ~ "+F_InsertComma(.amount2[.@i])+"x "+func_GetItemName(.nameid2[.@i]);
				getitem .nameid2[.@i], .amount2[.@i];
			}
		}
		else {
			mes "you dont have "+func_GetItemName(.nameid[.@i]);
		}
	}
	close;
	
	OnSellItem:
		.@sold_nameid_size = getarraysize(@sold_nameid);
		for (.@i = 0; .@i < .@sold_nameid_size && !.@fail; .@i++) {
			for (.@x = 0; .@x < .size && !.@fail; .@x++) {
				if (.nameid[.@x] == @sold_nameid[.@i]) {
					if (!checkweight(.nameid1[.@x], .amount1[.@x])) {
						mes "Exchange stopped, you're overweight.";
						.@fail++;
					}
					else {
						.@total++;
						delitem2(@sold_nameid[.@i], @sold_quantity[.@i], @sold_identify[.@i], @sold_refine[.@i], @sold_attribute[.@i], @sold_card1[.@i], @sold_card2[.@i], @sold_card3[.@i], @sold_card4[.@i]);
						mes "Exchanged "+func_GetItemName(.nameid[.@x])+":";
						if (.nameid1[.@x] > 0 && .amount1[.@x] > 0) {
							mes " ~ "+F_InsertComma(.amount1[.@x])+"x "+func_GetItemName(.nameid1[.@x]);
							getitem .nameid1[.@x], .amount1[.@x];
						}
						if (.nameid2[.@x] > 0 && .amount2[.@x] > 0) {
							mes " ~ "+F_InsertComma(.amount2[.@x])+"x "+func_GetItemName(.nameid2[.@x]);
							getitem .nameid2[.@x], .amount2[.@x];
						}
						mes " ";
					}
				}
			}
		}
		mes "Exchanged "+.@total+" item(s).";
		close2;
		npcshopattach .shop_npc$, 0;
		end;
	
	function	func_GetItemName	{
		.@itemid = getarg(0, 0);
		.@itemslot = getitemslots(.@itemid);
		.@item_name$ = getitemname(.@itemid);
		.@itemtype = getiteminfo(.@itemid, 2);
		if (.@itemslot || .@itemtype == IT_WEAPON || .@itemtype == IT_ARMOR)
			.@item_name$ = .@item_name$ + " ["+.@itemslot+"]";
		return .@item_name$;
	}
	
	function	func_AddItem	{
		.@nameid = getarg(0, 0);
		.@nameid1 = getarg(1, 0);
		.@amount1 = getarg(2, 0);
		.@nameid2 = getarg(3, 0);
		.@amount2 = getarg(4, 0);
		
		if (.@nameid > 0 
			&& .@nameid1 > 0 && .@amount1 > 0
			&& .@nameid2 > 0 && .@amount2 > 0 
		) {
			.nameid[.size] = .@nameid;
			.nameid1[.size] = .@nameid1;
			.amount1[.size] = .@amount1;
			.nameid2[.size] = .@nameid2;
			.amount2[.size] = .@amount2;
			.size++;
		}
	}
	
	OnInit:
		// if enable shop UI (only work if items can sell to npc shop)
		.shop_npc$ = "ben_recycle_shop";
		
		// func_AddItem(<equipment_id>, <item1>, <amount1>, <item2>, <amount2>);
		
		// WEAPONS
		func_AddItem(1421, 757, 4, 756, 4);
		func_AddItem(1822, 757, 2, 756, 2);
		func_AddItem(1625, 757, 5, 756, 5);
		func_AddItem(1819, 757, 3, 756, 3);
		func_AddItem(1269, 757, 4, 756, 4);
		func_AddItem(1142, 757, 3, 756, 3);
		func_AddItem(1624, 757, 5, 756, 5);
		func_AddItem(1626, 757, 5, 756, 5);
		func_AddItem(13404, 757, 5, 756, 5);
		func_AddItem(13027, 757, 6, 756, 6);
		func_AddItem(1821, 757, 1, 756, 1);
		func_AddItem(1268, 757, 5, 756, 5);
		
		// ARMORS
		func_AddItem(2422, 757, 3, 756, 3);
		func_AddItem(2104, 757, 1, 756, 1);
		func_AddItem(5124, 757, 2, 756, 1);
		func_AddItem(2406, 757, 3, 756, 3);
		func_AddItem(5122, 757, 2, 756, 1);
		func_AddItem(5126, 757, 2, 756, 1);
		func_AddItem(2504, 757, 2, 756, 1);
		func_AddItem(2353, 757, 15, 756, 15);
		func_AddItem(2514, 757, 6, 756, 6);
		func_AddItem(2404, 757, 2, 756, 1);
		func_AddItem(2315, 757, 2, 756, 1);
		func_AddItem(2102, 757, 2, 756, 1);
		func_AddItem(2114, 757, 2, 756, 2);
		
		// COSTUMES
		func_AddItem(19835, 7915, 1, 7539, 1);
		func_AddItem(31123, 7915, 1, 7539, 1);
		func_AddItem(20247, 7915, 1, 7539, 1);
		func_AddItem(31062, 7915, 1, 7539, 1);
		func_AddItem(19934, 7915, 1, 7539, 1);
		waitingroom "Item Recycle",0;
		end;
}

 

  • 1 month later...
  • 7 months later...
Posted (edited)

How I change the convert item into cash? for example i trade my corsair and i get some cash. And I already try injecting the npc but it say missing shop npc or not in shop type

Edited by oxob
  • 4 years later...

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...