Leaderboard
Popular Content
Showing content with the highest reputation on 11/16/22 in all areas
-
1 point
-
1 point
-
Version 1.1.0
1444 downloads
The goal in this script is to allow you to create any random option enchantment system by just creating a new copy of this script , change the script name and setting You should be able to create any random option system exist currently in the game DO NOT PM ME FOR ERRORS Use the forum post to report for any bugs and errors HERE(Click Me) the script allow you to create a group of items > you can create as many groups as you want each group has it's own options allow reroll or not put price for first time and price for the reroll after the first time the price can be zeny, cashpoints, custom points, items put random options for all slots or specific slot of the random options slot put exclusive random options groups so they cannot coexist in the same item The script config and example AT LINE 290 in the script file > 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. //Creating Group id 1 , with Hat items inside. AddGroup(1,2220,2221,2222,2223); //Group id 1 Options AddGroupOption(1,true,false); //Group id 1 Cost AddGroupCost(1,50,0,0,502,1,503,2); //Group id 1 ReRoll Cost AddGroupReRollCost(1,50,0,0,502,5,503,2); //Group id 1 Chances. AddGroupChance(1,100,75,60,40,20);AddGroupChance(1,100,100,100,100,100); //Group id 1 Random Option List. location 0 mean all the slot locations AddOpt(1,0,RDMOPT_VAR_STRAMOUNT,1,100); AddOpt(1,0,RDMOPT_VAR_INTAMOUNT,1,100); AddOpt(1,0,RDMOPT_VAR_VITAMOUNT,1,100); AddOpt(1,0,RDMOPT_VAR_LUKAMOUNT,1,100); AddOpt(1,0,RDMOPT_VAR_AGIAMOUNT,1,100); AddOpt(1,0,RDMOPT_VAR_DEXAMOUNT,1,100); AddOpt(1,0,RDMOPT_VAR_MAXHPPERCENT,1,100); AddOpt(1,0,RDMOPT_VAR_MAXSPPERCENT,1,100); //those enchantment you wont get unless in slot 5 AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET,1,100); AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_WATER_TARGET,1,100); AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET,1,100); AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET,1,100); AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_WIND_TARGET,1,100); AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_POISON_TARGET,1,100); AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET,1,100); AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET,1,100); AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET,1,100); AddOpt(1,5,RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET,1,100); //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; https://sader1992.com/Free1 point -
2937 downloads
RO Sprite Studio (ROSS) - Palette Creation Tool Version 1.3.0.0 I'm not certain who made this tool, however, this was given to me a few years ago by a colleague of mine at ElysiumRO. I've used it ever since to create palettes for the RO game client; specifically, for my servers. The interface is easy to use, and it is by far the fastest, easiest way to make RO palettes. Please note, however, that you MUST have a pretty good understanding of how palettes work in RO in order to use this, as you will need to save the palettes to the appropriate folders, with the appropriate names (which CAN be generated in the program itself). This package does NOT include the RO class sprites, or my master palette file that I created for use with the program. It does however contain ROSS and all required files to run. jTynneFree1 point -
Hello there @Questune09, >>>>> step 1: after finshing the quest, under getitem ( the prize ) add this : set CooldownQuest,gettimetick(2); step 2: and before taking the quest add time check: if(gettimetick(2) - CooldownQuest < (60 * 60 * 24)) { next; mes "[ Daily Quest ]"; mes "^FF0000Sorry you have to wait 24 Hours until you can do the Quest again!^000000"; close; } <<<<< or use this prt_in,82,93,2 script Daily Quest 513,{ if (getgmlevel() >= 80) goto GM_Menu; L_START: if (getgmlevel() >= 80) next; mes "[ Daily Quest ]"; mes "Total Daily Quests Finished: ^008800"+$DailyQuestTotal+"^000000."; mes "Today Daily Quests Finished: ^0000FF"+$DailyQuestToday+"^000000."; next; mes "[Daily Quest]"; mes "Hello "+strcharinfo(0)+"!"; mes "Do you want to start today's Quest?"; mes " "; menu "Yes!",-,"Nahh",L_Close; if(gettimetick(2) - CooldownQuest < (60 * 60 * 24)) { next; mes "[ Daily Quest ]"; mes "^FF0000Sorry you have to wait 24 Hours until you can do the Quest again!^000000"; close; } next; mes "[Daily Quest]"; mes "You'll need these item for Today's Quest:"; mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+""; mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+""; mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+""; mes "In exchange you will get ^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+""; next; mes "[Daily Quest]"; mes "Do you have the items?"; menu "Yes! I do.",-,"Gimme some time.",L_Close; if(countitem($QuestItem1) >= $QuestItem1HM) && (countitem($QuestItem2) >= $QuestItem2HM) && (countitem($QuestItem3) >= $QuestItem3HM) goto FinishQuest; next; mes "[Daily Quest]"; mes "You only have "+countitem($QuestItem1HM)+" of ^FF0000"+getitemname($QuestItem1)+"^000000, "+countitem($QuestItem2HM)+" of ^FF0000"+getitemname($QuestItem2)+"^000000, "+countitem($QuestItem3HM)+" of ^FF0000"+getitemname($QuestItem3)+"^000000."; mes "Come back when you have it! Better get the items quickly. It's gonna change in a Day!"; close; L_Close: next; mes "[Daily Quest]"; mes "Come back again! Get the Items!"; mes "Goodbye!"; close; GM_Menu: mes "[Daily Quest]"; mes "Hello GM "+strcharinfo(0)+"!"; mes "What can I do for you today?"; menu "Player Menu",L_START,"Change Today's Quest/Prize",L_ChangeQuest,"Close",L_Close; L_ChangeQuest: next; mes "[Daily Quest]"; mes "What will you like to change?"; next; menu "Go back.",GM_Menu,"Prize [^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+"]",L_ChangePrize,"Change Quest Randomly",L_ChangeQuestRandom,"Change Quest by Myself",L_ChangeQuestMyself; L_ChangeQuestMyself: next; mes "[Daily Quest]"; mes "Which item would you like to change first?"; menu "Go Back.",L_ChangeQuest,"Item 1 [^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"]",L_ChangeItem1,"Item 2 [^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"]",L_ChangeItem2,"Item 3 [^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"]",L_ChangeItem3; L_ChangeItem1: next; mes "[Daily Quest]"; mes "Alright. What will be the item?"; next; input $QuestItem1; next; L_ChangeItem12: mes "[Daily Quest]"; mes "How much of ^ff0000"+getitemname($QuestItem1)+"^000000 do you want?"; mes "It must be in the range of ^0088001 ~ 200^000000."; next; input $QuestItem1HM; next; if ($QuestItem1HM > 200) goto L_HMItem1Denied; mes "[Daily Quest]"; mes "Item 1 Set."; set $DailyQuestToday,0; mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"."; next; goto L_ChangeQuest; L_HMItem1Denied: mes "[Daily Quest]"; mes "This item (^ff0000"+getitemname($QuestItem1)+"^000000) must be in a range of ^0088001 ~ 200^000000."; next; goto L_ChangeItem12; L_ChangeItem2: next; mes "[Daily Quest]"; mes "Alright. What will be the item?"; next; input $QuestItem2; next; L_ChangeItem22: mes "[Daily Quest]"; mes "How much of ^ff0000"+getitemname($QuestItem2)+"^000000 do you want?"; mes "It must be in the range of ^0088001 ~ 150^000000."; next; input $QuestItem2HM; next; if ($QuestItem2HM > 150) goto L_HMItem2Denied; mes "[Daily Quest]"; mes "Item 2 Set."; set $DailyQuestToday,0; mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"."; next; goto L_ChangeQuest; L_HMItem2Denied: mes "[Daily Quest]"; mes "This item (^ff0000"+getitemname($QuestItem2)+"^000000) must be in a range of ^0088001 ~ 150^000000."; next; goto L_ChangeItem22; L_ChangeItem3: next; mes "[Daily Quest]"; mes "Alright. What will be the item?"; next; input $QuestItem3; next; L_ChangeItem32: mes "[Daily Quest]"; mes "How much of ^ff0000"+getitemname($QuestItem3)+"^000000 do you want?"; mes "It must be in the range of ^0088001 ~ 50^000000."; next; input $QuestItem3HM; next; if ($QuestItem3HM > 50) goto L_HMItem3Denied; mes "[Daily Quest]"; mes "Item 3 Set."; set $DailyQuestToday,0; mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"."; next; goto L_ChangeQuest; L_HMItem3Denied: mes "[Daily Quest]"; mes "This item (^ff0000"+getitemname($QuestItem3)+"^000000) must be in a range of ^0088001 ~ 50^000000."; next; goto L_ChangeItem32; L_ChangeQuestRandom: set $QuestItem1, rand(701,1065); set $QuestItem1HM, rand(1,200); set $QuestItem2, rand(701,1065); set $QuestItem2HM, rand(1,150); set $QuestItem3, rand(701,1065); set $QuestItem3HM, rand(1,50); set $DailyQuestToday,0; mes "[Daily Quest]"; mes "This is the Daily Quest:"; mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+""; mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+""; mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+""; next; goto GM_Menu; L_ChangePrize: next; mes "[Daily Quest]"; mes "Input the Prize"; next; input $DailyQuestPrize; next; mes "[Daily Quest]"; mes "The Prize: "+getitemname($DailyQuestPrize)+" x How many?"; next; input $DailyQuestPrizeHM; next; mes "[Daily Quest]"; mes "This is what you like?"; mes "^0000ff"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+"."; menu "Yup, Thanks.",GM_Menu,"Noo! I made a mistake!",L_ChangePrize; FinishQuest: next; mes "[Daily Quest]"; mes "You got ^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+"."; delitem $QuestItem1,$QuestItem1HM; delitem $QuestItem2,$QuestItem2HM; delitem $QuestItem3,$QuestItem3HM; getitem $DailyQuestPrize,$DailyQuestPrizeHM; set CooldownQuest,gettimetick(2); set $DailyQuestTotal,$DailyQuestTotal +1; set $DailyQuestToday,$DailyQuestToday +1; close; } - script DailyQuestItemChanger -1,{ OnInit: OnClock0000: while ( getitemname( set( $QuestItem1, rand(701,1065) ) ) == "null" ); set $QuestItem1HM, rand(1,200); while ( getitemname( set( $QuestItem2, rand(701,1065) ) ) == "null" ); set $QuestItem2HM, rand(1,150); while ( getitemname( set( $QuestItem3, rand(701,1065) ) ) == "null" ); set $QuestItem3HM, rand(1,50); set $DailyQuestToday,0; end; } i recommend do adding the codes manually1 point
-
prontera,155,181,5 script Sample 718,{ if( !#Freebies ){ set #Freebies,1; mes "Welcome...this is your gift..."; getitem 607,10; getitem 7539,10; }else{ mes "You have claim the Reward already."; } close; } if you want to make it Character Based.. change All #Freebies into Freebies Edit the Price here getitem 607,10; getitem 7539,10;1 point