Jump to content
  • 0
DevilSupremeRO

Random Enchant

Question

mes .n$;
mes "Hello, "+strcharinfo(0)+"!";
mes "If you like I can enchant your costume equipment with any enchantment I have in store";
mes ( (.exchange_cost[0] > 0)?"in exchange for "+.enchant_cost[1]+"x "+getitemname(.enchant_cost[0]):"for free")+".";
mes "I can also reset an Enchantment "+ ((.enchant_reset[0] > 0)?", but I require "+.enchant_reset[1]+"x "+getitemname(.enchant_reset[0]):"for free")+".";
next;
switch(select("- Enchant Costumes:- Reset Enchantment:- Nevermind")) {
	
	case 1:
	mes .n$;
	mes "Please select the Costume you want me to enchant:";
	for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) {
		switch(.enchant_slot[.@s]) {
			case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break;
			case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break;
			case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break;
			case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break;
			case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break;
			case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break;
			case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break;
			case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break;
			case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break;
			case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break;
		}
		set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":"");
	}
	set .@c_m$,.@c_m$ + ":- Cancel";
	set .@c,select(.@c_m$);
	if(.@c >= getarraysize(.enchant_slot)) close;
	set .@part,.enchant_slot[.@c-1];
	next;
	mes .n$;
	if(getequipid(.@part) == -1) {
		mes "It looks like you don't have any costume equipped on there.";
		close;
	}
	set .@hg,getequipid(.@part); // Saving Item ID
	set .@ref,getequiprefinerycnt(.@part); 	// Saving Refine Level, if there is one
	set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1
	mes "Selected Costume: "+getitemname(getequipid(.@part));
	if(getequipcardid(.@part,3) != 0) {
		mes "But it looks like you already have an enchantment in this costume.";
		close;
	}
	mes "Now please select the Enchantment:";
	next;
	for ( set .@e,0; .@e < getarraysize(.enchant_id); set .@e,.@e + 1)
		set .@e_m$,.@e_m$ + "> "+getitemname(.enchant_id[.@e])+ ( (.enchant_id[.@e+1] != 0)?":":"");
	set .@rune,select(.@e_m$) - 1;
	mes .n$;
	mes "Selected Enchantment: "+getitemname(.enchant_id[.@rune]);
	if(.enchant_cost[0] > 0 && countitem(.enchant_cost[0]) < .enchant_cost[1]) {
		mes "But it looks like you don't have enough "+getitemname(.enchant_cost[0])+"!";
		close;
	}
	mes "Proceed?";
	if(select("- Yes:- No") - 1) close;
	next;
	if(.enchant_cost[0] > 0)
		delitem .enchant_cost[0],.enchant_cost[1];
	delequip .@part;
	getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,.enchant_id[.@rune];
	equip .@hg;
	mes .n$;
	mes "The enchantment was a success.";
	mes "See ya next time.";
	enable_items;
	break;
		
	case 2:
	mes .n$;
	mes "Please select the Costume you want me to reset the enchantment!";
	for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) {
		switch(.enchant_slot[.@s]) {
			case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break;
			case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break;
			case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break;
			case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break;
			case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break;
			case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break;
			case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break;
			case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break;
			case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break;
			case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break;
		}
		set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":"");
	}
	set .@c_m$,.@c_m$ + ":- Cancel";
	set .@c,select(.@c_m$);
	if(.@c >= getarraysize(.enchant_slot)) close;
	set .@part,.enchant_slot[.@c-1];
	next;
	mes .n$;
	if(getequipcardid(.@part,3) == 0) {
		mes "It looks like you don't have any enchantment in this costume.";
		close;
	}
	set .@hg,getequipid(.@part); // Saving Item ID
	set .@ref,getequiprefinerycnt(.@part); 	// Saving Refine Level, if there is one
	set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1
	mes "Selected Costume: "+getitemname(getequipid(.@part));
	if(.enchant_reset[0] > 0 && countitem(.enchant_reset[0]) < .enchant_reset[1]) {
		mes "But you don't have the required Items to reset the enchantment!";
		close;
	}
	mes "Proceed?";
	if(select("- Yes:- No") - 1) close;
	next;
	if(.enchant_reset[0]) 
		delitem .enchant_reset[0],.enchant_reset[1];
	delequip .@part;
	getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,0;
	equip .@hg;
	mes .n$;
	mes "The enchantment has been reseted.";
	mes "See ya next time.";
	break;
	
	case 3: break;
}
end;

OnInit:
set .n$,"[Costume Enchanter]";
// Enter here every Costume Slot, which you want to be enchantable
// Valid Entries:
// - EQI_COSTUME_HEAD_TOP
// - EQI_COSTUME_HEAD_MID
// - EQI_COSTUME_HEAD_LOW
// - EQI_COSTUME_GARMENT
// - EQI_SHADOW_ARMOR
// - EQI_SHADOW_WEAPON
// - EQI_SHADOW_SHIELD
// - EQI_SHADOW_SHOES
// - EQI_SHADOW_ACC_R
// - EQI_SHADOW_ACC_L
setarray .enchant_slot[0],EQI_COSTUME_HEAD_TOP,EQI_COSTUME_HEAD_MID,EQI_COSTUME_HEAD_LOW;
// Enchantment ID's
setarray .enchant_id[0],6636,6637,6638,6639,6640,6641;
// Price for enchanting:
// To disable the price, put 0 as values
setarray .enchant_cost[0],501,10; // Item ID,Amount
// Price for reseting:
// To disable the price, put 0 as values
setarray .enchant_reset[0],501,10; // Item ID,Amount
end;
}

can anyone with random enchant?

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1

Im not really sure what you want, but i understood that you wanted the enchantment to be random instead of it to be selected in a list.

I had made here a modification on line 47 making it random instead of selecting it from the list.

mes .n$;
mes "Hello, "+strcharinfo(0)+"!";
mes "If you like I can enchant your costume equipment with any enchantment I have in store";
mes ( (.exchange_cost[0] > 0)?"in exchange for "+.enchant_cost[1]+"x "+getitemname(.enchant_cost[0]):"for free")+".";
mes "I can also reset an Enchantment "+ ((.enchant_reset[0] > 0)?", but I require "+.enchant_reset[1]+"x "+getitemname(.enchant_reset[0]):"for free")+".";
next;
switch(select("- Enchant Costumes:- Reset Enchantment:- Nevermind")) {
	
	case 1:
	mes .n$;
	mes "Please select the Costume you want me to enchant:";
	for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) {
		switch(.enchant_slot[.@s]) {
			case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break;
			case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break;
			case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break;
			case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break;
			case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break;
			case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break;
			case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break;
			case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break;
			case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break;
			case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break;
		}
		set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":"");
	}
	set .@c_m$,.@c_m$ + ":- Cancel";
	set .@c,select(.@c_m$);
	if(.@c >= getarraysize(.enchant_slot)) close;
	set .@part,.enchant_slot[.@c-1];
	next;
	mes .n$;
	if(getequipid(.@part) == -1) {
		mes "It looks like you don't have any costume equipped on there.";
		close;
	}
	set .@hg,getequipid(.@part); // Saving Item ID
	set .@ref,getequiprefinerycnt(.@part); 	// Saving Refine Level, if there is one
	set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1
	mes "Selected Costume: "+getitemname(getequipid(.@part));
	if(getequipcardid(.@part,3) != 0) {
		mes "But it looks like you already have an enchantment in this costume.";
		close;
	}
	mes "Now please select the Enchantment:";
	next;
	set .@rune,rand(0, getarraysize(.enchant_id) - 1);
	mes .n$;
	mes "Selected Enchantment: "+getitemname(.enchant_id[.@rune]);
	if(.enchant_cost[0] > 0 && countitem(.enchant_cost[0]) < .enchant_cost[1]) {
		mes "But it looks like you don't have enough "+getitemname(.enchant_cost[0])+"!";
		close;
	}
	mes "Proceed?";
	if(select("- Yes:- No") - 1) close;
	next;
	if(.enchant_cost[0] > 0)
		delitem .enchant_cost[0],.enchant_cost[1];
	delequip .@part;
	getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,.enchant_id[.@rune];
	equip .@hg;
	mes .n$;
	mes "The enchantment was a success.";
	mes "See ya next time.";
	enable_items;
	break;
		
	case 2:
	mes .n$;
	mes "Please select the Costume you want me to reset the enchantment!";
	for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) {
		switch(.enchant_slot[.@s]) {
			case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break;
			case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break;
			case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break;
			case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break;
			case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break;
			case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break;
			case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break;
			case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break;
			case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break;
			case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break;
		}
		set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":"");
	}
	set .@c_m$,.@c_m$ + ":- Cancel";
	set .@c,select(.@c_m$);
	if(.@c >= getarraysize(.enchant_slot)) close;
	set .@part,.enchant_slot[.@c-1];
	next;
	mes .n$;
	if(getequipcardid(.@part,3) == 0) {
		mes "It looks like you don't have any enchantment in this costume.";
		close;
	}
	set .@hg,getequipid(.@part); // Saving Item ID
	set .@ref,getequiprefinerycnt(.@part); 	// Saving Refine Level, if there is one
	set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1
	mes "Selected Costume: "+getitemname(getequipid(.@part));
	if(.enchant_reset[0] > 0 && countitem(.enchant_reset[0]) < .enchant_reset[1]) {
		mes "But you don't have the required Items to reset the enchantment!";
		close;
	}
	mes "Proceed?";
	if(select("- Yes:- No") - 1) close;
	next;
	if(.enchant_reset[0]) 
		delitem .enchant_reset[0],.enchant_reset[1];
	delequip .@part;
	getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,0;
	equip .@hg;
	mes .n$;
	mes "The enchantment has been reseted.";
	mes "See ya next time.";
	break;
	
	case 3: break;
}
end;

OnInit:
set .n$,"[Costume Enchanter]";
// Enter here every Costume Slot, which you want to be enchantable
// Valid Entries:
// - EQI_COSTUME_HEAD_TOP
// - EQI_COSTUME_HEAD_MID
// - EQI_COSTUME_HEAD_LOW
// - EQI_COSTUME_GARMENT
// - EQI_SHADOW_ARMOR
// - EQI_SHADOW_WEAPON
// - EQI_SHADOW_SHIELD
// - EQI_SHADOW_SHOES
// - EQI_SHADOW_ACC_R
// - EQI_SHADOW_ACC_L
setarray .enchant_slot[0],EQI_COSTUME_HEAD_TOP,EQI_COSTUME_HEAD_MID,EQI_COSTUME_HEAD_LOW;
// Enchantment ID's
setarray .enchant_id[0],6636,6637,6638,6639,6640,6641;
// Price for enchanting:
// To disable the price, put 0 as values
setarray .enchant_cost[0],501,10; // Item ID,Amount
// Price for reseting:
// To disable the price, put 0 as values
setarray .enchant_reset[0],501,10; // Item ID,Amount
end;
}

If you can be more specific of what do you need maybe i can help you further. If you dont know how to say it you can use the help of google translate

Share this post


Link to post
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.   Restore formatting

  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.

Loading...

×
×
  • Create New...

Important Information

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