Jump to content

angreusz

Members
  • Posts

    6
  • Joined

  • Last visited

Posts posted by angreusz

  1. 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);

        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:

    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);

    Spoiler

        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))];
        }
    }

    Spoiler

        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?

  2. 8 hours ago, Jarek said:

    src\map\skil.cpp

    
    int skill_counter_additional_effect
    ...
    		if( (attack_type&(BF_WEAPON|BF_SHORT)) == (BF_WEAPON|BF_SHORT) ) {
    			sp += sd->bonus.sp_gain_value;
    			sp += sd->sp_gain_race[status_get_race(bl)] + sd->sp_gain_race[RC_ALL];
    			hp += sd->bonus.hp_gain_value;
    		}

    If you change condition like this

    
    if( attack_type&BF_WEAPON )

    It will work with physical melee and ranged attacks

    Thanks, it worked.

  3. Hello guys,

    I'm trying to make the script for the item below but I can't seem to make it gain hp on kill when defeating mobs with ranged attacks. bHpGainValue only works for melee...
    *sigh*
    image.png.ce5695a27472a061209518771ba59368.png
     

    19163,Catharina_Von_Brad_60th,Catharina Von Brad 60th,4,20,,0,,1,,1,0xFFFFFFFF,63,2,256,,0,1,1527,{bonus bHPGainValue,500; bonus bSPGainValue,50; bonus bMagicHPGainValue,500; bonus bMagicSPGainValue,50;},{},{}

     

  4. Procure, em src\map\pc.c, por:

    case SP_NO_GEMSTONE:
    if(sd->state.lr_flag != 2 && sd->special_state.no_gemstone != 2)
    sd->special_state.no_gemstone = 1;
    break;
    e mude por
    case SP_NO_GEMSTONE:
    if(sd->state.lr_flag != 2 && sd->special_state.no_gemstone != 2)
    sd->special_state.no_gemstone = 2;
    break;

    depois recompile o emulador. 

  5. Hello guys, 

    well, I can't find a way to make costume items scripts work, I've tried both ways:

    18921,C_Tarnished_Lamp,Costume Tarnished Lamp,5,20,10,20,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,897,{ bonus bLuk,10; },{},{}
     
    or
     
    18921,C_Tarnished_Lamp,Costume Tarnished Lamp,5,20,10,20,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,897,{},{ bonus bLuk,10; },{}

    When I equip the item, the bonus won't work...

     

    Someone knows how to make it work?

     

    Thanks in advance.

×
×
  • Create New...