Sallycantdance Posted December 18, 2023 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Yesterday at 06:41 AM Share Posted December 18, 2023 hello is there any script preventing players with party to enter a specific map or it will automatically kick them? Quote Link to comment Share on other sites More sharing options...
0 Winterfox Posted December 18, 2023 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 245 Reputation: 93 Joined: 06/30/18 Last Seen: November 27, 2024 Share Posted December 18, 2023 (edited) You could create a custom teleport, that only lets you enter without a party and use a mapflag to prevent the creation of new a party on the target map to make sure there are no partys on that map. prontera,150,150,4 script #nopartyteleport WARPNPC,3,3,{ end; OnTouch_: if(getcharid(1)) { dispbottom("Players with a party can't enter!"); end; } warp("izlude", 155, 155); } izlude mapflag partylock Edited December 18, 2023 by Winterfox Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted December 19, 2023 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Yesterday at 06:41 AM Author Share Posted December 19, 2023 14 hours ago, Winterfox said: You could create a custom teleport, that only lets you enter without a party and use a mapflag to prevent the creation of new a party on the target map to make sure there are no partys on that map. prontera,150,150,4 script #nopartyteleport WARPNPC,3,3,{ end; OnTouch_: if(getcharid(1)) { dispbottom("Players with a party can't enter!"); end; } warp("izlude", 155, 155); } izlude mapflag partylock hello can i add it in this script instead Quote - script Event_LMS -1,{ OnInit: // Mapflags setarray .@mapflag, mf_nowarp, mf_pvp_noguild, mf_pvp_noparty, mf_partylock, mf_nowarpto, mf_noteleport, mf_nomemo, mf_nosave, mf_noicewall, mf_nobranch, mf_noreturn; for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag "06guild_01", .@mapflag[.@i]; end; OnStart: if ( .start ) end; .start = 1; pvpoff "06guild_01"; announce "LMS: We are going to have a Last Man Standing event.",0; sleep 10000; announce "LMS: For those who wants to join, use @eventjoin",0; sleep 10000; announce "LMS: After 1 Minute Event will close.",0; sleep 10000; announce "LMS: So please if you want to join. use @eventjoin",0; sleep 60000; announce "LMS: The entry to the event is now closed.",bc_all,0x0ceedb; if ( getmapusers("06guild_01") < 2 ) { announce "LMS: Not enough participants.",bc_all,0x0ceedb; .start = false; end; } .start = 2; sleep 3500; mapannounce "06guild_01","We're about to begin the event.",bc_map,0x0ceedb; sleep 2500; mapannounce "06guild_01","The rules are simple.",bc_map,0x0ceedb; sleep 2500; mapannounce "06guild_01","Kill everyone in the map.",bc_map,0x0ceedb; sleep 2500; mapannounce "06guild_01","Last Man Standing wins!",bc_map,0x0ceedb; sleep 2000; mapannounce "06guild_01","That's all. Let's begin.",bc_map,0x0ceedb; sleep 3000; for (.@i = 10; .@i > 0; .@i--) { mapannounce "06guild_01", "LMS: -- "+.@i+" --",bc_map,0x0ceedb; sleep 1000; } mapannounce "06guild_01", "LMS: Fight! ",bc_map,0x0ceedb; pvpon "06guild_01"; .timer = 0; initnpctimer; end; OnTimer5000: // check every 5 secs.. .timer++; .@size = getmapusers("06guild_01"); if ( .@size > 1 && .timer == 6 ) { .timer = 0; mapannounce "06guild_01", "LMS: "+ .@size +" players left..", bc_blue; } else if ( .@size <= 1 ) donpcevent strnpcinfo(3)+"::OnEndEvent"; setnpctimer 0; end; OnEndEvent: stopnpctimer; .start = false; pvpoff "06guild_01"; mapannounce "06guild_01", "LMS: Event ended!",bc_map,0x0ceedb; sleep 5000; .@size = getmapunits(BL_PC,"06guild_01",.@aid); if ( .@size == 0 ) { announce "LMS: No winners.",0; end; } attachrid .@aid; announce strcharinfo(0)+" has won the Last Man Standing Event.",bc_all,0x0ceedb; if ( $event_options&1 ) { for ( .@j = 0; .@j < $event_item_arr; .@j += 2 ) getitem $event_item_reward[.@j], $event_item_reward[.@j+1]; } if ( $event_options&2 ) { setd $event_var$, getd($event_var$)+$event_var_gain; dispbottom "You gained "+$event_var_gain+" "+$event_var_name$+". You now have "+getd($event_var$)+" "+$event_var_name$+"."; } warp "payon",178,100; end; OnPCDieEvent: if ( .start && strcharinfo(3) == "06guild_01" ) { warp "payon",178,100; .@size = getmapusers("06guild_01"); if ( .@size > 1 ) mapannounce "06guild_01", "LMS: "+ .@size +" players left..", bc_blue; else if ( .@size <= 1 ) donpcevent strnpcinfo(3)+"::OnEndEvent"; } end; } Quote Link to comment Share on other sites More sharing options...
0 Gidz Cross Posted December 25, 2023 Group: Members Topic Count: 133 Topics Per Day: 0.03 Content Count: 686 Reputation: 89 Joined: 04/07/14 Last Seen: 19 hours ago Share Posted December 25, 2023 On 12/19/2023 at 5:08 PM, GM Winter said: hello can i add it in this script instead What happens if those LMS players have party? I don't see any exploits there. Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted December 26, 2023 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Yesterday at 06:41 AM Author Share Posted December 26, 2023 8 hours ago, Gidz Cross said: What happens if those LMS players have party? I don't see any exploits there. if they have party they will kill the solo players first before they leave their party and kill each other Quote Link to comment Share on other sites More sharing options...
0 Gidz Cross Posted December 26, 2023 Group: Members Topic Count: 133 Topics Per Day: 0.03 Content Count: 686 Reputation: 89 Joined: 04/07/14 Last Seen: 19 hours ago Share Posted December 26, 2023 18 hours ago, GM Winter said: if they have party they will kill the solo players first before they leave their party and kill each other Oh yeah LMS (last man standing) I thought its NVZ (novice vs zombie) hahahaha! Winterfox is correct. On your script there is already mf_partylock in the Oninit area. Where is the script when the players use @eventjoin? That is where you need to add this if(getcharid(1)) { dispbottom("Players with a party can't enter!"); end; } warp("izlude", 155, 155); } Quote Link to comment Share on other sites More sharing options...
0 pajodex Posted December 26, 2023 Group: Members Topic Count: 79 Topics Per Day: 0.03 Content Count: 439 Reputation: 173 Joined: 12/12/17 Last Seen: Monday at 05:33 PM Share Posted December 26, 2023 you can just add a pvp_noparty mapflag.. *pvp *pvp_noparty *pvp_noguild *pvp_nocalcrank Enables Player vs. Player mode on a map and applies the corresponding damage adjustments. 'pvp_noparty' will ignore party alliances. 'pvp_noguild' will ignore guild alliances. 'pvp_nocalcrank' will disable calculation of PvP rankings. Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted December 27, 2023 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Yesterday at 06:41 AM Author Share Posted December 27, 2023 5 hours ago, Gidz Cross said: Oh yeah LMS (last man standing) I thought its NVZ (novice vs zombie) hahahaha! Winterfox is correct. On your script there is already mf_partylock in the Oninit area. Where is the script when the players use @eventjoin? That is where you need to add this if(getcharid(1)) { dispbottom("Players with a party can't enter!"); end; } warp("izlude", 155, 155); } hello ive try to put it in the script i got a lot of errors dont know where to add this line heres the script Quote // Basic Event Manager // By Mabuhay /*-=-=-=-=-=-=-=-=-=-=-=-=-=- Currently added are the ff : {#} NAME - "NPC_NAME" [1] Bombring - "Event_Bombring" [2] Dice - "Event_Dice" [3] Last Man Standing - "Event_LMS" [4] Novice V Zombie - "Event_NvZ" [5] Poring Catcher - "Poring_Catcher" [6] Poring Hunter - "Poring_Hunter" (Added 12-15-2019) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/ // For easier management of Event NPCs ///////////////////////////////////// // NOTE: // ///////////////////////////////////// // I don't support any modifications unless I want to. // But if you want to change things especially the rewards, // Please refer to my F_Reward Functions // https://rathena.org/board/files/file/4068-itemvariablepoints-reward-function-for-beginners-or-lazy/ // You should be able to easily change the rewards // If you have basic scripting knowledge - script Event_Manager FAKE_NPC,{ OnInit: // 1 = item reward // 2 = variable/cashpoints reward // If you want to set item and variable/cashpoints rewards, do 1|2. // If you only want 1, just choose between 1 or 2 $event_options = 1; // If item reward enabled // What items will be rewarded setarray $event_item_reward, 12412, 2, // If variable reward.. set to your variable. // If cashpoints.. set to #CASHPOINTS / #KAFRAPOINTS (Free Cash Points) $event_var$ = "#EVENTVARIABLE"; // Variable name? // If cash points, set to Cash Points // If your custom var, set to the name of that thing. $event_var_name$ = "Custom Points"; // How much points gain if #VAR / #CASHPOINTS / #KAFRAPOINTS? $event_var_gain = 1; $event_item_arr = getarraysize($event_item_reward); // @eventstart for GM bindatcmd "eventstart", strnpcinfo(0)+"::OnStart",60,60; // @eventjoin bindatcmd "eventjoin", strnpcinfo(0)+"::OnJoinEvent"; end; OnStart: mes "Select what event to start:"; next; switch(select("~ Dice","~ LMS","~ Poring Catcher")) { case 1: .@npc$ = "Event_Dice"; break; case 2: .@npc$ = "Event_LMS"; break; case 3: .@npc$ = "Poring_Catcher"; break; } donpcevent .@npc$+"::OnStart"; end; OnJoinEvent: mes "[ Event Status ]"; mes "Event are as follows : "; next; switch(select( "Dice Event - "+ ((getvariableofnpc(.start,"Event_Dice") == 1) ? "^0000ffJoin Event":((getvariableofnpc(.start,"Event_Dice") == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000", "Last Man Standing - "+ ((getvariableofnpc(.start,"Event_LMS") == 1) ? "^0000ffJoin Event":((getvariableofnpc(.start,"Event_LMS") == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000", "Poring Catcher - "+ ((getvariableofnpc(.start,"Poring_Catcher") == 1) ? "^0000ffJoin Event":((getvariableofnpc(.start,"Poring_Catcher") == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000" )) { case 1: .@start = getvariableofnpc(.start,"Event_Dice"); .@map$ = "quiz_02"; .@x = 55; .@y = 87; break; case 2: .@start = getvariableofnpc(.start,"Event_LMS"); .@map$ = "06guild_01"; .@x = 0; .@y = 0; break; case 3: .@start = getvariableofnpc(.start,"Poring_Catcher"); .@map$ = "poring_w01"; .@x = 100; .@y = 100; break; } if ( !.@start ) { mes "Event is not available."; close; } else if ( .@start == 2 ) { mes "Event is on-going"; close; } sc_end SC_ALL; percentheal 100,100; warp .@map$, .@x, .@y; end; // OnClock<hour><minute>: donpcevent "<npc_name>::OnStart"; OnMon0100: donpcevent "Poring_Catcher::OnStart"; end; //1am OnMon0800: donpcevent "Poring_Catcher::OnStart"; end; //8am OnMon1300: donpcevent "Poring_Catcher::OnStart"; end; //1pm OnMon2000: donpcevent "Poring_Catcher::OnStart"; end; //8pm OnWed0100: donpcevent "Poring_Catcher::OnStart"; end; //1am OnWed0800: donpcevent "Poring_Catcher::OnStart"; end; //8am OnWed1300: donpcevent "Poring_Catcher::OnStart"; end; //1pm OnWed2000: donpcevent "Poring_Catcher::OnStart"; end; //8pm OnFri0100: donpcevent "Poring_Catcher::OnStart"; end; //1am OnFri0800: donpcevent "Poring_Catcher::OnStart"; end; //8am OnFri1300: donpcevent "Poring_Catcher::OnStart"; end; //1pm OnFri2000: donpcevent "Poring_Catcher::OnStart"; end; //8pm OnTue0100: donpcevent "Event_Dice::OnStart"; end; //1am OnTue0800: donpcevent "Event_Dice::OnStart"; end; //8am OnTue1300: donpcevent "Event_Dice::OnStart"; end; //1pm OnTue2000: donpcevent "Event_Dice::OnStart"; end; //8pm OnThu0100: donpcevent "Event_Dice::OnStart"; end; //1am OnThu0800: donpcevent "Event_Dice::OnStart"; end; //8am OnThu1300: donpcevent "Event_Dice::OnStart"; end; //1pm OnThu2000: donpcevent "Event_Dice::OnStart"; end; //8pm OnSat0100: donpcevent "Event_Dice::OnStart"; end; //1am OnSat0800: donpcevent "Event_Dice::OnStart"; end; //8am OnSat1300: donpcevent "Event_Dice::OnStart"; end; //1pm OnSat2000: donpcevent "Event_Dice::OnStart"; end; //8pm // OnMon0800: donpcevent "Poring_Catcher::OnStart"; end; // // OnMon1400: donpcevent "Event_Dice::OnStart"; end; // // OnMon2000: donpcevent "Event_LMS::OnStart"; end; // OnWed0800: donpcevent "Poring_Catcher::OnStart"; end; // OnWed1400: donpcevent "Event_Dice::OnStart"; end; // OnWed2000: donpcevent "Event_LMS::OnStart"; end; // OnFri0800: donpcevent "Poring_Catcher::OnStart"; end; // OnFri1400: donpcevent "Event_Dice::OnStart"; end; // OnFri2000: donpcevent "Event_LMS::OnStart"; end; } // Bombring Event - script Event_Bombring -1,{ OnInit: // Mapflags setarray .@mapflag, mf_nowarp, mf_nowarpto, mf_noskill, mf_noteleport, mf_nomemo, mf_nosave, mf_noicewall, mf_nobranch, mf_noreturn; for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag "quiz_02", .@mapflag[.@i]; end; OnStart: if ( .start ) end; .round = 0; .start = 1; killmonsterall "quiz_02"; announce "Bombring: We are going to have a Bombring event.",0; sleep 10000; announce "Bombring: For those who wants to join, use @eventjoin",0; sleep 10000; announce "Bombring: After 1 Minute Event will close.",0; sleep 10000; announce "Bombring: So please if you want to join. use @eventjoin",0; sleep 60000; announce "Bombring: The entry to the event is now closed.",bc_all,0x0ceedb; if ( getmapusers("quiz_02") < 1 ) { announce "Bombring: Not enough participants.",bc_all,0x0ceedb; .start = false; mapwarp "quiz_02", "prontera", 150, 180; // warp out. end; } .start = 2; sleep 3500; mapannounce "quiz_02","We're about to begin the event.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","The rules are simple.",bc_map,0x0ceedb; sleep 2000; mapannounce "quiz_02","Event will run for 30 seconds for 5 total rounds.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","All you have to do is avoid Bombrings and stay alive for 30 seconds.",bc_map,0x0ceedb; sleep 2000; mapannounce "quiz_02","That's all. Let's begin.",bc_map,0x0ceedb; sleep 3000; while ( .round < 5 ) { .@count = getmapusers("quiz_02"); .round++; mapannounce "quiz_02","Round "+.round,bc_map,0x0ceedb; areamonster "quiz_02",48,334,71,357,"Run for you life!",1904, 5 * .@count * .round; sleep 10000 - ( 1000*.round ); } .@count = getmapusers("quiz_02"); if ( !.@count ) announce "Bombring: No one survived the bombrings.",bc_all,0x0ceedb; else if ( .@count ) { .@size = getmapunits(BL_PC,"quiz_02",.@aid); if ( .@size > 1 ) announce "A lot players has won the Bombring Event.",bc_all,0x0ceedb; for ( .@i = 0; .@i < getarraysize(.@aid); .@i++) { attachrid .@aid[.@i]; if ( .@size == 1 ) announce strcharinfo(0)+" has won the Bombring Event.",bc_all,0x0ceedb; if ( $event_options&1 ) { for ( .@j = 0; .@j < $event_item_arr; .@j += 2 ) getitem $event_item_reward[.@j], $event_item_reward[.@j+1]; } if ( $event_options&2 ) { setd $event_var$, getd($event_var$)+$event_var_gain; dispbottom "You gained "+$event_var_gain+" "+$event_var_name$+". You now have "+getd($event_var$)+" "+$event_var_name$+"."; } } detachrid; } .start = false; sleep 5000; mapwarp "quiz_02","prontera",rand(148,163),rand(167,186); end; OnPCDieEvent: if ( .start && strcharinfo(3) == "quiz_02" ) warp "prontera",rand(148,163),rand(167,186); end; } // Dice Event - script Event_Dice -1,{ OnInit: // Mapflags setarray .@mapflag, mf_nowarp, mf_nowarpto, mf_noskill, mf_noteleport, mf_nomemo, mf_nosave, mf_noicewall, mf_nobranch, mf_noreturn; for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag "quiz_02", .@mapflag[.@i]; end; OnStart: if ( .start ) end; .start = 1; for(.@i = 1;.@i <= 4;.@i++) { disablenpc "Back#"+.@i; disablenpc "Box "+.@i; } announce "Dice: We are going to have a Dice event.",0; sleep 10000; announce "Dice: For those who wants to join, use @eventjoin",0; sleep 10000; announce "Dice: After 1 Minute Event will close.",0; sleep 10000; announce "Dice: So please if you want to join. use @eventjoin",0; sleep 60000; announce "Dice: The entry to the event is now closed.",bc_all,0x0ceedb; if ( !getmapusers("quiz_02") ) { announce "Dice: Not enough participants.",bc_all,0x0ceedb; .start = false; end; } .start = 2; sleep 3500; mapannounce "quiz_02","We're about to begin the event.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","The rules are simple.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","You'll have to enter one of the 4 avaiaible boxes.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","Then a four sides dice will be thrown. The number it shows will be the saved number.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_02","Remember to enter the boxes!",bc_map,0x0ceedb; sleep 2000; mapannounce "quiz_02","That's all.Let's begin!",bc_map,0x0ceedb; sleep 3000; while(!.@end && .start && .@rounds < 5) { for(.@i = 1;.@i <= 4;.@i++) { enablenpc "Back#"+.@i; enablenpc "Box "+.@i; } sleep 1500; mapannounce "quiz_02","The dice will soon be thrown. Enter the desired box clicking the metalic number inside them.",bc_map,0x0ceedb; sleep 20000; for(.@i = 5;.@i > 0;.@i--) { mapannounce "quiz_02",.@i+"...",bc_map,0x0ceedb; sleep 990; } for(.@i = 1;.@i <= 4;.@i++) { disablenpc "Back#"+.@i; disablenpc "Box "+.@i; } areawarp "quiz_02",32,95,79,76,"prontera",rand(148,163),rand(167,186); areawarp "quiz_02",80,85,80,76,"prontera",rand(148,163),rand(167,186); areawarp "quiz_02",31,85,31,76,"prontera",rand(148,163),rand(167,186); .@n = rand(1,4); mapannounce "quiz_02","Time! The dice shows the number "+.@n+".",bc_map,0x0ceedb; setarray .@cords1[0],33,41; setarray .@cords2[0],45,53; setarray .@cords3[0],57,65; setarray .@cords4[0],69,77; for(.@i = 1;.@i <= 4;.@i++) { if(.@i != .@n) areawarp "quiz_02",getd(".@cords"+.@i+"[0]"),52,getd(".@cords"+.@i+"[1]"),73,"prontera",rand(148,163),rand(167,186); } sleep 3000; .@players = getmapusers("quiz_02"); if(.@players <= 3 && .start && .@players) { mapannounce "quiz_02","The event is now over! Winners, enjoy your prizes!",bc_map,0x0ceedb; .@size = getmapunits(BL_PC,"quiz_02",.@players); .start = false; for(.@i = 0;.@i < .@size;.@i++) { attachrid .@players[.@i]; announce strcharinfo(0)+" has won the Dice Event.",bc_all,0x0ceedb; if ( $event_options&1 ) { for ( .@j = 0; .@j < $event_item_arr; .@j += 2 ) getitem $event_item_reward[.@j], $event_item_reward[.@j+1]; } if ( $event_options&2 ) { setd $event_var$, getd($event_var$)+$event_var_gain; dispbottom "You gained "+$event_var_gain+" "+$event_var_name$+". You now have "+getd($event_var$)+" "+$event_var_name$+"."; } warp "payon",178,100; } } else if( !.@players ) { .@end = true; .start = false; announce "There was no winner on the Dice Event.",bc_all,0x0ceedb; } else { mapannounce "quiz_02","There's no clear winners yet, let's roll the dice again.",bc_map,0x0ceedb; } .@rounds++; } if(.@rounds >= 5) { mapannounce "quiz_02","There were no winner clear in all of the event. The event is now over.",bc_map,0x0ceedb; .start = false; } end; } quiz_02,37,80,3 script Box 1 HIDDEN_NPC,{ warp "quiz_02",rand(33,41),rand(52,73); end; } quiz_02,49,80,3 script Box 2 HIDDEN_NPC,{ warp "quiz_02",rand(45,53),rand(52,73); end; } quiz_02,61,80,3 script Box 3 HIDDEN_NPC,{ warp "quiz_02",rand(57,65),rand(52,73); end; } quiz_02,73,80,3 script Box 4 HIDDEN_NPC,{ warp "quiz_02",rand(69,77),rand(52,73); end; } quiz_02,55,90,3 script Back to Payon#dice 4_BULLETIN_BOARD2,{ warp "payon",157,227; end; } quiz_02,37,64,3 script Back#1 4_BULLETIN_BOARD2,{ warp "quiz_02",55,76; end; } quiz_02,49,64,3 duplicate(Back#1) Back#2 4_BULLETIN_BOARD2 quiz_02,61,64,3 duplicate(Back#1) Back#3 4_BULLETIN_BOARD2 quiz_02,73,64,3 duplicate(Back#1) Back#4 4_BULLETIN_BOARD2 // Last Man Standing - script Event_LMS -1,{ OnInit: // Mapflags setarray .@mapflag, mf_nowarp, mf_pvp_noguild, mf_pvp_noparty, mf_partylock, mf_nowarpto, mf_noteleport, mf_nomemo, mf_nosave, mf_noicewall, mf_nobranch, mf_noreturn; for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag "06guild_01", .@mapflag[.@i]; end; OnStart: if ( .start ) end; .start = 1; pvpoff "06guild_01"; announce "LMS: We are going to have a Last Man Standing event.",0; sleep 10000; announce "LMS: For those who wants to join, use @eventjoin",0; sleep 10000; announce "LMS: After 1 Minute Event will close.",0; sleep 10000; announce "LMS: So please if you want to join. use @eventjoin",0; sleep 60000; announce "LMS: The entry to the event is now closed.",bc_all,0x0ceedb; if ( getmapusers("06guild_01") < 2 ) { announce "LMS: Not enough participants.",bc_all,0x0ceedb; .start = false; end; } .start = 2; sleep 3500; mapannounce "06guild_01","We're about to begin the event.",bc_map,0x0ceedb; sleep 2500; mapannounce "06guild_01","The rules are simple.",bc_map,0x0ceedb; sleep 2500; mapannounce "06guild_01","Kill everyone in the map.",bc_map,0x0ceedb; sleep 2500; mapannounce "06guild_01","Last Man Standing wins!",bc_map,0x0ceedb; sleep 2000; mapannounce "06guild_01","That's all. Let's begin.",bc_map,0x0ceedb; sleep 3000; for (.@i = 10; .@i > 0; .@i--) { mapannounce "06guild_01", "LMS: -- "+.@i+" --",bc_map,0x0ceedb; sleep 1000; } mapannounce "06guild_01", "LMS: Fight! ",bc_map,0x0ceedb; pvpon "06guild_01"; .timer = 0; initnpctimer; end; OnTimer5000: // check every 5 secs.. .timer++; .@size = getmapusers("06guild_01"); if ( .@size > 1 && .timer == 6 ) { .timer = 0; mapannounce "06guild_01", "LMS: "+ .@size +" players left..", bc_blue; } else if ( .@size <= 1 ) donpcevent strnpcinfo(3)+"::OnEndEvent"; setnpctimer 0; end; OnEndEvent: stopnpctimer; .start = false; pvpoff "06guild_01"; mapannounce "06guild_01", "LMS: Event ended!",bc_map,0x0ceedb; sleep 5000; .@size = getmapunits(BL_PC,"06guild_01",.@aid); if ( .@size == 0 ) { announce "LMS: No winners.",0; end; } attachrid .@aid; announce strcharinfo(0)+" has won the Last Man Standing Event.",bc_all,0x0ceedb; if ( $event_options&1 ) { for ( .@j = 0; .@j < $event_item_arr; .@j += 2 ) getitem $event_item_reward[.@j], $event_item_reward[.@j+1]; } if ( $event_options&2 ) { setd $event_var$, getd($event_var$)+$event_var_gain; dispbottom "You gained "+$event_var_gain+" "+$event_var_name$+". You now have "+getd($event_var$)+" "+$event_var_name$+"."; } warp "payon",178,100; end; OnPCDieEvent: if ( .start && strcharinfo(3) == "06guild_01" ) { warp "payon",178,100; .@size = getmapusers("06guild_01"); if ( .@size > 1 ) mapannounce "06guild_01", "LMS: "+ .@size +" players left..", bc_blue; else if ( .@size <= 1 ) donpcevent strnpcinfo(3)+"::OnEndEvent"; } end; } // Novice V Zombie - script Event_NvZ -1,{ OnInit: // Mapflags setarray .@mapflag, mf_nowarp, mf_nowarpto, mf_noskill, mf_noteleport, mf_nomemo, mf_nosave, mf_noicewall, mf_nobranch, mf_noreturn; for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag "quiz_01", .@mapflag[.@i]; end; OnStart: if ( .start ) end; .start = 1; killmonsterall "quiz_01"; announce "NvZ: We are going to have a Novice Vs. Zombie event.",0; sleep 10000; announce "NvZ: For those who wants to join, use @eventjoin",0; sleep 10000; announce "NvZ: After 1 Minute Event will close.",0; sleep 10000; announce "NvZ: So please if you want to join. use @eventjoin",0; sleep 60000; announce "NvZ: The entry to the event is now closed.",bc_all,0x0ceedb; if ( getmapusers("quiz_01") <= 1 ) { announce "NvZ: Not enough participants.",bc_all,0x0ceedb; .start = false; mapwarp "quiz_01", "prontera", 150, 180; // warp out. end; } .start = 2; sleep 3500; mapannounce "quiz_01","We're about to begin the event.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_01","The rules are simple.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_01","Zombies will be spawned in the map.",bc_map,0x0ceedb; sleep 2500; mapannounce "quiz_01","and will apear every 20 seconds.",bc_map,0x0ceedb; sleep 2000; mapannounce "quiz_01","Last man surviving wins.",bc_map,0x0ceedb; sleep 2000; mapannounce "quiz_01","That's all. Let's begin.",bc_map,0x0ceedb; sleep 3000; monster "quiz_01",42,369,"Zombie",1036,4; initnpctimer; end; OnTimer20000: // 20 seconds timer and also player check on how many left in map monster "quiz_01",42,369,"Zombie",1036,10; setnpctimer 0; end; OnPCDieEvent: if ( .start && strcharinfo(3) == "quiz_01" ) { warp "prontera",rand(148,163),rand(167,186); if ( getmapusers("quiz_01") == 1 ) { stopnpctimer; killmonsterall "quiz_01"; .@size = getmapunits(BL_PC,"quiz_01",.@aid); .start = false; attachrid .@aid; announce strcharinfo(0)+" has won the Novice v Zombie Event.",bc_all,0x0ceedb; if ( $event_options&1 ) { for ( .@j = 0; .@j < $event_item_arr; .@j += 2 ) getitem $event_item_reward[.@j], $event_item_reward[.@j+1]; } if ( $event_options&2 ) { setd $event_var$, getd($event_var$)+$event_var_gain; dispbottom "You gained "+$event_var_gain+" "+$event_var_name$+". You now have "+getd($event_var$)+" "+$event_var_name$+"."; } warp "prontera",rand(148,163),rand(167,186); end; } } end; } // Poring Catcher - script Poring_Catcher -1,{ OnInit: // Mapflags setarray .@mapflag, mf_nowarp, mf_nowarpto, mf_noskill, mf_noloot, mf_noteleport, mf_nomemo, mf_nosave, mf_noicewall, mf_nobranch, mf_noreturn; for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag "poring_w01", .@mapflag[.@i]; end; OnStart: if ( .start ) end; .start = 1; announce "Poring Catcher: We are going to have a Poring Catcher event.",0; sleep 10000; announce "Poring Catcher: For those who wants to join, use @eventjoin",0; sleep 10000; announce "Poring Catcher: After 1 Minute Event will close.",0; sleep 10000; announce "Poring Catcher: So please if you want to join. use @eventjoin",0; sleep 60000; announce "Poring Catcher: The entry to the event is now closed.",bc_all,0x0ceedb; .start = 2; sleep 3500; if( !getmapusers("poring_w01") ) { announce "Poring Catcher: Not enough participants in the Event.",bc_all,0x0ceedb; sleep 2500; announce "Poring Catcher: Event will be halted.",bc_all,0x0ceedb; .start = false; end; } mapannounce "poring_w01","We're about to begin the event.",bc_map,0x0ceedb; sleep 2500; mapannounce "poring_w01","The rules are simple.",bc_map,0x0ceedb; sleep 2500; mapannounce "poring_w01","In a few seconds I'm going to spawn tons of porings..",bc_map,0x0ceedb; sleep 2500; mapannounce "poring_w01","..All you need to do is kill the Poring with the right name..",bc_map,0x0ceedb; sleep 2500; mapannounce "poring_w01","..Which would be Poring.",bc_map,0x0ceedb; sleep 2000; mapannounce "poring_w01","If you kill the wrong one, you're out!",bc_map,0x0ceedb; sleep 2000; mapannounce "poring_w01","That's all. Let's begin.",bc_map,0x0ceedb; sleep 3000; areamonster "poring_w01",84,119,124,90,"Poring",1002,1,strnpcinfo(0)+"::OnMobKilledWin"; areamonster "poring_w01",84,119,124,90,"Poking",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"Poiring",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"Poling",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"Porng",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"por1ng",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"P0ring",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"Poreng",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"Puring",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"Poriing",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"Boring",1002,5,strnpcinfo(0)+"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"Powring",1002,5,"::OnMobKilled"; areamonster "poring_w01",84,119,124,90,"Kill me to win!",1002,5,strnpcinfo(0)+"::OnMobKilled"; end; OnMobKilled: dispbottom "You killed the wrong Poring! Yerrrrrrrrrrrr out!"; warp "payon",178,100; sleep 5000; if ( !getmapusers("poring_w01") ) { .start = false; killmonsterall "poring_w01"; announce "Poring Catcher: No one won the Poring Catcher Event!.",bc_all,0x0ceedb; } end; OnMobKilledWin: announce strcharinfo(0)+" won the Poring Catcher Event!",bc_all,0xFF7F50; if ( $event_options&1 ) { for ( .@j = 0; .@j < $event_item_arr; .@j += 2 ) getitem $event_item_reward[.@j], $event_item_reward[.@j+1]; } if ( $event_options&2 ) { setd $event_var$, getd($event_var$)+$event_var_gain; dispbottom "You gained "+$event_var_gain+" "+$event_var_name$+". You now have "+getd($event_var$)+" "+$event_var_name$+"."; } killmonsterall "poring_w01"; sleep 5000; mapwarp "poring_w01","payon",178,100; .start = false; end; } poring_w01,105,123,3 script Back to Payon 4_BULLETIN_BOARD2,{ warp "payon",178,100; end; } // Poring Hunter https://rathena.org/board/topic/121969-rporing-hunter-event/#comment-370418 - script Poring_Hunter FAKE_NPC,{ OnInit: // Event duration default: 3 mins. .duration = 3; // Note : spawn counts would be multiplied by number of participants. ( count * player count ) // if you dont want it, remove the calculation below. .count[0] = 20; // poring count .count[1] = 10; // drops count .count[2] = 15; // poporing count // Mapflags setarray .@mapflag, mf_nowarp, mf_nowarpto, mf_noskill, mf_noloot, mf_noteleport, mf_nomemo, mf_nosave, mf_noicewall, mf_nobranch, mf_noreturn; for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++) setmapflag "quiz_02", .@mapflag[.@i]; end; OnStart: if ( .start ) end; pvpoff "pvp_n_1-2"; killmonsterall "pvp_n_1-2"; .start = 1; .cur_time = 0; announce "Poring Hunter: We are going to have a Poring Hunter event.",0; sleep 10000; announce "Poring Hunter: For those who wants to join, use @eventjoin",0; sleep 10000; announce "Poring Hunter: After 1 Minute Event will close.",0; sleep 10000; announce "Poring Hunter: So please if you want to join. use @eventjoin",0; sleep 60000; announce "Poring Hunter: The entry to the event is now closed.",bc_all,0x0ceedb; .@player = getmapusers("pvp_n_1-2"); if ( .@player < 2 ) { announce "Poring Hunter : Not enough participants.", bc_all,0x0ceedb; goto OnEnd; end; } announce "Poring Hunter : The portal for the event has been closed, the event has started, good luck to all players!", bc_all; .start = 2; mapannounce "pvp_n_1-2","We're about to begin the event.",bc_map,0x0ceedb; sleep 2500; mapannounce "pvp_n_1-2","Porings grant 1 point when killed, Drops 5 points, Poporings -10 points.",bc_map,0x0ceedb; sleep 2500; mapannounce "pvp_n_1-2","You will have "+.duration+" minutes to get as many points as possible.",bc_map,0x0ceedb; sleep 2500; mapannounce "pvp_n_1-2","The Player who gets the most points within the time alloted will be the winner of the event.",bc_map,0x0ceedb; sleep 2500; mapannounce "pvp_n_1-2","That's all. Let's begin.",bc_map,0x0ceedb; sleep 2000; // NOTE : if you wish not to multiply the spawn to participants, remove < *.@player > on all mob spawns. monster "pvp_n_1-2", 0, 0, "Poring", 1002, .count[0]*.@player, strnpcinfo(0)+"::OnKillPoring"; monster "pvp_n_1-2", 0, 0, "Drops", 1113, .count[1]*.@player, strnpcinfo(0)+"::OnKillDrops"; monster "pvp_n_1-2", 0, 0, "Poporing", 1031, .count[2]*.@player, strnpcinfo(0)+"::OnKillPoporing"; initnpctimer; end; OnKillPoring: callsub OnKillMob, 1002, "Poring", "OnKillPoring", 1; OnKillDrops: callsub OnKillMob, 1113, "Drops", "OnKillDrops", 5; OnKillPoporing: callsub OnKillMob, 1031, "Poporing", "OnKillPoporing", -10; OnKillMob: .@mobid = getarg(0); .@name$ = getarg(1); .@event$ = getarg(2); .@val = getarg(3); @phunter_points += .@val; monster "pvp_n_1-2",0,0,.@name$,.@mobid,1,strnpcinfo(0)+"::"+.@event$; dispbottom "You have "+ @phunter_points +" Point(s)."; end; OnTimer60000: .cur_time++; if ( .cur_time < .duration ) { mapannounce "pvp_n_1-2", "You have "+( .duration - .cur_time )+" min(s) left.", bc_blue|bc_map; setnpctimer 0; end; } stopnpctimer; killmonsterall "pvp_n_1-2"; .@count = getmapunits(BL_PC,"pvp_n_1-2",.@aid[0]); freeloop(true); for ( .@i = 0; .@i < .@count; .@i++ ) { attachrid(.@aid[.@i]); if ( @phunter_points > .most_points ) { .most_points = @phunter_points; .win_aid[0] = getcharid(3); .win_name$[0] = strcharinfo(0); } else if ( @phunter_points == .most_points && @phunter_points > 0 ) { .win_aid[getarraysize(.win_aid)] = getcharid(3); .win_name$[getarraysize(.win_name$)] = strcharinfo(0); } detachrid; } freeloop(false); .@size = getarraysize(.win_aid); if ( .@size > 1 ) announce "Poring Hunter : The event is over, and we have "+.@size+" winners having "+.most_points+" points each! Congratulations!", bc_all,0xFF7F50; else if ( .@size == 1 ) announce "Poring Hunter : The event is over, and the winner is ["+.win_name$+"] with "+.most_points+" points! Congratulations!", bc_all,0xFF7F50; else announce "Poring Hunter : The event is over, and there are no winners.", bc_all,0x0ceedb; if ( .@size ) { for ( .@i = 0; .@i < .@size; .@i++ ) { attachrid(.win_aid[.@i]); if ( $event_options&1 ) { for ( .@j = 0; .@j < $event_item_arr; .@j += 2 ) getitem $event_item_reward[.@j], $event_item_reward[.@j+1]; } if ( $event_options&2 ) { setd $event_var$, getd($event_var$)+$event_var_gain; dispbottom "You gained "+$event_var_gain+" "+$event_var_name$+". You now have "+getd($event_var$)+" "+$event_var_name$+"."; } dispbottom "Here is your reward from Poring Hunter event."; detachrid; } } OnEnd: mapannounce "pvp_n_1-2", "Warping out in few sec..", bc_blue|bc_map; .most_points = .start = false; deletearray .win_aid; deletearray .win_name$; sleep 5000; mapwarp "pvp_n_1-2","prontera",rand(148,163),rand(167,186); pvpon "pvp_n_1-2"; end; } Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted December 27, 2023 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Yesterday at 06:41 AM Author Share Posted December 27, 2023 5 hours ago, pajodex said: you can just add a pvp_noparty mapflag.. *pvp *pvp_noparty *pvp_noguild *pvp_nocalcrank Enables Player vs. Player mode on a map and applies the corresponding damage adjustments. 'pvp_noparty' will ignore party alliances. 'pvp_noguild' will ignore guild alliances. 'pvp_nocalcrank' will disable calculation of PvP rankings. i already tried this but still the party can enter and they cant attack each other Quote Link to comment Share on other sites More sharing options...
0 Gidz Cross Posted December 27, 2023 Group: Members Topic Count: 133 Topics Per Day: 0.03 Content Count: 686 Reputation: 89 Joined: 04/07/14 Last Seen: 19 hours ago Share Posted December 27, 2023 12 hours ago, GM Winter said: hello ive try to put it in the script i got a lot of errors dont know where to add this line heres the script Find OnJoinEvent: add before sc_end SC_ALL; if(getcharid(1)) { dispbottom("Players with a party can't enter!"); end; } It should be like: OnJoinEvent: mes "[ Event Status ]"; mes "Event are as follows : "; next; switch(select( "Dice Event - "+ ((getvariableofnpc(.start,"Event_Dice") == 1) ? "^0000ffJoin Event":((getvariableofnpc(.start,"Event_Dice") == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000", "Last Man Standing - "+ ((getvariableofnpc(.start,"Event_LMS") == 1) ? "^0000ffJoin Event":((getvariableofnpc(.start,"Event_LMS") == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000", "Poring Catcher - "+ ((getvariableofnpc(.start,"Poring_Catcher") == 1) ? "^0000ffJoin Event":((getvariableofnpc(.start,"Poring_Catcher") == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000" )) { case 1: .@start = getvariableofnpc(.start,"Event_Dice"); .@map$ = "quiz_02"; .@x = 55; .@y = 87; break; case 2: .@start = getvariableofnpc(.start,"Event_LMS"); .@map$ = "06guild_01"; .@x = 0; .@y = 0; break; case 3: .@start = getvariableofnpc(.start,"Poring_Catcher"); .@map$ = "poring_w01"; .@x = 100; .@y = 100; break; } if ( !.@start ) { mes "Event is not available."; close; } else if ( .@start == 2 ) { mes "Event is on-going"; close; } if(getcharid(1)) { dispbottom("Players with a party can't enter!"); end; } sc_end SC_ALL; percentheal 100,100; warp .@map$, .@x, .@y; end; 1 Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted December 27, 2023 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Yesterday at 06:41 AM Author Share Posted December 27, 2023 1 hour ago, Gidz Cross said: Find OnJoinEvent: add before sc_end SC_ALL; if(getcharid(1)) { dispbottom("Players with a party can't enter!"); end; } It should be like: OnJoinEvent: mes "[ Event Status ]"; mes "Event are as follows : "; next; switch(select( "Dice Event - "+ ((getvariableofnpc(.start,"Event_Dice") == 1) ? "^0000ffJoin Event":((getvariableofnpc(.start,"Event_Dice") == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000", "Last Man Standing - "+ ((getvariableofnpc(.start,"Event_LMS") == 1) ? "^0000ffJoin Event":((getvariableofnpc(.start,"Event_LMS") == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000", "Poring Catcher - "+ ((getvariableofnpc(.start,"Poring_Catcher") == 1) ? "^0000ffJoin Event":((getvariableofnpc(.start,"Poring_Catcher") == 2) ? "^0000ffEvent On-Going":"^ff0000Not Available"))+"^000000" )) { case 1: .@start = getvariableofnpc(.start,"Event_Dice"); .@map$ = "quiz_02"; .@x = 55; .@y = 87; break; case 2: .@start = getvariableofnpc(.start,"Event_LMS"); .@map$ = "06guild_01"; .@x = 0; .@y = 0; break; case 3: .@start = getvariableofnpc(.start,"Poring_Catcher"); .@map$ = "poring_w01"; .@x = 100; .@y = 100; break; } if ( !.@start ) { mes "Event is not available."; close; } else if ( .@start == 2 ) { mes "Event is on-going"; close; } if(getcharid(1)) { dispbottom("Players with a party can't enter!"); end; } sc_end SC_ALL; percentheal 100,100; warp .@map$, .@x, .@y; end; thank you so much sir! God bless you Quote Link to comment Share on other sites More sharing options...
Question
Sallycantdance
hello is there any script preventing players with party to enter a specific map or it will automatically kick them?
Link to comment
Share on other sites
10 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.