-
Posts
235 -
Joined
-
Last visited
-
Days Won
9
dantoki last won the day on January 29
dantoki had the most liked content!
About dantoki
- Birthday 12/21/2010
Profile Information
-
Gender
Male
-
Location
Brazil
Recent Profile Visitors
7935 profile views
dantoki's Achievements
-
@Questune okay I'll try later
-
View File MVP Card to Mail Will automatically send to Mail when the MVP Drops Card. Thanks to RDL. Submitter dantoki Submitted 01/25/25 Category Source Modifications Video Content Author dantoki
-
View File Rental Card Return If your Rental Item has a card compounded it will automatically mail you the card after the expiration. Thanks to RDL. Submitter dantoki Submitted 01/25/25 Category Source Modifications Video Content Author dantoki
-
-
-
DAMNNNNNN FIREEEEE~
-
Damnnnn Thanks as I see that its possible.
-
can you record it?
-
did the offline mode can use teleport?
-
Sonic Blow / Arrow Vulcan animations on newer clients
dantoki replied to ckx_'s question in General Support
that would be so much helpful @ckx_ Thanks in Advance -
Sonic Blow / Arrow Vulcan animations on newer clients
dantoki replied to ckx_'s question in General Support
-
Thanksss!!!
-
//===== rAthena Script ======================================= //= saders All in one Random Option Script //= Free Script!!!! //===== By: ================================================== //= sader1992 //= https://sader1992.com/ //= https://rathena.org/board/profile/30766-sader1992/ //= https://sader1992.com/?page=item&item=54 //= For more , check out here > //= https://sader1992.com/?page=ra_services //= https://sader1992.com/?page=store //= https://rathena.org/board/profile/30766-sader1992/content/?type=downloads_file //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //https://rathena.org/board/files/file/4309-all-in-one-random-options-script/ //https://github.com/sader1992/sader_scripts //===== Update Log: ========================================= //= Version 1.0 Creating the script. //===== Description: ========================================= //= This is a Highly Custumizable random option script //= you can reuse the script by just creating a new file with different setting!. //= read and understand the settings. //============================================================ prt_in,30,108,5 script Random Option 10434,{ disable_items; function rnd; switch(select("Insert Random Options:Allowed Items List")){ case 1: mes "You must equip the item to appear here!"; for(.@i=0;.@i<EQI_MAX;.@i++){ if(getequipisequiped(.@i)) { .@m1$ += (inarray(.item_list,getequipid(.@i)) != -1?"^11AD09":"^F73831") + F_getpositionname(.@i) + "-[" + getequipname(.@i) + "]^000000"; .@exist = true; } .@m1$ += ":"; } if(!.@exist){ mes "You have to equip the item you want to insert the random options into!."; end; } .@eq = select(.@m1$) -1; clear; .@id = getequipid(.@eq); if(inarray(.item_list,.@id) == -1){ mes "Sorry , I cannot deal with this item!"; end; } .@gid = .it[.@id]; if(!.@gid){ mes "Something went wrong!"; end; } if(!getequiprandomoption(.@eq,0,ROA_ID)){ .@zeny = .nz[.@gid]; .@cashpoint = .nk[.@gid]; .@costumpoint = .nc[.@gid]; copyarray(.@item,getd(".ni_" + .@gid),getarraysize(getd(".ni_" + .@gid))); copyarray(.@amount,getd(".na_" + .@gid),getarraysize(getd(".na_" + .@gid))); }else{ if(!.g_reroll[.@gid]){ mes "Sorry , i cannot reroll the random options in this item!"; end; } .@zeny = .rz[.@gid]; .@cashpoint = .rk[.@gid]; .@costumpoint = .rc[.@gid]; copyarray(.@item,getd(".ri_" + .@gid),getarraysize(getd(".ri_" + .@gid))); copyarray(.@amount,getd(".ra_" + .@gid),getarraysize(getd(".ra_" + .@gid))); } mes "Selected Item [" + getequipname(.@eq) + "]"; mes "==== Cost ===="; if(.@zeny) mes "Zeny: " + .@zeny; if(.@cashpoint) mes "CashPoint: " + .@cashpoint; if(.@costumpoint) mes .CustomPointsName$ + ": " + .@costumpoint; for(.@i=0;.@i<getarraysize(.@item);.@i++){ mes "(" + .@amount[.@i] + "pcs.) " + getitemname(.@item[.@i]) + " (" + .@item[.@i] + ")"; } if(!.KeepItemData){ mes "^E01E00You will loss all the refine and cards in the item if you continue.^000000"; } mes "Would you like to continue?"; if(select("Yes:No") == 2){ clear; mes "Ok, see you next time!"; end; } clear; if(Zeny < .@zeny){ mes "You don't have " + .@zeny + " Zeny"; .@close = true; } if(#CASHPOINTS < .@cashpoint){ mes "You don't have " + .@cashpoint + " CashPoints"; .@close = true; } if(getd(.CustomPointsVariable$) < .@costumpoint){ mes "You don't have " + .@costumpoint + " " + .CustomPointsName$; .@close = true; } for(.@i=0;.@i<getarraysize(.@item);.@i++){ if(countitem(.@item[.@i]) < .@amount[.@i]){ mes "You don't have (" + .@amount[.@i] + ") " + getitemname(.@item[.@i]); .@close = true; } } if(.@close) end; .@r = getequiprefinerycnt(.@eq); for(.@i=0;.@i<4;.@i++){ if(getequipcardid(.@eq,.@i)){ setd ".@c" + .@i,getequipcardid(.@eq,.@i); .@re[getarraysize(.@re)] = true; } } copyarray(.@opt_id,getd(".ro_id_" + .@gid + "_0"),getarraysize(getd(".ro_id_" + .@gid + "_0"))); copyarray(.@opt_mn,getd(".ro_mn_" + .@gid + "_0"),getarraysize(getd(".ro_mn_" + .@gid + "_0"))); copyarray(.@opt_mx,getd(".ro_mx_" + .@gid + "_0"),getarraysize(getd(".ro_mx_" + .@gid + "_0"))); for(.@i=1;.@i<6;.@i++){ copyarray(getd(".@opt_id" + .@i),getd(".ro_id_" + .@gid + "_" + .@i),getarraysize(getd(".ro_id_" + .@gid + "_" + .@i))); copyarray(getd(".@opt_mn" + .@i),getd(".ro_mn_" + .@gid + "_" + .@i),getarraysize(getd(".ro_mn_" + .@gid + "_" + .@i))); copyarray(getd(".@opt_mx" + .@i),getd(".ro_mx_" + .@gid + "_" + .@i),getarraysize(getd(".ro_mx_" + .@gid + "_" + .@i))); } for(.@i=1;.@i<6;.@i++){ if(rand(100) > getd(".s_" + .@i + "[" + .@gid + "]")) break; if(getd(".ro_id_" + .@gid + "_" + .@i)){ if(!getarraysize(getd(".@opt_id" + .@i))) break; .@ndx = rand(getarraysize(getd(".@opt_id" + .@i))); .@result_id = getd(".@opt_id" + .@i + "[" + .@ndx + "]"); .@result_vl = rnd(getd(".@opt_mn" + .@i + "[" + .@ndx + "]"),getd(".@opt_mx" + .@i + "[" + .@ndx + "]")); deletearray(getd(".@opt_id" + .@i + "[" + .@ndx + "]"),1); deletearray(getd(".@opt_mn" + .@i + "[" + .@ndx + "]"),1); deletearray(getd(".@opt_mx" + .@i + "[" + .@ndx + "]"),1); }else{ if(!.@opt_id) break; .@ndx = rand(getarraysize(.@opt_id)); .@result_id = .@opt_id[.@ndx]; .@result_vl = rnd(.@opt_mn[.@ndx],.@opt_mx[.@ndx]); if(!.g_reuse[.@gid]){ deletearray(.@opt_id[.@ndx],1); deletearray(.@opt_mn[.@ndx],1); deletearray(.@opt_mx[.@ndx],1); } } if(.ex[.@result_id]){ for(.@i2=0;.@i2<getarraysize(.@r_id);.@i2++){ if(.ex[.@result_id] == .ex[.@r_id[.@i2]]){ .@reject = true; } } } if(!.@reject){ .@s1 = getarraysize(.@r_id); .@r_id[.@s1] = .@result_id; .@r_v[.@s1] = .@result_vl; }else{ .@i--; .@failsafe++; if(.@failsafe > 50){ mes "Something went wrong , The server admin need to make sure that the config is done correctly!"; end; } } } if(Zeny < .@zeny) end; if(#CASHPOINTS < .@cashpoint) end; if(getd(.CustomPointsVariable$) < .@costumpoint) end; for(.@i=0;.@i<getarraysize(.@item);.@i++){ if(countitem(.@item[.@i]) < .@amount[.@i]){ end; } } // anti-hack if (callfunc("F_IsEquipIDHack", .@eq, .@id) || callfunc("F_IsEquipCardHack", .@eq, .@c0, .@c1, .@c2, .@c3)) { // anti-hack emotion ET_FRET; mes "Item Switch detected!"; end; } Zeny -= .@zeny; #CASHPOINTS-= .@cashpoint; setd(.CustomPointsVariable$,getd(.CustomPointsVariable$) - .@costumpoint); for(.@i=0;.@i<getarraysize(.@item);.@i++){ delitem(.@item[.@i],.@amount[.@i]); } if(!.@r_id){ specialeffect2 EF_REFINEOK; mes "Look Like you didn't get any random option, your luck is really bad!"; end; } delequip(.@eq); specialeffect2 EF_REFINEOK; if(.KeepItemData) getitem3(.@id,1,1,.@r,0,.@c0,.@c1,.@c2,.@c3,.@r_id,.@r_v,.@null); else getitem3(.@id,1,1,0,0,0,0,0,0,.@r_id,.@r_v,.@null); equip(.@id); mes "Done!"; end; case 2: mes "The list of the allowed items in this npc!"; for(.@i=0;.@i<getarraysize(.item_list);.@i++){ mes "<ITEM>" + getitemname(.item_list[.@i]) + "[" + getitemslots(.item_list[.@i]) + "]<INFO>" + .item_list[.@i] + "</INFO></ITEM>"; if(.@i >= 10 && !(.@i%10)) next; } end; } end; function rnd { if(.HardBalance){ return rand(getarg(0),rand(getarg(0)+1,getarg(1))); } return rand(getarg(0),getarg(1)); } function AddGroup { .@id = getarg(0); for(.@i=1;.@i<getargcount();.@i++){ .it[getarg(.@i)] = .@id; .item_list[getarraysize(.item_list)] = getarg(.@i); } return; } function AddGroupOption { .@id = getarg(0); .g_reroll[.@id] = getarg(1); .g_reuse[.@id] = getarg(2); return; } function AddGroupCost { .@id = getarg(0); .nz[.@id] = getarg(1); .nk[.@id] = getarg(2); .nc[.@id] = getarg(3); for(.@i=4;.@i<getargcount();.@i+=2){ .@s = getarraysize(getd(".ni_" + .@id)); setd(".ni_" + .@id + "[" + .@s + "]",getarg(.@i)); setd(".na_" + .@id + "[" + .@s + "]",getarg(.@i+1)); } return; } function AddGroupReRollCost { .@id = getarg(0); .rz[.@id] = getarg(1); .rk[.@id] = getarg(2); .rc[.@id] = getarg(3); for(.@i=4;.@i<getargcount();.@i+=2){ .@s = getarraysize(getd(".ri_" + .@id)); setd(".ri_" + .@id + "[" + .@s + "]",getarg(.@i)); setd(".ra_" + .@id + "[" + .@s + "]",getarg(.@i+1)); } return; } function AddGroupChance { .@id = getarg(0); .s_1[.@id] = getarg(1); .s_2[.@id] = getarg(2); .s_3[.@id] = getarg(3); .s_4[.@id] = getarg(4); .s_5[.@id] = getarg(5); return; } function AddOpt { .@id = getarg(0); .@loc = getarg(1); .@s = getarraysize(getd(".ro_id_" + .@id + "_" + .@loc)); setd(".ro_id_" + .@id + "_" + .@loc + "[" + .@s + "]",getarg(2)); setd(".ro_mn_" + .@id + "_" + .@loc + "[" + .@s + "]",getarg(3)); setd(".ro_mx_" + .@id + "_" + .@loc + "[" + .@s + "]",getarg(4)); return; } function AddExclusiveOpt { .@s1 = getarraysize(.exv); .exv[.@s1] = true; for(.@i=0;.@i<getargcount();.@i++){ .ex[getarg(.@i)] = .@s1; } return; } OnInit: .exv = true;//DO NOT REMOVE THIS. .KeepItemData = true;//if this is 'false , the player will loss the refine+cards from the item when he use this npc. .CustomPointsVariable$ = "#COSTUMPOINTS";//The variable name of the costum points. .CustomPointsName$ = "Server RO Points";//The name of the costum points, this what the player will see. .HardBalance = true;//if this is true , it would be much harder to get high value in the random option. //AddGroup(<Group ID>,<ItemID>,<ItemID>,<ItemID>,<ItemID>,<ItemID>); /* AddGroup Doc <Group ID> = a number between 1 and MAX_INT64 DO NOT REUSE THE GROUP ID IN THE SAME FILE CONFIG! DO NOT REUSE THE SAME ITEM ID IN DIFFERENT GROUP! will create a group id you can add as many as you want items inside a group. */ //AddGroupOption(<Group ID>,<Allow ReRoll?true:false>,<Allow reuse already gotten option?true:false>,<Zeny Cost>,<CashPoint Cost>,<Custom Points Cost>,<Item1 ID Cost>,<Item1 Amount Cost>,<Item2 ID Cost>,<Item2 Amount Cost>,<....ETC>); /* AddGroupOption Doc <Group ID> = A group id that is already created in AddGroup()!. <Allow ReRoll?true:false> = allow reroll an item with random option or not <Allow reuse already gotten option?true:false> = for exammple if you have str in the options and the player gor it , can he get it again in another slot? */ //AddGroupCost(<Group ID>,<Zeny Cost>,<CashPoint Cost>,<Custom Points Cost>,<Item1 ID Cost>,<Item1 Amount Cost>,<Item2 ID Cost>,<Item2 Amount Cost>,<....ETC>); /* AddGroupCost Doc <Group ID> = A group id that is already created in AddGroup()!. <Zeny Cost> = the zeny cost (can be 0) <CashPoint Cost> = the cashpoints cost (can be 0) <Custom Points Cost> = if you are using costum points in the script , check out .CustomPointsVariable$ and .CustomPointsName$ at the start of the script (can be 0) <Item1 ID Cost> = the item cost <Item1 Amount Cost> = the item amount cost You can use as many item,amount cost at the end of the function. */ //AddGroupReRollCost(<Group ID>,<Zeny Cost>,<CashPoint Cost>,<Custom Points Cost>,<Item1 ID Cost>,<Item1 Amount Cost>,<Item2 ID Cost>,<Item2 Amount Cost>,<....ETC>); /* AddGroupReRollCost Doc <Group ID> = A group id that is already created in AddGroup()!. <Zeny Cost> = the zeny cost (can be 0) <CashPoint Cost> = the cashpoints cost (can be 0) <Custom Points Cost> = if you are using costum points in the script , check out .CustomPointsVariable$ and .CustomPointsName$ at the start of the script (can be 0) <Item1 ID Cost> = the item cost <Item1 Amount Cost> = the item amount cost You can use as many item,amount cost at the end of the function. */ //AddGroupChance(<Group ID>,<1st Option Chance>,<2nd Option Chance>,<3rd Option Chance>,<4th Option Chance>,<5th Option Chance>); /* AddGroupChance Doc <Group ID> = A group id that is already created in AddGroup()!. <1st Option Chance> = the Chance to get one of the random options in the slot 1 (can be 0) <2nd Option Chance> = the Chance to get one of the random options in the slot 2 (can be 0) <3rd Option Chance> = the Chance to get one of the random options in the slot 3 (can be 0) <4th Option Chance> = the Chance to get one of the random options in the slot 4 (can be 0) <5th Option Chance> = the Chance to get one of the random options in the slot 5 (can be 0) Keep inmind that if the player didn't get lucky for example at the slot 2 , all the chances after will be ignored you cannot skip a random option slot that would bug the game client. */ //AddOpt(<Group ID>,<Location>,<Random Option ID>,<Minimum Value>,<Maximum Value>); /* AddOpt Doc <Group ID> = A group id that is already created in AddGroup()!. <Location> = you can spisfiy random option to a location from 1 to 5 , but you can use 0 , if you used 0 it will apply to all locations that doesn't have spisfied random options. <Random Option ID> = random option id , you can use the id or the variable , check out the file /rathena/db/re/item_randomopt_db.yml <Minimum Value> = the minimum value <Maximum Value> = the maximum value */ //AddExclusiveOpt(<Random Option ID>,<Random Option ID>,<Random Option ID>,<Random Option ID>,<Random Option ID>); /* AddExclusiveOpt Doc this will help you to prevent a group of random opions typs in the same item in different slots for example 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 if the player got 1 of them in a slot , he wont get another one to another slot */ //Example!!!> //this is just an example , this script allow you to create any random option system you want. // BAAL HELM ====================================================================== //Creating Group id 1 , with Hat items inside. AddGroup(1,50001); //Group id 1 Options AddGroupOption(1,true,false); //Group id 1 Cost AddGroupCost(1,0,0,0,70501,1,677,50); //Group id 1 ReRoll Cost AddGroupReRollCost(1,0,0,0,70501,1,677,50); //Group id 1 Chances. AddGroupChance(1,100,100,100,0,0); //Group id 1 Random Option List. location 0 mean all the slot locations AddOpt(1,1,RDMOPT_VAR_STRAMOUNT,1,5); AddOpt(1,1,RDMOPT_VAR_INTAMOUNT,1,5); AddOpt(1,1,RDMOPT_VAR_VITAMOUNT,1,5); AddOpt(1,1,RDMOPT_VAR_LUKAMOUNT,1,5); AddOpt(1,1,RDMOPT_VAR_AGIAMOUNT,1,5); AddOpt(1,1,RDMOPT_VAR_DEXAMOUNT,1,5); AddOpt(1,2,RDMOPT_VAR_MAXHPPERCENT,1,5); AddOpt(1,2,RDMOPT_VAR_MAXSPPERCENT,1,5); AddOpt(1,2,RDMOPT_VAR_ATKPERCENT,1,5); AddOpt(1,2,RDMOPT_VAR_MAGICATKPERCENT,1,5); AddOpt(1,2,RDMOPT_VAR_MDEFPOWER,1,5); AddOpt(1,2,RDMOPT_VAR_ITEMDEFPOWER,1,5); AddOpt(1,2,RDMOPT_VAR_HITSUCCESSVALUE,1,5); AddOpt(1,2,RDMOPT_VAR_CRITICALSUCCESSVALUE,1,5); AddOpt(1,3,RDMOPT_VAR_SPIRALPIERCE,8,12); AddOpt(1,3,RDMOPT_VAR_BOWLINGBASH,8,12); AddOpt(1,3,RDMOPT_VAR_SACRIFICE,8,12); AddOpt(1,3,RDMOPT_VAR_SHIELDCHAIN,8,12); AddOpt(1,3,RDMOPT_VAR_FIREBOLT,8,12); AddOpt(1,3,RDMOPT_VAR_COLDBOLT,8,12); AddOpt(1,3,RDMOPT_VAR_LIGHTNINGBOLT,8,12); AddOpt(1,3,RDMOPT_VAR_STORMGUST,8,12); AddOpt(1,3,RDMOPT_VAR_METEOR,8,12); AddOpt(1,3,RDMOPT_VAR_DOUBLE,8,12); AddOpt(1,3,RDMOPT_VAR_SHARPSHOOTING,8,12); AddOpt(1,3,RDMOPT_VAR_ARROWVULCAN,8,12); AddOpt(1,3,RDMOPT_VAR_ACIDDEMONSTRATION,8,12); AddOpt(1,3,RDMOPT_VAR_DEMONSTRATION,8,12); AddOpt(1,3,RDMOPT_VAR_CARTTERMINATION,8,12); AddOpt(1,3,RDMOPT_VAR_SONICBLOW,8,12); AddOpt(1,3,RDMOPT_VAR_BREAKER,8,12); AddOpt(1,3,RDMOPT_VAR_TURNUNDEAD,8,12); AddOpt(1,3,RDMOPT_VAR_HOLYLIGHT,8,12); AddOpt(1,3,RDMOPT_VAR_EXTREMITYFIST,8,12); AddOpt(1,3,RDMOPT_VAR_FINGEROFFENSIVE,8,12); AddOpt(1,3,RDMOPT_VAR_JUMPKICK,8,12); AddOpt(1,3,RDMOPT_VAR_SMA,8,12); AddOpt(1,3,RDMOPT_VAR_ISSEN,8,12); AddOpt(1,3,RDMOPT_VAR_HYOUSENSOU,8,12); AddOpt(1,3,RDMOPT_VAR_DESPERADO,8,12); AddOpt(1,3,RDMOPT_VAR_RAPIDSHOWER,8,12); // SKULL BEANIE HELM ====================================================================== //Creating Group id 2 , with Hat items inside. AddGroup(2,50002); //Group id 2 Options AddGroupOption(2,true,false); //Group id 2 Cost AddGroupCost(2,0,0,0,70502,1,677,50); //Group id 2 ReRoll Cost AddGroupReRollCost(2,0,0,0,70502,1,677,50); //Group id 2 Chances. AddGroupChance(2,100,100,100,0,0); //Group id 1 Random Option List. location 0 mean all the slot locations AddOpt(2,1,RDMOPT_VAR_STRAMOUNT,1,5); AddOpt(2,1,RDMOPT_VAR_INTAMOUNT,1,5); AddOpt(2,1,RDMOPT_VAR_VITAMOUNT,1,5); AddOpt(2,1,RDMOPT_VAR_LUKAMOUNT,1,5); AddOpt(2,1,RDMOPT_VAR_AGIAMOUNT,1,5); AddOpt(2,1,RDMOPT_VAR_DEXAMOUNT,1,5); AddOpt(2,2,RDMOPT_VAR_MAXHPPERCENT,1,5); AddOpt(2,2,RDMOPT_VAR_MAXSPPERCENT,1,5); AddOpt(2,2,RDMOPT_VAR_ATKPERCENT,1,5); AddOpt(2,2,RDMOPT_VAR_MAGICATKPERCENT,1,5); AddOpt(2,2,RDMOPT_VAR_MDEFPOWER,1,5); AddOpt(2,2,RDMOPT_VAR_ITEMDEFPOWER,1,5); AddOpt(2,2,RDMOPT_VAR_HITSUCCESSVALUE,1,5); AddOpt(2,2,RDMOPT_VAR_CRITICALSUCCESSVALUE,1,5); AddOpt(2,3,RDMOPT_VAR_SPIRALPIERCE,8,12); AddOpt(2,3,RDMOPT_VAR_BOWLINGBASH,8,12); AddOpt(2,3,RDMOPT_VAR_SACRIFICE,8,12); AddOpt(2,3,RDMOPT_VAR_SHIELDCHAIN,8,12); AddOpt(2,3,RDMOPT_VAR_FIREBOLT,8,12); AddOpt(2,3,RDMOPT_VAR_COLDBOLT,8,12); AddOpt(2,3,RDMOPT_VAR_LIGHTNINGBOLT,8,12); AddOpt(2,3,RDMOPT_VAR_STORMGUST,8,12); AddOpt(2,3,RDMOPT_VAR_METEOR,8,12); AddOpt(2,3,RDMOPT_VAR_DOUBLE,8,12); AddOpt(2,3,RDMOPT_VAR_SHARPSHOOTING,8,12); AddOpt(2,3,RDMOPT_VAR_ARROWVULCAN,8,12); AddOpt(2,3,RDMOPT_VAR_ACIDDEMONSTRATION,8,12); AddOpt(2,3,RDMOPT_VAR_DEMONSTRATION,8,12); AddOpt(2,3,RDMOPT_VAR_CARTTERMINATION,8,12); AddOpt(2,3,RDMOPT_VAR_SONICBLOW,8,12); AddOpt(2,3,RDMOPT_VAR_BREAKER,8,12); AddOpt(2,3,RDMOPT_VAR_TURNUNDEAD,8,12); AddOpt(2,3,RDMOPT_VAR_HOLYLIGHT,8,12); AddOpt(2,3,RDMOPT_VAR_EXTREMITYFIST,8,12); AddOpt(2,3,RDMOPT_VAR_FINGEROFFENSIVE,8,12); AddOpt(2,3,RDMOPT_VAR_JUMPKICK,8,12); AddOpt(2,3,RDMOPT_VAR_SMA,8,12); AddOpt(2,3,RDMOPT_VAR_ISSEN,8,12); AddOpt(2,3,RDMOPT_VAR_HYOUSENSOU,8,12); AddOpt(2,3,RDMOPT_VAR_DESPERADO,8,12); AddOpt(2,3,RDMOPT_VAR_RAPIDSHOWER,8,12); // DROOPING MAYA HAT ====================================================================== //Creating Group id 3 , with Hat items inside. AddGroup(3,50004); //Group id 3 Options AddGroupOption(3,true,false); //Group id 3 Cost AddGroupCost(3,0,0,0,70503,1,677,50); //Group id 3 ReRoll Cost AddGroupReRollCost(3,0,0,0,70503,1,677,50); //Group id 3 Chances. AddGroupChance(3,100,100,100,0,0); //Group id 3 Random Option List. location 0 mean all the slot locations AddOpt(3,1,RDMOPT_VAR_STRAMOUNT,1,5); AddOpt(3,1,RDMOPT_VAR_INTAMOUNT,1,5); AddOpt(3,1,RDMOPT_VAR_VITAMOUNT,1,5); AddOpt(3,1,RDMOPT_VAR_LUKAMOUNT,1,5); AddOpt(3,1,RDMOPT_VAR_AGIAMOUNT,1,5); AddOpt(3,1,RDMOPT_VAR_DEXAMOUNT,1,5); AddOpt(3,2,RDMOPT_VAR_MAXHPPERCENT,1,5); AddOpt(3,2,RDMOPT_VAR_MAXSPPERCENT,1,5); AddOpt(3,2,RDMOPT_VAR_ATKPERCENT,1,5); AddOpt(3,2,RDMOPT_VAR_MAGICATKPERCENT,1,5); AddOpt(3,2,RDMOPT_VAR_MDEFPOWER,1,5); AddOpt(3,2,RDMOPT_VAR_ITEMDEFPOWER,1,5); AddOpt(3,2,RDMOPT_VAR_HITSUCCESSVALUE,1,5); AddOpt(3,2,RDMOPT_VAR_CRITICALSUCCESSVALUE,1,5); AddOpt(3,3,RDMOPT_VAR_SPIRALPIERCE,8,12); AddOpt(3,3,RDMOPT_VAR_BOWLINGBASH,8,12); AddOpt(3,3,RDMOPT_VAR_SACRIFICE,8,12); AddOpt(3,3,RDMOPT_VAR_SHIELDCHAIN,8,12); AddOpt(3,3,RDMOPT_VAR_FIREBOLT,8,12); AddOpt(3,3,RDMOPT_VAR_COLDBOLT,8,12); AddOpt(3,3,RDMOPT_VAR_LIGHTNINGBOLT,8,12); AddOpt(3,3,RDMOPT_VAR_STORMGUST,8,12); AddOpt(3,3,RDMOPT_VAR_METEOR,8,12); AddOpt(3,3,RDMOPT_VAR_DOUBLE,8,12); AddOpt(3,3,RDMOPT_VAR_SHARPSHOOTING,8,12); AddOpt(3,3,RDMOPT_VAR_ARROWVULCAN,8,12); AddOpt(3,3,RDMOPT_VAR_ACIDDEMONSTRATION,8,12); AddOpt(3,3,RDMOPT_VAR_DEMONSTRATION,8,12); AddOpt(3,3,RDMOPT_VAR_CARTTERMINATION,8,12); AddOpt(3,3,RDMOPT_VAR_SONICBLOW,8,12); AddOpt(3,3,RDMOPT_VAR_BREAKER,8,12); AddOpt(3,3,RDMOPT_VAR_TURNUNDEAD,8,12); AddOpt(3,3,RDMOPT_VAR_HOLYLIGHT,8,12); AddOpt(3,3,RDMOPT_VAR_EXTREMITYFIST,8,12); AddOpt(3,3,RDMOPT_VAR_FINGEROFFENSIVE,8,12); AddOpt(3,3,RDMOPT_VAR_JUMPKICK,8,12); AddOpt(3,3,RDMOPT_VAR_SMA,8,12); AddOpt(3,3,RDMOPT_VAR_ISSEN,8,12); AddOpt(3,3,RDMOPT_VAR_HYOUSENSOU,8,12); AddOpt(3,3,RDMOPT_VAR_DESPERADO,8,12); AddOpt(3,3,RDMOPT_VAR_RAPIDSHOWER,8,12); // DROOPING GARM HAT ====================================================================== //Creating Group id 4 , with Hat items inside. AddGroup(4,50005); //Group id 4 Options AddGroupOption(4,true,false); //Group id 4 Cost AddGroupCost(4,0,0,0,70504,1,677,50); //Group id 4 ReRoll Cost AddGroupReRollCost(4,0,0,0,70504,1,677,50); //Group id 4 Chances. AddGroupChance(4,100,100,100,0,0); //Group id 4 Random Option List. location 0 mean all the slot locations AddOpt(4,1,RDMOPT_VAR_STRAMOUNT,1,5); AddOpt(4,1,RDMOPT_VAR_INTAMOUNT,1,5); AddOpt(4,1,RDMOPT_VAR_VITAMOUNT,1,5); AddOpt(4,1,RDMOPT_VAR_LUKAMOUNT,1,5); AddOpt(4,1,RDMOPT_VAR_AGIAMOUNT,1,5); AddOpt(4,1,RDMOPT_VAR_DEXAMOUNT,1,5); AddOpt(4,2,RDMOPT_VAR_MAXHPPERCENT,1,5); AddOpt(4,2,RDMOPT_VAR_MAXSPPERCENT,1,5); AddOpt(4,2,RDMOPT_VAR_ATKPERCENT,1,5); AddOpt(4,2,RDMOPT_VAR_MAGICATKPERCENT,1,5); AddOpt(4,2,RDMOPT_VAR_MDEFPOWER,1,5); AddOpt(4,2,RDMOPT_VAR_ITEMDEFPOWER,1,5); AddOpt(4,2,RDMOPT_VAR_HITSUCCESSVALUE,1,5); AddOpt(4,2,RDMOPT_VAR_CRITICALSUCCESSVALUE,1,5); AddOpt(4,3,RDMOPT_VAR_SPIRALPIERCE,8,12); AddOpt(4,3,RDMOPT_VAR_BOWLINGBASH,8,12); AddOpt(4,3,RDMOPT_VAR_SACRIFICE,8,12); AddOpt(4,3,RDMOPT_VAR_SHIELDCHAIN,8,12); AddOpt(4,3,RDMOPT_VAR_FIREBOLT,8,12); AddOpt(4,3,RDMOPT_VAR_COLDBOLT,8,12); AddOpt(4,3,RDMOPT_VAR_LIGHTNINGBOLT,8,12); AddOpt(4,3,RDMOPT_VAR_STORMGUST,8,12); AddOpt(4,3,RDMOPT_VAR_METEOR,8,12); AddOpt(4,3,RDMOPT_VAR_DOUBLE,8,12); AddOpt(4,3,RDMOPT_VAR_SHARPSHOOTING,8,12); AddOpt(4,3,RDMOPT_VAR_ARROWVULCAN,8,12); AddOpt(4,3,RDMOPT_VAR_ACIDDEMONSTRATION,8,12); AddOpt(4,3,RDMOPT_VAR_DEMONSTRATION,8,12); AddOpt(4,3,RDMOPT_VAR_CARTTERMINATION,8,12); AddOpt(4,3,RDMOPT_VAR_SONICBLOW,8,12); AddOpt(4,3,RDMOPT_VAR_BREAKER,8,12); AddOpt(4,3,RDMOPT_VAR_TURNUNDEAD,8,12); AddOpt(4,3,RDMOPT_VAR_HOLYLIGHT,8,12); AddOpt(4,3,RDMOPT_VAR_EXTREMITYFIST,8,12); AddOpt(4,3,RDMOPT_VAR_FINGEROFFENSIVE,8,12); AddOpt(4,3,RDMOPT_VAR_JUMPKICK,8,12); AddOpt(4,3,RDMOPT_VAR_SMA,8,12); AddOpt(4,3,RDMOPT_VAR_ISSEN,8,12); AddOpt(4,3,RDMOPT_VAR_HYOUSENSOU,8,12); AddOpt(4,3,RDMOPT_VAR_DESPERADO,8,12); AddOpt(4,3,RDMOPT_VAR_RAPIDSHOWER,8,12); // Greate E. HAT ====================================================================== //Creating Group id 5 , with Hat items inside. AddGroup(11,50047); //Group id 11 Options AddGroupOption(11,true,false); //Group id 11 Cost AddGroupCost(11,0,0,0,70511,1,677,50); //Group id 11 ReRoll Cost AddGroupReRollCost(11,0,0,0,70511,1,677,50); //Group id 11 Chances. AddGroupChance(11,100,100,100,0,0); //Group id 4 Random Option List. location 0 mean all the slot locations AddOpt(11,1,RDMOPT_VAR_STRAMOUNT,1,5); AddOpt(11,1,RDMOPT_VAR_INTAMOUNT,1,5); AddOpt(11,1,RDMOPT_VAR_VITAMOUNT,1,5); AddOpt(11,1,RDMOPT_VAR_LUKAMOUNT,1,5); AddOpt(11,1,RDMOPT_VAR_AGIAMOUNT,1,5); AddOpt(11,1,RDMOPT_VAR_DEXAMOUNT,1,5); AddOpt(11,2,RDMOPT_VAR_MAXHPPERCENT,1,5); AddOpt(11,2,RDMOPT_VAR_MAXSPPERCENT,1,5); AddOpt(11,2,RDMOPT_VAR_ATKPERCENT,1,5); AddOpt(11,2,RDMOPT_VAR_MAGICATKPERCENT,1,5); AddOpt(11,2,RDMOPT_VAR_MDEFPOWER,1,5); AddOpt(11,2,RDMOPT_VAR_ITEMDEFPOWER,1,5); AddOpt(11,2,RDMOPT_VAR_HITSUCCESSVALUE,1,5); AddOpt(11,2,RDMOPT_VAR_CRITICALSUCCESSVALUE,1,5); AddOpt(11,3,RDMOPT_VAR_SPIRALPIERCE,8,12); AddOpt(11,3,RDMOPT_VAR_BOWLINGBASH,8,12); AddOpt(11,3,RDMOPT_VAR_SACRIFICE,8,12); AddOpt(11,3,RDMOPT_VAR_SHIELDCHAIN,8,12); AddOpt(11,3,RDMOPT_VAR_FIREBOLT,8,12); AddOpt(11,3,RDMOPT_VAR_COLDBOLT,8,12); AddOpt(11,3,RDMOPT_VAR_LIGHTNINGBOLT,8,12); AddOpt(11,3,RDMOPT_VAR_STORMGUST,8,12); AddOpt(11,3,RDMOPT_VAR_METEOR,8,12); AddOpt(11,3,RDMOPT_VAR_DOUBLE,8,12); AddOpt(11,3,RDMOPT_VAR_SHARPSHOOTING,8,12); AddOpt(11,3,RDMOPT_VAR_ARROWVULCAN,8,12); AddOpt(11,3,RDMOPT_VAR_ACIDDEMONSTRATION,8,12); AddOpt(11,3,RDMOPT_VAR_DEMONSTRATION,8,12); AddOpt(11,3,RDMOPT_VAR_CARTTERMINATION,8,12); AddOpt(11,3,RDMOPT_VAR_SONICBLOW,8,12); AddOpt(11,3,RDMOPT_VAR_BREAKER,8,12); AddOpt(11,3,RDMOPT_VAR_TURNUNDEAD,8,12); AddOpt(11,3,RDMOPT_VAR_HOLYLIGHT,8,12); AddOpt(11,3,RDMOPT_VAR_EXTREMITYFIST,8,12); AddOpt(11,3,RDMOPT_VAR_FINGEROFFENSIVE,8,12); AddOpt(11,3,RDMOPT_VAR_JUMPKICK,8,12); AddOpt(11,3,RDMOPT_VAR_SMA,8,12); AddOpt(11,3,RDMOPT_VAR_ISSEN,8,12); AddOpt(11,3,RDMOPT_VAR_HYOUSENSOU,8,12); AddOpt(11,3,RDMOPT_VAR_DESPERADO,8,12); AddOpt(11,3,RDMOPT_VAR_RAPIDSHOWER,8,12); //this mean those random options cannot coexist in the same item!. AddExclusiveOpt(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); end; } Hello @sader1992 is it possible to make in 1 group with different cost per item instead i'm making lots of groups? Thanksss