AinsLord Posted January 25, 2023 Group: Members Topic Count: 261 Topics Per Day: 0.08 Content Count: 758 Reputation: 20 Joined: 11/21/15 Last Seen: 5 hours ago Share Posted January 25, 2023 so here is the script i made for specific item with a specific random option stats //Test functions function script F_CASH_SHOP_RANDOM { setarray .@OptID[0],RDMOPT_WEAPON_ATTR_TELEKINESIS, RDMOPT_VAR_MAXHPAMOUNT; setarray .@OptVal[0],10,10; setarray .@OptParam[0],0,0; getitem3 5518,1,1,0,0,0,0,0,0,.@OptID,.@OptVal,.@OptParam; end; } im figuring out how can i make it like random option for the "getitem3 5518" and also random option if i want like random item box then when opened random option will be put in the item Quote Link to comment Share on other sites More sharing options...
0 AinsLord Posted January 25, 2023 Group: Members Topic Count: 261 Topics Per Day: 0.08 Content Count: 758 Reputation: 20 Joined: 11/21/15 Last Seen: 5 hours ago Author Share Posted January 25, 2023 BUMP to this post here is the sample of the random item script for box i have function script Costumes_R { set .@Total,14; //<%>,<ItemID>,<Amount> setarray .@P1[0],10,20764,1; //Fallen Angel Wing setarray .@P2[0],20,45008,1; //Flapping Angel Wing setarray .@P3[0],30,969,1; //Gold setarray .@P4[0],30,7620,2; //Enriched Oridecon setarray .@P5[0],30,7620,2; //Enriched Elunium setarray .@P6[0],70,7179,10; //Pods setarray .@P7[0],70,12259,2; //Miracle Medecine setarray .@P8[0],70,12684,10; //Speed Potion setarray .@P9[0],70,14586,5; //Spark Candy setarray .@P10[0],70,16682,1; //Halter Box setarray .@P11[0],90,12906,1; //Hwergelmir's Tonic setarray .@P12[0],90,12904,1; //Steamed Scorpion setarray .@P13[0],90,12903,1; //Steamed Tongue setarray .@P14[0],90,12908,1; //Immortal Stew setarray .@Default[0],45101,1; //Token Scrolls set .@i, rand(1,.@Total); if (rand(1,100) > getd(".@P"+.@i+"[0]")) { for(set .@j,0; .@j<getarraysize(.@Default); set .@j,.@j+2) { getitem .@Default[.@j], .@Default[.@j+1]; if(!.@k[0]) setarray .@k[0], .@Default[.@j], .@Default[.@j+1]; } } else{ for(set .@j,1; .@j<getarraysize(getd(".@P"+.@i)); set .@j,.@j+2) { getitem getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); if (!.@k[0]) { set .@gz,.@i; setarray .@k[0], getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); break; } } } if(1<=.@gz&&.@gz<=9) announce ""+strcharinfo(0)+" has opened [Devil Scroll] and reward ["+getitemname(.@k[0])+" x "+.@k[1]+"]!",0; specialeffect2 251; end; } and what im trying to do is once i opened the box and got the item it has a random option in the item itself RDMOPT_WEAPON_ATTR_TELEKINESIS, RDMOPT_VAR_MAXHPAMOUNT; like this random option and more of this thanks in advance i do really appreciate the help Quote Link to comment Share on other sites More sharing options...
0 Emistry Posted January 26, 2023 Group: Forum Moderator Topic Count: 93 Topics Per Day: 0.02 Content Count: 10018 Reputation: 2370 Joined: 10/28/11 Last Seen: 15 hours ago Share Posted January 26, 2023 function script F_CASH_SHOP_RANDOM { .@item_id = getarg(0); .@amount = getarg(1); setarray .@OptID[0],RDMOPT_WEAPON_ATTR_TELEKINESIS, RDMOPT_VAR_MAXHPAMOUNT; setarray .@OptVal[0],10,10; setarray .@OptParam[0],0,0; .@item_type = getiteminfo(.@item_id, ITEMINFO_TYPE); if (.@item_type == IT_ARMOR || .@item_type == IT_WEAPON) getitem3 .@item_id,.@amount,1,0,0,0,0,0,0,.@OptID,.@OptVal,.@OptParam; else getitem .@item_id,.@amount; return; } function script Costumes_R { set .@Total,14; //<%>,<ItemID>,<Amount> setarray .@P1[0],10,20764,1; //Fallen Angel Wing setarray .@P2[0],20,45008,1; //Flapping Angel Wing setarray .@P3[0],30,969,1; //Gold setarray .@P4[0],30,7620,2; //Enriched Oridecon setarray .@P5[0],30,7620,2; //Enriched Elunium setarray .@P6[0],70,7179,10; //Pods setarray .@P7[0],70,12259,2; //Miracle Medecine setarray .@P8[0],70,12684,10; //Speed Potion setarray .@P9[0],70,14586,5; //Spark Candy setarray .@P10[0],70,16682,1; //Halter Box setarray .@P11[0],90,12906,1; //Hwergelmir's Tonic setarray .@P12[0],90,12904,1; //Steamed Scorpion setarray .@P13[0],90,12903,1; //Steamed Tongue setarray .@P14[0],90,12908,1; //Immortal Stew setarray .@Default[0],45101,1; //Token Scrolls set .@i, rand(1,.@Total); if (rand(1,100) > getd(".@P"+.@i+"[0]")) { for(set .@j,0; .@j<getarraysize(.@Default); set .@j,.@j+2) { // getitem .@Default[.@j], .@Default[.@j+1]; callfunc("F_CASH_SHOP_RANDOM", .@Default[.@j], .@Default[.@j+1]); if(!.@k[0]) setarray .@k[0], .@Default[.@j], .@Default[.@j+1]; } } else{ for(set .@j,1; .@j<getarraysize(getd(".@P"+.@i)); set .@j,.@j+2) { // getitem getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); callfunc("F_CASH_SHOP_RANDOM", getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]")); if (!.@k[0]) { set .@gz,.@i; setarray .@k[0], getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); break; } } } if(1<=.@gz&&.@gz<=9) announce ""+strcharinfo(0)+" has opened [Devil Scroll] and reward ["+getitemname(.@k[0])+" x "+.@k[1]+"]!",0; specialeffect2 251; end; } 1 Quote Link to comment Share on other sites More sharing options...
0 AinsLord Posted January 26, 2023 Group: Members Topic Count: 261 Topics Per Day: 0.08 Content Count: 758 Reputation: 20 Joined: 11/21/15 Last Seen: 5 hours ago Author Share Posted January 26, 2023 11 hours ago, Emistry said: function script F_CASH_SHOP_RANDOM { .@item_id = getarg(0); .@amount = getarg(1); setarray .@OptID[0],RDMOPT_WEAPON_ATTR_TELEKINESIS, RDMOPT_VAR_MAXHPAMOUNT; setarray .@OptVal[0],10,10; setarray .@OptParam[0],0,0; .@item_type = getiteminfo(.@item_id, ITEMINFO_TYPE); if (.@item_type == IT_ARMOR || .@item_type == IT_WEAPON) getitem3 .@item_id,.@amount,1,0,0,0,0,0,0,.@OptID,.@OptVal,.@OptParam; else getitem .@item_id,.@amount; return; } function script Costumes_R { set .@Total,14; //<%>,<ItemID>,<Amount> setarray .@P1[0],10,20764,1; //Fallen Angel Wing setarray .@P2[0],20,45008,1; //Flapping Angel Wing setarray .@P3[0],30,969,1; //Gold setarray .@P4[0],30,7620,2; //Enriched Oridecon setarray .@P5[0],30,7620,2; //Enriched Elunium setarray .@P6[0],70,7179,10; //Pods setarray .@P7[0],70,12259,2; //Miracle Medecine setarray .@P8[0],70,12684,10; //Speed Potion setarray .@P9[0],70,14586,5; //Spark Candy setarray .@P10[0],70,16682,1; //Halter Box setarray .@P11[0],90,12906,1; //Hwergelmir's Tonic setarray .@P12[0],90,12904,1; //Steamed Scorpion setarray .@P13[0],90,12903,1; //Steamed Tongue setarray .@P14[0],90,12908,1; //Immortal Stew setarray .@Default[0],45101,1; //Token Scrolls set .@i, rand(1,.@Total); if (rand(1,100) > getd(".@P"+.@i+"[0]")) { for(set .@j,0; .@j<getarraysize(.@Default); set .@j,.@j+2) { // getitem .@Default[.@j], .@Default[.@j+1]; callfunc("F_CASH_SHOP_RANDOM", .@Default[.@j], .@Default[.@j+1]); if(!.@k[0]) setarray .@k[0], .@Default[.@j], .@Default[.@j+1]; } } else{ for(set .@j,1; .@j<getarraysize(getd(".@P"+.@i)); set .@j,.@j+2) { // getitem getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); callfunc("F_CASH_SHOP_RANDOM", getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]")); if (!.@k[0]) { set .@gz,.@i; setarray .@k[0], getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); break; } } } if(1<=.@gz&&.@gz<=9) announce ""+strcharinfo(0)+" has opened [Devil Scroll] and reward ["+getitemname(.@k[0])+" x "+.@k[1]+"]!",0; specialeffect2 251; end; } ill try this one out thanks again Quote Link to comment Share on other sites More sharing options...
0 LearningRO Posted January 27, 2023 Group: Members Topic Count: 107 Topics Per Day: 0.02 Content Count: 778 Reputation: 73 Joined: 02/10/12 Last Seen: 5 hours ago Share Posted January 27, 2023 Why not use item_group_db.yml its already support to give you random option Quote Link to comment Share on other sites More sharing options...
0 AinsLord Posted January 27, 2023 Group: Members Topic Count: 261 Topics Per Day: 0.08 Content Count: 758 Reputation: 20 Joined: 11/21/15 Last Seen: 5 hours ago Author Share Posted January 27, 2023 (edited) 1 hour ago, LearningRO said: Why not use item_group_db.yml its already support to give you random option the git version im using doesnt have this im having problems using the latest rathena git @LearningRO but if i use the latest rathena git what are the steps to add a custom Itemgroup? do i need to go to the src and const.txt or any new method? Edited January 27, 2023 by AinsLord Quote Link to comment Share on other sites More sharing options...
0 AinsLord Posted January 27, 2023 Group: Members Topic Count: 261 Topics Per Day: 0.08 Content Count: 758 Reputation: 20 Joined: 11/21/15 Last Seen: 5 hours ago Author Share Posted January 27, 2023 BUMP to this post sir @Emistry thanks definitely working however it doesnt give random option it provides the option listed in the OptID variable is it possible like getting 1 option then probably randomize 2 or 3 options? function script Costumes_R { set .@Total,2; //<%>,<ItemID>,<Amount> setarray .@P1[0],100,33002,1; //Fallen Angel Wing setarray .@P2[0],20,33001,1; //Flapping Angel Wing setarray .@Default[0],1230,1; //Token Scrolls set .@i, rand(1,.@Total); if (rand(1,100) > getd(".@P"+.@i+"[0]")) { for(set .@j,0; .@j<getarraysize(.@Default); set .@j,.@j+2) { // getitem .@Default[.@j], .@Default[.@j+1]; callfunc("F_CASH_SHOP_RANDOM", .@Default[.@j], .@Default[.@j+1]); if(!.@k[0]) setarray .@k[0], .@Default[.@j], .@Default[.@j+1]; } } else{ for(set .@j,1; .@j<getarraysize(getd(".@P"+.@i)); set .@j,.@j+2) { // getitem getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); callfunc("F_CASH_SHOP_RANDOM", getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]")); if (!.@k[0]) { set .@gz,.@i; setarray .@k[0], getd(".@P"+.@i+"["+.@j+"]"), getd(".@P"+.@i+"["+(.@j+1)+"]"); break; } } } if(1<=.@gz&&.@gz<=9) announce ""+strcharinfo(0)+" has opened [Devil Scroll] and reward ["+getitemname(.@k[0])+" x "+.@k[1]+"]!",0; specialeffect2 251; end; } function script F_CASH_SHOP_RANDOM { .@item_id = getarg(0); .@amount = getarg(1); setarray .@OptID[0], RDMOPT_WEAPON_ATTR_TELEKINESIS, RDMOPT_VAR_MAXHPAMOUNT, RDMOPT_VAR_INTAMOUNT, RDMOPT_VAR_LUKAMOUNT; setarray .@OptVal[0],10,10,10,10; setarray .@OptParam[0],1,2,3,4; .@item_type = getiteminfo(.@item_id, ITEMINFO_TYPE); if (.@item_type == IT_ARMOR || .@item_type == IT_WEAPON) getitem3 .@item_id,.@amount,1,0,0,0,0,0,0,.@OptID,.@OptVal,.@OptParam; else getitem .@item_id,.@amount; return; } again sir thank you so much for the help Quote Link to comment Share on other sites More sharing options...
Question
AinsLord
so here is the script i made for specific item with a specific random option stats
im figuring out how can i make it like random option for the "getitem3 5518"
and also random option if i want like random item box then when opened random option will be
put in the item
Link to comment
Share on other sites
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.