Hi guys,
I'm using @Rizta's random option enchanter script and I can't seem to find a way to make it apply all slots of options at once.
As it is, you need to interact with the NPC 5 times to fully enchant the item. I want to know what kind of modification I need to make so the NPC applies all 5 random options at once.
Help pls
Spoiler
//===== rAthena Script =======================================
//= Random Option SurviveRO [www.survivero.com.br]
//===== By: ==================================================
//= Rizakh/Rizta
//===== Current Version: =====================================
//= 1.0 - Initial Release
//= 1.1 - Fixed erros in array
//= 1.2 - Change INT into Constants
//===== To Do ================================================
//= Translate to English for community
//= Improve script with new options
//= Optimize script
//===== Compatible With: =====================================
//= rAthena Project, Hercules, brAthena
//===== Description: =========================================
//= Atribui opcoes aleatorias aos equipamentos.
//= com o custo de X zeny/cash
//===== Credits ==============================================
//= @Keitenai - I use your Random Option Dealer as base.
//= @Stolao - Help me with lots of problems during development
//= @Secret - Remember me that i can use while XD
//= @Ninja / @Sehrentos - Point me errors that i cant see
//= @Rizta - Me for writting and "idea" i think? xD
//===== Rights ===============================================
//= This is a private/request script for a server called
//= SurviveRO, so, you DO NOT OWN this script and CAN'T
//= repost WITHOUT permission.
//= Feel Free to change values to adapt for your server.
//============================================================
prontera,100,100,4 script Neight 795,{
goto NPC;
end;
OnInit:
//==============================
// CONFIGURAÇÕES DE MOEDA
// 1 = Zeny
// 0 = Cashpoints
//==============================
set .moeda,1; // Moeda para comprar a opcao aleatoria
set .preco,0; // Preco da opcao aleatoria
setarray .irq[0],0,0; // Red Blood e Fine Grit
setarray .iqt[0],0,0; // Quantidade de cada item
//==============================
// CONFIGURAÇÕES RANDOM OPTION
//==============================
set .sobrepor,0; // Permite sobrepor encantamentos existentes ( 0 = off )
set .falha,0; // Define a chance de falha (%)
set .valmin,2; // Valor minimo a se tirar na opcao aleatoria
set .valmax,13; // Valor maximo a se tirar na opcao aleatoria
set .slotmax,4; // Maximo de slots para encantar( padrão = 0-4 )
set .espera,1; // Delay da barra de progresso em segundos
//============================
// IDS DAS RANDOM OPTIONS
// SEPARADAS POR EQUIPAMENTOS
// E SLOT (0 PARA 4 = 5 SLOTS)
//============================
// Equip Top Head Possible IDS
//============================
setarray .thd0,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_HPACCELERATION,
RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,RDMOPT_VAR_AVOIDSUCCESSVALUE,
RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE,RDMOPT_VAR_ATTMPOWER;
setarray .thd1,RDMOPT_ATTR_TOLERACE_NOTHING,RDMOPT_ATTR_TOLERACE_WATER,RDMOPT_ATTR_TOLERACE_GROUND,
RDMOPT_ATTR_TOLERACE_FIRE,RDMOPT_ATTR_TOLERACE_WIND,RDMOPT_ATTR_TOLERACE_POISON,
RDMOPT_ATTR_TOLERACE_SAINT,RDMOPT_ATTR_TOLERACE_DARKNESS,RDMOPT_ATTR_TOLERACE_TELEKINESIS,
RDMOPT_ATTR_TOLERACE_UNDEAD,RDMOPT_ATTR_TOLERACE_ALL;
setarray .thd2,RDMOPT_RANGE_ATTACK_DAMAGE_USER,RDMOPT_HEAL_VALUE,RDMOPT_HEAL_MODIFY_PERCENT,
RDMOPT_DEC_SPELL_CAST_TIME,RDMOPT_DEC_SPELL_DELAY_TIME,RDMOPT_DEC_SP_CONSUMPTION;
setarray .thd3,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_DAMAGE_PROPERTY_NOTHING_USER,RDMOPT_DAMAGE_PROPERTY_WATER_USER,RDMOPT_DAMAGE_PROPERTY_GROUND_USER,
RDMOPT_DAMAGE_PROPERTY_FIRE_USER,RDMOPT_DAMAGE_PROPERTY_WIND_USER,RDMOPT_DAMAGE_PROPERTY_POISON_USER,
RDMOPT_DAMAGE_PROPERTY_SAINT_USER,RDMOPT_DAMAGE_PROPERTY_DARKNESS_USER,RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_USER,RDMOPT_DAMAGE_PROPERTY_UNDEAD_USER;
setarray .thd4,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_MDAMAGE_PROPERTY_NOTHING_USER,RDMOPT_MDAMAGE_PROPERTY_WATER_USER,RDMOPT_MDAMAGE_PROPERTY_GROUND_USER,
RDMOPT_MDAMAGE_PROPERTY_FIRE_USER,RDMOPT_MDAMAGE_PROPERTY_WIND_USER,RDMOPT_MDAMAGE_PROPERTY_POISON_USER,
RDMOPT_MDAMAGE_PROPERTY_SAINT_USER,RDMOPT_MDAMAGE_PROPERTY_DARKNESS_USER,RDMOPT_MDAMAGE_PROPERTY_TELEKINESIS_USER,
RDMOPT_MDAMAGE_PROPERTY_UNDEAD_USER;
//=============================
// Equip Mid Head Possible IDS
//=============================
setarray .mhd0,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .mhd1,RDMOPT_RACE_TOLERACE_NOTHING,RDMOPT_RACE_TOLERACE_UNDEAD,RDMOPT_RACE_TOLERACE_ANIMAL,
RDMOPT_RACE_TOLERACE_PLANT,RDMOPT_RACE_TOLERACE_INSECT,RDMOPT_RACE_TOLERACE_FISHS,
RDMOPT_RACE_TOLERACE_DEVIL,RDMOPT_RACE_TOLERACE_HUMAN,RDMOPT_RACE_TOLERACE_ANGEL,RDMOPT_RACE_TOLERACE_DRAGON;
setarray .mhd2,RDMOPT_HEAL_VALUE,RDMOPT_HEAL_MODIFY_PERCENT,RDMOPT_DEC_SPELL_CAST_TIME,
RDMOPT_DEC_SPELL_DELAY_TIME,RDMOPT_DEC_SP_CONSUMPTION,RDMOPT_RANGE_ATTACK_DAMAGE_USER;
setarray .mhd3,RDMOPT_RACE_DAMAGE_NOTHING,RDMOPT_RACE_DAMAGE_UNDEAD,RDMOPT_RACE_DAMAGE_ANIMAL,
RDMOPT_RACE_DAMAGE_PLANT,RDMOPT_RACE_DAMAGE_INSECT,RDMOPT_RACE_DAMAGE_FISHS,
RDMOPT_RACE_DAMAGE_DEVIL,RDMOPT_RACE_DAMAGE_HUMAN,RDMOPT_RACE_DAMAGE_ANGEL,
RDMOPT_RACE_DAMAGE_DRAGON,RDMOPT_RACE_MDAMAGE_NOTHING,RDMOPT_RACE_MDAMAGE_UNDEAD,
RDMOPT_RACE_MDAMAGE_ANIMAL,RDMOPT_RACE_MDAMAGE_PLANT,RDMOPT_RACE_MDAMAGE_INSECT,
RDMOPT_RACE_MDAMAGE_FISHS,RDMOPT_RACE_MDAMAGE_DEVIL,RDMOPT_RACE_MDAMAGE_HUMAN,
RDMOPT_RACE_MDAMAGE_ANGEL,RDMOPT_RACE_MDAMAGE_DRAGON;
setarray .mhd4,RDMOPT_VAR_MAXHPPERCENT,RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,
RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,
RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_ATTPOWER,
RDMOPT_VAR_HITSUCCESSVALUE,RDMOPT_VAR_ATTMPOWER,RDMOPT_VAR_ITEMDEFPOWER,
RDMOPT_VAR_MDEFPOWER,RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,
RDMOPT_VAR_CRITICALSUCCESSVALUE;
//==============================
// Equipe Low Head Possible IDS
//==============================
setarray .lhd0,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .lhd1,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_PLUSASPD,
RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_ATTPOWER,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_ATTMPOWER,RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .lhd2,RDMOPT_DAMAGE_CRI_TARGET,RDMOPT_DAMAGE_CRI_USER,RDMOPT_RANGE_ATTACK_DAMAGE_USER,RDMOPT_HEAL_VALUE,RDMOPT_VAR_HITSUCCESSVALUE;
setarray .lhd3,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_HPACCELERATION,
RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_PLUSASPDPERCENT;
setarray .lhd4,RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,
RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,
RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,
RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET;
//==============================
// Equipe Armor Possible IDS
//==============================
setarray .arm0,RDMOPT_BODY_ATTR_NOTHING,RDMOPT_BODY_ATTR_WATER,RDMOPT_BODY_ATTR_GROUND,
RDMOPT_BODY_ATTR_FIRE,RDMOPT_BODY_ATTR_WIND,RDMOPT_BODY_ATTR_POISON,
RDMOPT_BODY_ATTR_SAINT,RDMOPT_BODY_ATTR_DARKNESS,RDMOPT_BODY_ATTR_TELEKINESIS,
RDMOPT_BODY_ATTR_UNDEAD;
setarray .arm1,RDMOPT_VAR_MAXHPPERCENT,RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,
RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER;
setarray .arm2,RDMOPT_RACE_TOLERACE_NOTHING,RDMOPT_RACE_TOLERACE_UNDEAD,RDMOPT_RACE_TOLERACE_ANIMAL,
RDMOPT_RACE_TOLERACE_PLANT,RDMOPT_RACE_TOLERACE_INSECT,RDMOPT_RACE_TOLERACE_FISHS,
RDMOPT_RACE_TOLERACE_DEVIL,RDMOPT_RACE_TOLERACE_HUMAN,RDMOPT_RACE_TOLERACE_ANGEL,
RDMOPT_RACE_TOLERACE_DRAGON,RDMOPT_RACE_MDAMAGE_NOTHING,
RDMOPT_RACE_MDAMAGE_UNDEAD,RDMOPT_RACE_MDAMAGE_ANIMAL,RDMOPT_RACE_MDAMAGE_PLANT,
RDMOPT_RACE_MDAMAGE_INSECT,RDMOPT_RACE_MDAMAGE_FISHS,RDMOPT_RACE_MDAMAGE_DEVIL,
RDMOPT_RACE_MDAMAGE_HUMAN,RDMOPT_RACE_MDAMAGE_ANGEL,RDMOPT_RACE_MDAMAGE_DRAGON;
setarray .arm3,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_VAR_MDEFPOWER,RDMOPT_VAR_ITEMDEFPOWER;
setarray .arm4,RDMOPT_BODY_INDESTRUCTIBLE,RDMOPT_RANGE_ATTACK_DAMAGE_USER,RDMOPT_DAMAGE_SIZE_SMALL_USER,
RDMOPT_DAMAGE_SIZE_MIDIUM_USER,RDMOPT_DAMAGE_SIZE_LARGE_USER,RDMOPT_DAMAGE_CRI_USER;
//==============================
// Equipe RHand Possible IDS
//==============================
setarray .rwp0,RDMOPT_WEAPON_ATTR_NOTHING,RDMOPT_WEAPON_ATTR_WATER,RDMOPT_WEAPON_ATTR_GROUND,
RDMOPT_WEAPON_ATTR_FIRE,RDMOPT_WEAPON_ATTR_WIND,RDMOPT_WEAPON_ATTR_POISON,
RDMOPT_WEAPON_ATTR_SAINT,RDMOPT_WEAPON_ATTR_DARKNESS,RDMOPT_WEAPON_ATTR_TELEKINESIS,RDMOPT_WEAPON_ATTR_UNDEAD;
setarray .rwp1,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,RDMOPT_VAR_ATTMPOWER,
RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_CRITICALSUCCESSVALUE,
RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .rwp2,RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,
RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,
RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,
RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,RDMOPT_MDAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_MDAMAGE_PROPERTY_WATER_TARGET,
RDMOPT_MDAMAGE_PROPERTY_GROUND_TARGET,RDMOPT_MDAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_MDAMAGE_PROPERTY_WIND_TARGET,
RDMOPT_MDAMAGE_PROPERTY_POISON_TARGET,RDMOPT_MDAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_MDAMAGE_PROPERTY_DARKNESS_TARGET,
RDMOPT_MDAMAGE_PROPERTY_TELEKINESIS_TARGET,RDMOPT_MDAMAGE_PROPERTY_UNDEAD_TARGET;
setarray .rwp3,RDMOPT_CLASS_DAMAGE_NORMAL_TARGET,RDMOPT_CLASS_DAMAGE_BOSS_TARGET,RDMOPT_CLASS_MDAMAGE_NORMAL,
RDMOPT_CLASS_MDAMAGE_BOSS,RDMOPT_CLASS_IGNORE_DEF_PERCENT_NORMAL,RDMOPT_CLASS_IGNORE_DEF_PERCENT_BOSS,
RDMOPT_CLASS_IGNORE_MDEF_PERCENT_NORMAL,RDMOPT_CLASS_IGNORE_MDEF_PERCENT_BOSS,RDMOPT_DAMAGE_CRI_TARGET,
RDMOPT_DAMAGE_SIZE_SMALL_TARGET,RDMOPT_DAMAGE_SIZE_MIDIUM_TARGET,RDMOPT_DAMAGE_SIZE_LARGE_TARGET;
setarray .rwp4,RDMOPT_RANGE_ATTACK_DAMAGE_TARGET,RDMOPT_HP_DRAIN,RDMOPT_SP_DRAIN,
RDMOPT_WEAPON_INDESTRUCTIBLE,RDMOPT_MDAMAGE_SIZE_SMALL_TARGET,RDMOPT_MDAMAGE_SIZE_MIDIUM_TARGET,
RDMOPT_MDAMAGE_SIZE_LARGE_TARGET,RDMOPT_RACE_CRI_PERCENT_NOTHING,RDMOPT_RACE_CRI_PERCENT_UNDEAD,
RDMOPT_RACE_CRI_PERCENT_ANIMAL,RDMOPT_RACE_CRI_PERCENT_PLANT,RDMOPT_RACE_CRI_PERCENT_INSECT,
RDMOPT_RACE_CRI_PERCENT_FISHS,RDMOPT_RACE_CRI_PERCENT_DEVIL,RDMOPT_RACE_CRI_PERCENT_HUMAN,
RDMOPT_RACE_CRI_PERCENT_ANGEL,RDMOPT_RACE_CRI_PERCENT_DRAGON;
//==============================
// Equipe LHand Possible IDS
//==============================
setarray .lwp0,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_STRAMOUNT,
RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,RDMOPT_VAR_INTAMOUNT,
RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION,
RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,RDMOPT_VAR_AVOIDSUCCESSVALUE,
RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .lwp1,RDMOPT_ATTR_TOLERACE_NOTHING,RDMOPT_ATTR_TOLERACE_WATER,RDMOPT_ATTR_TOLERACE_GROUND,
RDMOPT_ATTR_TOLERACE_FIRE,RDMOPT_ATTR_TOLERACE_WIND,RDMOPT_ATTR_TOLERACE_POISON,
RDMOPT_ATTR_TOLERACE_SAINT,RDMOPT_ATTR_TOLERACE_DARKNESS,RDMOPT_ATTR_TOLERACE_TELEKINESIS,
RDMOPT_ATTR_TOLERACE_UNDEAD,RDMOPT_ATTR_TOLERACE_ALL;
setarray .lwp2,RDMOPT_RACE_TOLERACE_NOTHING,RDMOPT_RACE_TOLERACE_UNDEAD,RDMOPT_RACE_TOLERACE_ANIMAL,
RDMOPT_RACE_TOLERACE_PLANT,RDMOPT_RACE_TOLERACE_INSECT,RDMOPT_RACE_TOLERACE_FISHS,
RDMOPT_RACE_TOLERACE_DEVIL,RDMOPT_RACE_TOLERACE_HUMAN,RDMOPT_RACE_TOLERACE_ANGEL,
RDMOPT_RACE_TOLERACE_DRAGON;
setarray .lwp3,RDMOPT_DAMAGE_SIZE_SMALL_USER,RDMOPT_DAMAGE_SIZE_MIDIUM_USER,RDMOPT_DAMAGE_SIZE_LARGE_USER,
RDMOPT_DAMAGE_CRI_USER,RDMOPT_RANGE_ATTACK_DAMAGE_USER,RDMOPT_MDAMAGE_SIZE_SMALL_USER,
RDMOPT_MDAMAGE_SIZE_MIDIUM_USER,RDMOPT_MDAMAGE_SIZE_LARGE_USER;
setarray .lwp4,RDMOPT_CLASS_DAMAGE_NORMAL_USER,RDMOPT_CLASS_DAMAGE_BOSS_USER,RDMOPT_CLASS_MDAMAGE_NORMAL,
RDMOPT_CLASS_MDAMAGE_BOSS,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION;
//==============================
// Equipe Garment Possible IDS
//==============================
setarray .gar0,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_STRAMOUNT,
RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,RDMOPT_VAR_INTAMOUNT,
RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION,
RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_PLUSASPD,
RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_ATTPOWER,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_ATTMPOWER,RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .gar1,RDMOPT_ATTR_TOLERACE_NOTHING,RDMOPT_ATTR_TOLERACE_WATER,RDMOPT_ATTR_TOLERACE_GROUND,
RDMOPT_ATTR_TOLERACE_FIRE,RDMOPT_ATTR_TOLERACE_WIND,RDMOPT_ATTR_TOLERACE_POISON,
RDMOPT_ATTR_TOLERACE_SAINT,RDMOPT_ATTR_TOLERACE_DARKNESS,RDMOPT_ATTR_TOLERACE_TELEKINESIS,
RDMOPT_ATTR_TOLERACE_UNDEAD,RDMOPT_ATTR_TOLERACE_ALL;
setarray .gar2,RDMOPT_RACE_CRI_PERCENT_NOTHING,RDMOPT_RACE_CRI_PERCENT_UNDEAD,RDMOPT_RACE_CRI_PERCENT_ANIMAL,
RDMOPT_RACE_CRI_PERCENT_PLANT,RDMOPT_RACE_CRI_PERCENT_INSECT,RDMOPT_RACE_CRI_PERCENT_FISHS,
RDMOPT_RACE_CRI_PERCENT_DEVIL,RDMOPT_RACE_CRI_PERCENT_HUMAN,RDMOPT_RACE_CRI_PERCENT_ANGEL,
RDMOPT_RACE_CRI_PERCENT_DRAGON;
setarray .gar3,RDMOPT_RACE_IGNORE_DEF_PERCENT_NOTHING,RDMOPT_RACE_IGNORE_DEF_PERCENT_UNDEAD,RDMOPT_RACE_IGNORE_DEF_PERCENT_ANIMAL,
RDMOPT_RACE_IGNORE_DEF_PERCENT_PLANT,RDMOPT_RACE_IGNORE_DEF_PERCENT_INSECT,RDMOPT_RACE_IGNORE_DEF_PERCENT_FISHS,
RDMOPT_RACE_IGNORE_DEF_PERCENT_DEVIL,RDMOPT_RACE_IGNORE_DEF_PERCENT_HUMAN,RDMOPT_RACE_IGNORE_DEF_PERCENT_ANGEL,
RDMOPT_RACE_IGNORE_DEF_PERCENT_DRAGON,RDMOPT_RACE_IGNORE_MDEF_PERCENT_NOTHING,RDMOPT_RACE_IGNORE_MDEF_PERCENT_UNDEAD,
RDMOPT_RACE_IGNORE_MDEF_PERCENT_ANIMAL,RDMOPT_RACE_IGNORE_MDEF_PERCENT_PLANT,RDMOPT_RACE_IGNORE_MDEF_PERCENT_INSECT,
RDMOPT_RACE_IGNORE_MDEF_PERCENT_FISHS,RDMOPT_RACE_IGNORE_MDEF_PERCENT_DEVIL,RDMOPT_RACE_IGNORE_MDEF_PERCENT_HUMAN,
RDMOPT_RACE_IGNORE_MDEF_PERCENT_ANGEL,RDMOPT_RACE_IGNORE_MDEF_PERCENT_DRAGON,RDMOPT_CLASS_IGNORE_DEF_PERCENT_NORMAL,
RDMOPT_CLASS_IGNORE_DEF_PERCENT_BOSS,RDMOPT_CLASS_IGNORE_MDEF_PERCENT_NORMAL,RDMOPT_CLASS_IGNORE_MDEF_PERCENT_BOSS;
setarray .gar4,RDMOPT_DAMAGE_SIZE_PERFECT,RDMOPT_DAMAGE_CRI_USER,RDMOPT_RANGE_ATTACK_DAMAGE_USER,
RDMOPT_MDAMAGE_SIZE_SMALL_USER,RDMOPT_MDAMAGE_SIZE_MIDIUM_USER,RDMOPT_MDAMAGE_SIZE_LARGE_USER;
//==============================
// Equipe Shoes Possible IDS
//==============================
setarray .shs0,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_STRAMOUNT,
RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,RDMOPT_VAR_INTAMOUNT,
RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION,
RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_PLUSASPD,
RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_ATTPOWER,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_ATTMPOWER,RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .shs1,RDMOPT_MDAMAGE_SIZE_SMALL_TARGET,RDMOPT_MDAMAGE_SIZE_MIDIUM_TARGET,RDMOPT_MDAMAGE_SIZE_LARGE_TARGET,
RDMOPT_DAMAGE_SIZE_SMALL_TARGET,RDMOPT_DAMAGE_SIZE_MIDIUM_TARGET,RDMOPT_DAMAGE_SIZE_LARGE_TARGET;
setarray .shs2,RDMOPT_CLASS_MDAMAGE_NORMAL,RDMOPT_CLASS_MDAMAGE_BOSS,RDMOPT_CLASS_DAMAGE_NORMAL_USER,
RDMOPT_CLASS_DAMAGE_NORMAL_TARGET;
setarray .shs3,RDMOPT_RACE_DAMAGE_PLANT,RDMOPT_RACE_DAMAGE_INSECT,RDMOPT_RACE_DAMAGE_FISHS,
RDMOPT_RACE_DAMAGE_DEVIL,RDMOPT_RACE_DAMAGE_HUMAN,RDMOPT_RACE_DAMAGE_ANGEL,
RDMOPT_RACE_DAMAGE_DRAGON,RDMOPT_RACE_MDAMAGE_NOTHING,RDMOPT_RACE_MDAMAGE_UNDEAD,
RDMOPT_RACE_MDAMAGE_ANIMAL,RDMOPT_RACE_MDAMAGE_PLANT,RDMOPT_RACE_MDAMAGE_INSECT,
RDMOPT_RACE_MDAMAGE_FISHS,RDMOPT_RACE_MDAMAGE_DEVIL,RDMOPT_RACE_MDAMAGE_HUMAN,
RDMOPT_RACE_MDAMAGE_ANGEL,RDMOPT_RACE_MDAMAGE_DRAGON;
setarray .shs4,RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,
RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,
RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,
RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,RDMOPT_MDAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_MDAMAGE_PROPERTY_GROUND_TARGET,
RDMOPT_MDAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_MDAMAGE_PROPERTY_WIND_TARGET,RDMOPT_MDAMAGE_PROPERTY_POISON_TARGET,
RDMOPT_MDAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_MDAMAGE_PROPERTY_DARKNESS_TARGET,RDMOPT_MDAMAGE_PROPERTY_TELEKINESIS_TARGET,
RDMOPT_MDAMAGE_PROPERTY_UNDEAD_TARGET;
//==============================
// Equipe RAccessory Possible IDS
//==============================
setarray .rac0,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .rac1,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION;
setarray .rac2,RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .rac3,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_ATTPOWER,
RDMOPT_VAR_ATTMPOWER,RDMOPT_RANGE_ATTACK_DAMAGE_TARGET,RDMOPT_DAMAGE_SIZE_PERFECT;
setarray .rac4,RDMOPT_HEAL_VALUE,RDMOPT_HEAL_MODIFY_PERCENT,RDMOPT_DEC_SPELL_CAST_TIME,
RDMOPT_DEC_SPELL_DELAY_TIME,RDMOPT_DEC_SP_CONSUMPTION,RDMOPT_HP_DRAIN,
RDMOPT_SP_DRAIN,RDMOPT_RACE_CRI_PERCENT_NOTHING,RDMOPT_RACE_CRI_PERCENT_UNDEAD,
RDMOPT_RACE_CRI_PERCENT_ANIMAL,RDMOPT_RACE_CRI_PERCENT_PLANT,RDMOPT_RACE_CRI_PERCENT_INSECT,
RDMOPT_RACE_CRI_PERCENT_FISHS,RDMOPT_RACE_CRI_PERCENT_DEVIL,RDMOPT_RACE_CRI_PERCENT_HUMAN,
RDMOPT_RACE_CRI_PERCENT_ANGEL,RDMOPT_RACE_CRI_PERCENT_DRAGON;
//==============================
// Equipe LAcessory Possible IDS
//==============================
setarray .lac0,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .lac1,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION;
setarray .lac2,RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .lac3,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_ATTPOWER,
RDMOPT_VAR_ATTMPOWER,RDMOPT_RANGE_ATTACK_DAMAGE_TARGET,RDMOPT_DAMAGE_SIZE_PERFECT;
setarray .lac4,RDMOPT_HEAL_VALUE,RDMOPT_HEAL_MODIFY_PERCENT,RDMOPT_DEC_SPELL_CAST_TIME,
RDMOPT_DEC_SPELL_DELAY_TIME,RDMOPT_DEC_SP_CONSUMPTION,RDMOPT_HP_DRAIN,
RDMOPT_SP_DRAIN,RDMOPT_RACE_CRI_PERCENT_NOTHING,RDMOPT_RACE_CRI_PERCENT_UNDEAD,
RDMOPT_RACE_CRI_PERCENT_ANIMAL,RDMOPT_RACE_CRI_PERCENT_PLANT,RDMOPT_RACE_CRI_PERCENT_INSECT,
RDMOPT_RACE_CRI_PERCENT_FISHS,RDMOPT_RACE_CRI_PERCENT_DEVIL,RDMOPT_RACE_CRI_PERCENT_HUMAN,
RDMOPT_RACE_CRI_PERCENT_ANGEL,RDMOPT_RACE_CRI_PERCENT_DRAGON;
//==============================
// Lista de ID's ignorados
//==============================
setarray .ignora[0], 0,86;
//==============================
// FIM DAS CONFIGURAÇÕES DE ID
// PARA RANDOM Option
//==============================
end;
NPC:
disable_items;
mes "[ Neight ]";
mes "Olá jovem!";
mes "Eu estou pesquisando uma";
mes "forma de adicionar";
mes "encantamentos ^FF0000aleatórios^000000";
mes "em um equipamento.";
next;
mes "[ Neight ]";
mes "Eu posso fazer qualquer um dos seus";
mes "equipamentos mais fortes";
mes "do que suas versões atuais...";
next;
mes "[ Neight ]";
if(.moeda){
mes "Por um preço de ^0000FF"+.preco+" Zeny^000000,";
mes "e também",.iqt[0]+"x ^0000FF"+ getitemname(6242) +"^000000";
} else {
mes "Por um preço de ^0000FF"+.preco+" Cashpoints^000000,";
mes "e também",.iqt[1]+"x ^0000FF"+ getitemname(6242) +"^000000";
}
mes "Eu vou aplicar uma opção ^FF0000ALEATÓRIA^000000";
mes "no seu equipamento";
next;
mes "[ Neight ]";
mes "Eu esqueci de mencionar que";
mes "há uma chance de ^FF0000"+.falha+"%^000000 ";
mes "que o processo ^FF0000FALHE^000000";
mes "e eu perca seu equipamento junto...";
next;
mes "[ Neight ]";
mes "Você gostaria de arriscar";
mes "encantar seu item com uma chance de";
mes "^FF0000"+.falha+"%^000000 de ^FF0000Falhe^000000";
mes "e perder seu equipamento?";
next;
if(select("^0000FFEu vou testar minha sorte! Encante meu equipamento!^000000:Nem! Tô de boas...")==2) goto OnCancel;
mes "[ Neight ]";
mes "Esplêndido!";
mes "Este processo levará";
mes "cerca de ^0000FF"+.espera+"^000000 segundos...";
mes "Não mova um músculo enquanto";
mes "eu encanto seu equipamento";
close2;
if(countitem(.irq[0]) < .iqt[0])
goto PriceFail;
if(.moeda){
if(Zeny < .preco)
goto PriceFail;
else
set Zeny,Zeny-.preco;
delitem .irq[0],.iqt[0];
} else {
if(#CASHPOINTS < .preco)
goto PriceFail;
else
set #CASHPOINTS,#CASHPOINTS-.preco;
delitem .irq[1],.iqt[1];
}
setarray .@eq[1], EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_R,EQI_HAND_L,EQI_GARMENT,EQI_SHOES,EQI_ACC_R,EQI_ACC_L,EQI_HEAD_MID,EQI_HEAD_LOW;
for(set .@i,1; .@i<getarraysize(.@eq); set .@i,.@i+1){
if(getequipisequiped(.@eq[.@i])){
set .@menu$,.@menu$+F_getpositionname(.@eq[.@i])+" ~ [ ^0000FF" + getequipname(.@eq[.@i]) + "^000000 ]";
set .@equipped,1;
} set .@menu$,.@menu$+":";
} set .@part,.@eq[select(.@menu$)];
set .@val, rand(.valmin,.valmax);
OnMax:
mes "[ Neight ]";
mes "Ops... Seu equipamento ja";
mes "foi encantado ao máximo!";
mes " ";
mes "Perdão, mas, não posso";
mes "adicionar mais encantamentos";
mes "ao seu item.";
close;
OnFailure:
specialeffect2 EF_PHARMACY_FAIL;
mes "[ Neight ]"," ";
mes "Me perdoe..."," ";
mes "^FF0000O processo falhou...";
mes "Seu item foi destruído.^000000";
delequip .@part;
close;
PriceFail:
mes "[ Neight ]";
mes "O que e isso?";
mes "Você está brincando comigo?";
mes "Perdão, mas, eu não trabalho";
mes "de graça!";
mes "Você pode voltar quando";
mes "tiver dinheiro para me pagar";
mes "pelos meus serviços.";
close;
OnCancel:
mes "[ Neight ]";
mes "Vista-se.";
mes "Deixe-me saber caso";
mes "você mude de ideia";
close;
}
Nvm, managed to do it but idk if it's the correct way.
Those are the changes I made:
Spoiler
set .@val0, rand(.valmin,.valmax);
set .@val1, rand(.valmin,.valmax);
set .@val2, rand(.valmin,.valmax);
set .@val3, rand(.valmin,.valmax);
set .@val4, rand(.valmin,.valmax);
Question
angreusz
Hi guys,
I'm using @Rizta's random option enchanter script and I can't seem to find a way to make it apply all slots of options at once.
As it is, you need to interact with the NPC 5 times to fully enchant the item. I want to know what kind of modification I need to make so the NPC applies all 5 random options at once.
Help pls
//===== rAthena Script =======================================
//= Random Option SurviveRO [www.survivero.com.br]
//===== By: ==================================================
//= Rizakh/Rizta
//===== Current Version: =====================================
//= 1.0 - Initial Release
//= 1.1 - Fixed erros in array
//= 1.2 - Change INT into Constants
//===== To Do ================================================
//= Translate to English for community
//= Improve script with new options
//= Optimize script
//===== Compatible With: =====================================
//= rAthena Project, Hercules, brAthena
//===== Description: =========================================
//= Atribui opcoes aleatorias aos equipamentos.
//= com o custo de X zeny/cash
//===== Credits ==============================================
//= @Keitenai - I use your Random Option Dealer as base.
//= @Stolao - Help me with lots of problems during development
//= @Secret - Remember me that i can use while XD
//= @Ninja / @Sehrentos - Point me errors that i cant see
//= @Rizta - Me for writting and "idea" i think? xD
//===== Rights ===============================================
//= This is a private/request script for a server called
//= SurviveRO, so, you DO NOT OWN this script and CAN'T
//= repost WITHOUT permission.
//= Feel Free to change values to adapt for your server.
//============================================================
prontera,100,100,4 script Neight 795,{
goto NPC;
end;
OnInit:
//==============================
// CONFIGURAÇÕES DE MOEDA
// 1 = Zeny
// 0 = Cashpoints
//==============================
set .moeda,1; // Moeda para comprar a opcao aleatoria
set .preco,0; // Preco da opcao aleatoria
setarray .irq[0],0,0; // Red Blood e Fine Grit
setarray .iqt[0],0,0; // Quantidade de cada item
//==============================
// CONFIGURAÇÕES RANDOM OPTION
//==============================
set .sobrepor,0; // Permite sobrepor encantamentos existentes ( 0 = off )
set .falha,0; // Define a chance de falha (%)
set .valmin,2; // Valor minimo a se tirar na opcao aleatoria
set .valmax,13; // Valor maximo a se tirar na opcao aleatoria
set .slotmax,4; // Maximo de slots para encantar( padrão = 0-4 )
set .espera,1; // Delay da barra de progresso em segundos
//============================
// IDS DAS RANDOM OPTIONS
// SEPARADAS POR EQUIPAMENTOS
// E SLOT (0 PARA 4 = 5 SLOTS)
//============================
// Equip Top Head Possible IDS
//============================
setarray .thd0,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_HPACCELERATION,
RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,RDMOPT_VAR_AVOIDSUCCESSVALUE,
RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE,RDMOPT_VAR_ATTMPOWER;
setarray .thd1,RDMOPT_ATTR_TOLERACE_NOTHING,RDMOPT_ATTR_TOLERACE_WATER,RDMOPT_ATTR_TOLERACE_GROUND,
RDMOPT_ATTR_TOLERACE_FIRE,RDMOPT_ATTR_TOLERACE_WIND,RDMOPT_ATTR_TOLERACE_POISON,
RDMOPT_ATTR_TOLERACE_SAINT,RDMOPT_ATTR_TOLERACE_DARKNESS,RDMOPT_ATTR_TOLERACE_TELEKINESIS,
RDMOPT_ATTR_TOLERACE_UNDEAD,RDMOPT_ATTR_TOLERACE_ALL;
setarray .thd2,RDMOPT_RANGE_ATTACK_DAMAGE_USER,RDMOPT_HEAL_VALUE,RDMOPT_HEAL_MODIFY_PERCENT,
RDMOPT_DEC_SPELL_CAST_TIME,RDMOPT_DEC_SPELL_DELAY_TIME,RDMOPT_DEC_SP_CONSUMPTION;
setarray .thd3,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_DAMAGE_PROPERTY_NOTHING_USER,RDMOPT_DAMAGE_PROPERTY_WATER_USER,RDMOPT_DAMAGE_PROPERTY_GROUND_USER,
RDMOPT_DAMAGE_PROPERTY_FIRE_USER,RDMOPT_DAMAGE_PROPERTY_WIND_USER,RDMOPT_DAMAGE_PROPERTY_POISON_USER,
RDMOPT_DAMAGE_PROPERTY_SAINT_USER,RDMOPT_DAMAGE_PROPERTY_DARKNESS_USER,RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_USER,RDMOPT_DAMAGE_PROPERTY_UNDEAD_USER;
setarray .thd4,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_MDAMAGE_PROPERTY_NOTHING_USER,RDMOPT_MDAMAGE_PROPERTY_WATER_USER,RDMOPT_MDAMAGE_PROPERTY_GROUND_USER,
RDMOPT_MDAMAGE_PROPERTY_FIRE_USER,RDMOPT_MDAMAGE_PROPERTY_WIND_USER,RDMOPT_MDAMAGE_PROPERTY_POISON_USER,
RDMOPT_MDAMAGE_PROPERTY_SAINT_USER,RDMOPT_MDAMAGE_PROPERTY_DARKNESS_USER,RDMOPT_MDAMAGE_PROPERTY_TELEKINESIS_USER,
RDMOPT_MDAMAGE_PROPERTY_UNDEAD_USER;
//=============================
// Equip Mid Head Possible IDS
//=============================
setarray .mhd0,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .mhd1,RDMOPT_RACE_TOLERACE_NOTHING,RDMOPT_RACE_TOLERACE_UNDEAD,RDMOPT_RACE_TOLERACE_ANIMAL,
RDMOPT_RACE_TOLERACE_PLANT,RDMOPT_RACE_TOLERACE_INSECT,RDMOPT_RACE_TOLERACE_FISHS,
RDMOPT_RACE_TOLERACE_DEVIL,RDMOPT_RACE_TOLERACE_HUMAN,RDMOPT_RACE_TOLERACE_ANGEL,RDMOPT_RACE_TOLERACE_DRAGON;
setarray .mhd2,RDMOPT_HEAL_VALUE,RDMOPT_HEAL_MODIFY_PERCENT,RDMOPT_DEC_SPELL_CAST_TIME,
RDMOPT_DEC_SPELL_DELAY_TIME,RDMOPT_DEC_SP_CONSUMPTION,RDMOPT_RANGE_ATTACK_DAMAGE_USER;
setarray .mhd3,RDMOPT_RACE_DAMAGE_NOTHING,RDMOPT_RACE_DAMAGE_UNDEAD,RDMOPT_RACE_DAMAGE_ANIMAL,
RDMOPT_RACE_DAMAGE_PLANT,RDMOPT_RACE_DAMAGE_INSECT,RDMOPT_RACE_DAMAGE_FISHS,
RDMOPT_RACE_DAMAGE_DEVIL,RDMOPT_RACE_DAMAGE_HUMAN,RDMOPT_RACE_DAMAGE_ANGEL,
RDMOPT_RACE_DAMAGE_DRAGON,RDMOPT_RACE_MDAMAGE_NOTHING,RDMOPT_RACE_MDAMAGE_UNDEAD,
RDMOPT_RACE_MDAMAGE_ANIMAL,RDMOPT_RACE_MDAMAGE_PLANT,RDMOPT_RACE_MDAMAGE_INSECT,
RDMOPT_RACE_MDAMAGE_FISHS,RDMOPT_RACE_MDAMAGE_DEVIL,RDMOPT_RACE_MDAMAGE_HUMAN,
RDMOPT_RACE_MDAMAGE_ANGEL,RDMOPT_RACE_MDAMAGE_DRAGON;
setarray .mhd4,RDMOPT_VAR_MAXHPPERCENT,RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,
RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,
RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_ATTPOWER,
RDMOPT_VAR_HITSUCCESSVALUE,RDMOPT_VAR_ATTMPOWER,RDMOPT_VAR_ITEMDEFPOWER,
RDMOPT_VAR_MDEFPOWER,RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,
RDMOPT_VAR_CRITICALSUCCESSVALUE;
//==============================
// Equipe Low Head Possible IDS
//==============================
setarray .lhd0,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .lhd1,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_PLUSASPD,
RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_ATTPOWER,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_ATTMPOWER,RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .lhd2,RDMOPT_DAMAGE_CRI_TARGET,RDMOPT_DAMAGE_CRI_USER,RDMOPT_RANGE_ATTACK_DAMAGE_USER,RDMOPT_HEAL_VALUE,RDMOPT_VAR_HITSUCCESSVALUE;
setarray .lhd3,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_HPACCELERATION,
RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_PLUSASPDPERCENT;
setarray .lhd4,RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,
RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,
RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,
RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET;
//==============================
// Equipe Armor Possible IDS
//==============================
setarray .arm0,RDMOPT_BODY_ATTR_NOTHING,RDMOPT_BODY_ATTR_WATER,RDMOPT_BODY_ATTR_GROUND,
RDMOPT_BODY_ATTR_FIRE,RDMOPT_BODY_ATTR_WIND,RDMOPT_BODY_ATTR_POISON,
RDMOPT_BODY_ATTR_SAINT,RDMOPT_BODY_ATTR_DARKNESS,RDMOPT_BODY_ATTR_TELEKINESIS,
RDMOPT_BODY_ATTR_UNDEAD;
setarray .arm1,RDMOPT_VAR_MAXHPPERCENT,RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,
RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER;
setarray .arm2,RDMOPT_RACE_TOLERACE_NOTHING,RDMOPT_RACE_TOLERACE_UNDEAD,RDMOPT_RACE_TOLERACE_ANIMAL,
RDMOPT_RACE_TOLERACE_PLANT,RDMOPT_RACE_TOLERACE_INSECT,RDMOPT_RACE_TOLERACE_FISHS,
RDMOPT_RACE_TOLERACE_DEVIL,RDMOPT_RACE_TOLERACE_HUMAN,RDMOPT_RACE_TOLERACE_ANGEL,
RDMOPT_RACE_TOLERACE_DRAGON,RDMOPT_RACE_MDAMAGE_NOTHING,
RDMOPT_RACE_MDAMAGE_UNDEAD,RDMOPT_RACE_MDAMAGE_ANIMAL,RDMOPT_RACE_MDAMAGE_PLANT,
RDMOPT_RACE_MDAMAGE_INSECT,RDMOPT_RACE_MDAMAGE_FISHS,RDMOPT_RACE_MDAMAGE_DEVIL,
RDMOPT_RACE_MDAMAGE_HUMAN,RDMOPT_RACE_MDAMAGE_ANGEL,RDMOPT_RACE_MDAMAGE_DRAGON;
setarray .arm3,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,
RDMOPT_VAR_MDEFPOWER,RDMOPT_VAR_ITEMDEFPOWER;
setarray .arm4,RDMOPT_BODY_INDESTRUCTIBLE,RDMOPT_RANGE_ATTACK_DAMAGE_USER,RDMOPT_DAMAGE_SIZE_SMALL_USER,
RDMOPT_DAMAGE_SIZE_MIDIUM_USER,RDMOPT_DAMAGE_SIZE_LARGE_USER,RDMOPT_DAMAGE_CRI_USER;
//==============================
// Equipe RHand Possible IDS
//==============================
setarray .rwp0,RDMOPT_WEAPON_ATTR_NOTHING,RDMOPT_WEAPON_ATTR_WATER,RDMOPT_WEAPON_ATTR_GROUND,
RDMOPT_WEAPON_ATTR_FIRE,RDMOPT_WEAPON_ATTR_WIND,RDMOPT_WEAPON_ATTR_POISON,
RDMOPT_WEAPON_ATTR_SAINT,RDMOPT_WEAPON_ATTR_DARKNESS,RDMOPT_WEAPON_ATTR_TELEKINESIS,RDMOPT_WEAPON_ATTR_UNDEAD;
setarray .rwp1,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,RDMOPT_VAR_ATTMPOWER,
RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_CRITICALSUCCESSVALUE,
RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .rwp2,RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,
RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,
RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,
RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,RDMOPT_MDAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_MDAMAGE_PROPERTY_WATER_TARGET,
RDMOPT_MDAMAGE_PROPERTY_GROUND_TARGET,RDMOPT_MDAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_MDAMAGE_PROPERTY_WIND_TARGET,
RDMOPT_MDAMAGE_PROPERTY_POISON_TARGET,RDMOPT_MDAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_MDAMAGE_PROPERTY_DARKNESS_TARGET,
RDMOPT_MDAMAGE_PROPERTY_TELEKINESIS_TARGET,RDMOPT_MDAMAGE_PROPERTY_UNDEAD_TARGET;
setarray .rwp3,RDMOPT_CLASS_DAMAGE_NORMAL_TARGET,RDMOPT_CLASS_DAMAGE_BOSS_TARGET,RDMOPT_CLASS_MDAMAGE_NORMAL,
RDMOPT_CLASS_MDAMAGE_BOSS,RDMOPT_CLASS_IGNORE_DEF_PERCENT_NORMAL,RDMOPT_CLASS_IGNORE_DEF_PERCENT_BOSS,
RDMOPT_CLASS_IGNORE_MDEF_PERCENT_NORMAL,RDMOPT_CLASS_IGNORE_MDEF_PERCENT_BOSS,RDMOPT_DAMAGE_CRI_TARGET,
RDMOPT_DAMAGE_SIZE_SMALL_TARGET,RDMOPT_DAMAGE_SIZE_MIDIUM_TARGET,RDMOPT_DAMAGE_SIZE_LARGE_TARGET;
setarray .rwp4,RDMOPT_RANGE_ATTACK_DAMAGE_TARGET,RDMOPT_HP_DRAIN,RDMOPT_SP_DRAIN,
RDMOPT_WEAPON_INDESTRUCTIBLE,RDMOPT_MDAMAGE_SIZE_SMALL_TARGET,RDMOPT_MDAMAGE_SIZE_MIDIUM_TARGET,
RDMOPT_MDAMAGE_SIZE_LARGE_TARGET,RDMOPT_RACE_CRI_PERCENT_NOTHING,RDMOPT_RACE_CRI_PERCENT_UNDEAD,
RDMOPT_RACE_CRI_PERCENT_ANIMAL,RDMOPT_RACE_CRI_PERCENT_PLANT,RDMOPT_RACE_CRI_PERCENT_INSECT,
RDMOPT_RACE_CRI_PERCENT_FISHS,RDMOPT_RACE_CRI_PERCENT_DEVIL,RDMOPT_RACE_CRI_PERCENT_HUMAN,
RDMOPT_RACE_CRI_PERCENT_ANGEL,RDMOPT_RACE_CRI_PERCENT_DRAGON;
//==============================
// Equipe LHand Possible IDS
//==============================
setarray .lwp0,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_STRAMOUNT,
RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,RDMOPT_VAR_INTAMOUNT,
RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION,
RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,RDMOPT_VAR_AVOIDSUCCESSVALUE,
RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .lwp1,RDMOPT_ATTR_TOLERACE_NOTHING,RDMOPT_ATTR_TOLERACE_WATER,RDMOPT_ATTR_TOLERACE_GROUND,
RDMOPT_ATTR_TOLERACE_FIRE,RDMOPT_ATTR_TOLERACE_WIND,RDMOPT_ATTR_TOLERACE_POISON,
RDMOPT_ATTR_TOLERACE_SAINT,RDMOPT_ATTR_TOLERACE_DARKNESS,RDMOPT_ATTR_TOLERACE_TELEKINESIS,
RDMOPT_ATTR_TOLERACE_UNDEAD,RDMOPT_ATTR_TOLERACE_ALL;
setarray .lwp2,RDMOPT_RACE_TOLERACE_NOTHING,RDMOPT_RACE_TOLERACE_UNDEAD,RDMOPT_RACE_TOLERACE_ANIMAL,
RDMOPT_RACE_TOLERACE_PLANT,RDMOPT_RACE_TOLERACE_INSECT,RDMOPT_RACE_TOLERACE_FISHS,
RDMOPT_RACE_TOLERACE_DEVIL,RDMOPT_RACE_TOLERACE_HUMAN,RDMOPT_RACE_TOLERACE_ANGEL,
RDMOPT_RACE_TOLERACE_DRAGON;
setarray .lwp3,RDMOPT_DAMAGE_SIZE_SMALL_USER,RDMOPT_DAMAGE_SIZE_MIDIUM_USER,RDMOPT_DAMAGE_SIZE_LARGE_USER,
RDMOPT_DAMAGE_CRI_USER,RDMOPT_RANGE_ATTACK_DAMAGE_USER,RDMOPT_MDAMAGE_SIZE_SMALL_USER,
RDMOPT_MDAMAGE_SIZE_MIDIUM_USER,RDMOPT_MDAMAGE_SIZE_LARGE_USER;
setarray .lwp4,RDMOPT_CLASS_DAMAGE_NORMAL_USER,RDMOPT_CLASS_DAMAGE_BOSS_USER,RDMOPT_CLASS_MDAMAGE_NORMAL,
RDMOPT_CLASS_MDAMAGE_BOSS,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION;
//==============================
// Equipe Garment Possible IDS
//==============================
setarray .gar0,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_STRAMOUNT,
RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,RDMOPT_VAR_INTAMOUNT,
RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION,
RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_PLUSASPD,
RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_ATTPOWER,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_ATTMPOWER,RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .gar1,RDMOPT_ATTR_TOLERACE_NOTHING,RDMOPT_ATTR_TOLERACE_WATER,RDMOPT_ATTR_TOLERACE_GROUND,
RDMOPT_ATTR_TOLERACE_FIRE,RDMOPT_ATTR_TOLERACE_WIND,RDMOPT_ATTR_TOLERACE_POISON,
RDMOPT_ATTR_TOLERACE_SAINT,RDMOPT_ATTR_TOLERACE_DARKNESS,RDMOPT_ATTR_TOLERACE_TELEKINESIS,
RDMOPT_ATTR_TOLERACE_UNDEAD,RDMOPT_ATTR_TOLERACE_ALL;
setarray .gar2,RDMOPT_RACE_CRI_PERCENT_NOTHING,RDMOPT_RACE_CRI_PERCENT_UNDEAD,RDMOPT_RACE_CRI_PERCENT_ANIMAL,
RDMOPT_RACE_CRI_PERCENT_PLANT,RDMOPT_RACE_CRI_PERCENT_INSECT,RDMOPT_RACE_CRI_PERCENT_FISHS,
RDMOPT_RACE_CRI_PERCENT_DEVIL,RDMOPT_RACE_CRI_PERCENT_HUMAN,RDMOPT_RACE_CRI_PERCENT_ANGEL,
RDMOPT_RACE_CRI_PERCENT_DRAGON;
setarray .gar3,RDMOPT_RACE_IGNORE_DEF_PERCENT_NOTHING,RDMOPT_RACE_IGNORE_DEF_PERCENT_UNDEAD,RDMOPT_RACE_IGNORE_DEF_PERCENT_ANIMAL,
RDMOPT_RACE_IGNORE_DEF_PERCENT_PLANT,RDMOPT_RACE_IGNORE_DEF_PERCENT_INSECT,RDMOPT_RACE_IGNORE_DEF_PERCENT_FISHS,
RDMOPT_RACE_IGNORE_DEF_PERCENT_DEVIL,RDMOPT_RACE_IGNORE_DEF_PERCENT_HUMAN,RDMOPT_RACE_IGNORE_DEF_PERCENT_ANGEL,
RDMOPT_RACE_IGNORE_DEF_PERCENT_DRAGON,RDMOPT_RACE_IGNORE_MDEF_PERCENT_NOTHING,RDMOPT_RACE_IGNORE_MDEF_PERCENT_UNDEAD,
RDMOPT_RACE_IGNORE_MDEF_PERCENT_ANIMAL,RDMOPT_RACE_IGNORE_MDEF_PERCENT_PLANT,RDMOPT_RACE_IGNORE_MDEF_PERCENT_INSECT,
RDMOPT_RACE_IGNORE_MDEF_PERCENT_FISHS,RDMOPT_RACE_IGNORE_MDEF_PERCENT_DEVIL,RDMOPT_RACE_IGNORE_MDEF_PERCENT_HUMAN,
RDMOPT_RACE_IGNORE_MDEF_PERCENT_ANGEL,RDMOPT_RACE_IGNORE_MDEF_PERCENT_DRAGON,RDMOPT_CLASS_IGNORE_DEF_PERCENT_NORMAL,
RDMOPT_CLASS_IGNORE_DEF_PERCENT_BOSS,RDMOPT_CLASS_IGNORE_MDEF_PERCENT_NORMAL,RDMOPT_CLASS_IGNORE_MDEF_PERCENT_BOSS;
setarray .gar4,RDMOPT_DAMAGE_SIZE_PERFECT,RDMOPT_DAMAGE_CRI_USER,RDMOPT_RANGE_ATTACK_DAMAGE_USER,
RDMOPT_MDAMAGE_SIZE_SMALL_USER,RDMOPT_MDAMAGE_SIZE_MIDIUM_USER,RDMOPT_MDAMAGE_SIZE_LARGE_USER;
//==============================
// Equipe Shoes Possible IDS
//==============================
setarray .shs0,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_STRAMOUNT,
RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,RDMOPT_VAR_INTAMOUNT,
RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION,
RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_PLUSASPD,
RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_ATTPOWER,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_ATTMPOWER,RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .shs1,RDMOPT_MDAMAGE_SIZE_SMALL_TARGET,RDMOPT_MDAMAGE_SIZE_MIDIUM_TARGET,RDMOPT_MDAMAGE_SIZE_LARGE_TARGET,
RDMOPT_DAMAGE_SIZE_SMALL_TARGET,RDMOPT_DAMAGE_SIZE_MIDIUM_TARGET,RDMOPT_DAMAGE_SIZE_LARGE_TARGET;
setarray .shs2,RDMOPT_CLASS_MDAMAGE_NORMAL,RDMOPT_CLASS_MDAMAGE_BOSS,RDMOPT_CLASS_DAMAGE_NORMAL_USER,
RDMOPT_CLASS_DAMAGE_NORMAL_TARGET;
setarray .shs3,RDMOPT_RACE_DAMAGE_PLANT,RDMOPT_RACE_DAMAGE_INSECT,RDMOPT_RACE_DAMAGE_FISHS,
RDMOPT_RACE_DAMAGE_DEVIL,RDMOPT_RACE_DAMAGE_HUMAN,RDMOPT_RACE_DAMAGE_ANGEL,
RDMOPT_RACE_DAMAGE_DRAGON,RDMOPT_RACE_MDAMAGE_NOTHING,RDMOPT_RACE_MDAMAGE_UNDEAD,
RDMOPT_RACE_MDAMAGE_ANIMAL,RDMOPT_RACE_MDAMAGE_PLANT,RDMOPT_RACE_MDAMAGE_INSECT,
RDMOPT_RACE_MDAMAGE_FISHS,RDMOPT_RACE_MDAMAGE_DEVIL,RDMOPT_RACE_MDAMAGE_HUMAN,
RDMOPT_RACE_MDAMAGE_ANGEL,RDMOPT_RACE_MDAMAGE_DRAGON;
setarray .shs4,RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,
RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,
RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,
RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,RDMOPT_MDAMAGE_PROPERTY_NOTHING_TARGET,RDMOPT_MDAMAGE_PROPERTY_GROUND_TARGET,
RDMOPT_MDAMAGE_PROPERTY_FIRE_TARGET,RDMOPT_MDAMAGE_PROPERTY_WIND_TARGET,RDMOPT_MDAMAGE_PROPERTY_POISON_TARGET,
RDMOPT_MDAMAGE_PROPERTY_SAINT_TARGET,RDMOPT_MDAMAGE_PROPERTY_DARKNESS_TARGET,RDMOPT_MDAMAGE_PROPERTY_TELEKINESIS_TARGET,
RDMOPT_MDAMAGE_PROPERTY_UNDEAD_TARGET;
//==============================
// Equipe RAccessory Possible IDS
//==============================
setarray .rac0,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .rac1,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION;
setarray .rac2,RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .rac3,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_ATTPOWER,
RDMOPT_VAR_ATTMPOWER,RDMOPT_RANGE_ATTACK_DAMAGE_TARGET,RDMOPT_DAMAGE_SIZE_PERFECT;
setarray .rac4,RDMOPT_HEAL_VALUE,RDMOPT_HEAL_MODIFY_PERCENT,RDMOPT_DEC_SPELL_CAST_TIME,
RDMOPT_DEC_SPELL_DELAY_TIME,RDMOPT_DEC_SP_CONSUMPTION,RDMOPT_HP_DRAIN,
RDMOPT_SP_DRAIN,RDMOPT_RACE_CRI_PERCENT_NOTHING,RDMOPT_RACE_CRI_PERCENT_UNDEAD,
RDMOPT_RACE_CRI_PERCENT_ANIMAL,RDMOPT_RACE_CRI_PERCENT_PLANT,RDMOPT_RACE_CRI_PERCENT_INSECT,
RDMOPT_RACE_CRI_PERCENT_FISHS,RDMOPT_RACE_CRI_PERCENT_DEVIL,RDMOPT_RACE_CRI_PERCENT_HUMAN,
RDMOPT_RACE_CRI_PERCENT_ANGEL,RDMOPT_RACE_CRI_PERCENT_DRAGON;
//==============================
// Equipe LAcessory Possible IDS
//==============================
setarray .lac0,RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
setarray .lac1,RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION;
setarray .lac2,RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
setarray .lac3,RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_ATTPOWER,
RDMOPT_VAR_ATTMPOWER,RDMOPT_RANGE_ATTACK_DAMAGE_TARGET,RDMOPT_DAMAGE_SIZE_PERFECT;
setarray .lac4,RDMOPT_HEAL_VALUE,RDMOPT_HEAL_MODIFY_PERCENT,RDMOPT_DEC_SPELL_CAST_TIME,
RDMOPT_DEC_SPELL_DELAY_TIME,RDMOPT_DEC_SP_CONSUMPTION,RDMOPT_HP_DRAIN,
RDMOPT_SP_DRAIN,RDMOPT_RACE_CRI_PERCENT_NOTHING,RDMOPT_RACE_CRI_PERCENT_UNDEAD,
RDMOPT_RACE_CRI_PERCENT_ANIMAL,RDMOPT_RACE_CRI_PERCENT_PLANT,RDMOPT_RACE_CRI_PERCENT_INSECT,
RDMOPT_RACE_CRI_PERCENT_FISHS,RDMOPT_RACE_CRI_PERCENT_DEVIL,RDMOPT_RACE_CRI_PERCENT_HUMAN,
RDMOPT_RACE_CRI_PERCENT_ANGEL,RDMOPT_RACE_CRI_PERCENT_DRAGON;
//==============================
// Lista de ID's ignorados
//==============================
setarray .ignora[0], 0,86;
//==============================
// FIM DAS CONFIGURAÇÕES DE ID
// PARA RANDOM Option
//==============================
end;
NPC:
disable_items;
mes "[ Neight ]";
mes "Olá jovem!";
mes "Eu estou pesquisando uma";
mes "forma de adicionar";
mes "encantamentos ^FF0000aleatórios^000000";
mes "em um equipamento.";
next;
mes "[ Neight ]";
mes "Eu posso fazer qualquer um dos seus";
mes "equipamentos mais fortes";
mes "do que suas versões atuais...";
next;
mes "[ Neight ]";
if(.moeda){
mes "Por um preço de ^0000FF"+.preco+" Zeny^000000,";
mes "e também",.iqt[0]+"x ^0000FF"+ getitemname(6242) +"^000000";
} else {
mes "Por um preço de ^0000FF"+.preco+" Cashpoints^000000,";
mes "e também",.iqt[1]+"x ^0000FF"+ getitemname(6242) +"^000000";
}
mes "Eu vou aplicar uma opção ^FF0000ALEATÓRIA^000000";
mes "no seu equipamento";
next;
mes "[ Neight ]";
mes "Eu esqueci de mencionar que";
mes "há uma chance de ^FF0000"+.falha+"%^000000 ";
mes "que o processo ^FF0000FALHE^000000";
mes "e eu perca seu equipamento junto...";
next;
mes "[ Neight ]";
mes "Você gostaria de arriscar";
mes "encantar seu item com uma chance de";
mes "^FF0000"+.falha+"%^000000 de ^FF0000Falhe^000000";
mes "e perder seu equipamento?";
next;
if(select("^0000FFEu vou testar minha sorte! Encante meu equipamento!^000000:Nem! Tô de boas...")==2) goto OnCancel;
mes "[ Neight ]";
mes "Esplêndido!";
mes "Este processo levará";
mes "cerca de ^0000FF"+.espera+"^000000 segundos...";
mes "Não mova um músculo enquanto";
mes "eu encanto seu equipamento";
close2;
if(countitem(.irq[0]) < .iqt[0])
goto PriceFail;
if(.moeda){
if(Zeny < .preco)
goto PriceFail;
else
set Zeny,Zeny-.preco;
delitem .irq[0],.iqt[0];
} else {
if(#CASHPOINTS < .preco)
goto PriceFail;
else
set #CASHPOINTS,#CASHPOINTS-.preco;
delitem .irq[1],.iqt[1];
}
setarray .@eq[1], EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_R,EQI_HAND_L,EQI_GARMENT,EQI_SHOES,EQI_ACC_R,EQI_ACC_L,EQI_HEAD_MID,EQI_HEAD_LOW;
for(set .@i,1; .@i<getarraysize(.@eq); set .@i,.@i+1){
if(getequipisequiped(.@eq[.@i])){
set .@menu$,.@menu$+F_getpositionname(.@eq[.@i])+" ~ [ ^0000FF" + getequipname(.@eq[.@i]) + "^000000 ]";
set .@equipped,1;
} set .@menu$,.@menu$+":";
} set .@part,.@eq[select(.@menu$)];
set .@val, rand(.valmin,.valmax);
if(!.sobrepor)
{
while(getequiprandomoption(.@part, .@indx, ROA_ID, getcharid(0)))
{
++.@indx;
if(.@indx > .slotmax) { goto OnMax; }
}
}
IgnoreCheck:
if(.@part == EQI_HEAD_TOP){
//dispbottom .@indx+" slot ID "+.@opt+"";
if(.@indx == 0){
.@opt = .thd0[rand(getarraysize(.thd0))];
} else if(.@indx == 1){
.@opt = .thd1[rand(getarraysize(.thd1))];
} else if(.@indx == 2){
.@opt = .thd2[rand(getarraysize(.thd2))];
} else if(.@indx == 3){
.@opt = .thd3[rand(getarraysize(.thd3))];
} else if(.@indx == 4){
.@opt = .thd4[rand(getarraysize(.thd4))];
}
}
if(.@part == EQI_HEAD_MID){
//dispbottom .@indx+" slot "+.@part+" ID "+.@opt+"";
if(.@indx == 0){
.@opt = .mhd0[rand(getarraysize(.mhd0))];
} else if(.@indx == 1){
.@opt = .mhd1[rand(getarraysize(.mhd1))];
} else if(.@indx == 2){
.@opt = .mhd2[rand(getarraysize(.mhd2))];
} else if(.@indx == 3){
.@opt = .mhd3[rand(getarraysize(.mhd3))];
} else if(.@indx == 4){
.@opt = .mhd4[rand(getarraysize(.mhd4))];
}
}
if(.@part == EQI_HEAD_LOW){
//dispbottom .@indx+" slot "+.@part+" ID "+.@opt+"";
if(.@indx == 0){
.@opt = .lhd0[rand(getarraysize(.lhd0))];
} else if(.@indx == 1){
.@opt = .lhd1[rand(getarraysize(.lhd1))];
} else if(.@indx == 2){
.@opt = .lhd2[rand(getarraysize(.lhd2))];
} else if(.@indx == 3){
.@opt = .lhd3[rand(getarraysize(.lhd3))];
} else if(.@indx == 4){
.@opt = .lhd4[rand(getarraysize(.lhd4))];
}
}
if(.@part == EQI_ARMOR){
//dispbottom .@indx+" slot "+.@part+" ID "+.@opt+"";
if(.@indx == 0){
.@opt = .arm0[rand(getarraysize(.arm0))];
} else if(.@indx == 1){
.@opt = .arm1[rand(getarraysize(.arm1))];
} else if(.@indx == 2){
.@opt = .arm2[rand(getarraysize(.arm2))];
} else if(.@indx == 3){
.@opt = .arm3[rand(getarraysize(.arm3))];
} else if(.@indx == 4){
.@opt = .arm4[rand(getarraysize(.arm4))];
}
}
if(.@part == EQI_HAND_R){
//dispbottom .@indx+" slot "+.@part+" ID "+.@opt+"";
if(.@indx == 0) {
.@opt = .rwp0[rand(getarraysize(.rwp0))];
} else if(.@indx == 1) {
.@opt = .rwp1[rand(getarraysize(.rwp1))];
} else if(.@indx == 2) {
.@opt = .rwp2[rand(getarraysize(.rwp2))];
} else if(.@indx == 3) {
.@opt = .rwp3[rand(getarraysize(.rwp3))];
} else if(.@indx == 4) {
.@opt = .rwp4[rand(getarraysize(.rwp4))];
}
}
if(.@part == EQI_HAND_L){
//dispbottom .@indx+" slot "+.@part+" ID "+.@opt+"";
if(.@indx == 0){
.@opt = .lwp0[rand(getarraysize(.lwp0))];
} else if(.@indx == 1){
.@opt = .lwp1[rand(getarraysize(.lwp1))];
} else if(.@indx == 2){
.@opt = .lwp2[rand(getarraysize(.lwp2))];
} else if(.@indx == 3){
.@opt = .lwp3[rand(getarraysize(.lwp3))];
} else if(.@indx == 4){
.@opt = .lwp4[rand(getarraysize(.lwp4))];
}
}
if(.@part == EQI_GARMENT){
//dispbottom .@indx+" slot "+.@part+" ID "+.@opt+"";
if(.@indx == 0){
.@opt = .gar0[rand(getarraysize(.gar0))];
} else if(.@indx == 1){
.@opt = .gar1[rand(getarraysize(.gar1))];
} else if(.@indx == 2){
.@opt = .gar2[rand(getarraysize(.gar2))];
} else if(.@indx == 3){
.@opt = .gar3[rand(getarraysize(.gar3))];
} else if(.@indx == 4){
.@opt = .gar4[rand(getarraysize(.gar4))];
}
}
if(.@part == EQI_SHOES){
//dispbottom .@indx+" slot "+.@part+" ID "+.@opt+"";
if(.@indx == 0){
.@opt = .shs0[rand(getarraysize(.shs0))];
} else if(.@indx == 1){
.@opt = .shs1[rand(getarraysize(.shs1))];
} else if(.@indx == 2){
.@opt = .shs2[rand(getarraysize(.shs2))];
} else if(.@indx == 3){
.@opt = .shs3[rand(getarraysize(.shs3))];
} else if(.@indx == 4){
.@opt = .shs4[rand(getarraysize(.shs4))];
}
}
if(.@part == EQI_ACC_R){
//dispbottom .@indx+" slot "+.@part+" ID "+.@opt+"";
if(.@indx == 0){
.@opt = .rac0[rand(getarraysize(.rac0))];
} else if(.@indx == 1){
.@opt = .rac1[rand(getarraysize(.rac1))];
} else if(.@indx == 2){
.@opt = .rac2[rand(getarraysize(.rac2))];
} else if(.@indx == 3){
.@opt = .rac3[rand(getarraysize(.rac3))];
} else if(.@indx == 4){
.@opt = .rac4[rand(getarraysize(.rac4))];
}
}
if(.@part == EQI_ACC_L){
//dispbottom .@indx+" slot "+.@part+" ID "+.@opt+"";
if(.@indx == 0){
.@opt = .lac0[rand(getarraysize(.lac0))];
} else if(.@indx == 1){
.@opt = .lac1[rand(getarraysize(.lac1))];
} else if(.@indx == 2){
.@opt = .lac2[rand(getarraysize(.lac2))];
} else if(.@indx == 3){
.@opt = .lac3[rand(getarraysize(.lac3))];
} else if(.@indx == 4){
.@opt = .lac4[rand(getarraysize(.lac4))];
}
}
for(set .@f,1; .@f<getarraysize(.ignore); set .@f,.@f+1)
if(.@opt==.ignore[.@f])
goto IgnoreCheck;
progressbar "ffff00",.espera;
// Falha...
if(.falha > 100) set .falha,100;
if(rand(100) < .falha) goto OnFailure;
// Sucesso!!
specialeffect2 154;
setrandomoption(.@part,.@indx,.@opt,.@val,.@indx,getcharid(0));
end;
OnMax:
mes "[ Neight ]";
mes "Ops... Seu equipamento ja";
mes "foi encantado ao máximo!";
mes " ";
mes "Perdão, mas, não posso";
mes "adicionar mais encantamentos";
mes "ao seu item.";
close;
OnFailure:
specialeffect2 EF_PHARMACY_FAIL;
mes "[ Neight ]"," ";
mes "Me perdoe..."," ";
mes "^FF0000O processo falhou...";
mes "Seu item foi destruído.^000000";
delequip .@part;
close;
PriceFail:
mes "[ Neight ]";
mes "O que e isso?";
mes "Você está brincando comigo?";
mes "Perdão, mas, eu não trabalho";
mes "de graça!";
mes "Você pode voltar quando";
mes "tiver dinheiro para me pagar";
mes "pelos meus serviços.";
close;
OnCancel:
mes "[ Neight ]";
mes "Vista-se.";
mes "Deixe-me saber caso";
mes "você mude de ideia";
close;
}
Nvm, managed to do it but idk if it's the correct way.
Those are the changes I made:
set .@val0, rand(.valmin,.valmax);
set .@val1, rand(.valmin,.valmax);
set .@val2, rand(.valmin,.valmax);
set .@val3, rand(.valmin,.valmax);
set .@val4, rand(.valmin,.valmax);
if(.@part == EQI_HEAD_TOP){
//dispbottom .@indx+" slot ID "+.@opt+"";
if(.@indx == 0){
.@opt0 = .thd0[rand(getarraysize(.thd0))];
.@opt1 = .thd1[rand(getarraysize(.thd1))];
.@opt2 = .thd2[rand(getarraysize(.thd2))];
.@opt3 = .thd3[rand(getarraysize(.thd3))];
.@opt4 = .thd4[rand(getarraysize(.thd4))];
}
}
setrandomoption(.@part,0,.@opt0,.@val0,0,getcharid(0));
setrandomoption(.@part,1,.@opt1,.@val1,1,getcharid(0));
setrandomoption(.@part,2,.@opt2,.@val2,2,getcharid(0));
setrandomoption(.@part,3,.@opt3,.@val3,3,getcharid(0));
setrandomoption(.@part,4,.@opt4,.@val4,4,getcharid(0));
Can someone confirm if it is the correct way to do it?
Edited by angreuszLink to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.