Jump to content


Popular Content

Showing content with the highest reputation since 03/02/23 in all areas

  1. 1 point
    Pack v2022: Current Version: 27 December 2021 Download Links (~4.5GB): Download from Mirror #1 or Download from Mirror #2 or Download from Mirror #3 Important: Please make someone mirror these files. Or make a donation to me and I will make a mirror by myself. What is that? This is a newbie package that contains 1 click solution for launching Hercules emulator with a single click. This package only for education. Do not use this package anywhere in production. This package good demonstration of how everything should be configured by yourself to make it work. We can find here a good guide on how to configure everything by yourself: http://herc.ws/board/topic/16521-how-to-setup-offline-server-for-personal-development-use/ What inside the package? You have 7 folders: 01_emulator = here emulators (pre-compiled and pre-configured) for RENEWAL or classic PRERE mechanics 02_client_side = here is your client-side what need to copy-paste to your clean kRO client 03_openserver = here is Open Server (MySQL server where stored your game database and which required by the emulator) 04_useful_tools = here are different useful tools that you usually will need when will work with the emulator or databases 05_misc_repos = here are repositories from which it has built the client-side, and exe patched. 06_cmder = this is a tool will be good for you to update the emulator to the latest version (and other files in misc_repos) 07_clean_kRO_client = this is a clean kRO client (2018 somewhere in march updated), need for you to run your own RO copy. How to use all of this? extract files inside 01_emulator, 02_client_side, 03_openserver, 07_clean_kRO_client Now, what emulator version do you need? Latest (current official servers) (renewal mechanic (suras, dorams, etc classes)) or classic PRE-re (champion, high wizard, high priest)? Now if for example, you use PRERE mechanic (where is high wizard class, paladin, lord knights, and no 3rd classes) your steps are next: a.) go to 02_client_side\FOR_PRERE_EMULATOR\ b.) select all files in this folder (FOR_PRERE_EMULATOR) and copy (CTLR+C) c.) now go to 07_clean_kRO_client/clean_kRO_client/ folder and copy files here (overwrite if windows explorer will ask to do that). d.) now you need to run OpenServer (it's a server that stores all your player's data inside the database, required by the emulator) and run it. e.) Click on Red Flag -> Run the server, make sure in your tray you got Green Flag. f.) Now go to 01_emulator\hercules_PRERE\ and run: run-server.bat g.) Now go to your 07_clean_kRO_client/clean_kRO_client/ and run: 2018-04-18bRagexeRE_patched.exe Your emulator, your database, and the client are running. Now you can try to login into the game. About Accounts: How to make a GM account or how to access the database? For that, you need to click on Green Flag -> Advanced -> PHPMYADMIN In the login field of PHPMyAdmin enter: "root", in the password field enter nothing. (no password) Press enter or login, and you will be in the database. Databases well structured, so mostly always you need not edit too much there. How to make a GM account? You opened PHPMYADMIN. Now select your database, and find in this database table called: "login" Open this table, and find your account name, and you will see column "group_id". Edit number in this column (group_id) to 99. 0-99 = your GM level. 99 = super admin with all privilegies, 0 = simple player with no privieleges. Okay, everything working for me, what can I do next? My short answer: http://herc.ws/board/ Read all topics, read different guides, read info about NPCs Read info how to add NPCs, how to enable them, how to disable them Read /doc/ folder files inside your emulator folder Read wiki pages: https://herc.ws/wiki/Main_Page Do experiments and do not afraid to destroy everything or remove them. Just do mistakes and errors, it's how people learning something new, through mistakes. DO not afraid to do a lot of mistakes and ask questions. People will help you if you will try to help yourself first and will make good questions with some research before posting messages. What tools can I use for making everything much easier for me? Tools that you MUST have: - Grf Editor - Server Database Editor - VSCode / Notepad++ / Sublime Text / Atom (any of these editors and select always C syntax highlight for opened files) I want to play with my friends on my server The solution that you will find by the link below is a terrible solution. But usable for a small group of people who for education only want to launch their server ONLINE (for others). This is SUPER bad, and never do that, (it's weird, after the only time you will understand why). But if you still asking here is the link: https://gist.github.com/anacondaq/3eae8e4afb5d3c3880d08b95b2c54b78 =============================================== I want make a donation as a gesture of goodwill: =============================================== Ask administrators here: http://herc.ws/board/ If they accept donations or not, I found no donation link. Optionally you can always support the next guys: 4144 for massive help to the current RO scene at all by his hard work. AnnieRuru for a lot of scripts, helping newbies on the forums http://herc.ws/board/staff/ - all these guys zackdreaver for a lot of efforts on a translation project and to all guys, scripters, mappers, etc players who spend their time, their efforts just for you to make everything free what you see here. Sorry if I didn’t mention someone. I need help with <something> There are a lot of talented developers, software developers, scripters, mappers, spriters, and many other people in this community. Check the link: https://herc.ws/board/forum/49-paid-services/ Also, I accept all questions related to the basic newbie stuff on the topic. Do not hesitate to ask even super stupid questions. But before asking something, try to do a very simple thing: Open google, in the search bar enter: "site:herc.ws" Then write your question or problem Hit enter and check all links that you see, maybe someone already solved your problem earlier. Alternatively: if you will not be annoying, and will be respectful, I can help with some newbie stuff in the discord channel about the package: https://discord.gg/p2kvabm Changelog: - 2021-04-10 - build from scratch new version with everything new (2020 game client, latest translation, fixed bugs, tons of features and improvements) - 20200419 - upgraded emulators, fixed problems with emulators, SQL files, and so on, upgraded full kRO, tools, misc Repos, client-files not touched. Added Discord channel for newbies support. - 20200307 - updated emulator, recompiled, uploaded to google drive. Client or db-server files not changed. - 20200203 - updated emulator, rest files not touched, if you want to upgrade your emulator, just download the 01_emulator.rar folder, and use it instead of your old one. I'm Ukrainian in Ukraine. Russia has begun a war against my country, and doing right now is genocide. Destroying cities, even mine own, killing thousands of people, civil people, burning to the ground cities. If you wish to support me in this challenging time (I will try to re-route part of this money to people I know to help them under these awful conditions). You can donate personally for me for my needs by the link: https://nowpayments.io/donation/anacondaq (crypto). Alternatively, you can send money to help Ukraine citizens to the official fond https://www.comebackalive.in.ua/ or to: https://help.gov.ua/
  2. 1 point
    I have been ripping sprites from other games and transforming into ragnarok items. What you guys think?
  3. 1 point
    As far as i know this error were regarding to the netframe work which is you can update from your windows update or from here : ^_^ or Direct X I think it because the socket that mentioned are being used theres something limit of using your socket.. it might be your AV or you firewall... Did you run this on your own pc or vps..
  4. 1 point

    [Guide] How to add Custom Jobs

    Introduction For our Example we will create the Custom Class "Shinobi" and its Child version i.e. "Baby Shinobi" along with their Cash Mounts/Halter Mounts. Each Job has 3 ID values : 1) Job ID - we will use 4230 & 4231 respectively for the jobs (4232 & 4233 will be reserved for the mounts client side). 2) Map ID - Also called EA Mask. If we are extending a class we OR the existing class with a modifier. Since Shinobi is going to be a seperate branch, we will use 0x11 for Shinobi and 0x11 | 0x2000 for Baby Shinobi (0x2000 is the JOBL_BABY mask). 3) Msg ID - Defined in messages.conf file. We will use 700 and 701. Before we begin, A few points to note: 1) For the client side i will be using my own patch from NEMO not Xray clients - So dont ask me about Xray. 2) This guide is meant to be an overview towards adding jobs - meaning that your job will be enabled once you have done the changes specified here . You can add further details on your own which depends on your Class. 3) If i am missing out on anything please let me know. Nobody is perfect including me 4) We will use Sprite and some data from Ninja class for the time being but you can add your own entries just as easily. Server Source 1) src/common/mmo.h: look for JOB_REBELLION assignment and insert our Job IDs after it. 2) src/map/map.h: look for MAPID_BABY_CHASER and insert our Map IDs after it. 3) src/map/pc.c: i) find case JOB_BABY_CHASER: and insert our cases after it ii) find case MAPID_BABY_CHASER: and insert our cases after it iii) find case JOB_REBELLION: followed by return msg_txt(655); and insert our cases after it. (returns the Msg ID) iv) find { "Rebellion", JOB_REBELLION }, and insert our Job Names after it 4) src/map/itemdb.c: Here we check the job masks that is specified in item_db.conf. There is one limitation, however. Currently there is only 1 more slot left in the job mask since it is 32 bit. In case you need to add more you will need to change the variable to 64 bit. Find jobmask & 1<<30 and insert our class check after it. 5) src/char/inter.c: Find case JOB_REBELLION: and insert our case after it.(returns the Msg ID) Server Config 1) db/const.txt: i) Find Job_Rebellion and insert our Job IDs after it ii) Find EAJ_BABY_CHASER and insert our Map IDs after it 2) db/<pre-re|re>/exp.txt: Insert your IDs in one of the entries (or if you want to specify your own exp per level you can add that). Since our jobs are meant to be amongst First Class, we will simply add it into existing ones. i) Base: ii) Job: 3) db/<pre-re|re>/job_db.conf: Add entry for your Job. We will copy the entry from Ninja with slight changes for now. 4) db/job_db2.txt: Add entry for your Job. Again we will reuse the data from Ninja. 5) conf/help.txt: Insert your class entries to the @go message 6) conf/messages.conf: Add the Msg IDs after Shadow Chaser T 7) db/<pre-re|re>/skill_tree.conf: Add entry for your Job similar to the others. -pic to be added- Client Lua Files Now to make the client support Custom Jobs it should be patched with "Enable Custom Jobs" patch in NEMO. Also you should copy the lua files inside Support folder to different area so we can Add entries of our jobs. (LuaFiles514/Lua Files/Admin folder inside is what we need essentially) 1) PCIDs.lub : i) First we add all our Job IDs (look for JT_2004_JOB_LAST entry). ii) Next we connect the Cash Mount Job IDs to Main Job IDs (Look for JT_REBELLION mapping). iii) Lastly we need to add our Baby Class & its mount to the Baby_List (Look for JT_LION_CRUSADER_B). 2) PCNames.lub: To illustrate that different names can be assigned based on gender, I am calling them as Shinobi M & Shinobi F for Male & Female respectively. i) First we add the Job Name for Male Characters (Look for Rebellion) ii) Next we make the Cash Mounts inherit Names from their respective Main Jobs - since Mounting don't change the name (Look for JT_PECO_REBELLION). iii) Last but not least we add the Job Name for Female characters - Only necessary if it differs from Male name (Look for JT_SORCERER_B). 3) PCPaths.lub: Here we specify the job specific prefix used by the client to get the job sprite. i) First we add the Path prefix for Jobs that is not shared with any existing ones. ii) Next we make the Jobs that has shared path inherit from existing (for e.g. Baby Jobs inherit from Adult versions). 4)PCHands.lub: Here we specify the job specific prefix used by the client to get the weapon and shield sprite locations i) Like before, First we add the Hand prefix for Jobs that is not shared with any existing ones. ii) Next we make the Jobs with shared prefix inherit from existing (e.g. Baby Jobs, Mounts, Baby Mounts etc. all can inherit from Adult versions). 5)PCPals.lub: Here we specify the job specific prefix used by the client to get the Palette file location. i) Like before, First we add the Pal prefix for Jobs that is not shared with any existing ones. ii) Next we make the Jobs with shared prefix inherit from existing (e.g. Baby Jobs, Mounts, Baby Mounts etc. all can inherit from Adult versions). Note: You can also optionally add entries in PCImfs.lub file in case you have an Imf file, but I haven't seen any issues even without it. Hence I am not pursuing it. Once the edits are done pack it into your grf or put it in your data folder and use it. With this much your job will be visible and able to do everything provided you have the sprite files in the right location. spriteÀΰ£Á·¸öÅë³²<pathprefix>_³².spr and act for Male Job spriteÀΰ£Á·¸öÅë¿©<pathprefix>_¿©.spr and act for Female Job Snapshot: (to be added)
  5. 1 point


    what type of source code mods do you need?
  6. 1 point

    [Showcase] Weapons, Shields and more

    Can you make a video guide or tutorial how to make custom sprite i want to learn thank you!
  7. 1 point

    Nemo patcher

    update, already found the issue. the issue because client need font files - SCDream4.otf - SCDream6.otf
  8. 1 point
    New weapons.
  9. 1 point

    Version 1.0.0


    High-Res Damagefont Here is a new damage font i've cooked for you guys. Alot simpler than the other ones ive uploaded, wen't for a more minimalistic design. I've tried not to kill the pixelated vibe that we all love from the original one, but still improving its resolution. Was pretty happy with the result ;] Hope you all like it. CyA
  10. 1 point
    New wings and auras.
  11. 1 point
    More auras.
  12. 1 point
    Added new weapons.
  13. 1 point
    10 new auras.
  14. 1 point
    Added wings.
  15. 1 point
    More auras.
  16. 1 point
    Added new auras.
  17. 1 point
    When resized it, the pixels get all wierd and ugly.
  18. 1 point

    15peaces 3CeAM Patches

    favorite tab Don't forget to apply the 3ceam_favorite_tab.sql & 3ceam_favorite_tab_log.sql files. Added patch for the "favorite item tab" feature. -This feature requires 2011-11-22aRagexeRE or newer to work. Note: For this patch I also needed to change the nameid variable in item struct to unsigned short. -The mmo_charstatus struct is getting to large to be send between char and map server. -By changing the nameid from int to unsigned char I was able to reduce the size significantly without any disadvantages. -The server still supports a max of 65,535 item ids. -This also adjusted the CARD0_PET from -256 to 256. Commit Patch
  19. 1 point

    Hairstyle Package

    Version 1.0.0


    Introduction: This package are currently contains around 90~100 hairstyles for both male/female character. I obtained these from various sources like old eAthena, rAthena, Hercules, TheSpriteRepository and other member who shared these sprites with me etc. I don't remember who exactly made each of the sprites, or who even shared these... tell me if you know who are them. If any of these hairstyles are custom work that are meant for private use, kindly contact me, so that I could remove it from the listing. I do have more than this amount, but since my current test client (2018-06-20) can only support up to 100 sprites, so I randomly picked 100 and only upload it here. It included the default 31 hairstyle from kRO, but I think I replaced the 1~20+ hairstyles from JRO which dyed the hair in dark color, the rest are custom hair styles. How to use: You can either merge the provided GRF into your own GRF Load it as another individual GRF using the DATA.ini file Extract it and put it in your Data folder * Depend on your client hexed with whatever settings. Search forum for all these guides. Disclaimer: You're free to share with everyone but do not monetize the contents in any way! These materials are meant for study or research purpose. Use these at your own risk, and always give credit to original author. If there exists issue with sprite file, for example: sprite misalignment, error, etc, kindly ask help from any member who have knowledge with sprite edit. If there exists issue with palette color file, for example: messed up color, error, etc, kindly ask help from any member who have knowledge with palette color edit. Fun Fact: Do you know you can actually combine all male and female hairstyle (including doram) to create a list of universal hairstyles that could be used by any gender of player and doram?
  20. 1 point

    Version 1.0.0


    __________***PLEASE READ***__________ I'm working together with some people to bring sprites from different games into Ragnarok for free or very low cost depending on the amount of work. These sprites are not thoroughly tested and do not come with a custom drew collection image. If there are any issues, kindly report them. Use parts of it or fully, use them as a base or else - but please follow these rules: _______________________________________________ Rules: Do not sell these sprites to anyone. Do not ask me to fix, adjust or change something unless you're willing to pay for it. If you upload them somewhere for others to download, please credit me and/or link back to herc.ws's download section. Contains: Chocolate Chapeau - Valentines Headgear Credits: Special thanks to Shourei and Normynator. Without you guys, this free-sprite project would not be possible. @Daifuku @Shourei @Normynator
  21. 1 point

    NPC Script Editor

    Version v1.0.0.600


    Easy to use & feature packed NPC Script Editor for RO emulator(s). Has a built in plug-in system, so anyone can write their own plugin to extend this editor's feature. Now optimized for performance and support NPC Script Parsing / Syntax / Error checking (F6) right in the editor to speed up your coding.
  22. 1 point

    Hercules Cap

    Version 1.0


    Hercules Cap for Free!
  23. 1 point

    MVP tomb stone patch

    Here's MVP tomb stone patch that i made compatible with 3ceam V1 : 3CEAM_MVPTOMB.patch Index: conf/battle/monster.conf =================================================================== --- conf/battle/monster.conf (revision 792) +++ conf/battle/monster.conf (working copy) @@ -206,6 +206,11 @@ // NOTE: This affects who gains the Castle when the Emperium is broken. mob_npc_event_type: 1 +// Wheter or not to spawn the mvp tomb. (Default: no) +// This is a renewal feature. +// See http://irowiki.org/wiki/MVP#Gravestone +mvp_tomb_enabled: yes + // Time in milliseconds to actitave protection against Kill Steal // Set to 0 to disable it. // If this is activated and a player is using @noks, damage from others players (KS) not in the party Index: src/map/battle.c =================================================================== --- src/map/battle.c (revision 792) +++ src/map/battle.c (working copy) @@ -5914,6 +5914,7 @@ { "mob_luk_status_def", &battle_config.mob_luk_sc_def, 300, 1, INT_MAX, }, { "pc_max_status_def", &battle_config.pc_max_sc_def, 100, 0, INT_MAX, }, { "mob_max_status_def", &battle_config.mob_max_sc_def, 100, 0, INT_MAX, }, + { "mvp_tomb_enabled", &battle_config.mvp_tomb_enabled, 1, 0, 1 }, { "sg_miracle_skill_ratio", &battle_config.sg_miracle_skill_ratio, 1, 0, 10000, }, { "sg_angel_skill_ratio", &battle_config.sg_angel_skill_ratio, 10, 0, 10000, }, { "autospell_stacking", &battle_config.autospell_stacking, 0, 0, 1, }, Index: src/map/battle.h =================================================================== --- src/map/battle.h (revision 792) +++ src/map/battle.h (working copy) @@ -416,6 +416,7 @@ int mob_npc_event_type; //Determines on who the npc_event is executed. [Skotlex] int mob_clear_delay; // [Valaris] + int mvp_tomb_enabled; int character_size; // if riders have size=2, and baby class riders size=1 [Lupus] int mob_max_skilllvl; // Max possible skill level [Lupus] Index: src/map/map.h =================================================================== --- src/map/map.h (revision 792) +++ src/map/map.h (working copy) @@ -243,7 +243,7 @@ //For common mapforeach calls. Since pets cannot be affected, they aren't included here yet. #define BL_CHAR (BL_PC|BL_MOB|BL_HOM|BL_MER|BL_ELEM) -enum npc_subtype { WARP, SHOP, SCRIPT, CASHSHOP }; +enum npc_subtype { NPCTYPE_TOMB, WARP, SHOP, SCRIPT, CASHSHOP }; enum { RC_FORMLESS=0, //NOTHING Index: src/map/mob.c =================================================================== --- src/map/mob.c (revision 792) +++ src/map/mob.c (working copy) @@ -102,6 +102,77 @@ return 0; } + +/*========================================== + * MvP Tomb [GreenBox] + *------------------------------------------*/ +void mvptomb_create(struct mob_data *md, char *killer, time_t time) +{ + struct npc_data *nd; + + if ( md->tomb_nid ) + mvptomb_destroy(md); + + CREATE(nd, struct npc_data, 1); + + nd->bl.id = md->tomb_nid = npc_get_new_npc_id(); + + nd->ud.dir = md->ud.dir; + nd->bl.m = md->bl.m; + nd->bl.x = md->bl.x; + nd->bl.y = md->bl.y; + nd->bl.type = BL_NPC; + + safestrncpy(nd->name, "Tomb", sizeof(nd->name)); + + nd->class_ = 565; + nd->speed = 200; + nd->subtype = NPCTYPE_TOMB; + + nd->u.tomb.md = md; + nd->u.tomb.kill_time = time; + + if (killer) + safestrncpy(nd->u.tomb.killer_name, killer, NAME_LENGTH); + else + nd->u.tomb.killer_name[0] = '\0'; + + map_addnpc(nd->bl.m, nd); + map_addblock(&nd->bl); + status_set_viewdata(&nd->bl, nd->class_); + status_change_init(&nd->bl); + unit_dataset(&nd->bl); + clif_spawn(&nd->bl); + +} + +void mvptomb_destroy(struct mob_data *md) { + struct npc_data *nd; + + if ( (nd = map_id2nd(md->tomb_nid)) ) { + int m, i; + + m = nd->bl.m; + + clif_clearunit_area(&nd->bl,CLR_OUTSIGHT); + + map_delblock(&nd->bl); + + ARR_FIND( 0, map[m].npc_num, i, map[m].npc[i] == nd ); + if( !(i == map[m].npc_num) ) { + map[m].npc_num--; + map[m].npc[i] = map[m].npc[map[m].npc_num]; + map[m].npc[map[m].npc_num] = NULL; + } + + map_deliddb(&nd->bl); + + aFree(nd); + } + + md->tomb_nid = 0; +} + static int mobdb_searchname_array_sub(struct mob_db* mob, const char *str) { if (mob == mob_dummy) @@ -895,6 +966,10 @@ // Added for carts, falcons and pecos for cloned monsters. [Valaris] md->sc.option = md->db->option; + // MvP tomb [GreenBox] + if ( md->tomb_nid ) + mvptomb_destroy(md); + map_addblock(&md->bl); clif_spawn(&md->bl); skill_unit_move(&md->bl,tick,1); @@ -2491,6 +2566,10 @@ if(!md->spawn) //Tell status_damage to remove it from memory. return 5; // Note: Actually, it's 4. Oh well... + // MvP tomb [GreenBox] + if (battle_config.mvp_tomb_enabled && md->spawn->boss) + mvptomb_create(md, mvp_sd ? mvp_sd->status.name : NULL, time(NULL)); + if( !rebirth ) mob_setdelayspawn(md); //Set respawning. return 3; //Remove from map. Index: src/map/mob.h =================================================================== --- src/map/mob.h (revision 792) +++ src/map/mob.h (working copy) @@ -9,6 +9,7 @@ #include "map.h" // struct status_data, struct view_data, struct mob_skill #include "status.h" // struct status data, struct status_change #include "unit.h" // unit_stop_walking(), unit_stop_attack() +#include "npc.h" #define MAX_RANDOMMONSTER 4 @@ -149,7 +150,7 @@ int level; int target_id,attacked_id; int areanpc_id; //Required in OnTouchNPC (to avoid multiple area touchs) - + int tomb_nid; unsigned int next_walktime,last_thinktime,last_linktime,last_pcneartime; short move_fail_count; short lootitem_count; @@ -277,6 +278,10 @@ int mob_clone_spawn(struct map_session_data *sd, int m, int x, int y, const char *event, int master_id, int mode, int flag, unsigned int duration); int mob_clone_delete(struct mob_data *md); +// MvP Tomb System +void mvptomb_create(struct mob_data *md, char *killer, time_t time); +void mvptomb_destroy(struct mob_data *md); + void mob_reload(void); #endif /* _MOB_H_ */ Index: src/map/npc.c =================================================================== --- src/map/npc.c (revision 792) +++ src/map/npc.c (working copy) @@ -1087,13 +1087,40 @@ clif_cashshop_show(sd,nd); break; case SCRIPT: - run_script(nd->u.scr.script,0,sd->bl.id,nd->bl.id); - break; + run_script(nd->u.scr.script,0,sd->bl.id,nd->bl.id); + break; + case NPCTYPE_TOMB: + npc_tomb(sd,nd); } return 0; } +// MvP tomb [GreenBox] +int npc_tomb(struct map_session_data* sd, struct npc_data* nd) +{ + char buffer[200]; + char time[10]; + + strftime(time, sizeof(time), "%H:%M", localtime(&nd->u.tomb.kill_time)); + snprintf(buffer, sizeof(buffer), "[ ^0000EE%s^000000 ]", nd->u.tomb.md->db->name); + clif_scriptmes(sd, nd->bl.id, buffer); + clif_scriptmes(sd, nd->bl.id, "Has met its demise"); + snprintf(buffer, sizeof(buffer), "Time of death : ^EE0000%s^000000", time); + clif_scriptmes(sd, nd->bl.id, buffer); + clif_scriptmes(sd, nd->bl.id, "^FFFFFF_^000000"); + clif_scriptmes(sd, nd->bl.id, "Defeated by"); + snprintf(buffer, sizeof(buffer), "[ ^0000EE%s^000000 ]", nd->u.tomb.killer_name[0] ? nd->u.tomb.killer_name : "Unknown"); + clif_scriptmes(sd, nd->bl.id, buffer); + clif_scriptclose(sd, nd->bl.id); + return 0; +} + /*========================================== * *------------------------------------------*/ Index: src/map/npc.h =================================================================== --- src/map/npc.h (revision 792) +++ src/map/npc.h (working copy) @@ -62,6 +62,11 @@ short x,y; // destination coords unsigned short mapindex; // destination map } warp; + struct { + struct mob_data *md; + time_t kill_time; + char killer_name[NAME_LENGTH]; + } tomb; } u; }; @@ -160,6 +165,7 @@ int npc_duplicate4instance(struct npc_data *snd, int m); int npc_cashshop_buy(struct map_session_data *sd, int nameid, int amount, int points); int npc_cashshop_buylist(struct map_session_data* sd, int n, unsigned short* item_list, int points); +int npc_tomb(struct map_session_data* sd, struct npc_data* nd); extern struct npc_data* fake_nd; Index: src/map/unit.c =================================================================== --- src/map/unit.c (revision 792) +++ src/map/unit.c (working copy) @@ -2435,6 +2435,8 @@ } if( mob_is_clone(md->class_) ) mob_clone_delete(md); + if( md->tomb_nid ) + mvptomb_destroy(md); break; } case BL_HOM: Enjoy!
  • Create New...

Important Information

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