Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 08/17/22 in Posts

  1. Hello, A lot of rAthena users preferred to use text database, and I am one of these users since it is so much easier to trace | modify | compare. I've been trying to find a workaround to enable rAthena to still read text version of item database, but frustratingly I don't have the knowledge & capability to do so. I really hope that there would be someone out there who can help in making rAthena be able to read text version of item db. Please hit like if you are like me who prefer to use text version item db. Thank you!
    1 point
  2. Hello guys, I want to share a project I'm making for pre renewal servers: The idea is to brings some renewal content to pre renewal, except items, but the playing content. The pre-renewal is on episode 12, classic satan morroc last patch. I implemented all monsters of El Dicastes, Bifrost, Eclage (biolab04) etc into pre-renewal. I scaled monster stats and levels to pre-renewal, as well as attack and defense. I added pre-renewal loots into those monsters (Old Card Album for card drop, since there is no card. Magic card album for mvps and mini-bosses) bio04 give 25% more exp than bio 3 and same loot, just different weapon drop, class based. bio 04 mvp has bio 03 card. Morroc: New restored Morroc city and fields. All Incarnation of Morroc monster and Imperor Satan Morroc MVP are removed from the game world. All NPCS related to this are gone, its in the past. I made a custom weekly Instance where you can face dozens of Incarnation of Morroc, optionally a Baphomet and a Lord of the Dead (they spawn in the instance but not required to kill), and in the final room MVP Imperor Morroc. So you can still farm diabolus loot but the game world can move on. The next step is to bring the Dimensional Gap. instances of each renewal episode. But I wonder if I can also bring maybe the enchant system or some cards/items to be worth playing the instancies, because there is no true reward at this moment. I'm out of ideas actually, if you have some idea please share. I used to play a lot of RO in the past and I came back now, I want to open a real server with this settings.
    1 point
  3. in some cases i would like YML for example itemdb.yml is good and readable but for sure text db is one way for everyone to find it friendly to use. It would be better if we could still choose if we would want to continue with txt or yml.
    1 point
  4. - script baselvl_kick_map -1,{ OnInit: .max_level = 150; .map$ = "prontera"; setmapflag .map$,mf_loadevent; end; OnPCLoadMapEvent: if ( strcharinfo(3) == .map$ && BaseLevel >= .max_level ) { warp "SavePoint",0,0; } end; }
    1 point
  5. function script B_Sunlight { if (getcharid(1)) { getmapxy(.@map1$, .@x1, .@y1, 0); getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for(set .@i,0; .@i < $@partymembercount; set .@i,.@i+1) { if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) { attachrid $@partymemberaid[.@i]; if (HP > 0) { getmapxy(.@map2$,.@x2,.@y2,0); if ((.@map1$ == .@map2$) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30)) { sc_start SC_Intravision,30000,0; } } } } } else { sc_start SC_Intravision,30000,0; } end; } This should work, I can't test for you. This script will also check the range between the party member and only affect members within the screen (and alive). Change your Box of Sunlight item_db script into callfunc "B_Sunlight";
    1 point
  6. Open: src/map/atcommand.c Find: /** * Fills the reference of available commands in atcommand DBMap **/ Replace with: ACMD_FUNC(recallmap) { short mapindex; struct map_session_data* pl_sd; struct s_mapiterator* iter; int count; nullpo_retr(-1, sd); if (!message || !*message){ clif_displaymessage(fd, msg_txt(909)); // Please enter a map (usage: @recallmap <mapname>). return -1; } mapindex = map_mapname2mapid(message); if (mapindex < 0) { clif_displaymessage(fd, msg_txt(1)); // Map not found. return -1; } count = 0; iter = mapit_getallusers(); for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) ) { if(pl_sd->bl.m == mapindex) { if (sd->status.account_id != pl_sd->status.account_id && pc_get_group_level(sd) >= pc_get_group_level(pl_sd)) { if (map[pl_sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) count++; else { if (pc_isdead(pl_sd)) { //Wake them up pc_setstand(pl_sd); pc_setrestartvalue(pl_sd,1); } pc_setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN); } } } } mapit_free(iter); clif_displaymessage(fd, msg_txt(92)); // All characters recalled! if (count){ sprintf(atcmd_output, msg_txt(1033), count); // Because you are not authorized to warp from some maps, %d player(s) have not been recalled. clif_displaymessage(fd, atcmd_output); } return 0; } /** * Fills the reference of available commands in atcommand DBMap **/ Find: AtCommandInfo atcommand_base[] = { Replace with: AtCommandInfo atcommand_base[] = { ACMD_DEF(recallmap), Recompile, you're done.
    1 point
  7. It works just fine for me: http://img210.images...6737/noloot.png Do you get any errors or warnings when you compile? EDIT: Heres how to fix it: Sorry for the trouble
    1 point
  8. Diff: http://pastebin.com/sUduy7xb Woopsie, I forgot to change something~ http://pastebin.com/SqLtTM27
    1 point
×
×
  • Create New...