Jump to content
  • 0
xlaws27

costume converter npc with item restriction!!!

Question

the ITEMBOUND items became tradable when i converted them into a costume then restore them back.

 

can you help me ? i have no knowledge scripting.

 

but i think the solution is countitem so that it won't let the player to use the costume clown if he/she has an <itemid> in his inventory.

 

 

//===== Hercules Script ======================================//= Headgear to Costume converter >> Costume to Headgear converter//===== By: ==================================================//= Rebel, Zephyrus [rAthena]//= Mhalicot [Hercules]//===== Current Version: =====================================//= 1.1//===== Compatible With: =====================================//= Hercules//===== Description: =========================================//= Allows a user to convert the equipped headgear //	(on Top, Mid or Low) into a costume item. //	It will remove any card and refine of the Item.//= Allows a user to restore the equipped costume headgear //	(on Top, Mid or Low) into its original form. //	It will not return any card or refine of the item.//===== Additional Comments: =================================//= 1.0 Initial script [All of this script are credit to//	Rebel, Zephyrus of [rAthena] and revised by [Mhalicot]//	to make it compatible in Hercules.]//= 1.1 Denied if Headgear is rental, has refine,//	or has card[Mhalicot]//	Note: You must apply the patch in order to use this script//============================================================-	script	Costume Clown	-1,{	mes "[Clown]";	mes "Here you can convert your headgears into a Costume Headgear or restore to its Original form.";	switch(select("I want to convert.:I want to restore.:No thanks.")) {	case 1:			next;			mes "[Clown]";			mes "Please, select what to convert.";			mes "Remember, cards and refine will be removed.";			next;				setarray .@Position$[1],"Top","Mid","Low";				setarray .@Position[1],     1,    9,   10;				set .@Menu$,"";			for( set .@i, 1; .@i < 5; set .@i, .@i + 1 )			{				if( getequipisequiped(.@Position[.@i]) )				set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]";				set .@Menu$, .@Menu$ + ":";			}			set .@Part, .@Position[ select(.@Menu$) ];			set .@id, getequipid(.@Part);			set .@ref, getequiprefinerycnt(.@Part);			if( !getequipisequiped(.@Part) )			{				mes "[Clown]";				mes "Your not wearing anything there...";				close;			}			mes "[Clown]";			mes "You want to Costume your " + getitemname(getequipid(.@Part)) + "?";			next;			if( select("Yes, proceed:No, I am sorry.") == 2 )			{				mes "[Clown]";				mes "Need some time to think about it, huh?";				mes "Alright, I can understand.";				close;			}			for(set .@i,0; .@i<4; set .@i,.@i+1)				set .@slot[.@i], getequipcardid(.@Part,.@i);			if (.@slot[0]>4000 && .@slot[0]<5000) { // If it has card don't convert				mes "[Clown]";				mes "A card? Here?!";				mes "As I said before, I don't convert headgear with cards.";				emotion e_hmm;				close;			}			getinventorylist;			for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1)				if (@inventorylist_expire[.@i] != 0 && @inventorylist_equip[.@i] != 0) { // If rental don't convert				mes "[Clown]";				mes "Sorry, I don't convert a rental headgear!";				emotion e_hmm;				close;				}				if (.@ref > 0) { // If refine don't convert				mes "[Clown]";				mes "Sorry please keep in mind.";				mes "I don't convert headgear with refine.";				emotion e_hmm;				close;				}			if (!countitem(.@id)) { 				mes "[Clown]";				mes "Where is "+getitemname(@id)+"...?";				npctalk "You're a snoozy cheater!";				logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id);				emotion e_wah;				close;			}			costume .@Part; // Convert the Headgear			mes "[Clown]";			mes "Done, enjoy your costume headgear.";			close;	case 2:			next;			mes "Please, select what to restore.";			mes "Remember, I will only restore it back without refine and cards.";			next;				setarray .@Position$[1],"Top","Mid","Low";				setarray .@Position[1],     13,    12,   11;				set .@Menu$,"";			for( set .@i, 1; .@i < 5; set .@i, .@i + 1 )			{				if( getequipisequiped(.@Position[.@i]) )				set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]";				set .@Menu$, .@Menu$ + ":";			}			set .@Part, .@Position[ select(.@Menu$) ];			if( !getequipisequiped(.@Part) )			{				mes "[Clown]";				mes "Your not wearing anything there...";				close;			}			mes "[Clown]";			mes "You want to restore your " + getitemname(getequipid(.@Part)) + "?";			next;			if( select("Yes, proceed:No, I am sorry.") == 2 )			{				mes "[Clown]";				mes "Need some time to think about it, huh?";				mes "Alright, I can understand.";				close;			}			a = getequipid(.@Part);						delitem a,1;			getitem a,1;						mes "[Clown]";			mes "Done, enjoy your restored headgear.";			close;	case 3:		mes "[Clown]";		mes "Very well. Return at once if you seek my services.";		close;	}}// --------------------------------------------------------------------------// Use duplicates to put your npc on different cities// --------------------------------------------------------------------------mellina,120,75,4	duplicate(Costume Clown)	Costume Clown#1	4_M_PIERROT

 

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

you can use checkbound script command for it

 

add this and change the array of .@Blacklist to your own ids

// Headgear Blacklistsetarray .@Blacklist, 2201, 2202, 2203;for (.@c = 0; .@c < getarraysize(.@Blacklist); ++.@c) {	if ( .@Blacklist[.@c] == .@id && checkbound(.@Blacklist[.@c]) ) {		mes "You can't convert bound item.";		close;	}}

after

set .@Part, .@Position[ select(.@Menu$) ];set .@id, getequipid(.@Part);

Share this post


Link to post
Share on other sites
  • 0

 

you can use checkbound script command for it

 

add this and change the array of .@Blacklist to your own ids

// Headgear Blacklistsetarray .@Blacklist, 2201, 2202, 2203;for (.@c = 0; .@c < getarraysize(.@Blacklist); ++.@c) {	if ( .@Blacklist[.@c] == .@id && checkbound(.@Blacklist[.@c]) ) {		mes "You can't convert bound item.";		close;	}}

after

set .@Part, .@Position[ select(.@Menu$) ];set .@id, getequipid(.@Part);

thank you!!!

Edited by xlaws27

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

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