Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 05/27/2022 in all areas

  1. Hello everyone, I recently made a post about "New RO" in this same category, and a lot of people gave me nice feedbacks, so today I bring something that I was already thinking about doing for the community, but I wasn't in the mood, I want to thank my friends and developers @Pixel and @craftro without them none of this would be possible. About the project: ROW is an executable visual editor, you put your "YouRagnarok_patched.exe" and it will give you the options (just like WARP or NEMO) but this is for custom things So you need to have an exe already built, otherwise you won't be able to enter the game It is currently in the ALPHA BETA version, so you will only be able to access 1 function, which is to change the color of the monsters' hp bar. To use it is very simple, you select your exe, choose the look you want and generate the exe. Note: If you have gepard, it will probably not allow any changes, so test with gepard disabled. The site is not responsive yet, this is just a test model, and if you find any bugs let me know, it is to work on any version of the exe (2010~2022) (Except for Ragnarok Zero new UI) Link: https://hexed-regexe.herokuapp.com/mobs Link discord project https://discord.gg/MxTB7WJVy5
    12 points
  2. A simple converter that will convert item from database to be use in client in 30 seconds. _________________________________________________________ Website https://sites.google.com/view/start-ro/ra_item_converter Download https://drive.google.com/file/d/1Attepn8t7fHesb4vFvVWHVCu2YHtQUyr/view?usp=sharing (If link broken please go to website for latest released) Source Code (Unity C#) https://github.com/kaninhot004/rAthena-item_db-to-itemInfo _________________________________________________________ Pros: Item description sync from database so it's get rid the problem that item description was not match with database. Full combo explanation. Full information explanation. Cons: Not had lore descriptions. Complex item script was take a bit time to read through. How to use: Paste your database files on '\rAthena item_db to itemInfo_Data\Assets', (File name can't be change) Open program and select languages then hit convert. Output files location is the same with program location. Example output: (No real-time update, just an example) Thai: https://raw.githubusercontent.com/kaninhot004/rAthena-item_db-to-itemInfo/main/Example Output (Thai).lub English: https://raw.githubusercontent.com/kaninhot004/rAthena-item_db-to-itemInfo/main/Example Output (English).lub Notes: ANSI Encoding may not had perfect resource name as UTF8.
    4 points
  3. Version 1.0.0

    34 downloads

    Hello Friends, I'm a mapper and I also do map services (contact-me if you're interested in my job) I recently had this Prontera ripped and now I need to make it free for everyone. I hope y'all like it! If anyone wanna support me, please DM me.
    Free
    4 points
  4. Version 1.1

    62 downloads

    Each day a random dungeon will be picked, monsters killed inside the dungeon of the day will give extra EXP, Items and Zeny, the percentage to get these is configurable within the script. Accepting suggestions to improve this script.
    Free
    4 points
  5. View File Modded Apple of Idun I got this idea from a good friend of mine. He showed me the Animation Effect of Apple of Idun skill in Ragnarok Online Mobile(ROM). So i ripped the apple out of it and implement to our good ol' Ragnarok for PC! The file should go into data/texture/effect. Enjoy! Submitter Gidz Cross Submitted 06/21/2022 Category Skill Animations Video Content Author Gidz  
    3 points
  6. I have been ripping sprites from other games and transforming into ragnarok items. What you guys think? OBS¹: My sprites/effects/images will never have the same style because i get it from a lot of sources. OBS²: Please don't ask for raw images/sprites, and i'll not teach how to get it.
    3 points
  7. For a while I hear "the ragnarok client can't do anything, it's very limited", so I decided to focus 1 year on learning reverse engineering, learning to read the code and invent my own ways, I learned methods to find the shapes and colors, and every day I was perfecting myself, today I can modify basically anything, when I can't, I set a goal to try a little more, here is my showcase and I hope you like it. when I started it was 2021, so 20200401 was my focus. Today I'm already upgrading to 20211117+ Change GM/Player/Mob/npc color? yes! very small npc box? yes I increased (I like space) MENU? YES! AP BAR for all jobs? YES! NEW WARP? yes! CUSTOM BASIC INFO? oh yes!! Custom LoadingBar? Yes! recover the old menu? yes Others mods: New Collection Night mode: Chat: Hp bar colors: others colors Text effects: Select Service Login Screen new position. Updates: I created a diff nemo that allows me to change the style, color, and direction. Original portal My custom
    3 points
  8. Need the latest kRO Install folder for your private server? Look no further! ----> Download <---- Latest: 2020-01-24 Installation: Official kRO Updated: 06/04/2021 Download Link: http://bit.ly/latestkro Package contains RSU RO Patcher Lite for kRO and kRO RE by [Ai4rei] This package is maintained by [Akkarin] This ZIP archive is 3.50GB in size and includes all BGMs plus the latest RSU ([2021-02-19] Release 4.0.0.1213) Simply download, extract, play! A fan of this topic? Hit the rep button
    3 points
  9. Version 1.0.0

    32 downloads

    When a MVP Spawns PVP is enabled, When this MVP dies PVP is disabled. New Mapflag MF_MAPMVP - Disable going to savepoint once you die 2 times in a PVP map.
    Free
    2 points
  10. View File Dungeon of the Day Each day a random dungeon will be picked, monsters killed inside the dungeon of the day will give extra EXP, Items and Zeny, the percentage to get these is configurable within the script. Accepting suggestions to improve this script. Submitter cook1e Submitted 06/19/2022 Category Utilities Video Content Author cook1e  
    2 points
  11. Updated to 4.1.5, fixes reusage of waste in GRF archives was not enabled (ever since its introduction in 4.0.0). Depending on amount of wasted space, some archives may shrink in response to being updated. It also fixes the /testpak command reporting Sakray/Test archives as corrupted.
    2 points
  12. Long story short, you need to restart your server. As for why... that is due to how SQL data is used on the map-server. When the map-server starts, it reads all the variables in the mapreg table and loads them into memory. This way, when you want to access the variable in-game (when you use @set $variable), the value is easily accessible without having to look it up with your SQL server. This is done for various other features, like your character inventory, quests, achievements, player stats, etc. In either case, when you edit or delete the entry in SQL while it is still being loaded in memory, it will not have any impact in-game because that is not where the data is being read from. Doing so can actually cause issues as well if you're not careful. So you need to close your server, truncate the table, and then restart your server.
    2 points
  13. Update project link discord added.
    2 points
  14. also you can just redirect to the npc instead of using a duplicate for example: prontera,263,209,6 duplicate(Deathmatch PvP Warper) DM PvP Warper#prt02 823 to prontera,263,209,6 script DM PvP Warper#prt02 823,{ doevent("Deathmatch PvP Warper:OnTalk"); } and add OnTalk: at the start of the original npc
    2 points
  15. Try this. 1. go to src/map/map.hpp and find MF_MAX above add this MF_NOTOKEN, 2. go to src/map/script_constant.hpp and find export_constant(MF_SKILL_DURATION); below add this export_constant(MF_NOTOKEN); 3. go to src/map/pc.cpp and find bool pc_revive_item(struct map_session_data *sd) { nullpo_retr(false, sd); if (!pc_isdead(sd) || sd->respawn_tid != INVALID_TIMER) return false; if (sd->sc.data[SC_HELLPOWER]) // Cannot resurrect while under the effect of SC_HELLPOWER. return false; int16 item_position = itemdb_group_item_exists_pc(sd, IG_TOKEN_OF_SIEGFRIED); uint8 hp = 100, sp = 100; if (item_position < 0) { if (sd->sc.data[SC_LIGHT_OF_REGENE]) { hp = sd->sc.data[SC_LIGHT_OF_REGENE]->val2; sp = 0; } else return false; } if (!status_revive(&sd->bl, hp, sp)) return false; if (item_position < 0) status_change_end(&sd->bl, SC_LIGHT_OF_REGENE, INVALID_TIMER); else pc_delitem(sd, item_position, 1, 0, 1, LOG_TYPE_CONSUME); clif_skill_nodamage(&sd->bl, &sd->bl, ALL_RESURRECTION, 4, 1); return true; } and change to bool pc_revive_item(struct map_session_data *sd) { nullpo_retr(false, sd); int16 m = 0; struct map_data *mapdata = map_getmapdata(m); if (!pc_isdead(sd) || sd->respawn_tid != INVALID_TIMER) return false; if (sd->sc.data[SC_HELLPOWER]) // Cannot resurrect while under the effect of SC_HELLPOWER. return false; if(map_getmapflag(sd->bl.m, MF_NOTOKEN)) return false; int16 item_position = itemdb_group_item_exists_pc(sd, IG_TOKEN_OF_SIEGFRIED); uint8 hp = 100, sp = 100; if (item_position < 0) { if (sd->sc.data[SC_LIGHT_OF_REGENE]) { hp = sd->sc.data[SC_LIGHT_OF_REGENE]->val2; sp = 0; } else return false; } if (!status_revive(&sd->bl, hp, sp)) return false; if (item_position < 0) status_change_end(&sd->bl, SC_LIGHT_OF_REGENE, INVALID_TIMER); else pc_delitem(sd, item_position, 1, 0, 1, LOG_TYPE_CONSUME); clif_skill_nodamage(&sd->bl, &sd->bl, ALL_RESURRECTION, 4, 1); return true; } Not tested, let me know if it works.
    2 points
  16. Version 2.0.0

    144 downloads

    Description : The NPC are capable to search for MVP in the whole server or specific maps. Back in eAthena, there exists a script command (forgotten the name, perhaps a mobcount(...) with parameter changed) which allow us to check for specific monster id exists in the map or not, but it was removed. Then we could use mobcount(...) script command to get similar results, but we need to manually append an NPC event to each monster. Now, we could also do the same by using getunits(...) / getmapunits(...) script commands. Of course there are pro and cons for each version, I'll just leave it to you to decide for yourself whether to use it or not. The origin of script came from @Brian Preview : Settings : // Enable player to warp to MVP? // 0 = disabled // 1 = enabled // 2 = enabled + SC_BOSSMAPINFO .warp_to_mvp = 2; Enable this setting if you wish to allow NPC to warp into the monster map. // enable this setting to fully utilize the NPC script. (use at your own risk) // read more info at /conf/battle/monster.conf setbattleflag("dynamic_mobs", 0); By default, the dynamic_mobs configuration are set to yes. This help you save some server resources if the maps aren't access by any players recently by saving the monster data into the cache. The downside of using dynamic_mobs, monsters are cached, NPC can't search for the monster data if they are cached. FYI, monsters that spawned by NPC scripts aren't cached. // list of MVP map. setarray .map$, // enable this if you want it search whole server. (unable to use warp to mvp option) // "all", Enable this if you wish to enable to NPC to search the whole server, incase you missed what other maps have MVP (including showing mvp from restricted areas, like Guild Dungeon) FYI, searching the whole server would take a longer time, use at your own risk. Notes : The NPC are capable to search any MVP monsters in the map, including monster summoned by Bloody Branch, or Class Change Skill (from Sage's Abracadabra), as long as the monster have MVP EXP. Why do we need this if we already have Convex Mirror Item? I am sure everyone has used Convex Mirror before, but there are few reason that its frustrating to use it: Each convex mirror only can search current map of player. Convex mirror are wasted if the map doesn't have any MVP or killed. Convex mirror can't search for monster that summoned by NPC script. This NPC could serve as compensation for player, imagine the use case where you spend a Convex Mirror to know which MVPs are still alive instead of letting it go wasted knowing that the MVP in current map is dead or not found.
    Free
    2 points
  17. On his picture it says 412/1024 used. or am i seeing it wrong?
    2 points
  18. View File All In One - Random Options Script 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 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/ Submitter sader1992 Submitted 09/09/2021 Category Utilities Video Content Author sader1992  
    1 point
  19. update your data.grf of kRO. or download http://rofull.gnjoy.com/RAG_SETUP_220120.exe
    1 point
  20. I don't think I read anything from iRO in your question... First download the one recommended by Akky and then, download the new Ai4rei updater and use it, it's just that.
    1 point
  21. View File MvP and Mini-Boss Card Ad & Log System Addition/Modification at Source - Announcement and Log system when dropping MvP/Mini-Boss Card - Advertises globally when dropping a MvP or Mini-Boss Card regardless of the drop_rate and saves a log in the database. NOTE1: Announces and saves the log of MvP/Mini-Boss cards only. NOTE2: All settings can be accessed in the `conf/battle/drops.conf` file. Use - For those who have difficulty placing just to announce the drop of MvP/Mini-Boss cards without having a conflict of drop_rate. - In addition to advertising, you can also save a log each time one of these cards is dropped to use as tracking. - There is also an extensive way of configuring the system, being able to turn it off completely or activate only the advertisement or only the log. General System Settings - Enable or disable the entire system. MvP Card Settings - Enable or disable MvP card drop and log announcement system only. - Enable or disable MvP card advertising only. - Enable or disable MvP card logging only. - Choose the color of the MvP card drop ad. Mini-Boss Card Settings - Enable or disable only the Mini-Boss card drop and log announcement system. - Enable or disable Mini-Boss card advertising only. - Enable or disable Mini-Boss card logging only. - Choose the color of the Mini-Boss card drop announcement. NOTE3: Sorry for the English, I used Google Translator and this is my first topic here. Submitter Baad Submitted 09/21/2021 Category Source Modifications Video Content Author Bad  
    1 point
  22. not sure what the script does , but to fix the error you can replace all the "@prace_winner$" with something like ".prace_winner_2$"
    1 point
  23. It seems you are using maps with mapflags nocostume in it. Go to your mapflagsfolder. Open nocostume.txt and you can remove the declared maps there. Trunk\npc\mapflag\nocostume.txt
    1 point
  24. I dont understand. If dc at payon cave, does the character relog at Prontera ? Since u said happens only at Prontera, does it mean if the character at Prontera, then it wont appear at last coordinate online ?
    1 point
  25. im not sure if its really the PandRO. but if its true. well base on the code it looks like a copy. seems legit base on MOTR and RagnaLifev354. from your provided link and their link. they also forget to rename on their AndroidManifest. also i got another comparison for another AndRO.
    1 point
  26. prontera,150,150,4 script NpcJobChange 82,{ mes "Hi, wich class? " job[0] = select("Swordman:Magician:Archer:Acolyte:Merchant:Thief:Super Novice"); if (job[0] == 7) job[0] = 23; // Suno close; OnPCBaseLvUpEvent: if (!Class && job[0] == 23 && BaseLevel >= 45) // If Suno jobchange job[0]; end; OnPCJobLvUpEvent: if (job[0] == 23) end; // suno doesnt apply if (!Class && JobLevel >= 10) jobchange job[0]; end; } Test this prototype and u can improve it for more classes
    1 point
  27. Your crazy again with the WARP PORTAL!
    1 point
  28. about this I don't have any customer that using on this PandRO it seems all my customer are using AndRO License under Chris. like Arunafeltz, javaragnarok, lumina and other server.
    1 point
  29. //===== rAthena Script ======================================= //= Disguise Event //===== By: ================================================== //= GmOcean //===== Current Version: ===================================== //= 5.1 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Guess a monster name correctly for prizes. //= //= NOTE: Requires PCRE library installed. //===== Additional Comments: ================================= //= 5.0 Last update by GmOcean. //= 5.1 Cleaned and standardized, mostly. [Euphy] //============================================================ skycity,184,210,4 script Disguise Event 795,{ // Currently set to run every two hours. // To change times, edit the OnClock labels below. set [email protected],60; // GM level required to access NPC. set [email protected]$,"[^0000FFDisguise NPC^000000]"; if (getgmlevel()>[email protected]) { mes [email protected]$; mes "Select an option."; next; switch(select("Turn ON/OFF Event:Event Settings")) { case 1: mes [email protected]$; if (.EventON) { mes "The Event is currently: [^0000FFON^000000]"; mes "Would you like to turn it OFF?"; } else { mes "The Event is currently: [^FF0000OFF^000000]"; mes "Would you like to turn it ON?"; } if(select("Yes:No")==2) close; if (.EventON) { set .EventON,0; set .Timer,0; setnpctimer 0; stopnpctimer; announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue; // deletepset 1; setnpcdisplay "Disguise Event",795; close; } set .EventON,1; set .Timer,1; setnpctimer 0; initnpctimer; set .ResetCounter,.ResetCounter+1; announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; announce "The Event is being held in Sky City (skycity 184 210).",bc_all | bc_blue; close; case 2: mes [email protected]$; mes "Pick a setting to modify."; next; switch(select("Monster Display:Number of Rounds:Prize Settings")) { case 1: setarray [email protected]$[0],"Disguise as all monsters.","Disguise as MVPs only."; mes [email protected]$; mes "Choose a disguise rule."; next; set .Rule, select(implode([email protected]$,":")); mes [email protected]$; mes "The Disguise Rule has been set:"; mes " > ^0055FF"[email protected]$[.Rule-1]+"^000000"; close; case 2: mes [email protected]$; mes "Input the number of rounds you want the event to last."; mes "Current number: [^0000FF"+.Rounds+"^000000]"; next; input [email protected]; set .Rounds,[email protected]; mes [email protected]$; mes "The number of rounds has been changed to "+.Rounds+"."; close; case 3: mes [email protected]$; mes "Input the Item ID of the prize given each round."; mes "Current item: [^0000FF"+getitemname(.Prize)+"^000000] (ID #"+.Prize+")"; next; input [email protected]; mes [email protected]$; if (getitemname([email protected])=="" || getitemname([email protected])=="null") { mes "That item does not exist. Please try again."; close; } set .Prize,[email protected]; mes "Input the amount to be given."; next; input [email protected]; mes [email protected]$; if ([email protected]<=0 || [email protected]>=10000) { mes "That amount is invalid. Using default amount of 1."; set [email protected],1; next; mes [email protected]$; } set .PrizeAmt,[email protected]; mes "The Prize has been changed successfully."; mes "Prize: "+.PrizeAmt+"x [^0000FF"+getitemname(.Prize)+"^000000]"; close; } } } if (.EventON) end; mes [email protected]$; mes "Welcome."; mes "How may I be of assistance?"; if(select("Information:Nothing, just passing through.")==2) close; next; mes [email protected]$; mes "This event is quite simple."; mes "At the start of the event, I will"; mes "disguise myself as a random"; mes "monster. You have to shout"; mes "that monster's name out loud."; next; mes "If you are correct, you will receive"; mes "a prize. If not, keep trying!"; mes "That's all that there is to this event."; close; OnInit: set .EventON,0; set .Wait,0; set .Winner,0; set .ResetCounter,0; set .Rounds,10; setarray .prize,7539,3,35405,1; set .Rule,1; setarray .MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373, 1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688, 1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131, 2156,2165; set .BlackList$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168," + "1171,1172,1173,1181,1187,1210,1217,1218,1222,1223,1224,1225,1226,1227,1228," + "1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,2002,2003,2004," + "2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035," + "2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049," + "2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063," + "2064,2065,2066,2067,2075,2076,2077,2078,2079,2080,2081,2083,2084,2085," + "2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099," + "2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113," + "2114,2115,2116,2117,2118,2119,2120,2121,2123,2124,2125,1496,"; end; OnMinute40: set .ResetCounter,.ResetCounter+1; set .EventON,1; set .Timer,1; set .Wait,1; announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue; announce "The Event is being held in Sky City (skycity 184 210).",bc_all | bc_blue; setnpctimer 0; initnpctimer; end; OnTimer10000: if (.Timer || .Change) end; set .Wait,0; goto iDisguise; end; OnTimer30000: if (.Timer) end; set .Change,0; setnpcdisplay "Disguise Event",795; npctalk "Disguise Event : You took too long to guess what I was. Please wait 10 seconds while I disguise again."; specialeffect EF_DETECT2; set $MonsterName$,""; // deletepset 1; stopnpctimer; setnpctimer 0; set .RoundCount,.RoundCount+1; if (.RoundCount>=.Rounds) { setnpcdisplay "Disguise Event",795; set .RoundCount,0; set .Change,0; set .EventON,0; setnpctimer 0; stopnpctimer; npctalk "Disguise Event : Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; end; } initnpctimer; end; OnTimer60000: if (.Timer!=1) end; announce "The Disguise Event will begin in 2 minutes.",bc_all | bc_blue; announce "The Event is being held in Sky City (skycity 184 210).",bc_all | bc_blue; end; OnTimer120000: if (.Timer!=1) end; announce "The Disguise Event will begin 1 minute.",bc_all | bc_blue; announce "The Event is being held in Sky City (skycity 184 210).",bc_all | bc_blue; end; OnTimer180000: if (.Timer!=1) end; announce "The Disguise Event has begun!",bc_all | bc_blue; announce "The Event is being held in Sky City (skycity 184 210).",bc_all | bc_blue; set .Timer,0; stopnpctimer; setnpctimer 0; initnpctimer; iDisguise: if (.Rule==1) { set .Winner,0; set .Monster,1000+rand(1,995); if (compare(","+.BlackList$+"," , ","+.Monster+",")) goto iDisguise; if (.Monster==.LastMonster) goto iDisguise; set .LastMonster,.Monster; set $MonsterName$,getmonsterinfo(.Monster,0); } if (.Rule==2) { set .Winner,0; set .Monster,rand(49); set $MonsterName$,getmonsterinfo(.MVP[.Monster],0); } // deletepset 1; defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect"; activatepset 1; if (.Rule==1) setnpcdisplay "Disguise Event",.Monster; if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.Monster]; set .Change,1; setnpctimer 0; end; iCorrect: if (.Winner) { dispbottom "Someone has already won this round."; end; } set .Winner,1; set .RoundCount,.RoundCount+1; // deletepset 1; activatepset 1; for([email protected] = 0; [email protected] < getarraysize(.prize); [email protected] += 2) { getitem .prize[[email protected]],.prize[[email protected]+1]; } announce strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue; if (.RoundCount>=.Rounds) { setnpcdisplay "Disguise Event",795; set .RoundCount,0; set .Change,0; set .EventON,0; setnpctimer 0; stopnpctimer; npctalk "Disguise Event : Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; end; } setnpcdisplay "Disguise Event",795; set .Change,0; setnpctimer 0; end; } I did a little optimization for you. setarray .prize,7539,3,35405,1; give item part for([email protected] = 0; [email protected] < getarraysize(.prize); [email protected] += 2) { getitem .prize[[email protected]],.prize[[email protected]+1]; }
    1 point
  30. maybe its too late to reply but the problem its your background.jpg its have big size file Try to compress your background.jpg and your problem will be fixed
    1 point
  31. Version 1.0.0

    141 downloads

    Hi, good use!
    Free
    1 point
  32. 4CrAM-Open Hey everyone. Today marks a very special day for the 4CrAM project. A day that will change the private server community. The project has been a big success and it has not only made it possible to have fully working for 4th jobs on private server's a thing but it also allowed me to recover from a difficult situation I was in at the start of the project. Im very thankful to the people who have supported me up to this moment. Without you this project wouldn't of been possible. But its been about a year and a half and with the code finally reaching a point that im happy with it, I feel its time to reveal it to the public. Today is the day I make all of the work ive done up to this point public for the community but with a little extra in it. The code contains fully working 4th jobs, fully working traits system with the sub-stats working 100% official, the AP system fully working, all 4th job skills working, a few new commands along with some others modified for developing purposes, a custom job changer NPC for all the latest jobs, and a few other goodies. But the last feature to be included with this release is something I felt would be a good thing for the player base, overall community, and my way of saying thanks. I don't want players to be divided into 2 sides due to one side having access to 4th jobs and the other side having their character's potential limited. So with this I decided to also release full ready to play support for all of the expanded jobs. This will allow all players to reach their final jobs and gain access to base level 250 and the traits system. However, none of their skills are coded in yet. The power gap between 4th jobs and older renewal era expanded jobs was just too great to keep this from the community and with this release the gap can be minimized. I hope everyone enjoys this release and have as much fun with it as I did coding it all. This is my gift to the community. Enjoy. Also be sure to leave me a thank you if your not too lazy. One final note. CHECKMATE AND FUCK YOU TO A CERTAIN PERSON!!!! You know who you are. >=D 4CrAM-Open Github Link Note: A 2020-09-02bRagexeRE client or newer is needed for 4th jobs access. A 2021-11-17aRagexeRE or newer is needed to access everything. Be sure to adjust the set client date your using in the defines_pre.hpp file. Keep in mind the 2021-11-17 client is still new and issues are likely to still exist with its support. https://github.com/Rytech2/4CrAM-Open
    1 point
  33. Version 1.0.0

    388 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/
    Free
    1 point
  34. Hello everyone. Today i would like to share with you Yggdarsil bot, a discord bot that was created with the launch of my private server for simple verification, and has grown ever since to provide a fun and interactive game/discord experience. Features and commands Multilanguage support Account verification (Link your in-game account to your discord account) Mob/Item lookup In-game rewards Server donation Vendors Search Auction System And that's mostly all the available commands Discord Events/Minigames Yggdrasil Bot can also run several different minigames on discord, and reward the event winners in-game directly. Random Drops Trivia Event Disguise Event Boss Fights And that'd be all folks. Any feedback is appreciated
    1 point
  35. Here you go sir ^_^. @ignoredropV1.1.patch
    1 point
  36. Resolved by the below centos commands: sudo yum install centos-release-scl sudo yum install devtoolset-7-gcc* scl enable devtoolset-7 bash which gcc gcc --version
    1 point
  37. I think the correct one is, you should edit both Client and Server side. Doing so: In client side, just update System/OngoingQuestInfoList_Sakray.lub (You should decrypt with luadec into System/OngoingQuestInfoList_Sakray.lua Then, use below format: -- Example Quest Info List -- QuestList = { [1] = { -- This is the ID of the quest. Please remember/note it down. Title = "Quest Title", -- The quest title that shown on quest board. Description = { -- Quest description. "Some long quest description", "You can use ^FF0000Hex Color^000000,", "An <URL>URL <INFO>https://google.com</INFO></URL>", "A <NAVI>Navigation <INFO>WILOW,0,0,3,-222,0</INFO></NAVI>", "Or an <ITEM>Item <INFO>501</INFO></ITEM> information" }, Summary = "Some summary", -- Summary, -- Optional Properties IconName = "ico_gq.bmp", -- This is the quest icon displayed. It should reside on "data/texture/유저인터페이스/renew_questui/xxx.bmp" (Note for the file must be save with korean encoding) NpcSpr = "4_F_KHELLISIA", -- NPC Sprite name. Located at "data/sprite/npc/NPC_NAME" (Note: Input without .spr extension) NpcNavi = "prontera", -- Destination map name NpcPosX = 115, -- Destination npc X location NpcPosY = 181, -- Destination npc Y location RewardItemList = { -- Reward item list. You can have more items in it -- First Item { ItemID = 501, -- ItemID ItemNum = 10 -- Item quantity }, -- Second Item { ItemID = 502, -- ItemID ItemNum = 5 -- Item quantity } -- ...and so forth }, } } Next, you need to update your server side, by open and update these file: db/import/quest_db.yml And add your quest inside it: (Note the quest ID you've saved before) ... add after "Header:" Body: - Id:2 Title: Quest Title # Same as the "OngoingQuestInfoList_Sakray.lua" # Optional, if you want to add some monster, define here. (Please read the documation in the first fold of this .yml) Targets: - Mob: PORING Count: 5 Finally, you can adjust your quest in your NPC script, like this: prontera,159,186,4 script TestQuest 90,{ mes "Hello, this script just for testing quest"; next(); switch(select("Take quest", "Report Quest", "Bye")) { case 1: if (checkquest(2) == -1) { setquest 2; mes "Quest Taken"; } else { mes "Sorry, but you already have the quest"; } break; case 2: if (checkquest(2) == 0 || checkquest(2) == 1) { mes "Well done!"; mes "This is the rewards"; getitem 501,10; getitem 502,5; erasequest 2; } else if (checkquest(2) == 2) { mes "Sorry, you've completed the quest"; } else if (checkquest(2) == -1) { mes "It's look like you have not take the quest"; } break; case 3: mes "Bye..."; break; } end; } Last not least, don't forget to compile your lua file to lub using luac. That's some tutorial for update/creating a custom quest. So, in summary, you only need 3 things to setup, which is: Setup in client side -> Update OngoingQuestInfoList_Sakray.lub Setup in server side -> Update db/import/quest_db.yml Setup npc to trigger the quest === Screenshot - Without Monster Screenshot - With Monster === Hope this help
    1 point
  38. Peopleperson49's Script Collection Please enjoy my work. If you have any suggestions or find any issues/bugs please let me know! If you like or download my work please click the "Vote this post up" button to the right of the post and check out my server Ragnarok Underground. My scripts are written as I would use it for my Ragnarok Underground server, you might need to configure them before use. My scripts are written to work with the rAthena emulator. When reporting and bug/error/suggestion in this topic please give the emulator version, version of the script your using, and the issue in detail! Super Magnifier Identifys all unidientified items a player is holding at once. I made this a long time ago for my server, but I added here for Nipsino after reading a post he left. Function_SuperMagnifier.txt Rock, Paper, Scissors Roulette This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. This script was recreated in this same way. It is very similar to the original in design. Allows the player to play roulette with a 5 chamber pistol. Only one bullet is loaded at a time. The script will continue to loop until somebody is shot. Version 2.0: rpsroulette.txt BlackJack Scratchcard Blackjack script that designed to work like a scratchcard. It is based on using eight decks or cards and both numbers and suits determine winning hands. Buster prize for scoring a 30 or 31, which can only be done if you already have a 20 or 21 adding one more element of gambling to it. Item data is included at the bottom of the script. Version 3.3: Scratchcard_BlackJack.txt Powerball Lottery This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. This script was recreated in this same way. It is very similar to the original in design. Powerball lottery picks 5 miniballs and 1 powerball. Different pay amount based on type of matches made. Version 1.7: lottery.txt Advanced Banker This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. This script was recreated in this same way. It is very similar to the original in design. Bank with varying account and interest based directly on balance. Also has trustfund which pays out only when the character reaches BaseLevel 150. Most of my scripts give trustfund bonuses and also 1% of any zeny spent goes toward the trustfund. Version 1.4: bank.txt Heads Or Tails This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. I remember making this one, but I'm not sure if I based it off of another script or not. Player starts by betting 500z and then flips a coin. If heads their money is disabled, if tails they loose all their money. Version 2.4: hot.txt Jackpot Leon This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. This script was recreated in this same way. It is very similar to the original in design, however I'm not sure where to find that script anymore. The script picks a number between 1 and 100. The player pays 10,000z to make a guess. Each guess increases the size of the Jackpot by 9,000z until somebody wins. Version 2.3: jackpot.txt Double Dice Roll Very simple dice gambling game created for my custom Comodo casino package. You bet various amounts of zeny and roll two dice. The winner is the one with the highest total score. This was created from scratch as part of my casino package and had nothing to do with the rolladice script. Version 2.1: roll_a_dice.txt Saving Angel This script was written for my lovely wife after we were player and our whole party was wiped out in majos. It allows a character to resurrect another character anywhere in the server for a fee. Version 1.8: Saving_Angel.txt Magic 8 Ball Custom script that works just like using a magic 8 ball. Version 2.2: MagicEightball.txt Wishing Well Custom script that allows a player to throw zeny into the wishing well and make a wish. The wish is then sent to any online GM using @request. It is restricted to one use per day to help prevent annoying the crap out of the GM's! Version 1.7: WishingWell.txt Arch Bishop Job Quest This script was written for MelMel on rAthena.org. It is a compltely new version of the third job change quest for an Arch Bishop. I did not use any other scripts as a base. It allows a Priest/High Priest to gather items and then change jobs to an Arch Bishop. The Sub-scripts can be completed in any order and all work off of each other. Version 1.1: Job_AB.txt Guillotine Cross Job Quest This script was written to supplement the fact that the Guillotine Cross still has no official script release on rAthena.org. It is a compltely new version of the third job change quest for a Guillotine Cross. I did not use any other scripts as a base. It allows a Assassin/Assassin Cross to gather items and then change jobs to a Guillotine Cross. Version 1.2: Job_GC.txt Monster Of The Day Another Monster Of The Day script. I made this one from scratch to be very simple and work automatically. Uses almost the full list of monsters from the mob_branch. I included the dispbottom here when players login, but I actually perfer to use a login script with this in it. Version 1.4: MOTD.txt Security Manager Allows a player to set up a password to help protect their account. It uses a simple OnWhisperGlobal function. I nolonger support the use of the whisper system in my Security Manager script after version 1.3. I will still provide support for other issues that might be discovered in scripts prior to v1.4, but they will be fixed in a version that now uses bindatcmd. Version 1.5: Security_Manager.txt GM Headquarters Allows access to a part of the sec_in01 map that doesn't have any warps anyway. This is a nice areas to setup special NPC's or events. Whatever anybody wants to do with it. However the secutiry code is fun for everybody to try to crack. This script currently has shops that be used once a day as a reward for cracking code. It's my intent to eventually add a full warper script that can be used once a day also. Version 1.3: GMHeadquarters.txt Monster Hunter This script was written for vgrebirth on rAthena.org. It allows one party at a time to do the Monster Hunter event. If any member is killed the entire party looses and are warped out. If you kill all the mini-boss monsters the boss monster is spawned. Version 2.7: Monster_Hunter.txt
    1 point
  39. *** No longer need file. Found it in older version of rAthena. Bottom of post requests upvote if anyone is interested in a complete rewrite of this mod. If no response, Ill just make a small version for myself. Otherwise, if I see interest, Ill rewrite new version and also include new monsters too. *** Hey all. Sorry for the necro post, but I feel this is the only way I'm hopefully going to get a reply with the file I need. I need a copy of the full version of the old rAthena pet_db.txt in tact. All the above files in this pack are lacking this important information. The pet system has since been revamped where several of the above files are no longer needed as the info now exists in the pet db itself. This means there is no way to merge the several files into a working new pet db and I will have to research every pet in order to make sure they have the proper skills. Would look funny bringing a pet lunatic to a level 100+ dungeon, and have it use a skill that clears the entire screen with vermilion, which I sort of did for fun with a succumbus. Anyway, I need a full copy of the old pet_db.txt file which shows the break down of what each part means. In turn I will make a new pet data base file for both server and client to just copy over and use. Being I have 627 to convert, and as you know Im an avid typer, if I get this file, it should take me a month to write, may be 2 to include new monsters. I can be found on discord, so feel free to dm me if you have this file. Please no urls on what ones fathers, sisters, cousins room mate makes in a week please PS, please upvote if you want this updated script. I dont want to pour time into a project no one wants. Note: ** project to convert all pets to yml. ** Add evolving to all pets to unlock special skills. ** This one Im debating on, which is pet breeding for unique pets with special skills.
    1 point
  40. --------------------------------------- *setd "<variable name>",<value>{,<char_id>}; Works almost identically as set, except the variable name is identified as a string and can thus be constructed dynamically. This command is equivalent to: set getd("variable name"),<value>; Examples: setd "[email protected]$", "Poporing"; mes [email protected]$; // Displays "Poporing". setd "[email protected]" + [email protected]$ + "123$", "Poporing is cool"; mes [email protected]$; // Displays "Poporing is cool". NOTE: 'char_id' only works for non-server variables. Player with Character ID 'char_id' must be online. --------------------------------------- *getd("<variable name>") Returns a reference to a variable, the name can be constructed dynamically. Refer to 'setd' for usage. This can also be used to set an array dynamically: setarray getd(".array[0]"), 1, 2, 3, 4, 5; Examples: set getd("$varRefence"), 1; set [email protected], getd("$" + "pikachu"); --------------------------------------- example: setarray [email protected],1,2; setarray [email protected],10,20,30,40,50; setarray [email protected],100,200,300,400,500; for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){ for([email protected]=0;[email protected]<getarraysize(getd("[email protected]" + [email protected][[email protected]]));[email protected]++){ debugmes "" + getd("[email protected]" + [email protected][[email protected]] + "[" + [email protected] + "]"); } }
    1 point
  41. Version 1.0.0

    138 downloads

    Hii! First of all, I hope you had a very happy and peaceful Merry Christmas and a Happy New Year!! This is my very first free contribution to the community (rabbit is my "siggy name") It's Santa's flying sledge! I made some experiments with this mapperino. It's meant to feel like the sledge is truly moving and going forward. Hopefully it worked! I added a custom fog configuration that I highly recommend, and a custom bgm that's optional, but I think it fits perfectly! Don't forget to add the lub files, but it's all in the data folder, just add "luafiles514" as it is, alongside "texture" and "model". This last Christmas is over, but hopefully you can use it for the next one, if you like it! You can also use the recoloured stuff for your own maps, of course! they're under "lapine" (it just means female rabbit in French). Enjoy~! o/
    Free
    1 point
  42. Open ../src/map/clif.cpp and in the function clif_parse_LoadEndAck remove: #if PACKETVER >= 20070918 clif_partyinvitationstate(sd); clif_equipcheckbox(sd); #endif #if PACKETVER >= 20141008 if( battle_config.pet_autofeed_always ){ // Always send ON or OFF if( sd->pd && battle_config.feature_pet_autofeed ){ clif_configuration( sd, CONFIG_PET_AUTOFEED, sd->pd->pet.autofeed ); }else{ clif_configuration( sd, CONFIG_PET_AUTOFEED, false ); } }else{ // Only send when enabled if( sd->pd && battle_config.feature_pet_autofeed && sd->pd->pet.autofeed ){ clif_configuration( sd, CONFIG_PET_AUTOFEED, true ); } } #endif #if PACKETVER >= 20170920 if( battle_config.homunculus_autofeed_always ){ // Always send ON or OFF if( sd->hd && battle_config.feature_homunculus_autofeed ){ clif_configuration( sd, CONFIG_HOMUNCULUS_AUTOFEED, sd->hd->homunculus.autofeed ); }else{ clif_configuration( sd, CONFIG_HOMUNCULUS_AUTOFEED, false ); } }else{ // Only send when enabled if( sd->hd && battle_config.feature_homunculus_autofeed && sd->hd->homunculus.autofeed ){ clif_configuration( sd, CONFIG_HOMUNCULUS_AUTOFEED, true ); } } #endif In the function clif_parse_LoadEndAck after: // Notify everyone that this char logged in [Skotlex]. map_foreachpc(clif_friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 1); add: #if PACKETVER >= 20070918 clif_partyinvitationstate(sd); clif_equipcheckbox(sd); #endif #if PACKETVER >= 20141008 if( battle_config.pet_autofeed_always ){ // Always send ON or OFF if( sd->pd && battle_config.feature_pet_autofeed ){ clif_configuration( sd, CONFIG_PET_AUTOFEED, sd->pd->pet.autofeed ); }else{ clif_configuration( sd, CONFIG_PET_AUTOFEED, false ); } }else{ // Only send when enabled if( sd->pd && battle_config.feature_pet_autofeed && sd->pd->pet.autofeed ){ clif_configuration( sd, CONFIG_PET_AUTOFEED, true ); } } #endif #if PACKETVER >= 20170920 if( battle_config.homunculus_autofeed_always ){ // Always send ON or OFF if( sd->hd && battle_config.feature_homunculus_autofeed ){ clif_configuration( sd, CONFIG_HOMUNCULUS_AUTOFEED, sd->hd->homunculus.autofeed ); }else{ clif_configuration( sd, CONFIG_HOMUNCULUS_AUTOFEED, false ); } }else{ // Only send when enabled if( sd->hd && battle_config.feature_homunculus_autofeed && sd->hd->homunculus.autofeed ){ clif_configuration( sd, CONFIG_HOMUNCULUS_AUTOFEED, true ); } } #endif
    1 point
  43. Version 1.0.0

    3 downloads

    Hey Guys! This is a 'Fairy' styled type of map I did a while back. Pretty ideal for novice grounds I suppose! Let me know if you have any issues!
    $99.00
    1 point
  44. LOL sorry I'm sure now case SA_ELEMENTWATER: case SA_ELEMENTFIRE: case SA_ELEMENTGROUND: case SA_ELEMENTWIND: //if (sd && (!dstmd || status_has_mode(tstatus,MD_STATUS_IMMUNE))) // Only works on monsters (Except status immune monsters). // break; comment it out
    1 point
  45. Version 1.0.0

    134 downloads

    Contents: 3 map files (.gat .gnd .rsw) 1 minimap (.bmp) There is no script for this map, it was just something i created for a friend last year as he had a "wave" instance script where mobs were spawned in the south-east corner of the map and they made their way to the north-west corner, so i built a small town and placed a wooden door hidden amongst the trees to signify the end-point.
    Free
    1 point
  46. rathena/conf/battle/pet.conf // Rate for catching pets (Note 2) pet_catch_rate: 100 //100% Capture rate. // The rate a pet will get friendly by feeding it. (Note 2) pet_friendly_rate: 100 //Change to 10000. This should make it loyal after 1 feed. // If your pet is hungry by how much will the friendlyness decrease by. (Default is 5) // Note: The friendlyness is 0-1000 total, at 0 the pet runs away. pet_hungry_friendly_decrease: 5 //Change to 0. Should it ever get hungry, it won't lose it's friendliness. Meaning you can have a very loyal starving pet.
    1 point
  47. Yeah, that's why you change: #ifndef RENEWAL_EDP val3 = 50*(val1+1); //Damage increase (+50 +50*lv%) #endif To: #ifndef RENEWAL_EDP val3 = -25+50*val1; //Damage increase (-25+50*level) #endif But that's a kinda strange balance. Don't you want to half the damage increase? In that case it would be: #ifndef RENEWAL_EDP val3 = 25*(val1+1); //Damage increase (+25 +25*lv%) #endif
    1 point
  48. I am not sure if this works but try it prontera.gat,xxx,xxx,4 script Trader 666,{ set [email protected]_mpq$, "^4000C0[Trader]^000000"; mes [email protected]_mpq$; mes "Would you want to trade some of your items to boxes?"; next; menu "Yggdrasil Berry",L_Berry,"Yggdrasil Seed",L_Seed,"Box of Thunder",L_BOT,"Cancel",L_Exit; L_Berry: mes [email protected]_mpq$; mes "This is what I need to make you a Yggdrasil Berry Box!"; next; mes "100x - Yggdrasil Berry"; next; mes [email protected]_mpq$; mes "So, you want it or not?"; next; mes [email protected]_mpq$; menu "Sure!",-,"No, thanks.",Lnotenuff; mes [email protected]_mpq$; mes "How many boxes do you want?"; input @berry; if(countitem(607) < (100*@berry)) goto LNotEnough; delitem 607,(100*@berry); mes "You really have that many Berrys? Okay, let's trade!"; getitem YGGBERRYBOXIDHEREIDKTHEID,(1*@berry); mes ". . ."; mes "Thank you sweety. Dont ygg too much!"; close; L_Seed: mes [email protected]_mpq$; mes "This is what I need to make you a Yggdrasil Seed Box!"; next; mes "100x - Yggdrasil Seed"; next; mes [email protected]_mpq$; mes "So, you want it or not?"; next; mes [email protected]_mpq$; menu "Sure!",-,"No, thanks!",Lnotenuff; mes [email protected]_mpq$; mes "How many boxes do you want?"; input @seed; if(countitem(608) < (100*@seed)) goto LNotEnough; delitem 608,(100*@seed); mes "You really have that many Seeds? Okay, let's trade!"; getitem YGGSEEDBOXIDHEREIDKTHEID,(1*@seed); mes ". . ."; mes "Thank you sweety. Dont ygg too much!"; close; L_BOT: mes [email protected]_mpq$; mes "This is what I need to make you a Box of Thunder box!"; next; mes "100x - Box of Thunder"; next; mes [email protected]_mpq$; mes "So, you want it or not?"; next; mes [email protected]_mpq$; menu "Sure!",-,"No, thanks!",Lnotenuff; mes [email protected]_mpq$; mes "How many boxes do you want?"; input @bot; if(countitem(12028) < (100*@bot)) goto LNotEnough; delitem 12028,(100*@bot); mes "You really have that many Boxes of Thunder? Okay, let's trade!"; getitem BOXOFTHUNDERIDGOESHERE,(1*@bot); mes ". . ."; mes "Thank you sweety. Dont abuse it too much!"; close; LNotEnough: mes "You dont have the required items...?"; mes "Come back when you are actually ready. Now gtfo!"; close; Lnotenuff: mes "Wtf, come back when you got the goods!"; close; L_Exit: close; }
    1 point
  49. actually the teleport under tarot card of fate = teleport + heal 2000hp under skill.c find: case 5: // 2000HP heal, random teleported case 5: // 2000HP heal, random teleported status_heal(src, 2000, 0, 0); if( !map_flag_vs(bl->m) ) unit_warp(bl, -1,-1,-1, CLR_TELEPORT); break; commented that line (//) or remove it then above that change 14 in this line eff = rnd() % 14; to 13
    1 point
  50. As some of you guys might remember, preserve was able to be turned off. I now will teach you how you can do that with a few simple source edits. Open up your skill.c and look for case ST_PRESERVE: It will look like this: case NPC_DEFENDER: case NPC_MAGICMIRROR: case ST_PRESERVE: case NPC_INVINCIBLE: Now you outmark it. It will look like this then: case NPC_DEFENDER: case NPC_MAGICMIRROR: //case ST_PRESERVE: case NPC_INVINCIBLE: Now you search for case GS_GATLINGFEVER: and add case ST_PRESERVE: at the bottom. It should look like this now: case CR_SHRINK: case SG_FUSION: case GS_GATLINGFEVER: case ST_PRESERVE: if( tsce ) { clif_skill_nodamage(src,bl,skillid,skilllv,status_change_end(bl, type, -1)); map_freeblock_unlock(); Okay, now you'll have to search for // Turn off check and add case ST_PRESERVE: at the end. It will look like this. (Sorry I have to post the screenshot here because tabs don't work and it will look crappy) Now just save and recompile your server. You now will be able to turn preserve off when it's on and you use the skill again.
    1 point
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.