Jump to content
  • 0

Error Setting Random Option


Question

Posted (edited)

Hello everyone.

Im trying to release a script that enchant every item with random options chosen by array (i think someone request that in somewhere in rA).

Currently the script works, but, randomically i get the error in title when try enchant. I imagine that somehow the script was searching for this "id 0" reference in the database even if I did not indicate it as a possibility.

I tried clear all the arrays and test with only 1 value, and choose the ID 2 that correspond to MaxSP + X and even with that i still getting this error randomically.

Btw it happens in all slots, literally randomically x_X 

Here's the fullcode

Spoiler

//===== rAthena Script =======================================
//= Random Option SurviveRO
//===== By: ==================================================
//= Rizakh
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena Project
//===== Description: =========================================
//= Atribui opcoes aleatorias aos equipamentos.
//= com o custo de X zeny/cash
//============================================================

//trin_in,177,178,4

trin_in,177,178,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,5000;	// Preco da opcao aleatoria
//setarray .irq[0],990,7041; // Red Blood e Fine Grit
//setarray .iqt[0],1,1; // Quantidade de cada item
//==============================
//	CONFIGURAÇÕES RANDOM OPTION 
//==============================
	set .sobrepor,0;	// Permite sobrepor encantamentos existentes ( 0 = off )
	set .falha,5;		// Define a chance de falha (%)
	//set .MaxOpt,192;		// Maximum item option a player can enchant ( reference: https://github.com/rathena/rathena/blob/master/db/const.txt#L1645-L1836 )
	//set .MinOpt,1;		// Minimum item option a player can enchant
	set .valmin,2;	// Valor minimo a se tirar na opcao aleatoria
	set .valmax,5;	// 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[1],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[1],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[1],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[1],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[1],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[1],RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
	               RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
	setarray .mhd1[1],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[1],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[1],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[1],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[1],RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
	               RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
	setarray .lhd1[1],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[1],RDMOPT_DAMAGE_CRI_TARGET,RDMOPT_DAMAGE_CRI_USER,RDMOPT_RANGE_ATTACK_DAMAGE_USER,RDMOPT_HEAL_VALUE,RDMOPT_VAR_HITSUCCESSVALUE;
	setarray .lhd3[1],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[1],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[1],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[1],RDMOPT_VAR_MAXHPPERCENT,RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,
	               RDMOPT_VAR_SPACCELERATION,RDMOPT_VAR_ITEMDEFPOWER,RDMOPT_VAR_MDEFPOWER;
	setarray .arm2[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],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[1],RDMOPT_CLASS_MDAMAGE_NORMAL,RDMOPT_CLASS_MDAMAGE_BOSS,RDMOPT_CLASS_DAMAGE_NORMAL_USER,
		           RDMOPT_CLASS_DAMAGE_NORMAL_TARGET;
	setarray .shs3[1],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[1],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[1],RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
				   RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
	setarray .rac1[1],RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
				   RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION;
	setarray .rac2[1],RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
				   RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
	setarray .rac3[1],RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_ATTPOWER,
			       RDMOPT_VAR_ATTMPOWER,RDMOPT_RANGE_ATTACK_DAMAGE_TARGET,RDMOPT_DAMAGE_SIZE_PERFECT;
	setarray .rac4[1],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[1],RDMOPT_VAR_STRAMOUNT,RDMOPT_VAR_AGIAMOUNT,RDMOPT_VAR_VITAMOUNT,
				   RDMOPT_VAR_INTAMOUNT,RDMOPT_VAR_DEXAMOUNT,RDMOPT_VAR_LUKAMOUNT;
	setarray .lac1[1],RDMOPT_VAR_MAXHPAMOUNT,RDMOPT_VAR_MAXSPAMOUNT,RDMOPT_VAR_MAXHPPERCENT,
				   RDMOPT_VAR_MAXSPPERCENT,RDMOPT_VAR_HPACCELERATION,RDMOPT_VAR_SPACCELERATION;
	setarray .lac2[1],RDMOPT_VAR_PLUSASPD,RDMOPT_VAR_PLUSASPDPERCENT,RDMOPT_VAR_HITSUCCESSVALUE,
				   RDMOPT_VAR_AVOIDSUCCESSVALUE,RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE,RDMOPT_VAR_CRITICALSUCCESSVALUE;
	setarray .lac3[1],RDMOPT_VAR_ATKPERCENT,RDMOPT_VAR_MAGICATKPERCENT,RDMOPT_VAR_ATTPOWER,
			       RDMOPT_VAR_ATTMPOWER,RDMOPT_RANGE_ATTACK_DAMAGE_TARGET,RDMOPT_DAMAGE_SIZE_PERFECT;
	setarray .lac4[1],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","5x ^0000FF"+ getitemname(6242) +"^000000";
	} else {
		mes "Por um preço de ^0000FF"+.preco+" Cashpoints^000000,";
		mes "e também","1x ^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(6242) < 5)
		goto PriceFail;
	if(.moeda){
		if(Zeny < .preco)
			goto PriceFail;
		else
			set Zeny,Zeny-.preco;
			delitem 6242,5;
	} else {
		if(#CASHPOINTS < .preco)
			goto PriceFail;
		else	
			set #CASHPOINTS,#CASHPOINTS-.preco;
			delitem 6242,1;
	}		
		
	setarray .@eq[1], EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_L,EQI_HAND_R,EQI_GARMENT,EQI_SHOES,EQI_ACC_L,EQI_ACC_R,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);

	while(getequiprandomoption(.@part, .@indx, ROA_ID, getcharid(0))){
		++.@indx;
		if(.@indx > 4) { 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;
}	

 

Here's the error:

[Error]: buildin_setrandomoption: Random option ID 0 does not exists.
Edited by Rizta

1 answer to this question

Recommended Posts

  • 0
Posted (edited)

Hey, i think it's because your arrays starts from index 1, but using rand start from 0

.@opt = .thd0[rand(getarraysize(.thd0))];

 

Edited by Sehrentos
up
  • Upvote 1

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...