Jump to content
  • 0

How to make this enchanter asking for cataltyst or fee?


Rizz

Question


  • Group:  Members
  • Topic Count:  31
  • Topics Per Day:  0.01
  • Content Count:  72
  • Reputation:   0
  • Joined:  07/29/17
  • Last Seen:  

Hello, I found this script from one of our contributor. However, due to the lack of my ability, I could not reproduce the script like making the NPC asking for catalyst or fee/zeny before giving ramdom opt enchantment. So would you mind helping me making one?

//===== rAthena Script =======================================
//= Vicious Mind Weapon Random Option Enchanter
//===== By ===================================================
//= llchrisll
//===== Version ==============================================
//= 1.0 - Initial Version
//===== Tested With ==========================================
//= rAthena 03/26/2018 Revision
//= GIT Hash: 333f0dddc8353663eacba0423751988c9bc38e34
//===== Description ==========================================
//= This script handles the random options for the Vicious Mind Weapons
//  until rAthena changes the way the Random Option Database is handled.
//= Instead of defining every possible random option for each option slot
//  this enchanter will be used.
//===== Comments =============================================

//===== Credits ==============================================
//= NovaRo for their Information regarding the possible Options.
//============================================================
prontera,158,179,4	script	Disciple of Hades	101,{

mes .n$;
mes "Hey.., "+strcharinfo(0)+"!";
mes "You look strong, I can make you stronger";
mes "I am the lost gods disciples, he taught me many things.";
mes "Including art of enchanting.";
if(select("- Enchant Ancient Weapons:- Nevermind") - 1) close;
next;
mes .n$;
mes "To apply an random properity to an Ancient weapon, you need to have it equipped in your right hand.";
mes "Also be warned, that what you get and with which value is completely random!";
next;
mes .n$;
mes "First, let's see what you have equipped...:";
next;
set .@part,EQI_HAND_R; // Save equip location
mes .n$;
if(!getequipid(.@part)) {
	mes "You don't have anything equipped!";
	close;
}
switch(getequipid(.@part)) {
	case 1268: // Wild Beast Claw
	case 1236: // Sucsamad
	case 1363: // Bloody Axe
	case 1141: // Immaterial Sword
	case 1175: // Atlas Weapon
	case 1474: // Gae Bolg
	case 1559: // Legacy of Dragon
	case 1815: // Garm Claw
	set .@Type$,"P";
	break;
	
	case 2005: // Dea Staff
	case 1631: // Holy Stick
	case 1541: // Nemesis
	set .@Type$,"M";
	break;
	
	case 1223: // Fortune Sword
	case 1420: // Long Horn
	case 1722: // Ballista
	case 1919: // Bass Guitar
	case 13170: // Lever Action Rifle
	case 1970: // Queen's Whip
	set .@Type$,"R";
	break;
	
	default:
	mes "I don't recognize this weapon, please be sure to equip one and come back again.";
	close;
}
mes "Equipped Weapon: "+getitemname(getequipid(.@part));
set .@ropt1,getequiprandomoption(.@part,0,ROA_ID);
set .@ropt2,getequiprandomoption(.@part,1,ROA_ID);
set .@ropt3,getequiprandomoption(.@part,2,ROA_ID);
if(.@ropt1 || .@ropt2 || .@ropt2) {
	mes " ";
	mes "I'm sorry, but this weapon already has bonus properities applied.";
	mes "Please choose a different one.";
	close;
}
next;
// Randomize each Option Slot:
// Random Option 1
set .@Opt1,rand(getarraysize(getd(".RandOpt1_"+.@Type$)));
if(getd(".RandOpt1_"+.@Type$+"_MinV["+.@Opt1+"]") != getd(".RandOpt1_"+.@Type$+"_MaxV["+.@Opt1+"]"))
	set .@Opt1_V,rand(getd(".RandOpt1_"+.@Type$+"_MinV["+.@Opt1+"]"),getd(".RandOpt1_"+.@Type$+"_MaxV["+.@Opt1+"]"));
else 
	set .@Opt1_V,getd(".RandOpt1_"+.@Type$+"_MaxV["+.@Opt1+"]");
	
// Random Option 2
set .@Opt2,rand(getarraysize(getd(".RandOpt2_"+.@Type$)));
if(getd(".RandOpt2_"+.@Type$+"_MinV["+.@Opt2+"]") != getd(".RandOpt2_"+.@Type$+"_MaxV["+.@Opt2+"]"))
	set .@Opt2_V,rand(getd(".RandOpt2_"+.@Type$+"_MinV["+.@Opt2+"]"),getd(".RandOpt2_"+.@Type$+"_MaxV["+.@Opt2+"]"));
else 
	set .@Opt2_V,getd(".RandOpt2_"+.@Type$+"_MaxV["+.@Opt2+"]");
	
// Random Option 3
set .@Opt3,rand(getarraysize(getd(".RandOpt3_"+.@Type$)));
if(getd(".RandOpt3_"+.@Type$+"_MinV["+.@Opt3+"]") != getd(".RandOpt3_"+.@Type$+"_MaxV["+.@Opt3+"]"))
	set .@Opt3_V,rand(getd(".RandOpt3_"+.@Type$+"_MinV["+.@Opt3+"]"),getd(".RandOpt3_"+.@Type$+"_MaxV["+.@Opt3+"]"));
else 
	set .@Opt3_V,getd(".RandOpt3_"+.@Type$+"_MaxV["+.@Opt3+"]");

// Apply options to equipped weapon
setrandomoption(.@part,0,getd(".RandOpt1_"+.@Type$+"["+.@Opt1+"]"),.@Opt1_V,0);
setrandomoption(.@part,1,getd(".RandOpt2_"+.@Type$+"["+.@Opt2+"]"),.@Opt2_V,0);
setrandomoption(.@part,2,getd(".RandOpt3_"+.@Type$+"["+.@Opt3+"]"),.@Opt3_V,0);
mes .n$;
mes "Random bonus properities have been applied on your \""+getitemname(getequipid(.@part))+"\" successfully.";
end;

OnInit:
set .n$,"[Vicious Enchanter]";
// ========= Random Option Slot 1 ========= 
// - Physical
setarray .RandOpt1_P[0],RDMOPT_HP_DRAIN, // HP Drain
					    RDMOPT_SP_DRAIN,	// SP Drain
					    RDMOPT_VAR_HPACCELERATION,	// HP Regen
					    RDMOPT_VAR_SPACCELERATION,	// SP Regen
					    RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,	// Perfect Dodge
					    RDMOPT_VAR_AVOIDSUCCESSVALUE,	// Dodge
					    RDMOPT_DEC_SP_CONSUMPTION,// Delay SP Cons
					    RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,	 	// Damage to Neutral Element
					    RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,	 	// Damage to Earth Element
					    RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,		 	// Damage to Fire Element
					    RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,	 	// Damage to Water Element
					    RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,		 	// Damage to Wind Element
					    RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,	 	// Damage to Poison Element
					    RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,	 	// Damage to Holy Element
					    RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,	 	// Damage to Dark Element
					    RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,	// Damage to Ghost Element
					    RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,		// Damage to Undead Element
					    RDMOPT_HEAL_MODIFY_PERCENT, // Heal Power %
					    RDMOPT_WEAPON_INDESTRUCTIBLE, // Weapon Instructible
					    RDMOPT_DAMAGE_SIZE_PERFECT; // Size will be ignored
					    // ToDo: // Recover 1000 of Damage lost from size penalties
						
// - Magical
setarray .RandOpt1_M[0],RDMOPT_HP_DRAIN, // HP Drain
					    RDMOPT_SP_DRAIN,	// SP Drain
					    RDMOPT_VAR_HPACCELERATION,	// HP Regen
					    RDMOPT_VAR_SPACCELERATION,	// SP Regen
					    RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,	// Perfect Dodge
					    RDMOPT_VAR_AVOIDSUCCESSVALUE,	// Dodge
					    RDMOPT_DEC_SP_CONSUMPTION,// Delay SP Cons
					    RDMOPT_MDAMAGE_PROPERTY_NOTHING_TARGET,	 	// Damage to Neutral Element
					    RDMOPT_MDAMAGE_PROPERTY_GROUND_TARGET,	 	// Damage to Earth Element
					    RDMOPT_MDAMAGE_PROPERTY_FIRE_TARGET,	 	// Damage to Fire Element
					    RDMOPT_MDAMAGE_PROPERTY_WATER_TARGET,	 	// Damage to Water Element
					    RDMOPT_MDAMAGE_PROPERTY_WIND_TARGET,	 	// Damage to Wind Element
					    RDMOPT_MDAMAGE_PROPERTY_POISON_TARGET,		// Damage to Poison Element
					    RDMOPT_MDAMAGE_PROPERTY_SAINT_TARGET,		// Damage to Holy Element
					    RDMOPT_MDAMAGE_PROPERTY_DARKNESS_TARGET,	// Damage to Dark Element
					    RDMOPT_MDAMAGE_PROPERTY_TELEKINESIS_TARGET,	// Damage to Ghost Element
					    RDMOPT_MDAMAGE_PROPERTY_UNDEAD_TARGET,	 	// Damage to Undead Element
					    RDMOPT_HEAL_MODIFY_PERCENT, // Heal Power %
					    RDMOPT_WEAPON_INDESTRUCTIBLE, // Weapon Instructible
					    RDMOPT_DAMAGE_SIZE_PERFECT; // Size will be ignored
					    // ToDo: // Recover 1000 of Damage lost from size penalties
					  
// - Ranged
setarray .RandOpt1_R[0],RDMOPT_HP_DRAIN, // HP Drain
					    RDMOPT_SP_DRAIN,	// SP Drain
					    RDMOPT_VAR_HPACCELERATION,	// HP Regen
					    RDMOPT_VAR_SPACCELERATION,	// SP Regen
					    RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,	// Perfect Dodge
					    RDMOPT_VAR_AVOIDSUCCESSVALUE,	// Dodge
					    RDMOPT_DEC_SP_CONSUMPTION,// Delay SP Cons
						RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,	 	// Damage to Neutral Element
					    RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,		// Damage to Earth Element
					    RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,		 	// Damage to Fire Element
					    RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,		// Damage to Water Element
					    RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,		 	// Damage to Wind Element
					    RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,		// Damage to Poison Element
					    RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,		// Damage to Holy Element
					    RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,	 	// Damage to Dark Element
					    RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,	// Damage to Ghost Element
					    RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,		// Damage to Undead Element
					    RDMOPT_HEAL_MODIFY_PERCENT, // Heal Power %
					    RDMOPT_WEAPON_INDESTRUCTIBLE, // Weapon Instructible
					    RDMOPT_DAMAGE_SIZE_PERFECT; // Size will be ignored
					    // ToDo: // Recover 1000 of Damage lost from size penalties

// - Values
// Note: When MinV and MaxV are the same, rand() will not be used!
setarray .RandOpt1_P_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,0;
setarray .RandOpt1_P_MaxV[0],3,3,20,20,5,5,20,20,20,20,20,20,20,20,20,20,20,20,0,0;
setarray .RandOpt1_M_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,0;
setarray .RandOpt1_M_MaxV[0],3,3,20,20,5,5,20,20,20,20,20,20,20,20,20,20,20,20,0,0;
setarray .RandOpt1_R_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,0;
setarray .RandOpt1_R_MaxV[0],3,3,20,20,5,5,20,20,20,20,20,20,20,20,20,20,20,20,0,0;

// ========= Random Option Slot 2 ========= 
// - Physical
setarray .RandOpt2_P[0],RDMOPT_RACE_DAMAGE_NOTHING,	// Damage to Neutral Race
					    RDMOPT_RACE_DAMAGE_UNDEAD,	// Damage to Undead Race
					    RDMOPT_RACE_DAMAGE_ANIMAL,	// Damage to Animal Race
					    RDMOPT_RACE_DAMAGE_PLANT,	// Damage to Plant Race
					    RDMOPT_RACE_DAMAGE_INSECT,	// Damage to Insect Race
					    RDMOPT_RACE_DAMAGE_FISHS,	// Damage to Fish Race
					    RDMOPT_RACE_DAMAGE_DEVIL,	// Damage to Demon Race
					    RDMOPT_RACE_DAMAGE_HUMAN,	// Damage to Human Race
					    RDMOPT_RACE_DAMAGE_ANGEL,	// Damage to Angel Race
					    RDMOPT_RACE_DAMAGE_DRAGON,	// Damage to Dragon Race
						RDMOPT_RACE_IGNORE_DEF_PERCENT_NOTHING,	// Bypass DEF of Neutral Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_UNDEAD,	// Bypass DEF of Undead Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_ANIMAL,	// Bypass DEF of Animal Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_PLANT,	// Bypass DEF of Plant Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_INSECT,	// Bypass DEF of Insect Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_FISHS,	// Bypass DEF of Fish Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_DEVIL,	// Bypass DEF of Demon Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_HUMAN,	// Bypass DEF of Human Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_ANGEL,	// Bypass DEF of Angel Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_DRAGON,	// Bypass DEF of Dragon Race
					    RDMOPT_CLASS_DAMAGE_NORMAL_TARGET,	// Bypass DEF of Normal Class Enemies
					    RDMOPT_CLASS_DAMAGE_BOSS_TARGET; // Damage to Boss monsters
						
// - Magical
setarray .RandOpt2_M[0],RDMOPT_RACE_MDAMAGE_NOTHING,// Damage to Neutral Race
					    RDMOPT_RACE_MDAMAGE_UNDEAD,	// Damage to Undead Race
					    RDMOPT_RACE_MDAMAGE_ANIMAL,	// Damage to Animal Race
					    RDMOPT_RACE_MDAMAGE_PLANT,	// Damage to Plant Race
					    RDMOPT_RACE_MDAMAGE_INSECT,	// Damage to Insect Race
					    RDMOPT_RACE_MDAMAGE_FISHS,	// Damage to Fish Race
					    RDMOPT_RACE_MDAMAGE_DEVIL,	// Damage to Devil Race
					    RDMOPT_RACE_MDAMAGE_HUMAN,	// Damage to Human Race
					    RDMOPT_RACE_MDAMAGE_ANGEL,	// Damage to Angel Race
					    RDMOPT_RACE_MDAMAGE_DRAGON,	// Damage to Dragon Race
						RDMOPT_RACE_IGNORE_MDEF_PERCENT_NOTHING,	// Bypass MDEF of Neutral Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_UNDEAD,	// Bypass MDEF of Undead Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_ANIMAL,	// Bypass MDEF of Animal Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_PLANT,	// Bypass MDEF of Plant Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_INSECT,	// Bypass MDEF of Insect Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_FISHS,	// Bypass MDEF of Fish Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_DEVIL,	// Bypass MDEF of Demon Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_HUMAN,	// Bypass MDEF of Human Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_ANGEL,	// Bypass MDEF of Angel Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_DRAGON,	// Bypass MDEF of Dragon Race
						RDMOPT_CLASS_MDAMAGE_NORMAL,	// Bypass MDEF of Normal Class Enemies
					    RDMOPT_CLASS_MDAMAGE_BOSS; // Damage to Boss monsters
					  
// - Ranged
setarray .RandOpt2_R[0],RDMOPT_RACE_DAMAGE_NOTHING,	// Damage to Neutral Race
					    RDMOPT_RACE_DAMAGE_UNDEAD,	// Damage to Undead Race
					    RDMOPT_RACE_DAMAGE_ANIMAL,	// Damage to Animal Race
					    RDMOPT_RACE_DAMAGE_PLANT,	// Damage to Plant Race
					    RDMOPT_RACE_DAMAGE_INSECT,	// Damage to Insect Race
					    RDMOPT_RACE_DAMAGE_FISHS,	// Damage to Fish Race
					    RDMOPT_RACE_DAMAGE_DEVIL,	// Damage to Demon Race
					    RDMOPT_RACE_DAMAGE_HUMAN,	// Damage to Human Race
					    RDMOPT_RACE_DAMAGE_ANGEL,	// Damage to Angel Race
					    RDMOPT_RACE_DAMAGE_DRAGON,	// Damage to Dragon Race
						RDMOPT_RACE_IGNORE_DEF_PERCENT_NOTHING,	// Bypass DEF of Neutral Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_UNDEAD,	// Bypass DEF of Undead Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_ANIMAL,	// Bypass DEF of Animal Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_PLANT,	// Bypass DEF of Plant Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_INSECT,	// Bypass DEF of Insect Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_FISHS,	// Bypass DEF of Fish Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_DEVIL,	// Bypass DEF of Demon Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_HUMAN,	// Bypass DEF of Human Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_ANGEL,	// Bypass DEF of Angel Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_DRAGON,	// Bypass DEF of Dragon Race
					    RDMOPT_CLASS_DAMAGE_NORMAL_TARGET,	// Bypass DEF of Normal Class Enemies
					    RDMOPT_CLASS_DAMAGE_BOSS_TARGET; // Damage to Boss monsters

// - Values
// Note: When MinV and MaxV are the same, rand() will not be used!
setarray .RandOpt2_P_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,16,20;
setarray .RandOpt2_P_MaxV[0],20,20,20,20,20,20,20,20,20,20,30,30,30,30,30,30,30,30,30,30,25,20;
setarray .RandOpt2_M_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,16,20;
setarray .RandOpt2_M_MaxV[0],20,20,20,20,20,20,20,20,20,20,30,30,30,30,30,30,30,30,30,30,25,20;
setarray .RandOpt2_R_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,16,20;
setarray .RandOpt2_R_MaxV[0],20,20,20,20,20,20,20,20,20,20,30,30,30,30,30,30,30,30,30,30,25,20;

// ========= Random Option Slot 3 ========= 
// - Physical
setarray .RandOpt3_P[0],RDMOPT_VAR_STRAMOUNT, // STR
					    RDMOPT_VAR_AGIAMOUNT, // AGI
					    RDMOPT_VAR_VITAMOUNT, // VIT
					    RDMOPT_VAR_INTAMOUNT, // INT
					    RDMOPT_VAR_DEXAMOUNT, // DEX
					    RDMOPT_VAR_LUKAMOUNT, // LUK
					    RDMOPT_VAR_ATTPOWER,  // ATK
					    RDMOPT_VAR_CRITICALSUCCESSVALUE, // Crit Chance
					    RDMOPT_DAMAGE_CRI_TARGET,	// Crit Damage %
					    RDMOPT_VAR_PLUSASPDPERCENT,	// ASPD %
						RDMOPT_DEC_SPELL_CAST_TIME,	// Variable Cast Time -%
					    RDMOPT_DEC_SPELL_DELAY_TIME,// Cast Delay -%
					    RDMOPT_DEC_SP_CONSUMPTION;	// Skill SP Cost -%
						
// - Magical
setarray .RandOpt3_M[0],RDMOPT_VAR_STRAMOUNT, // STR
					    RDMOPT_VAR_AGIAMOUNT, // AGI
					    RDMOPT_VAR_VITAMOUNT, // VIT
					    RDMOPT_VAR_INTAMOUNT, // INT
					    RDMOPT_VAR_DEXAMOUNT, // DEX
					    RDMOPT_VAR_LUKAMOUNT, // LUK
					    RDMOPT_VAR_ATTMPOWER, // MATK
						RDMOPT_DEC_SPELL_CAST_TIME,	// Variable Cast Time -%
					    RDMOPT_DEC_SPELL_DELAY_TIME,// Cast Delay -%
					    RDMOPT_DEC_SP_CONSUMPTION;	// Skill SP Cost -%
					  
// - Ranged
setarray .RandOpt3_R[0],RDMOPT_VAR_STRAMOUNT, // STR
					    RDMOPT_VAR_AGIAMOUNT, // AGI
					    RDMOPT_VAR_VITAMOUNT, // VIT
					    RDMOPT_VAR_INTAMOUNT, // INT
					    RDMOPT_VAR_DEXAMOUNT, // DEX
					    RDMOPT_VAR_LUKAMOUNT, // LUK
					    RDMOPT_VAR_ATTPOWER,  // ATK
						RDMOPT_VAR_ATTMPOWER, // MATK
					    RDMOPT_VAR_CRITICALSUCCESSVALUE, // Crit Chance
					    RDMOPT_DAMAGE_CRI_TARGET,	// Crit Damage %
					    RDMOPT_VAR_PLUSASPDPERCENT,	// ASPD %
						RDMOPT_DEC_SPELL_CAST_TIME,	// Variable Cast Time -%
					    RDMOPT_DEC_SPELL_DELAY_TIME,// Cast Delay -%
					    RDMOPT_DEC_SP_CONSUMPTION,	// Skill SP Cost -%
						RDMOPT_RANGE_ATTACK_DAMAGE_TARGET; // Ranged Damage +%

// - Values
// Note: When MinV and MaxV are the same, rand() will not be used!
setarray .RandOpt3_P_MinV[0],1,1,1,1,1,1,4,10,1,1,1,1,1;
setarray .RandOpt3_P_MaxV[0],10,10,10,10,10,10,25,19,20,5,5,5,5;
setarray .RandOpt3_M_MinV[0],1,1,1,1,1,1,4,1,1,1;
setarray .RandOpt3_M_MaxV[0],10,10,10,10,10,10,30,10,10,5;
setarray .RandOpt3_R_MinV[0],1,1,1,1,1,1,4,4,10,1,1,1,5,5,1;
setarray .RandOpt3_R_MaxV[0],10,10,10,10,10,10,25,20,19,20,5,20,20,5,8;
end;
}

 

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  54
  • Reputation:   2
  • Joined:  10/04/19
  • Last Seen:  

I have an Custom Enchantment Script. Easy to modified in just a seconds.
My first made script. ❤️ DM if you want

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  31
  • Topics Per Day:  0.01
  • Content Count:  72
  • Reputation:   0
  • Joined:  07/29/17
  • Last Seen:  

On 10/19/2019 at 3:23 PM, DevKira said:

I have an Custom Enchantment Script. Easy to modified in just a seconds.
My first made script. ❤️ DM if you want

Thanks, but is it random option enchantment or the regular one?

I found how to make it anyway, I tried to make a simple improvement for this script.

//===== rAthena Script =======================================
//= Vicious Mind Weapon Random Option Enchanter
//===== By ===================================================
//= llchrisll
//===== Version ==============================================
//= 1.0 - Initial Version
//===== Tested With ==========================================
//= rAthena 03/26/2018 Revision
//= GIT Hash: 333f0dddc8353663eacba0423751988c9bc38e34
//===== Description ==========================================
//= This script handles the random options for the Vicious Mind Weapons
//  until rAthena changes the way the Random Option Database is handled.
//= Instead of defining every possible random option for each option slot
//  this enchanter will be used.
//===== Comments =============================================

//===== Credits ==============================================
//= NovaRo for their Information regarding the possible Options.
//============================================================
prontera,158,179,4	script	Disciple of Hades	101,{

mes .n$;
mes "Hey.., "+strcharinfo(0)+"!";
mes "You look strong, I can make you stronger";
mes "I am the lost gods disciples, he taught me many things.";
mes "Including art of enchanting.";
if(select("- Enchant Ancient Weapons:- Nevermind") - 1) close;
next;
mes .n$;
mes "To apply an random properity to an Ancient weapon, you need to have ^0000ffJotun Eye^000000.";
mes "Also be warned, that what you get and with which value is completely random!";
next;
mes "Please remember remove the cards in the weapon before enchanting or it might be lost.";
menu "Okay I have it",-;
next;
mes "1 ^0000ffJotun Eye^000000.";
if(countitem(607) < 1 ) goto Lne; // testing used Ygg berry -  change the catalyst here
next;
mes .n$;
mes "First, let's see what you have equipped...:";
next;
set .@part,EQI_HAND_R; // Save equip location
mes .n$;
if(!getequipid(.@part)) {
	mes "You don't have anything equipped!";
	close;
Lne:
mes "Are you trying to fool me!?";
close;
}
switch(getequipid(.@part)) {
	case 1268: // Wild Beast Claw
	case 1236: // Sucsamad
	case 1363: // Bloody Axe
	case 1141: // Immaterial Sword
	case 1175: // Atlas Weapon
	case 1474: // Gae Bolg
	case 1559: // Legacy of Dragon
	case 1815: // Garm Claw
	set .@Type$,"P";
	break;
	
	case 2005: // Dea Staff
	case 1631: // Holy Stick
	case 1541: // Nemesis
	set .@Type$,"M";
	break;
	
	case 1223: // Fortune Sword
	case 1420: // Long Horn
	case 1722: // Ballista
	case 1919: // Bass Guitar
	case 13170: // Lever Action Rifle
	case 1970: // Queen's Whip
	set .@Type$,"R";
	break;
	
	default:
	mes "I don't recognize this weapon, please be sure to equip one and come back again.";
	close;
}
mes "Equipped Weapon: "+getitemname(getequipid(.@part));
set .@ropt1,getequiprandomoption(.@part,0,ROA_ID);
set .@ropt2,getequiprandomoption(.@part,1,ROA_ID);
set .@ropt3,getequiprandomoption(.@part,2,ROA_ID);
if(.@ropt1 || .@ropt2 || .@ropt2) {
	mes " ";
	mes "I'm sorry, but this weapon already has bonus properities applied.";
	mes "Please choose a different one.";
	close;
}
next;
// Randomize each Option Slot:
// Random Option 1
set .@Opt1,rand(getarraysize(getd(".RandOpt1_"+.@Type$)));
if(getd(".RandOpt1_"+.@Type$+"_MinV["+.@Opt1+"]") != getd(".RandOpt1_"+.@Type$+"_MaxV["+.@Opt1+"]"))
	set .@Opt1_V,rand(getd(".RandOpt1_"+.@Type$+"_MinV["+.@Opt1+"]"),getd(".RandOpt1_"+.@Type$+"_MaxV["+.@Opt1+"]"));
else 
	set .@Opt1_V,getd(".RandOpt1_"+.@Type$+"_MaxV["+.@Opt1+"]");
	
// Random Option 2
set .@Opt2,rand(getarraysize(getd(".RandOpt2_"+.@Type$)));
if(getd(".RandOpt2_"+.@Type$+"_MinV["+.@Opt2+"]") != getd(".RandOpt2_"+.@Type$+"_MaxV["+.@Opt2+"]"))
	set .@Opt2_V,rand(getd(".RandOpt2_"+.@Type$+"_MinV["+.@Opt2+"]"),getd(".RandOpt2_"+.@Type$+"_MaxV["+.@Opt2+"]"));
else 
	set .@Opt2_V,getd(".RandOpt2_"+.@Type$+"_MaxV["+.@Opt2+"]");
	
// Random Option 3
set .@Opt3,rand(getarraysize(getd(".RandOpt3_"+.@Type$)));
if(getd(".RandOpt3_"+.@Type$+"_MinV["+.@Opt3+"]") != getd(".RandOpt3_"+.@Type$+"_MaxV["+.@Opt3+"]"))
	set .@Opt3_V,rand(getd(".RandOpt3_"+.@Type$+"_MinV["+.@Opt3+"]"),getd(".RandOpt3_"+.@Type$+"_MaxV["+.@Opt3+"]"));
else 
	set .@Opt3_V,getd(".RandOpt3_"+.@Type$+"_MaxV["+.@Opt3+"]");

// Apply options to equipped weapon
setrandomoption(.@part,0,getd(".RandOpt1_"+.@Type$+"["+.@Opt1+"]"),.@Opt1_V,0);
setrandomoption(.@part,1,getd(".RandOpt2_"+.@Type$+"["+.@Opt2+"]"),.@Opt2_V,0);
setrandomoption(.@part,2,getd(".RandOpt3_"+.@Type$+"["+.@Opt3+"]"),.@Opt3_V,0);
mes .n$;
delitem	607,1;
mes "Random bonus properities have been applied on your \""+getitemname(getequipid(.@part))+"\" successfully.";
end;

OnInit:
set .n$,"[Vicious Enchanter]";
// ========= Random Option Slot 1 ========= 
// - Physical
setarray .RandOpt1_P[0],RDMOPT_HP_DRAIN, // HP Drain
					    RDMOPT_SP_DRAIN,	// SP Drain
					    RDMOPT_VAR_HPACCELERATION,	// HP Regen
					    RDMOPT_VAR_SPACCELERATION,	// SP Regen
					    RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,	// Perfect Dodge
					    RDMOPT_VAR_AVOIDSUCCESSVALUE,	// Dodge
					    RDMOPT_DEC_SP_CONSUMPTION,// Delay SP Cons
					    RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,	 	// Damage to Neutral Element
					    RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,	 	// Damage to Earth Element
					    RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,		 	// Damage to Fire Element
					    RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,	 	// Damage to Water Element
					    RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,		 	// Damage to Wind Element
					    RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,	 	// Damage to Poison Element
					    RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,	 	// Damage to Holy Element
					    RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,	 	// Damage to Dark Element
					    RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,	// Damage to Ghost Element
					    RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,		// Damage to Undead Element
					    RDMOPT_HEAL_MODIFY_PERCENT, // Heal Power %
					    RDMOPT_WEAPON_INDESTRUCTIBLE, // Weapon Instructible
					    RDMOPT_DAMAGE_SIZE_PERFECT; // Size will be ignored
					    // ToDo: // Recover 1000 of Damage lost from size penalties
						
// - Magical
setarray .RandOpt1_M[0],RDMOPT_HP_DRAIN, // HP Drain
					    RDMOPT_SP_DRAIN,	// SP Drain
					    RDMOPT_VAR_HPACCELERATION,	// HP Regen
					    RDMOPT_VAR_SPACCELERATION,	// SP Regen
					    RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,	// Perfect Dodge
					    RDMOPT_VAR_AVOIDSUCCESSVALUE,	// Dodge
					    RDMOPT_DEC_SP_CONSUMPTION,// Delay SP Cons
					    RDMOPT_MDAMAGE_PROPERTY_NOTHING_TARGET,	 	// Damage to Neutral Element
					    RDMOPT_MDAMAGE_PROPERTY_GROUND_TARGET,	 	// Damage to Earth Element
					    RDMOPT_MDAMAGE_PROPERTY_FIRE_TARGET,	 	// Damage to Fire Element
					    RDMOPT_MDAMAGE_PROPERTY_WATER_TARGET,	 	// Damage to Water Element
					    RDMOPT_MDAMAGE_PROPERTY_WIND_TARGET,	 	// Damage to Wind Element
					    RDMOPT_MDAMAGE_PROPERTY_POISON_TARGET,		// Damage to Poison Element
					    RDMOPT_MDAMAGE_PROPERTY_SAINT_TARGET,		// Damage to Holy Element
					    RDMOPT_MDAMAGE_PROPERTY_DARKNESS_TARGET,	// Damage to Dark Element
					    RDMOPT_MDAMAGE_PROPERTY_TELEKINESIS_TARGET,	// Damage to Ghost Element
					    RDMOPT_MDAMAGE_PROPERTY_UNDEAD_TARGET,	 	// Damage to Undead Element
					    RDMOPT_HEAL_MODIFY_PERCENT, // Heal Power %
					    RDMOPT_WEAPON_INDESTRUCTIBLE, // Weapon Instructible
					    RDMOPT_DAMAGE_SIZE_PERFECT; // Size will be ignored
					    // ToDo: // Recover 1000 of Damage lost from size penalties
					  
// - Ranged
setarray .RandOpt1_R[0],RDMOPT_HP_DRAIN, // HP Drain
					    RDMOPT_SP_DRAIN,	// SP Drain
					    RDMOPT_VAR_HPACCELERATION,	// HP Regen
					    RDMOPT_VAR_SPACCELERATION,	// SP Regen
					    RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,	// Perfect Dodge
					    RDMOPT_VAR_AVOIDSUCCESSVALUE,	// Dodge
					    RDMOPT_DEC_SP_CONSUMPTION,// Delay SP Cons
						RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,	 	// Damage to Neutral Element
					    RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,		// Damage to Earth Element
					    RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,		 	// Damage to Fire Element
					    RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,		// Damage to Water Element
					    RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,		 	// Damage to Wind Element
					    RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,		// Damage to Poison Element
					    RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,		// Damage to Holy Element
					    RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,	 	// Damage to Dark Element
					    RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,	// Damage to Ghost Element
					    RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,		// Damage to Undead Element
					    RDMOPT_HEAL_MODIFY_PERCENT, // Heal Power %
					    RDMOPT_WEAPON_INDESTRUCTIBLE, // Weapon Instructible
					    RDMOPT_DAMAGE_SIZE_PERFECT; // Size will be ignored
					    // ToDo: // Recover 1000 of Damage lost from size penalties

// - Values
// Note: When MinV and MaxV are the same, rand() will not be used!
setarray .RandOpt1_P_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,0;
setarray .RandOpt1_P_MaxV[0],3,3,20,20,5,5,20,20,20,20,20,20,20,20,20,20,20,20,0,0;
setarray .RandOpt1_M_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,0;
setarray .RandOpt1_M_MaxV[0],3,3,20,20,5,5,20,20,20,20,20,20,20,20,20,20,20,20,0,0;
setarray .RandOpt1_R_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,0,0;
setarray .RandOpt1_R_MaxV[0],3,3,20,20,5,5,20,20,20,20,20,20,20,20,20,20,20,20,0,0;

// ========= Random Option Slot 2 ========= 
// - Physical
setarray .RandOpt2_P[0],RDMOPT_RACE_DAMAGE_NOTHING,	// Damage to Neutral Race
					    RDMOPT_RACE_DAMAGE_UNDEAD,	// Damage to Undead Race
					    RDMOPT_RACE_DAMAGE_ANIMAL,	// Damage to Animal Race
					    RDMOPT_RACE_DAMAGE_PLANT,	// Damage to Plant Race
					    RDMOPT_RACE_DAMAGE_INSECT,	// Damage to Insect Race
					    RDMOPT_RACE_DAMAGE_FISHS,	// Damage to Fish Race
					    RDMOPT_RACE_DAMAGE_DEVIL,	// Damage to Demon Race
					    RDMOPT_RACE_DAMAGE_HUMAN,	// Damage to Human Race
					    RDMOPT_RACE_DAMAGE_ANGEL,	// Damage to Angel Race
					    RDMOPT_RACE_DAMAGE_DRAGON,	// Damage to Dragon Race
						RDMOPT_RACE_IGNORE_DEF_PERCENT_NOTHING,	// Bypass DEF of Neutral Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_UNDEAD,	// Bypass DEF of Undead Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_ANIMAL,	// Bypass DEF of Animal Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_PLANT,	// Bypass DEF of Plant Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_INSECT,	// Bypass DEF of Insect Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_FISHS,	// Bypass DEF of Fish Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_DEVIL,	// Bypass DEF of Demon Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_HUMAN,	// Bypass DEF of Human Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_ANGEL,	// Bypass DEF of Angel Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_DRAGON,	// Bypass DEF of Dragon Race
					    RDMOPT_CLASS_DAMAGE_NORMAL_TARGET,	// Bypass DEF of Normal Class Enemies
					    RDMOPT_CLASS_DAMAGE_BOSS_TARGET; // Damage to Boss monsters
						
// - Magical
setarray .RandOpt2_M[0],RDMOPT_RACE_MDAMAGE_NOTHING,// Damage to Neutral Race
					    RDMOPT_RACE_MDAMAGE_UNDEAD,	// Damage to Undead Race
					    RDMOPT_RACE_MDAMAGE_ANIMAL,	// Damage to Animal Race
					    RDMOPT_RACE_MDAMAGE_PLANT,	// Damage to Plant Race
					    RDMOPT_RACE_MDAMAGE_INSECT,	// Damage to Insect Race
					    RDMOPT_RACE_MDAMAGE_FISHS,	// Damage to Fish Race
					    RDMOPT_RACE_MDAMAGE_DEVIL,	// Damage to Devil Race
					    RDMOPT_RACE_MDAMAGE_HUMAN,	// Damage to Human Race
					    RDMOPT_RACE_MDAMAGE_ANGEL,	// Damage to Angel Race
					    RDMOPT_RACE_MDAMAGE_DRAGON,	// Damage to Dragon Race
						RDMOPT_RACE_IGNORE_MDEF_PERCENT_NOTHING,	// Bypass MDEF of Neutral Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_UNDEAD,	// Bypass MDEF of Undead Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_ANIMAL,	// Bypass MDEF of Animal Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_PLANT,	// Bypass MDEF of Plant Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_INSECT,	// Bypass MDEF of Insect Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_FISHS,	// Bypass MDEF of Fish Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_DEVIL,	// Bypass MDEF of Demon Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_HUMAN,	// Bypass MDEF of Human Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_ANGEL,	// Bypass MDEF of Angel Race
					    RDMOPT_RACE_IGNORE_MDEF_PERCENT_DRAGON,	// Bypass MDEF of Dragon Race
						RDMOPT_CLASS_MDAMAGE_NORMAL,	// Bypass MDEF of Normal Class Enemies
					    RDMOPT_CLASS_MDAMAGE_BOSS; // Damage to Boss monsters
					  
// - Ranged
setarray .RandOpt2_R[0],RDMOPT_RACE_DAMAGE_NOTHING,	// Damage to Neutral Race
					    RDMOPT_RACE_DAMAGE_UNDEAD,	// Damage to Undead Race
					    RDMOPT_RACE_DAMAGE_ANIMAL,	// Damage to Animal Race
					    RDMOPT_RACE_DAMAGE_PLANT,	// Damage to Plant Race
					    RDMOPT_RACE_DAMAGE_INSECT,	// Damage to Insect Race
					    RDMOPT_RACE_DAMAGE_FISHS,	// Damage to Fish Race
					    RDMOPT_RACE_DAMAGE_DEVIL,	// Damage to Demon Race
					    RDMOPT_RACE_DAMAGE_HUMAN,	// Damage to Human Race
					    RDMOPT_RACE_DAMAGE_ANGEL,	// Damage to Angel Race
					    RDMOPT_RACE_DAMAGE_DRAGON,	// Damage to Dragon Race
						RDMOPT_RACE_IGNORE_DEF_PERCENT_NOTHING,	// Bypass DEF of Neutral Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_UNDEAD,	// Bypass DEF of Undead Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_ANIMAL,	// Bypass DEF of Animal Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_PLANT,	// Bypass DEF of Plant Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_INSECT,	// Bypass DEF of Insect Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_FISHS,	// Bypass DEF of Fish Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_DEVIL,	// Bypass DEF of Demon Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_HUMAN,	// Bypass DEF of Human Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_ANGEL,	// Bypass DEF of Angel Race
					    RDMOPT_RACE_IGNORE_DEF_PERCENT_DRAGON,	// Bypass DEF of Dragon Race
					    RDMOPT_CLASS_DAMAGE_NORMAL_TARGET,	// Bypass DEF of Normal Class Enemies
					    RDMOPT_CLASS_DAMAGE_BOSS_TARGET; // Damage to Boss monsters

// - Values
// Note: When MinV and MaxV are the same, rand() will not be used!
setarray .RandOpt2_P_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,16,20;
setarray .RandOpt2_P_MaxV[0],20,20,20,20,20,20,20,20,20,20,30,30,30,30,30,30,30,30,30,30,25,20;
setarray .RandOpt2_M_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,16,20;
setarray .RandOpt2_M_MaxV[0],20,20,20,20,20,20,20,20,20,20,30,30,30,30,30,30,30,30,30,30,25,20;
setarray .RandOpt2_R_MinV[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,16,20;
setarray .RandOpt2_R_MaxV[0],20,20,20,20,20,20,20,20,20,20,30,30,30,30,30,30,30,30,30,30,25,20;

// ========= Random Option Slot 3 ========= 
// - Physical
setarray .RandOpt3_P[0],RDMOPT_VAR_STRAMOUNT, // STR
					    RDMOPT_VAR_AGIAMOUNT, // AGI
					    RDMOPT_VAR_VITAMOUNT, // VIT
					    RDMOPT_VAR_INTAMOUNT, // INT
					    RDMOPT_VAR_DEXAMOUNT, // DEX
					    RDMOPT_VAR_LUKAMOUNT, // LUK
					    RDMOPT_VAR_ATTPOWER,  // ATK
					    RDMOPT_VAR_CRITICALSUCCESSVALUE, // Crit Chance
					    RDMOPT_DAMAGE_CRI_TARGET,	// Crit Damage %
					    RDMOPT_VAR_PLUSASPDPERCENT,	// ASPD %
						RDMOPT_DEC_SPELL_CAST_TIME,	// Variable Cast Time -%
					    RDMOPT_DEC_SPELL_DELAY_TIME,// Cast Delay -%
					    RDMOPT_DEC_SP_CONSUMPTION;	// Skill SP Cost -%
						
// - Magical
setarray .RandOpt3_M[0],RDMOPT_VAR_STRAMOUNT, // STR
					    RDMOPT_VAR_AGIAMOUNT, // AGI
					    RDMOPT_VAR_VITAMOUNT, // VIT
					    RDMOPT_VAR_INTAMOUNT, // INT
					    RDMOPT_VAR_DEXAMOUNT, // DEX
					    RDMOPT_VAR_LUKAMOUNT, // LUK
					    RDMOPT_VAR_ATTMPOWER, // MATK
						RDMOPT_DEC_SPELL_CAST_TIME,	// Variable Cast Time -%
					    RDMOPT_DEC_SPELL_DELAY_TIME,// Cast Delay -%
					    RDMOPT_DEC_SP_CONSUMPTION;	// Skill SP Cost -%
					  
// - Ranged
setarray .RandOpt3_R[0],RDMOPT_VAR_STRAMOUNT, // STR
					    RDMOPT_VAR_AGIAMOUNT, // AGI
					    RDMOPT_VAR_VITAMOUNT, // VIT
					    RDMOPT_VAR_INTAMOUNT, // INT
					    RDMOPT_VAR_DEXAMOUNT, // DEX
					    RDMOPT_VAR_LUKAMOUNT, // LUK
					    RDMOPT_VAR_ATTPOWER,  // ATK
						RDMOPT_VAR_ATTMPOWER, // MATK
					    RDMOPT_VAR_CRITICALSUCCESSVALUE, // Crit Chance
					    RDMOPT_DAMAGE_CRI_TARGET,	// Crit Damage %
					    RDMOPT_VAR_PLUSASPDPERCENT,	// ASPD %
						RDMOPT_DEC_SPELL_CAST_TIME,	// Variable Cast Time -%
					    RDMOPT_DEC_SPELL_DELAY_TIME,// Cast Delay -%
					    RDMOPT_DEC_SP_CONSUMPTION,	// Skill SP Cost -%
						RDMOPT_RANGE_ATTACK_DAMAGE_TARGET; // Ranged Damage +%

// - Values
// Note: When MinV and MaxV are the same, rand() will not be used!
setarray .RandOpt3_P_MinV[0],1,1,1,1,1,1,4,10,1,1,1,1,1;
setarray .RandOpt3_P_MaxV[0],10,10,10,10,10,10,25,19,20,5,5,5,5;
setarray .RandOpt3_M_MinV[0],1,1,1,1,1,1,4,1,1,1;
setarray .RandOpt3_M_MaxV[0],10,10,10,10,10,10,30,10,10,5;
setarray .RandOpt3_R_MinV[0],1,1,1,1,1,1,4,4,10,1,1,1,5,5,1;
setarray .RandOpt3_R_MaxV[0],10,10,10,10,10,10,25,20,19,20,5,20,20,5,8;
end;
}

Thanks rathena, I learn a lot

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  8
  • Topics Per Day:  0.00
  • Content Count:  54
  • Reputation:   2
  • Joined:  10/04/19
  • Last Seen:  

18 hours ago, Rizz said:

Thanks, but is it random option enchantment or the regular one?

Its a Random Option/Stats.

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