Source Modifications
Source Mods & Code Snippets located here.
146 files
-
Bg consume
By Anubis-K
Recode of Brian's Item consumption mapflag.
It allows to use BG consumables only in Battleground under bg_consume mapflag.
More information here:
http://rathena.org/board/topic/97556-bg-consume-items-tlema-comes-to-rathena/
Compatible with: 20ff69e
412 downloads
Updated
-
No-Drop +7 or higher items
By Elliott
A small request I responded to from the eAthena forums ages ago, it's very simple and even though the last time it was tested was on eAthena r14410, there shouldn't be any problems.
I used msg slot "520" but again this can be changed, as well as the refine rate of dropping too. Someone with no src knowledge can easily configure it. Enjoy.
409 downloads
Submitted
-
Keitenai Resistance Capping
By Keitenai
File Name: Keitenai_Delay_System
File Submitter: keitenai
File Submitted: 27 Nov 2017
File Category: Src Modification
Content Author: keitenai
Information:
Resistance capping applies to item effects which have "bSubEle, bSubSize, bSubRace2, bSubRace, bSubClass, bNearAtkDef, and bLongAtkDef".
This modification can be set to less than 100 resistance cap to avoid too resistance heal, or set over 100 upto max of 200 if the dev would like to enable resistance heal.
Features:
Configurable Maximum resistance capping. Resistance capping can be applied to different resistance bonus types with different values. Resistance capping is applied to all items with resistance bonus scripts. By buying this scr modification code, you agree to these terms:
You are not allowed to redistribute this src code modification in any way, shape, or form. Chargeback scams are not tolerated and will get you punished on rAthena. I @Keitenai still retain all rights to this src modification. Terms above may be changed or adjusted without prior notification.
409 downloads
Updated
-
No @go when Player died
By EliteBlack
Information
This simple modification that players will not allow to use @go when they died in a battle.
User may apply the patch and re-compile.
Mirror
No @go when players died
405 downloads
Submitted
-
guildgetitem2 & guildgetitembound2
By Skorm
This command sends items to the guild storage without the need of server restart.
Example:
prontera,100,100,5 script guildgetitem2 100,{ //guildgetitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>}; switch ( guildgetitem2(1218, 1, 1, 1, 10, 4305, 0, 0, 0) ) { case 1: dispbottom "Item added to your guild storage."; end; case 0: dispbottom "Unknown Error."; break; case -1: dispbottom "Cannot open both storages."; break; case -2: dispbottom "Player doesn't have a guild."; break; case -3: dispbottom "Player doesn't have a guild storage."; break; case -4: dispbottom "Guild storage being used by someone else."; break; case -5: dispbottom "Guild storage is full."; break; } end; } Works much like getitem2 and it uses the attached players guildstorage.
389 downloads
Updated
-
[rAthena] & [eAthena] cell_noskill.patch
By Jaburak
This mod won't allow you to cast any skills on the selected cells.
This mod helps alot if you have pvp maps like UFC Arena and other PvP Colosseum.
Tested/Compatible with rAthena SVN r17325 and eAthena SVN.
Sample Script:
- script Function#noskill -1,{OnWhisperGlobal:OnInit: setcell "prontera",147,174,164,162,cell_noskill,1; end;}
386 downloads
Submitted
-
OnPCLootEvent
By joecalis
New NPC Label
OnPCLootEvent: This label triggers when a player picks up an item from the ground in a map marked with the 'lootevent' mapflag. This works with @autoloot and @alootid, this does not work for items given by script. When in a party with shared loot, only the player who looted the item from the ground will trigger this label. The information of the item picked up will be stored in an array called '@looted_data', check the script_commands.txt for the order of the data stored.
Usage Sample: lootevent_sample.txt
383 downloads
Updated
-
[Mapflag] Mobitemadder
By Zephyr
This mapflag sets more drops for monsters at the map that it's been attached.
Sintax:
mapname<TAB>mapflag<TAB>mobitemadder<TAB>mob_id,item_id,drop_per{,item_id,drop_per(...)}
You can set up to ~50 more items for mobs.
"drop_per" is the chance of drop, from 1 (0,01%) to 10000 (100%).
There's an example at the screenshot, I setted a Yggdrasil Berry with 100% of chance for the Poring at prt_fild08 map.
You can set a lot of mobs, but you have to set more mapflags for your maps.
372 downloads
Updated
-
Hide announcements/broadcasts command @blockbc
By pajodex
Hi,
This is a response from this post :
Requirements:
Basic knowledge how to apply diff on your server files. How to use the command:
@blockbc <param>.
Parameters:
PARTY - block incoming broadcasts from party. GUILD - block incoming broadcasts from guild. BG - block incoming broadcasts from battleground. CLAN - block incoming broadcasts from clan. MAP - block all incoming broadcasts from the current map. ALL - block all incoming broadcasts. @unblockbc. - as per the command name suggest
Disclaimer:
This is tested on latest server files as of the day it was posted. May or may not work on older server files. Keeping this up-to-date or vice-versa won't be my responsibility. Compatibility is your responsibility. Use at your own risk.367 downloads
Submitted
-
Sonic Blow and Arrow Vulcan v3.patch for 2018/12/19 Up Client
By gamingmagic
thanks to ckx_, syon, gidz, sadre
Video_2024_08_04-5_edit_0.webm326 downloads
Updated
-
Hotkey Scripts
By joecalis
New Script Commands
gethotkeys({<char_id>}); updatehotkey(<type>,<id>,<lv>,<pos>{,<flag>,<char_id>}); clearhotkeys({<char_id>}); These are just simple commands, that gets, sets, and clears your hotkeys(skill bar).
Usage Sample: hotkey_sample.txt
303 downloads
Updated
-
@command pack
By rootKid
¦¦¦¦¦¦ ¦¦¦¦¦¦ ¦¦¦¦¦¦ ¦¦¦¦¦¦¦¦ ¦¦ ¦¦ ¦¦ ¦¦¦¦¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦¦ ¦¦ ¦¦ ¦¦¦ ¦¦ ¦¦¦¦¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦¦¦¦ ¦¦ ¦¦¦ ¦¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦¦ ¦¦¦ ¦¦¦ ¦¦¦ ¦¦¦¦¦¦ ¦¦¦¦¦¦ ¦¦ ¦¦ ¦¦ ¦¦ ¦¦¦¦¦¦¦ @command pack. (@runlabel, @allchat, @emo, @allemo, @alleffect) //////////////////////////////////////////////////////////////////////////////////////////////// [src/map/atcommand.c] is the only file needed to be editted. Set your account group permissions as desired. You're assumed to know how to implement these. However, if you have further questions, feel free to contact me. //////////////////////////////////////////////////////////////////////////////////////////////// ACMD_DEF(runlabel), //rootKid ACMD_DEF(allchat), //rootKid ACMD_DEF(emo), //rootKid ACMD_DEF(allemo), //rootKid ACMD_DEF(alleffect), //rootKid /*========================================== * @runlabel by [rootKid] * Makes invoker run an 'On' label from within an npc * @runlabel Healer#OnMinute44 *------------------------------------------*/ ACMD_FUNC(runlabel) { char label_output[256],npcname[100],label[100]; nullpo_retr(-1, sd); if (!message || !*message) { sprintf(atcmd_output, "Usage: @runlabel <npc name>, <label>"); clif_displaymessage(fd, atcmd_output); return -1; } if (sscanf(message, "%23[^,], %99[^\n]", npcname, label) < 2) { clif_displaymessage(fd, "Please, enter the correct info (usage: @runlabel <npc name>, <label>)."); return -1; } if (npc_name2id(npcname) != NULL) { sprintf(label_output, "%s::%s", npcname, label); npc_event( sd, label_output, 0 ); clif_displaymessage(fd, "Label was triggered."); return 0; } else { clif_displaymessage(fd, "NPC doesn't exist."); return -1; } } /*========================================== * @allchat by [rootKid] * Makes all players, except the invoker, send out a desired message * eg. @allchat blahblah *------------------------------------------*/ ACMD_FUNC(allchat) { struct map_session_data* iter_sd; struct s_mapiterator* iter; char tempmes[200]; iter = mapit_getallusers(); nullpo_retr(-1, sd); memset(tempmes, '\0', sizeof(tempmes)); memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%199[^\n]", tempmes) < 0) { clif_displaymessage(fd, "Please, enter a message (usage: @me <message>)."); return -1; } for (iter_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); iter_sd = (TBL_PC*)mapit_next(iter)) if (iter_sd != sd){ //Triggers on all players except the one who initiates it. sprintf(atcmd_output, "%s : %s", iter_sd->status.name, tempmes); // *%s %s* clif_disp_overhead(&iter_sd->bl, atcmd_output); } mapit_free(iter); return 0; } /*========================================== * @emo by [rootKid] * Makes invoker send out an emote * @emo 3 *------------------------------------------*/ ACMD_FUNC(emo) { if (!message || !*message) { clif_displaymessage(fd, "Usage: @emo 1-81"); return -1; } clif_emotion(&sd->bl, atoi(message)); return 0; } /*========================================== * @allemo by [rootKid] * Makes all players, except the invoker, send out a desired emote * eg. @allemo 1 *------------------------------------------*/ ACMD_FUNC(allemo) { struct map_session_data* iter_sd; struct s_mapiterator* iter; iter = mapit_getallusers(); if (!message || !*message) { clif_displaymessage(fd, "Usage: @emo 1-81"); return -1; } for (iter_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); iter_sd = (TBL_PC*)mapit_next(iter)) if (iter_sd != sd){ //Triggers on all players except the one who initiates it. clif_emotion(&iter_sd->bl, atoi(message)); } mapit_free(iter); return 0; } /*========================================== * @alleffect by [rootKid] * Makes all players, except the invoker, send out a desired special effect * eg. @alleffect 89 *------------------------------------------*/ ACMD_FUNC(alleffect) { struct map_session_data* iter_sd; struct s_mapiterator* iter; int type = 0, flag = 0; iter = mapit_getallusers(); nullpo_retr(-1, sd); if (!message || !*message || sscanf(message, "%d", &type) < 1) { clif_displaymessage(fd, "Please, enter an effect number (usage: @effect <effect number>)."); return -1; } for (iter_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); iter_sd = (TBL_PC*)mapit_next(iter)) if (iter_sd != sd){ //Triggers on all players except the one who initiates it. clif_specialeffect(&iter_sd->bl, type, (send_target)flag); } mapit_free(iter); return 0; }
299 downloads
Updated
-
Admin's Custom Broadcast
That Mod adds a Custom Admin's Broadcast with a Custom Label:
The format to this command is: @adm <message>
For Example: If you write @adm Hello World, that's my Custom Command for rAthena.
The result is: [Admin] Name: Hello World, that's my Custom Command for rAthena.
If you want modify the broadcast's color you need change the hexadecimal color in that line for the color that you like it, in this case from Admin's Custom Label:
0x99CCFF
If you want modify the Label, you need to change the label intro [ ], in this case is Admin:
"[Admin] %s : %s", sd->status.name, message);
What's the New?
Added GM's Custom Broadcast
Added Super User's Custom Broadcast
Used revision 17132
Bug fixed
293 downloads
Updated
-
No @command while talking NPC
By Kichi
This mod is inspired by HERE and disable_items
I made this mod to prevent using @command while talking to NPC.
The default is prevent @command while talking to NPC
to allow @command while talking to npc.
enablecommand; // To allow @command while talking to NPC
This is first version, Bug is normal.
My suggestion
-add setting in conf file
291 downloads
Submitted
-
Account bound achievement
By Aeclis
This patch has been made for the June 2018 version of rAthena. It doesn't work with the latest version of rAthena. I do not provide support anymore for it.
This patch allows you to create account OR character bound achievement instead of only character bound achievement.
- Rewards are available once per account for account bound achievement
- All characters and newly created characters on the account will get the unlocked titles from account bound achievement
I provide you the patch and a README.txt which explains you how to use it. You also need to add a column in the achievement table. I provide you the SQL commands as well.
BEFORE to apply any patch, make a save of the current state of your server.
If you have issue applying this patch, I will provide support for free for you to have it working and if your emulator is not too old to handle this (have at least the classic achievement working).
Exemple of yml achievement account bound (the one in the screen):
- ID: 200000
Bound: "Account"
Group: "AG_GOAL_LEVEL"
Name: "Acquire the first aura!!!!"
Condition: " BaseLevel >= 99 "
Reward:
ItemID: 12549
Script: " specialeffect2 EF_BLESSING; sc_start SC_BLESSING,30000,10; "
TitleID: 1000
Score: 50
By buying this patch, you agree to these terms:
- You are not allowed to redistribute this script in any way, shape, or form.
- Chargeback scams are not tolerated and will get you punished on rAthena.
- I still retain all rights to this script.
- Terms above may be changed or adjusted without prior notification.
286 downloads
Updated
-
[Config] Min/Max Boss Equip Drop Rates
By Xantara
Information
Separates the item_drop_equip min and max configurations for normal and boss mobs in conf/battle/drops.conf
Ie. New config settings: item_drop_equip_min and item_drop_equip_max
Documentation
Credits
Created by Xantara
Requested by GoldGloryRO
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Do not mirror without my consent.
283 downloads
Submitted
-
@novendingboards / @novenders
By Lilith
Request: @nndsl
Post: http://rathena.org/board/topic/80231-notrade/#entry187456
See on YouTube:
@novendingboards
http://www.youtube.com/watch?v=sHIT1pRSQZU&feature=youtu.be
@novenders
http://www.youtube.com/watch?v=1UajUvlzAAc&feature=youtu.be
Enjoy
280 downloads
Updated
-
AnyMapDrops
By Hyroshima
This mod made in map_drops.yml now allows you to add drops globally (without specifying a map), I also added a parameter where the added item can go directly to the player's inventory if there is space.
Example of use ( db\import\map_drops.yml )
Header: Type: MAP_DROP_DB Version: 2 Body: - Map: ANY GlobalDrops: - Index: 0 Item: Union_Token Rate: 50000 DirectInventory: true - Index: 1 Item: Flower Rate: 100000 SpecificDrops: - Monster: Fabre Drops: - Index: 0 Item: White_Gold_Coin Rate: 50000 DirectInventory: true - Index: 1 Item: Izidor Rate: 50000 - Monster: Poring Drops: - Index: 0 Item: Crystal_Jewel__ Rate: 50000 Note 1: To be valid across all maps, set the map name to ANY.
Note 2: The new parameter DirectInventory ( false | true ) allows the item to go directly to the inventory.
Note 3: I created 2 new mapflags (nomapdrops and mapdrops), the first is self-explanatory (does not drop any items from map_drops 😅), the second will be effective for instances, as now map_drops does not drop items in instances, so just apply the second mapflag on the instance (in the instance maps) to make it work again.
Example of use:
OnInstanceInit: setmapflag instance_mapname("1@nyd"),mf_mapdrops; setmapflag instance_mapname("2@nyd"),mf_mapdrops;
Next updates I will add a parameter to mapdrops.yml if you want the item to be dropped in instances too instead of having to use the mapdrops mapflag.
276 downloads
Updated
-
@AutoBuyAmmo
By goddameit
Preview:
-----------------------------------------------------
After You use @autobuyammo to active this system,
you will auto-buy some ammo when it is going run out.
275 downloads
Updated
-
@norecall command
By Vykimo
@norecall/@nr : Don't be recalled by Emergency Call skill.
It's only a .diff file to Apply on your rAthena folder.
I made this free release starting of the idea of @YtalloNv here : https://rathena.org/board/topic/117304-i-need-to-add-the-norecall-command-on-my-server/#comment-353203
274 downloads
Updated
-
Glicko-2 rating system - Now on rAthena
By Secrets
This source edit provides two script commands for you to get and sets rating of a player, and adjust them relative to another player after two of them battled.
This implementation uses Glicko-2 rating system, an improvement of Elo system.
If you still have no idea what you could do with this, this source mod is not for you.
You can also get the code on GitHub.
Licenses:
The rAthena implementation of Glicko2 itself fell under the GNU GPLv3 license that rAthena uses.
Glicko2 library by Taylor Petrick:
tldr of the license here.
267 downloads
Updated
-
Max Trap Control
By Hyroshima
This mod allows you to control the number of traps that the player can use.
conf/battle/skill.conf
// Max Trap [Hyroshima] // Functionality to control the number of active traps. // Note: // skill_max_trap > Controls the number of individual active trap skills that were not been to defined parameter ActiveInstance in skill_db.yml // global_max_trap > Controls the maximum active trap skills for all skill traps (listed in skill.cpp -> trap_skill_id), this option overrides skill_max_trap if the definer is smaller than it //- // skill_max_trap: 0 (disabled) // global_max_trap: 0 (disabled) //- skill_max_trap: 0 global_max_trap: 0 the option skill_max_trap only affects skills that do not have the parameter ActiveInstance in skill_db.yml the option global_max_trap affects all trap skills mentioned above in the code box, the skills are listed in the function as I also inform in the description of the code box above.
Note: i am making 2 diff files available:
_A = Closest to current revision. _B = A little older compared to the current review As there have been some changes to how some functions receive/send parameters, I will try to maintain this standard when sending diff files.
265 downloads
Updated
-
Usefull Status Icons (EC, Bragi, Pneuma, Sunset, Idun,...)
By Vykimo
Easy for the player and good looking.
The pack contain source modification + icons made by me (with the color palette which reminds the skill).
6 usefull main icons availables :
Emergency Call Cooldown Pneuma Bragi Don't forget me Assassin of the Sunset Apple of the idun DEMO Video for Emergency Call :
53 purchases 258 downloads
Updated
-
DuplicateCreate and DuplicateRemove command
By Zell
Apply the patch manually
These commands allow you to create duplicates at run time.
duplicatecreate("sourcename", "targetnameshown", "targetnamehidden", "targetmap", targetx, targety, targetdir{, targetspriteid{, targetxs, targetys}});
duplicateremove("npcname");
258 downloads
Updated
-
Race AntiSkill
By Kichi
======== Compatible ==========
Compatible With rAthena, other emulator just PM me
I made this code in purpose to event
======== How To Use ==========
example:
1002,PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,..;
change to
1002,PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,13,21,0x83,...;
And your poring will immune again Skill (offensives).
Note:
3 = Race Plant
13 = Race Anti Skill
======== Suggestion ==========
Suggestions are welcome.
254 downloads
Updated
-
Recently Browsing 0 members
- No registered users viewing this page.