Jump to content
  • 0
Quesooo

R > Item Exchanger

Question

good day can i request a npc that can exchange several weapons to 1 item only

 

for example a katar can be exchange for 1 jellopy in random amount

a dagger that can exchange for jellopy in random amount etc. etc.

 

i think this is more different than master euphy or emistry exchange npc

 

all items listen at the npc can be exchange only in 1 item in random amount thank you

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Sounds like Euphy's Card Changer/Trader try find that NPC and chance the reward amount to rand, there alot of mods of that npc maybe you would find something like you want c:

Link to comment
Share on other sites

  • 0

Just so I understand fully...

You want to trade your equip for random amount of a specific item? example: trade 1 Knife -> random amount of Jellopy?

Link to comment
Share on other sites

  • 0
17 hours ago, SpiritD said:

Just so I understand fully...

You want to trade your equip for random amount of a specific item? example: trade 1 Knife -> random amount of Jellopy?

yeah something like that

example on the script the npc have list of weapons inside it > dagger / stelleto / katar / axe / staff / bow / etc. and then when you talk to npc the npc will said i can trade different weapon to jellopy what weapon would you like to be exchange for?>

 

then after choosing the weapon in the list the weapon choosen will gone and it becomes jellopy ;)

Link to comment
Share on other sites

  • 0
25 minutes ago, Quesooo said:

yeah something like that

example on the script the npc have list of weapons inside it > dagger / stelleto / katar / axe / staff / bow / etc. and then when you talk to npc the npc will said i can trade different weapon to jellopy what weapon would you like to be exchange for?>

 

then after choosing the weapon in the list the weapon choosen will gone and it becomes jellopy ;)

MAP_NAME,X,Y,Z	script	Weapon for Jellopy#spiritD	NPC_ID,{

mes "Would you like to trade 1 weapon for 5-10 Jellopy?";
switch(select("Bow:Dagger:Axe:Sword:Etc")){
case 1:
	if(countitem(1701) > 0) {
		delitem 1701,1;
		getitem 909,rand(5,10);
		end;
	}
	if(countitem(1702) > 0) {
		delitem 1702,1;
		getitem 909,rand(5,10);
		end;
	}
case 2:
case 3:
case 4:
}

I have intentionally left most of the "meat" of the script unfinished. You should be able to understand how to fill it in. If you are not sure what to do, please compile a list of item names and IDs that you would like the  trader to accept.

  • Love 1
Link to comment
Share on other sites

  • 0
15 hours ago, SpiritD said:
MAP_NAME,X,Y,Z	script	Weapon for Jellopy#spiritD	NPC_ID,{

mes "Would you like to trade 1 weapon for 5-10 Jellopy?";
switch(select("Bow:Dagger:Axe:Sword:Etc")){
case 1:
	if(countitem(1701) > 0) {
		delitem 1701,1;
		getitem 909,rand(5,10);
		end;
	}
	if(countitem(1702) > 0) {
		delitem 1702,1;
		getitem 909,rand(5,10);
		end;
	}
case 2:
case 3:
case 4:
}

I have intentionally left most of the "meat" of the script unfinished. You should be able to understand how to fill it in. If you are not sure what to do, please compile a list of item names and IDs that you would like the  trader to accept.

i like this i will finish this thank you

Link to comment
Share on other sites

  • 0
15 hours ago, SpiritD said:
MAP_NAME,X,Y,Z	script	Weapon for Jellopy#spiritD	NPC_ID,{

mes "Would you like to trade 1 weapon for 5-10 Jellopy?";
switch(select("Bow:Dagger:Axe:Sword:Etc")){
case 1:
	if(countitem(1701) > 0) {
		delitem 1701,1;
		getitem 909,rand(5,10);
		end;
	}
	if(countitem(1702) > 0) {
		delitem 1702,1;
		getitem 909,rand(5,10);
		end;
	}
case 2:
case 3:
case 4:
}

I have intentionally left most of the "meat" of the script unfinished. You should be able to understand how to fill it in. If you are not sure what to do, please compile a list of item names and IDs that you would like the  trader to accept.

btw is it complete on the end script?

Link to comment
Share on other sites

  • 0
15 hours ago, SpiritD said:

I'm not sure what you mean

nothing thank you ma friend i already finish the npc for what i wanted to be ./no1

Link to comment
Share on other sites

  • 0
morocc,143,76,4	script	Items Exchange Rnd	747,{

	for (set .@i, 0; .@i < getarraysize(.Require); set .@i, .@i+1 )
		set .@menu$, .@menu$ + getitemname(.Require[.@i]) +":";
	set .@i, (select(.@menu$)-1);
	
	if ( countitem(.Require[.@i]) < 1 )
	{
		mes "You have not enough items.";
		close;
	}
	
	getitem .Items[.@i],.Amount[rand(getarraysize(.Amount))];
	delitem .Require[.@i],1;
	end;
	
OnInit:
	setarray .Require[0],1202,1706;
	setarray .Items[0],501,502;
	setarray .Amount[0],1,2,3,4,5,6,7,8,9,10;
	end;
}

 

Link to comment
Share on other sites

  • 0
15 hours ago, Arthenaz said:
morocc,143,76,4	script	Items Exchange Rnd	747,{

	for (set .@i, 0; .@i < getarraysize(.Require); set .@i, .@i+1 )
		set .@menu$, .@menu$ + getitemname(.Require[.@i]) +":";
	set .@i, (select(.@menu$)-1);
	
	if ( countitem(.Require[.@i]) < 1 )
	{
		mes "You have not enough items.";
		close;
	}
	
	getitem .Items[.@i],.Amount[rand(getarraysize(.Amount))];
	delitem .Require[.@i],1;
	end;
	
OnInit:
	setarray .Require[0],1202,1706;
	setarray .Items[0],501,502;
	setarray .Amount[0],1,2,3,4,5,6,7,8,9,10;
	end;
}

 

this is not working just getting the item then nothing to be exchange for

Link to comment
Share on other sites

  • 0

i think this one, but need to make it simple.

maybe using array.

lhz_dun_n,132,260,4	script	Memory of Regret	114,{

mes "I can convert some items to energy debris in random from 1 to 5 what do you want";
next;
menu "Exchange Items to Energy Debris",Z_EE,"Create Costume",Z_EEE,"Leave",Z_EXIT;

Z_EE:
	mes "What now lets see";
	next;
	if(countitem(1284) > 0) goto one;
	if(countitem(1285) > 0) goto two;
	if(countitem(1290) > 0) goto three;
	if(countitem(18109) > 0) goto four;
	if(countitem(18110) > 0) goto five;
	if(countitem(18111) > 0) goto six;
	if(countitem(1745) > 0) goto seven;
	if(countitem(18103) > 0) goto eight;
	if(countitem(1647) > 0) goto nine;
	if(countitem(1659) > 0) goto ten;
	if(countitem(1654) > 0) goto eleven;
	if(countitem(2004) > 0) goto twelve;
	if(countitem(2005) > 0) goto thirteen;
	if(countitem(13431) > 0) goto fourteen;
	if(countitem(1196) > 0) goto fifteen;
	if(countitem(13421) > 0) goto sixteen;
	if(countitem(1584) > 0) goto seventeen;
	if(countitem(13061) > 0) goto eightteen;
	if(countitem(13062) > 0) goto nineteen;
	if(countitem(13070) > 0) goto twenty;
	if(countitem(13046) > 0) goto twentyone;
	if(countitem(13047) > 0) goto twentytwo;
	if(countitem(16017) > 0) goto twentythree;
	if(countitem(16010) > 0) goto twentyfour;
	if(countitem(16000) > 0) goto twentyfive;
	if(countitem(16001) > 0) goto twentysix;
	if(countitem(1433) > 0) goto twentyseven;
	if(countitem(1435) > 0) goto twentyeight;
	if(countitem(1490) > 0) goto twentynine;
	if(countitem(1930) > 0) goto thirty;
	if(countitem(1963) > 0) goto thirtyone;
	if(countitem(1830) > 0) goto thirtytwo;
	{
		goto Z_NOITEM;
	}

one:
	delitem 1284,1;
	getitem 6820,rand(1,5);
	end;
two:
	delitem 1285,1;
	getitem 6820,rand(1,5);
	end;
three:
	delitem 1290,1;
	getitem 6820,rand(1,5);
	end;
four:
	delitem 18109,1;
	getitem 6820,rand(1,5);
	end;
five:
	delitem 18110,1;
	getitem 6820,rand(1,5);
	end;
six:
	delitem 18111,1;
	getitem 6820,rand(1,5);
	end;
zeven:
	delitem 1745,1;
	getitem 6820,rand(1,5);
	end;
eight:
	delitem 18103,1;
	getitem 6820,rand(1,5);
	end;
nine:
	delitem 1647,1;
	getitem 6820,rand(1,5);
	end;
ten:
	delitem 1659,1;
	getitem 6820,rand(1,5);
	end;
eleven:
	delitem 1654,1;
	getitem 6820,rand(1,5);
	end;
twelve:
	delitem 2004,1;
	getitem 6820,rand(1,5);
	end;
thirteen:
	delitem 2005,1;
	getitem 6820,rand(1,5);
	end;
fourteen:
	delitem 13431,1;
	getitem 6820,rand(1,5);
	end;
fifteen:
	delitem 1196,1;
	getitem 6820,rand(1,5);
	end;
sixteen:
	delitem 13421,1;
	getitem 6820,rand(1,5);
	end;
seventeen:
	delitem 1584,1;
	getitem 6820,rand(1,5);
	end;
eightteen:
	delitem 13061,1;
	getitem 6820,rand(1,5);
nineteen:
	delitem 13062,1;
	getitem 6820,rand(1,5);
	end;
twenty:
	delitem 13070,1;
	getitem 6820,rand(1,5);
	end;
twentyone:
	delitem 13046,1;
	getitem 6820,rand(1,5);
	end;
twentytwo:
	delitem 13047,1;
	getitem 6820,rand(1,5);
	end;
twentythree:
	delitem 16017,1;
	getitem 6820,rand(1,5);
	end;
twentyfour:
	delitem 16010,1;
	getitem 6820,rand(1,5);
	end;
twentyfive:
	delitem 16000,1;
	getitem 6820,rand(1,5);
	end;
twentysix:
	delitem 16001,1;
	getitem 6820,rand(1,5);
	end;
twentyseven:
	delitem 1433,1;
	getitem 6820,rand(1,5);
	end;
twentyeight:
	delitem 1435,1;
	getitem 6820,rand(1,5);
	end;
twentynine:
	delitem 1490,1;
	getitem 6820,rand(1,5);
	end;
thirty:
	delitem 1930,1;
	getitem 6820,rand(1,5);
	end;
thirtyone:
	delitem 1963,1;
	getitem 6820,rand(1,5);
	end;
thirtytwo:
	delitem 1830,1;
	getitem 6820,rand(1,5);
	end;
	
Z_EEE:
	mes "I can also Exchange 50pcs energy debris and 1 3rd job head gear to 1 costume 3rd job items";
	next;
	menu "let me see",Z_EEEE,"Leave",Z_EXIT;

Z_EEEE:
	next;
	if(countitem(6820) > 50 || countitem(5746) > 1) goto costumea;
	if(countitem(6820) > 50 || countitem(5757) > 1) goto costumeb;
	if(countitem(6820) > 50 || countitem(5755) > 1) goto costumec;
	if(countitem(6820) > 50 || countitem(5750) > 1) goto costumed;
	if(countitem(6820) > 50 || countitem(5752) > 1) goto costumee;
	if(countitem(6820) > 50 || countitem(5749) > 1) goto costumef;
	if(countitem(6820) > 50 || countitem(5754) > 1) goto costumeg;
	if(countitem(6820) > 50 || countitem(5747) > 1) goto costumeh;
	if(countitem(6820) > 50 || countitem(5753) > 1) goto costumei;
	if(countitem(6820) > 50 || countitem(5756) > 1) goto costumej;
	if(countitem(6820) > 50 || countitem(5748) > 1) goto costumek;
	if(countitem(6820) > 50 || countitem(5751) > 1) goto costumel;
	if(countitem(6820) > 50 || countitem(5758) > 1) goto costumem;
	{
		GOTO Z_NOITEM;
	}
	
costumea:
	delitem 6820,50;
	delitem 5746,1;
	getitem 19961,1;
	mes "Thank you very very much!";
	end;
costumeb:
	delitem 6820,50;
	delitem 5757,1;
	getitem 20393,1;
	mes "Thank you very very much!";
	end;
costumec:
	delitem 6820,50;
	delitem 5755,1;
	getitem 20391,1;
	mes "Thank you very very much!";
	end;
costumed:
	delitem 6820,50;
	delitem 5750,1;
	getitem 19965,1;
	mes "Thank you very very much!";
	end;
costumee:
	delitem 6820,50;
	delitem 5752,1;
	getitem 19967,1;
	mes "Thank you very very much!";
	end;
costumef:
	delitem 6820,50;
	delitem 5749,1;
	getitem 19963,1;
	mes "Thank you very very much!";
	end;
costumeg:
	delitem 6820,50;
	delitem 5754,1;
	getitem 19962,1;
	mes "Thank you very very much!";
	end;
costumeh:
	delitem 6820,50;
	delitem 5747,1;
	getitem 19969,1;
	mes "Thank you very very much!";
	end;
costumei:
	delitem 6820,50;
	delitem 5753,1;
	getitem 19968,1;
	mes "Thank you very very much!";
	end;
costumej:
	delitem 6820,50;
	delitem 5756,1;
	getitem 19970,1;
	mes "Thank you very very much!";
	end;
costumek:
	delitem 6820,50;
	delitem 5748,1;
	getitem 20392,1;
	mes "Thank you very very much!";
	end;
costumel:
	delitem 6820,50;
	delitem 5751,1;
	getitem 19966,1;
	mes "Thank you very very much!";
	end;
costumem:
	delitem 6820,50;
	delitem 57,1;
	getitem 19971,1;
	mes "Thank you very very much!";
	end;
	
Z_NOITEM:
	mes "You dont have enought items i need";
	mes "Good bye.";
	close;

Z_EXIT:
	mes "[Reaper]";
	mes callfunc("F_Bye");
	close;
}

 

  • Love 1
Link to comment
Share on other sites

  • 0
On 10/10/2017 at 11:33 PM, hendra814 said:

i think this one, but need to make it simple.

maybe using array.

lhz_dun_n,132,260,4	script	Memory of Regret	114,{

mes "I can convert some items to energy debris in random from 1 to 5 what do you want";
next;
menu "Exchange Items to Energy Debris",Z_EE,"Create Costume",Z_EEE,"Leave",Z_EXIT;

Z_EE:
	mes "What now lets see";
	next;
	if(countitem(1284) > 0) goto one;
	if(countitem(1285) > 0) goto two;
	if(countitem(1290) > 0) goto three;
	if(countitem(18109) > 0) goto four;
	if(countitem(18110) > 0) goto five;
	if(countitem(18111) > 0) goto six;
	if(countitem(1745) > 0) goto seven;
	if(countitem(18103) > 0) goto eight;
	if(countitem(1647) > 0) goto nine;
	if(countitem(1659) > 0) goto ten;
	if(countitem(1654) > 0) goto eleven;
	if(countitem(2004) > 0) goto twelve;
	if(countitem(2005) > 0) goto thirteen;
	if(countitem(13431) > 0) goto fourteen;
	if(countitem(1196) > 0) goto fifteen;
	if(countitem(13421) > 0) goto sixteen;
	if(countitem(1584) > 0) goto seventeen;
	if(countitem(13061) > 0) goto eightteen;
	if(countitem(13062) > 0) goto nineteen;
	if(countitem(13070) > 0) goto twenty;
	if(countitem(13046) > 0) goto twentyone;
	if(countitem(13047) > 0) goto twentytwo;
	if(countitem(16017) > 0) goto twentythree;
	if(countitem(16010) > 0) goto twentyfour;
	if(countitem(16000) > 0) goto twentyfive;
	if(countitem(16001) > 0) goto twentysix;
	if(countitem(1433) > 0) goto twentyseven;
	if(countitem(1435) > 0) goto twentyeight;
	if(countitem(1490) > 0) goto twentynine;
	if(countitem(1930) > 0) goto thirty;
	if(countitem(1963) > 0) goto thirtyone;
	if(countitem(1830) > 0) goto thirtytwo;
	{
		goto Z_NOITEM;
	}

one:
	delitem 1284,1;
	getitem 6820,rand(1,5);
	end;
two:
	delitem 1285,1;
	getitem 6820,rand(1,5);
	end;
three:
	delitem 1290,1;
	getitem 6820,rand(1,5);
	end;
four:
	delitem 18109,1;
	getitem 6820,rand(1,5);
	end;
five:
	delitem 18110,1;
	getitem 6820,rand(1,5);
	end;
six:
	delitem 18111,1;
	getitem 6820,rand(1,5);
	end;
zeven:
	delitem 1745,1;
	getitem 6820,rand(1,5);
	end;
eight:
	delitem 18103,1;
	getitem 6820,rand(1,5);
	end;
nine:
	delitem 1647,1;
	getitem 6820,rand(1,5);
	end;
ten:
	delitem 1659,1;
	getitem 6820,rand(1,5);
	end;
eleven:
	delitem 1654,1;
	getitem 6820,rand(1,5);
	end;
twelve:
	delitem 2004,1;
	getitem 6820,rand(1,5);
	end;
thirteen:
	delitem 2005,1;
	getitem 6820,rand(1,5);
	end;
fourteen:
	delitem 13431,1;
	getitem 6820,rand(1,5);
	end;
fifteen:
	delitem 1196,1;
	getitem 6820,rand(1,5);
	end;
sixteen:
	delitem 13421,1;
	getitem 6820,rand(1,5);
	end;
seventeen:
	delitem 1584,1;
	getitem 6820,rand(1,5);
	end;
eightteen:
	delitem 13061,1;
	getitem 6820,rand(1,5);
nineteen:
	delitem 13062,1;
	getitem 6820,rand(1,5);
	end;
twenty:
	delitem 13070,1;
	getitem 6820,rand(1,5);
	end;
twentyone:
	delitem 13046,1;
	getitem 6820,rand(1,5);
	end;
twentytwo:
	delitem 13047,1;
	getitem 6820,rand(1,5);
	end;
twentythree:
	delitem 16017,1;
	getitem 6820,rand(1,5);
	end;
twentyfour:
	delitem 16010,1;
	getitem 6820,rand(1,5);
	end;
twentyfive:
	delitem 16000,1;
	getitem 6820,rand(1,5);
	end;
twentysix:
	delitem 16001,1;
	getitem 6820,rand(1,5);
	end;
twentyseven:
	delitem 1433,1;
	getitem 6820,rand(1,5);
	end;
twentyeight:
	delitem 1435,1;
	getitem 6820,rand(1,5);
	end;
twentynine:
	delitem 1490,1;
	getitem 6820,rand(1,5);
	end;
thirty:
	delitem 1930,1;
	getitem 6820,rand(1,5);
	end;
thirtyone:
	delitem 1963,1;
	getitem 6820,rand(1,5);
	end;
thirtytwo:
	delitem 1830,1;
	getitem 6820,rand(1,5);
	end;
	
Z_EEE:
	mes "I can also Exchange 50pcs energy debris and 1 3rd job head gear to 1 costume 3rd job items";
	next;
	menu "let me see",Z_EEEE,"Leave",Z_EXIT;

Z_EEEE:
	next;
	if(countitem(6820) > 50 || countitem(5746) > 1) goto costumea;
	if(countitem(6820) > 50 || countitem(5757) > 1) goto costumeb;
	if(countitem(6820) > 50 || countitem(5755) > 1) goto costumec;
	if(countitem(6820) > 50 || countitem(5750) > 1) goto costumed;
	if(countitem(6820) > 50 || countitem(5752) > 1) goto costumee;
	if(countitem(6820) > 50 || countitem(5749) > 1) goto costumef;
	if(countitem(6820) > 50 || countitem(5754) > 1) goto costumeg;
	if(countitem(6820) > 50 || countitem(5747) > 1) goto costumeh;
	if(countitem(6820) > 50 || countitem(5753) > 1) goto costumei;
	if(countitem(6820) > 50 || countitem(5756) > 1) goto costumej;
	if(countitem(6820) > 50 || countitem(5748) > 1) goto costumek;
	if(countitem(6820) > 50 || countitem(5751) > 1) goto costumel;
	if(countitem(6820) > 50 || countitem(5758) > 1) goto costumem;
	{
		GOTO Z_NOITEM;
	}
	
costumea:
	delitem 6820,50;
	delitem 5746,1;
	getitem 19961,1;
	mes "Thank you very very much!";
	end;
costumeb:
	delitem 6820,50;
	delitem 5757,1;
	getitem 20393,1;
	mes "Thank you very very much!";
	end;
costumec:
	delitem 6820,50;
	delitem 5755,1;
	getitem 20391,1;
	mes "Thank you very very much!";
	end;
costumed:
	delitem 6820,50;
	delitem 5750,1;
	getitem 19965,1;
	mes "Thank you very very much!";
	end;
costumee:
	delitem 6820,50;
	delitem 5752,1;
	getitem 19967,1;
	mes "Thank you very very much!";
	end;
costumef:
	delitem 6820,50;
	delitem 5749,1;
	getitem 19963,1;
	mes "Thank you very very much!";
	end;
costumeg:
	delitem 6820,50;
	delitem 5754,1;
	getitem 19962,1;
	mes "Thank you very very much!";
	end;
costumeh:
	delitem 6820,50;
	delitem 5747,1;
	getitem 19969,1;
	mes "Thank you very very much!";
	end;
costumei:
	delitem 6820,50;
	delitem 5753,1;
	getitem 19968,1;
	mes "Thank you very very much!";
	end;
costumej:
	delitem 6820,50;
	delitem 5756,1;
	getitem 19970,1;
	mes "Thank you very very much!";
	end;
costumek:
	delitem 6820,50;
	delitem 5748,1;
	getitem 20392,1;
	mes "Thank you very very much!";
	end;
costumel:
	delitem 6820,50;
	delitem 5751,1;
	getitem 19966,1;
	mes "Thank you very very much!";
	end;
costumem:
	delitem 6820,50;
	delitem 57,1;
	getitem 19971,1;
	mes "Thank you very very much!";
	end;
	
Z_NOITEM:
	mes "You dont have enought items i need";
	mes "Good bye.";
	close;

Z_EXIT:
	mes "[Reaper]";
	mes callfunc("F_Bye");
	close;
}

 

this is working but 1 problem only we see when the item is on character equipment its also exchange for energy debris

 

how to make it on inventory item only

Link to comment
Share on other sites

  • 0
16 hours ago, Quesooo said:

how to make it on inventory item only

---------------------------------------

*isequipped(<id>{,<id>{,<id>{,<id>}}})

This function will return 1 if the invoking character has all of the item
IDs given equipped (if card IDs are passed, then it checks if the cards are
inserted into slots in the equipment they are currently wearing). Theoretically
there is no limit to the number of items that may be tested for at the same time.
If even one of the items given is not equipped, 0 will be returned.

    // (Poring,Santa Poring,Poporing,Marin)
    if (isequipped(4001,4005,4033,4196)) mes "Wow! You're wearing a full complement of possible poring cards!";
    // (Poring)
    if (isequipped(4001)) mes "A poring card is useful, don't you think?";

The function was meant for item scripts to support the cards released by Gravity
in February 2005, but it will work just fine in normal NPC scripts.

---------------------------------------

make a check to see if the item ID is equipped. If it is, end the script. If not, proceed as normal.

  • Upvote 1
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
Answer this question...

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