Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/23/22 in all areas

  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. Try this... // PVP Yoyo Mode Staff //============================================================ //alchemy,163,89,4 script PVP Arena 513,{ dicastes01,257,169,4 script PVP Arena 411,{ sc_end SC_GOSPEL; sc_end SC_SKE; //sc_end SC_APPLEIDUN; //sc_end SC_SERVICEFORYOU; //sc_end SC_WEAPONPERFECT; //sc_end SC_OVERTHRUST; mes "[PvP Warper]"; mes "Which arena do you want to go to?"; next; switch( select( "Solo Arena ["+getmapusers("guild_vs3")+"]", "Party Arena ["+getmapusers("pvp_y_1-2")+"]", "PVP 1 vs 1 ["+getmapusers("1@ge_st")+"]") ){ Case 1: if( getcharid(1) ){ mes "Please leave your party."; }else{ warp "guild_vs3",0,0; } break; Case 2: warp "pvp_y_1-2",0,0; break; Case 3: if( getmapusers("1@ge_st") > 1 ){ mes "Room Full"; }else{ warp "1@ge_st",0,0; } break; } close; OnInit: while( 1 ){ delwaitingroom; waitingroom "PVP : "+getmapusers("guild_vs3")+" Users",0; sleep 1000; } OnAgitEnd: OnAgitEnd2: hideoffnpc strnpcinfo(0); end; OnAgitStart: OnAgitStart2: hideonnpc strnpcinfo(0); end; } // PVP Normal guild_vs3 mapflag pvp guild_vs3 mapflag nocommand 50 guild_vs3 mapflag nosave SavePoint guild_vs3 mapflag noteleport guild_vs3 mapflag pvp_noparty guild_vs3 mapflag pvp_noguild guild_vs3 mapflag nomemo // PVP Party pvp_y_1-2 mapflag pvp pvp_y_1-2 mapflag nocommand 50 pvp_y_1-2 mapflag nosave SavePoint pvp_y_1-2 mapflag noteleport pvp_y_1-2 mapflag pvp_noguild pvp_y_1-2 mapflag nomemo // PVP 1vs1 1@ge_st mapflag pvp 1@ge_st mapflag nocommand 50 1@ge_st mapflag nosave SavePoint 1@ge_st mapflag noteleport 1@ge_st mapflag pvp_noparty 1@ge_st mapflag pvp_noguild 1@ge_st mapflag nomemo
    1 point
  3. Hello rAthena Community, I'm finally back to scripting again and now I'm making my own Scripts Collection topic ,which I'm going to update from time to time. I think I said enough,here are my Scripts. Rules,which you accept by downloading / using my Scripts : Things you are not allowed to do with my Scripts: 1: Do not claim my work as yours! 2: Do not remove my Credits / always give Credits if you edit the Script. Things you are allowed to do with my Scripts : 1: Download them and use them in your Server 2: Edit them,but remember to give the Credits! My Scripts : - All iRO Daily Quests in one - Mini Dice Event - Automated Guess the Number Event - MVP Room + Warper - Refiner,Derefiner,Repairman - Size Changer - Stat and Skill Seller - Daily Reward NPC - Rock,Paper,Scissors Game - iRO Daily Quest - Alberta Cargo - iRO Daily Quest - Army Supply - iRO Daily Quest - Church Donation - iRO Daily Quest - Knight's Delivery - iRO Daily Quest - Lost Puppies - iRO Daily Quest - Swab the Deck - Skill Points Remover - Requested - WoE Castle Reward - Requested - Soul Linker NPC - Requested - 3rd Jobclass Items Reward - Requested - Not automated Guess the Number Event (GM Level 40 or higher) - Lunar's Dynamic Shop Menu - FIXED You can download all my Scripts by using Tortoise SVN and using the SVN Checkout. Here's the Link to My SVN : Rikimaru's Scripts SVN Have fun with using my Scripts,but with downloading and using My Scripts you accept MY RULES Comments allowed,if you got some things you want to tell me,let me know about them,I love to script! Yours, ~ Rikimaru
    1 point
  4. script prontera,150,150,0 script Cleaner 1002,15,15,{ end; OnTouchNPC: .@gid = monsterattached(); getmapxy .@map$, .@x, .@y, 3; // move to 1 cell near the mob / min distance between npc-mob if ( .@x > .x0 ) .@dx = -1; else if ( .@x < .x0 ) .@dx = 1; if ( .@y > .y0 ) .@dy = -1; else if ( .@y < .y0 ) .@dy = 1; .@x_tmp = .@x + .@dx; .@y_tmp = .@y + .@dy; if ( !checkcell(.@map$,.@x_tmp,.@y_tmp,cell_chkpass) ) { for ( .@dx = -1; .@dx < 2 && .@break == 0; .@dx++ ) for ( .@dy = -1; .@dy < 2; .@dy++ ) { if ( .@dx == 0 && .@dy == 0 ) continue; .@x_tmp = .@x + .@dx; .@y_tmp = .@y + .@dy; if ( checkcell(.@map$,.@x_tmp,.@y_tmp,cell_chkpass) ) { .@break = 1; break; } } } if ( .@x_tmp != .@x && .@y_tmp != .@y ) movenpc strnpcinfo(3), .@x_tmp, .@y_tmp; specialeffectmob 10; unitkill .@gid; end; OnInit: getmapxy .@map$, .x0, .y0, 1; // .@npc_name$ = strnpcinfo(3); npcspeed 50; freeloop 1; while( true ) { sleep 10000; do { .@x = .x0 + rand(-10,10); .@y = .y0 + rand(-10,10); } while( !checkcell(.@map$,.@x,.@y,cell_chkpass) ); .x0 = .@x; .y0 = .@y; npcwalkto .x0, .y0; // movenpc .@npc_name$, .x0, .y0; } } src src/custom/script.inc | 19 +++++++++++++++++++ src/custom/script_def.inc | 3 +++ src/map/script.c | 8 ++++++++ 3 files changed, 30 insertions(+) diff --git a/src/custom/script.inc b/src/custom/script.inc index 1e01c88..c8e825c 100644 --- a/src/custom/script.inc +++ b/src/custom/script.inc @@ -17,3 +17,22 @@ // script_pushint(st,1); // return 0; //} + +BUILDIN_FUNC(monsterattached) +{ + struct block_list *bl = map_id2bl(st->rid); + if(st->rid == 0 || bl == NULL || bl->type != BL_MOB) + script_pushint(st,0); + else + script_pushint(st,st->rid); + return SCRIPT_CMD_SUCCESS; +} + +BUILDIN_FUNC(specialeffectmob) +{ + int type = script_getnum(st,2); + struct block_list *bl=map_id2bl(st->rid); + if(bl != NULL && bl->type == BL_MOB) + clif_specialeffect(bl, type, AREA); + return SCRIPT_CMD_SUCCESS; +} \ No newline at end of file diff --git a/src/custom/script_def.inc b/src/custom/script_def.inc index 3319eea..5a75166 100644 --- a/src/custom/script_def.inc +++ b/src/custom/script_def.inc @@ -9,3 +9,6 @@ **/ //BUILDIN_DEF(example,""), + +BUILDIN_DEF(monsterattached,""), +BUILDIN_DEF(specialeffectmob,"i"), \ No newline at end of file diff --git a/src/map/script.c b/src/map/script.c index b6be34d..29d0634 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -13986,6 +13986,14 @@ int recovery_sub(struct map_session_data* sd, int revive) bl = &sd->pd->bl; break; case 3: //Get Mob Position + if( script_hasdata(st,6) ) { + struct script_data *data = script_getdata(st,6); + get_val(st, data); + if( !data_isstring(data) ) + bl = map_id2bl(script_getnum(st, 6)); + } + else if( st->rid && map_id2bl(st->rid) != NULL ) + bl = map_id2bl(st->rid); break; //Not supported? case 4: //Get Homun Position if(script_hasdata(st,6)) I didn't thought about friendly mob
    1 point
  5. Replace announce "Guess the Number: The event has started!",0; enablenpc "guess"; end; } to announce "Guess the Number: The event has started!",0; enablenpc "guess"; end; OnInit: disablenpc "guess"; end; }
    1 point
×
×
  • Create New...