imustluvpain
-
Content Count
34 -
Joined
-
Last visited
Posts posted by imustluvpain
-
-
You can use this one:
Please report if bugs were found.
http://upaste.me/efde36744f9f212ae
You can change some configs here according to your liking: http://upaste.me/efde36744f9f212ae#LC157
Only group 99 GM can activate the event, else you can change this here: http://upaste.me/efde36744f9f212ae#LC155
up
-
Hi guys! I need some help with this FFA Script please. I was hoping if someone can edit it, players will have to register to the NPC and wait for a certain time for example 3mins before all registered players be warped to the FFA Arena? And if possible, to add a announcement of the winner and reset the npc after the match. Thanks in advance!
// -------------------------------------// // ----------- Free For All ------------// // ------------- By: Butch -------------// // ---------- Rewrite by: Bio ----------// // A simple Free for all script // // -------------------------------------// // ------------- Changelog -------------// // 1.0 - The one made by Butch. // // 2.0 - Rewrite by Bio: // // Easy Configuration // // Use of Event Labels // // Added Min and Max Players // // -------------------------------------// // -- FFA Core - script ::ffa_core FAKE_NPC,{ end(); OnInit: // -- Configuration .WAITINGROOM_TEXT$ = "[Free For All]"; // Text to be displayed on Waiting Room .MIN_PLAYER = 5; // How many Players are needed to start .MAX_PLAYER = 0; // Maximum number of Players allowed. Must be higher than '1' (0 to disable this limit) .REWARD_PLAYER = 1; // Reward Players? Use 0 or 1 (0: off / 1: on) .REWARD_NAMEID = 25002; // Reward ID .REWARD_AMOUNT = 1; // Reward Amount .ANNOUNCE_COLOR$ = "0x00b89d"; // FFA announce's color .WINNER_DISP_COLOR$ = "0x00FFFF"; // FFA winner announce's color .ATCMD_NAME$ = "startffa"; // @name of atcommand to force start announce. .ATCMD_LEVEL = 60; // Min GroupID which can use this command. .ATCMD_CHRLV = 99; // Min GroupID which can use this char command. // -- Initializing bindatcmd(.ATCMD_NAME$,"ffa_core::OnStartEvent",.ATCMD_LEVEL, .ATCMD_CHRLV); .STATUS = 0; // Info: 0 - Off | 1 - Waiting for start | 2 - Running waitingroom(.WAITINGROOM_TEXT$, 0); end(); OnStartEvent: .STATUS = 1; announce("Free for all will start in 1 minute.", bc_all, .ANNOUNCE_COLOR$); sleep(60000); if ( getmapusers("guild_vs5") >= .MIN_PLAYER ) { for ( .@i = 5; .@i > 0; .@i-- ) { mapannounce("guild_vs5", sprintf("FFA starts in [%d]", .@i), .ANNOUNCE_COLOR$); } announce("guild_vs5", "FFA has started!! Go kill'em all!!", bc_all, .ANNOUNCE_COLOR$); .STATUS = 2; setmapflag("guild_vs5", mf_gvg); removemapflag("guild_vs5", mf_noskill); initnpctimer(); // Time Limit of 30 minutes end(); } // Else: Fall Through OnStopEvent: OnTimer1800000: stopnpctimer(); .STATUS = 0; removemapflag("guild_vs5", mf_gvg); setmapflag("guild_vs5", mf_noskill); mapwarp("guild_vs5", "prontera", 156, 149); end(); OnPCKillEvent: if ( getmapusers("guild_vs5") != 1 ) { announce(sprintf("FFA Current players - %d.", getmapusers("guild_vs5")), bc_self, .ANNOUNCE_COLOR$); } else if ( getmapusers("guild_vs5") == 1 ) { dispbottom("You are a winner of Event Free for all. Congratz!", .WINNER_DISP_COLOR$); announce(sprintf("Free For All Winner: %s", strcharinfo(0)), bc_all, .WINNER_DISP_COLOR$); getitem(.REWARD_NAMEID, .REWARD_AMOUNT); mapwarp("guild_vs5", "prontera", 156, 149); // TODO: make dest map configurable (I'm too lazy to do it now haha) donpcevent("ffa_core::OnStopEvent"); } end(); // Common end command for conditions above. OnPCLoadMapEvent: if ( strcharinfo(3) == "guild_vs5" ) { if ( getmapusers("guild_vs5") >= .MIN_PLAYER && !.STATUS ) { donpcevent("ffa_core::OnStartEvent"); } } end(); } // ------ FFA Warper -------// prontera,147,149,6 script Free For All 999,{ .STATUS = getvariableofnpc(.STATUS, "ffa_core"); .MAX_PLAYER = getvariableofnpc(.MAX_PLAYER, "ffa_core"); mes("[^FF0000Agent Mil^000000]"); mes("What do you want?"); next(); .@choice = select("Enter ^FFA500FFA Arena^000000", "Nothing"); if ( .@choice == 2 ) { mes("[^FF0000Agent Mil^000000]"); mes("Okay, see you next time."); } else if ( .STATUS > 1 ) { mes("[^FF0000Agent Mil^000000]"); mes("Entrance for Free for all is not available at the moment"); } else if ( .MAX_PLAYER > 1 && getmapusers("guild_vs5") >= .MAX_PLAYER ) { mes("[^FF0000Agent Mil^000000]"); mes("Maximum number of players reached, try again in next match."); } else { if ( getcharid(1) ) { mes("^ff0000* Please leave your party."); close; } else if ( getcharid(2) ) { mes("^ff0000* Please leave your guild."); close; } else { // TODO: Why use this coordinates if we want to warp randomly? // Isn't better replace this switch and warp with just 'warp("guild_vs5", 0, 0);'? switch (rand(3)) { case 0: .@x = 18; .@y = 50; break; case 1: .@x = 50; .@y = 77; break; case 2: .@x = 81; .@y = 49; break; case 3: .@x = 49; .@y = 22; break; } warp("guild_vs5", .@x, .@y); } } close(); // Common close command for all conditions above. } // -- Mapflags guild_vs5 mapflag loadevent guild_vs5 mapflag partylock guild_vs5 mapflag guildlock guild_vs5 mapflag notrade guild_vs5 mapflag nodrop
-
If you have a server running with many custom edits, copying all files over it would basically remove the edits. Best to checkout the latest revision of hercules in a new directory and then add Hercules BG.
After making a new directory sir, should i config inter-server.conf?
-
That would be a bad idea.
I should just take the plugins?
-
It's best to get the latest revision of Hercules and try. I don't think HPM is fully implemented in your revision, I'm guessing it's a year or two old.
I should copy and replace my trunk files with these https://github.com/HerculesWS/Hercules sir?
-
Hi guys. just wondering how can i enable this npc all the time? so i won't have to manually enable it and players can use it anytime. thanks in advance!
// -----------------------------// // ------- Free For All --------// // -------- By : Butch ---------// // A simple Free for all script // // -----------------------------// guild_vs5,48,51,6 script FFA Master 999,{ if(getmapusers("guild_vs5") != 1) { mes "[^FF0000FFA Master^000000]"; mes "Current players - ^FF0000"+ getmapusers("guild_vs5") +"^000000."; close; } else if(getmapusers("guild_vs5") == 1) { dispbottom "You are a winner of Event Free for all. Congratz!"; donpcevent "Free For All::OnStopEvent"; announce "Free for all winner : "+ strcharinfo(0) +"", bc_all, "0xFFCE00"; getitem 25002,1; // Reward warp "prontera", 156,149; end; } } // ------ FFA Warper -------// prontera,147,149,6 script Free For All 999,{ if (.start != 1) { mes "[^FF0000Agent Mil^000000]"; mes "Free for all is not available at the moment"; close; } mes "[^FF0000Agent Mil^000000]"; mes "What do you want?"; switch(select("Free for all")) { case 1: if( getcharid(1) ) { mes "Please leave your party."; close; } if( getcharid(2) ) { mes "Please leave your guild."; close; } else switch(rand(3)) { case 0: .@x = 18; .@y = 50; break; case 1: .@x = 50; .@y = 77; break; case 2: .@x = 81; .@y = 49; break; case 3: .@x = 49; .@y = 22; break; } warp "guild_vs5", .@x,.@y; break; } close; OnStartEvent: OnClock1245: OnClock1645: OnClock2045: OnClock0045: OnClock0445: OnClock0845: .start = 1; disablenpc "FFA Master"; announce "Free for all will start in 5 minutes.", bc_all, "0x00b89d"; sleep 120000; announce "Free for all will start in 3 minutes.", bc_all, "0x00b89d"; sleep 120000; announce "Free for all will start in 1 minute.", bc_all, "0x00b89d"; sleep 60000; announce "Free for all has started!", bc_all, "0x00b89d"; .start = 2; enablenpc "FFA Master"; sleep 2000; if ( !getmapusers("guild_vs5") ) goto OnStopEvent; mapannounce "guild_vs5", "FFA starts in 5", bc_map; sleep 1000; mapannounce "guild_vs5", "FFA starts in 4", bc_map; sleep 1000; mapannounce "guild_vs5", "FFA starts in 3", bc_map; sleep 1000; mapannounce "guild_vs5", "FFA starts in 2", bc_map; sleep 1000; mapannounce "guild_vs5", "FFA starts in 1", bc_map; sleep 1000; mapannounce "guild_vs5", "GO! Kill all!", bc_map; setmapflag "guild_vs5", mf_gvg; removemapflag "guild_vs5", mf_noskill; end; OnStopEvent: .start = 0; disablenpc "FFA Master"; removemapflag "guild_vs5", mf_gvg; setmapflag "guild_vs5", mf_noskill; end; OnInit: bindatcmd("startevent",strnpcinfo(1)+"::OnStartEvent",60,99); waitingroom "[Free For All]",0; end; } guild_vs5 mapflag partylock guild_vs5 mapflag guildlock guild_vs5 mapflag notrade guild_vs5 mapflag nodrop
-
How to fix this error sir? Thanks in advance!
Do you have the latest herc?
it says unknown sir
-
Hi, on what revision is your Hercules?
it says unknown sir?
-
Is there "4_EP16_SPIEGEL" in ../db/constants.conf and sprites in your data folder?
Have you tried with another sprite? Did it work?
yes sir there is 4_EP16_SPIEGEL inside my constrants.conf
-
What do you mean with "make it usable all the time"?
Do you want to enable it all time instead every new hour?
Sorry I'm confuse
Yes sir. i want to enable it all the time
-
Hi guys. I'm having this error after adding hBG.c plugin from http://herc.ws/board/topic/14083-hercules-battlegrounds/ . Hoping for some help please. Thanks in advance!
In file included from hBG.c:44: ../plugins/HPMHooking.h:25: error: nested redefinition of 'enum HPluginHookType' ../plugins/HPMHooking.h:25: error: redeclaration of 'enum HPluginHookType' ../plugins/HPMHooking.h:26: error: redeclaration of enumerator 'HOOK_TYPE_PRE' ../common/HPMi.h:75: note: previous definition of 'HOOK_TYPE_PRE' was here ../plugins/HPMHooking.h:27: error: redeclaration of enumerator 'HOOK_TYPE_POST' ../common/HPMi.h:76: note: previous definition of 'HOOK_TYPE_POST' was here In file included from hBG.c:44: ../plugins/HPMHooking.h:46:42: error: HPMHooking/HPMHooking.Defs.inc: No such file or directory ../plugins/HPMHooking.h:48:1: warning: "addHookPre" redefined In file included from ../common/hercules.h:35, from hBG.c:15: ../common/HPMi.h:110:1: warning: this is the location of the previous definition In file included from hBG.c:44: ../plugins/HPMHooking.h:53:1: warning: "addHookPost" redefined In file included from ../common/hercules.h:35, from hBG.c:15: ../common/HPMi.h:111:1: warning: this is the location of the previous definition In file included from hBG.c:44: ../plugins/HPMHooking.h:60:1: warning: "hookStop" redefined In file included from ../common/hercules.h:35, from hBG.c:15: ../common/HPMi.h:114:1: warning: this is the location of the previous definition In file included from hBG.c:44: ../plugins/HPMHooking.h:61:1: warning: "hookStopped" redefined In file included from ../common/hercules.h:35, from hBG.c:15: ../common/HPMi.h:115:1: warning: this is the location of the previous definition hBG.c: In function 'hBG_send_guild_member_list': hBG.c:599: error: 'struct mmo_charstatus' has no member named 'class' hBG.c: In function 'hBG_add_rank_points': hBG.c:1559: error: too few arguments to function 'clif->disp_message' hBG.c:1560: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:1564: error: too few arguments to function 'clif->disp_message' hBG.c:1565: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'npc_parse_unknown_mapflag_pre': hBG.c:3202: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'clif_charnameupdate_pre': hBG.c:3236: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'skill_check_condition_castbegin_pre': hBG.c:3247: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'skillnotok_pre': hBG.c:3255: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'skill_castend_nodamage_id_pre': hBG.c:3304: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'status_get_guild_id_pre': hBG.c:3325: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'status_get_emblem_id_pre': hBG.c:3345: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'bg_team_leave_pre': hBG.c:3364: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'guild_isallied_pre': hBG.c:3404: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c: In function 'plugin_init': hBG.c:3593: error: 'HPMHOOK_pre_npc_parse_unknown_mapflag' undeclared (first use in this function) hBG.c:3593: error: (Each undeclared identifier is reported only once hBG.c:3593: error: for each function it appears in.) hBG.c:3593: error: expected ')' before numeric constant hBG.c:3593: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3593: warning: left-hand operand of comma expression has no effect hBG.c:3594: error: 'HPMHOOK_pre_clif_charnameupdate' undeclared (first use in this function) hBG.c:3594: error: expected ')' before numeric constant hBG.c:3594: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3594: warning: left-hand operand of comma expression has no effect hBG.c:3595: error: 'HPMHOOK_pre_status_get_guild_id' undeclared (first use in this function) hBG.c:3595: error: expected ')' before numeric constant hBG.c:3595: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3595: warning: left-hand operand of comma expression has no effect hBG.c:3596: error: 'HPMHOOK_pre_status_get_emblem_id' undeclared (first use in this function) hBG.c:3596: error: expected ')' before numeric constant hBG.c:3596: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3596: warning: left-hand operand of comma expression has no effect hBG.c:3597: error: 'HPMHOOK_pre_map_quit' undeclared (first use in this function) hBG.c:3597: error: expected ')' before numeric constant hBG.c:3597: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3597: warning: left-hand operand of comma expression has no effect hBG.c:3598: error: 'HPMHOOK_pre_guild_isallied' undeclared (first use in this function) hBG.c:3598: error: expected ')' before numeric constant hBG.c:3598: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3598: warning: left-hand operand of comma expression has no effect hBG.c:3599: error: 'HPMHOOK_pre_skill_check_condition_castbegin' undeclared (first use in this function) hBG.c:3599: error: expected ')' before numeric constant hBG.c:3599: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3599: warning: left-hand operand of comma expression has no effect hBG.c:3600: error: 'HPMHOOK_pre_skill_not_ok' undeclared (first use in this function) hBG.c:3600: error: expected ')' before numeric constant hBG.c:3600: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3600: warning: left-hand operand of comma expression has no effect hBG.c:3601: error: 'HPMHOOK_pre_skill_castend_nodamage_id' undeclared (first use in this function) hBG.c:3601: error: expected ')' before numeric constant hBG.c:3601: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3601: warning: left-hand operand of comma expression has no effect hBG.c:3602: error: 'HPMHOOK_pre_bg_team_leave' undeclared (first use in this function) hBG.c:3602: error: expected ')' before numeric constant hBG.c:3602: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3602: warning: left-hand operand of comma expression has no effect hBG.c:3605: error: 'HPMHOOK_post_clif_pLoadEndAck' undeclared (first use in this function) hBG.c:3605: error: expected ')' before numeric constant hBG.c:3605: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3605: warning: left-hand operand of comma expression has no effect hBG.c:3606: error: 'HPMHOOK_post_clif_pUseSkillToId' undeclared (first use in this function) hBG.c:3606: error: expected ')' before numeric constant hBG.c:3606: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3606: warning: left-hand operand of comma expression has no effect hBG.c:3607: error: 'HPMHOOK_post_clif_getareachar_pc' undeclared (first use in this function) hBG.c:3607: error: expected ')' before numeric constant hBG.c:3607: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3607: warning: left-hand operand of comma expression has no effect hBG.c:3608: error: 'HPMHOOK_post_pc_update_idle_time' undeclared (first use in this function) hBG.c:3608: error: expected ')' before numeric constant hBG.c:3608: error: 'struct HPMi_interface' has no member named 'hooking' hBG.c:3608: warning: left-hand operand of comma expression has no effect hBG.c:3664:89: error: macro "addBattleConf" passed 4 arguments, but takes just 3 hBG.c: In function 'server_preinit': hBG.c:3664: error: 'addBattleConf' undeclared (first use in this function) hBG.c:3665:96: error: macro "addBattleConf" passed 4 arguments, but takes just 3 hBG.c:3666:90: error: macro "addBattleConf" passed 4 arguments, but takes just 3 hBG.c:3667:95: error: macro "addBattleConf" passed 4 arguments, but takes just 3 hBG.c:3668:95: error: macro "addBattleConf" passed 4 arguments, but takes just 3 hBG.c:3669:96: error: macro "addBattleConf" passed 4 arguments, but takes just 3 hBG.c:3670:94: error: macro "addBattleConf" passed 4 arguments, but takes just 3 hBG.c:3671:93: error: macro "addBattleConf" passed 4 arguments, but takes just 3 hBG.c:3672:93: error: macro "addBattleConf" passed 4 arguments, but takes just 3 make[1]: *** [../../plugins/hBG.so] Error 1 make[1]: Leaving directory `/root/trunk/src/plugins' make: *** [plugins] Error 2
-
How to fix this error sir? Thanks in advance!
-
Hello. I tried the Queue BG rewrite by KUBIX link: http://herc.ws/board/topic/12349-queue-bg-rewrite/#entry71761 , but i have this problem with the Battle Recruiter NPC. What should i do please? i can't click on the npc. Thanks in advance! Here's the npc scrip and screenshot of the problem:
function script cleanBgQuests { for(.@i = 8500; .@i < 8511; .@i ++) if( (.@i != 8506 && questprogress(.@i, PLAYTIME) ) ) erasequest .@i; return; } - script Battle_Register FAKE_NPC,{ end; OnJoinBG: mes "^D2691E[Battle Requiter]^000000"; mes "Welcome to the Battleground register service."; next; if( select( "Register:Close" ) == 2) close; if( questprogress(8506, PLAYTIME) ) erasequest 8506; else if( questprogress(8506, PLAYTIME) == 1 ) { mes "^D2691E[Battle Requiter]^000000"; mes "You are a Deserter. You can't participate until the indicator goes off"; close; } if( getcharid(4) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in Battle Group."; close; } .@qid1 = queueiterator( $@Croix_Duplicate ); .@qid2 = queueiterator( $@Guill_Duplicate ); for( .@i = 0; .@i < .BG_Max[ .Index ]; .@i ++ ) { if( qiget(.@qid1) == ( .MultipleCheck == 1? getcharid(0):getcharip() ) || qiget(.@qid2) == ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue."; close; } } cleanBgQuests(); switch( .Battle_State ) { default: case 0: case 2: mes "^D2691E[Battle Requiter]^000000"; mes "Queue not available. Try again later or contact your administrator."; close; case 1: // idle if( getarraysize( $@Croix_QID ) < .BG_Max[ .Index ] || getarraysize( $@Guill_QID ) < .BG_Max[ .Index ] ) { if( getarraysize( $@Croix_QID ) > getarraysize( $@Guill_QID ) ) { if( !queueadd( $@Guill_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } $@Guill_QID[ $@Guill ] = getcharid(3); $@Guill ++; if( .debug ) debugmes strcharinfo(0) + " guillame"; } else if( getarraysize( $@Croix_QID ) < getarraysize( $@Guill_QID ) ) { if( !queueadd( $@Croix_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } $@Croix_QID[ $@Croix ] = getcharid(3); $@Croix ++; if( .debug ) debugmes strcharinfo(0) + " croix"; } else { if( !queueadd( $@Croix_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } $@Croix_QID[ $@Croix ] = getcharid(3); $@Croix ++; if( .debug ) debugmes strcharinfo(0) + " croix"; } mes "^D2691E[Battle Requiter]^000000"; mes "Added to queue."; close; } mes "^D2691E[Battle Requiter]^000000"; mes "Queue is full"; close; case 3: // Beginning, other can join. if( getarraysize( $@Croix_QID ) < .BG_Max[ .Index ] || getarraysize( $@Guill_QID ) < .BG_Max[ .Index ] ) { if( getarraysize( $@Croix_QID ) > getarraysize( $@Guill_QID ) ) { if( !queueadd( $@Guill_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } $@Guill_QID[ $@Guill ] = getcharid(3); $@Guill ++; if( .BG_Names$[ .Index] == "Conquest" ) if( $@Guill_BG == getvariableofnpc( .Atacker, "Conquest" ) ) bg_single( $@Guill_BG, .BG_Map$[ .Index ], .BG_AtackerX, .BG_AtackerY ); else bg_single( $@Guill_BG, .BG_Map$[ .Index ], .BG_DefenerX, .BG_DefenerY ); else bg_single( $@Guill_BG, .BG_Map$[ .Index ], .BG_GuillX[ .Index ], .BG_GuillY[ .Index ] ); if( .debug ) debugmes strcharinfo(0) + " guillame"; } else if( getarraysize( $@Croix_QID ) < getarraysize( $@Guill_QID ) ) { if( !queueadd( $@Croix_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } $@Croix_QID[ $@Croix ] = getcharid(3); $@Croix ++; if( .BG_Names$[ .Index] == "Conquest" ) if( $@Croix_BG == getvariableofnpc( .Atacker, "Conquest" ) ) bg_single( $@Croix_BG, .BG_Map$[ .Index ], .BG_AtackerX, .BG_AtackerY ); else bg_single( $@Croix_BG, .BG_Map$[ .Index ], .BG_DefenerX, .BG_DefenerY ); else bg_single( $@Croix_BG, .BG_Map$[ .Index ], .BG_CroixX[ .Index ], .BG_CroixY[ .Index ] ); if( .debug ) debugmes strcharinfo(0) + " croix"; } else { if( !queueadd( $@Croix_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } $@Croix_QID[ $@Croix ] = getcharid(3); $@Croix ++; if( .BG_Names$[ .Index] == "Conquest" ) if( $@Croix_BG == getvariableofnpc( .Atacker, "Conquest" ) ) bg_single( $@Croix_BG, .BG_Map$[ .Index ], .BG_AtackerX, .BG_AtackerY ); else bg_single( $@Croix_BG, .BG_Map$[ .Index ], .BG_DefenerX, .BG_DefenerY ); else bg_single( $@Croix_BG, .BG_Map$[ .Index ], .BG_CroixX[ .Index ], .BG_CroixY[ .Index ] ); if( .debug ) debugmes strcharinfo(0) + " croix"; } mes "^D2691E[Battle Requiter]^000000"; mes "Added to queue."; close; } mes "^D2691E[Battle Requiter]^000000"; mes "Queue is full"; close; } OnInit: // = BG Rewards: $@BG_RewardID = 7773; // (War Badge) $@BG_WinnerAmount = 15; // Reward amount for winning team $@BG_LooserAmount = 10; // Reward amount for loosing team $@BG_TieAmount = 5; // Reward amount for Tie. // = Flavius Score (Kills for end game): $@Flavius_Score = 99; // ===== Multiple Windows checking by ? // = 1 - Disabled // = 2 - IP .MultipleCheck = 1; // ===== BG Colors setarray .BG_Color$[0], "0xDDA0DD", "0x7CCD7C", "0xFFA500"; // ===== BG NPC & Arena Names setarray .BG_Names$[0], "Rush", "Flavius TD", "Conquest"; setarray .BG_Arena$[0], "Rush", "Flavius_TD", "Conquest"; // ===== BG Player Amount setarray .BG_Min[0], 2, 2, 2; setarray .BG_Max[0], 30, 30, 30; // ===== BG Locations setarray .BG_Map$[0], "rush_cas04", "bat_b03", "schg_cas06"; // ===== BG X/Y Coordinates setarray .BG_GuillX[0], 270, 390, 264; setarray .BG_GuillY[0], 292, 10, 379; setarray .BG_CroixX[0], 270, 10, 295; setarray .BG_CroixY[0], 288, 290, 379; bindatcmd "joinbg", strnpcinfo(0) + "::OnJoinBG", 0, 99; bindatcmd "leavebg", strnpcinfo(0) + "::OnLeaveBG", 0, 99; // ===== Time to flood in seconds. .Flood_Time = 180; // ===== Enable debug mode? .debug = false; $@RegNPC$ = strnpcinfo(0) + "::OnBGRotate"; OnBGRotate: if( ( .Index += 1 ) > ( getarraysize( .BG_Names$ ) - 1 ) ) .Index = 0; if( $@Croix_Duplicate ) queuedel $@Croix_Duplicate; if( $@Guill_Duplicate ) queuedel $@Guill_Duplicate; if( $@Guill_BG ) bg_destroy $@Guill_BG; if( $@Croix_BG ) bg_destroy $@Croix_BG; // ===== Queue with Gepard ID $@Croix_Duplicate = queue(); $@Guill_Duplicate = queue(); deletearray $@Croix_QID[0], getarraysize( $@Croix_QID ); deletearray $@Guill_QID[0], getarraysize( $@Guill_QID ); .Leavers = 0; .Battle_State = 1; .BG_Tick = 0; .Player2Start = ( .BG_Min[ .Index ] * 2 ) - ( queuesize( $@Croix_Duplicate ) + queuesize( $@Guill_Duplicate ) ) ; announce "Battleground -- " + .BG_Names$[ .Index ] + " -- (" + .Player2Start + ") more players to start.", bc_all, .BG_Color$[ .Index ]; initnpctimer; end; OnTimer30000: .Player2Start = ( .BG_Min[ .Index ] * 2 ) - ( queuesize( $@Croix_Duplicate ) + queuesize( $@Guill_Duplicate ) ) ; if( .Player2Start <= 0 ) { if( .BG_Names$[ .Index] == "Conquest" ) { donpcevent "Conquest::OnSetRotation"; .BG_Map$[ .Index ] = getvariableofnpc( .Castle$, "Conquest" ); .BG_GuillX[ .Index ] = getvariableofnpc( .GX, "Conquest" ); .BG_GuillY[ .Index ] = getvariableofnpc( .GY, "Conquest" ); .BG_CroixX[ .Index ] = getvariableofnpc( .CX, "Conquest" ); .BG_CroixY[ .Index ] = getvariableofnpc( .CY, "Conquest" ); .BG_DefenerX = getvariableofnpc( .DX, "Conquest" ); .BG_DefenerY = getvariableofnpc( .DY, "Conquest" ); .BG_AtackerX = getvariableofnpc( .AX, "Conquest" ); .BG_AtackerY = getvariableofnpc( .AY, "Conquest" ); } $@Guill_BG = bg_create_team( .BG_Map$[ .Index ], .BG_GuillX[ .Index ], .BG_GuillY[ .Index ], .BG_Arena$[ .Index ] + "::OnGuillameQuit", .BG_Arena$[ .Index ] + "::OnGuillameDie" ); $@Croix_BG = bg_create_team( .BG_Map$[ .Index ], .BG_CroixX[ .Index ], .BG_CroixY[ .Index ], .BG_Arena$[ .Index ] + "::OnCroixQuit", .BG_Arena$[ .Index ] + "::OnCroixDie"); .Battle_State = 2; freeloop(1); for( .c = 0; .c < getarraysize( $@Croix_QID ); .c ++ ) { if( !isloggedin( $@Croix_QID[ .c ] ) ) .Leavers ++; else bg_join_team( $@Croix_BG, $@Croix_QID[ .c ] ); } for( .g = 0; .g < getarraysize( $@Guill_QID ); .g ++ ) { if( !isloggedin( $@Guill_QID[ .g ] ) ) .Leavers ++; else bg_join_team( $@Guill_BG, $@Guill_QID[ .g ] ); } freeloop(0); announce "Battleground -- " + .BG_Names$[ .Index ] + " -- Beginning.", bc_all, .BG_Color$[ .Index ]; donpcevent .BG_Arena$[ .Index ] + "::OnStartBattleground"; .Battle_State = 3; stopnpctimer; end; } if( .BG_Flood < gettimetick(2) ) { .BG_Tick ++; if( .BG_Tick >= 10 ) { stopnpctimer; donpcevent strnpcinfo(0) + "::OnBGRotate"; end; } announce "Battleground -- " + .BG_Names$[ .Index ] + " -- (" + .Player2Start + ") more players to start.", bc_all, .BG_Color$[ .Index ]; .BG_Flood = gettimetick(2) + .Flood_Time; } initnpctimer; end; f OnLeaveBG: .@Q_IT1 = queueiterator( $@Croix_Duplicate ); .@Q_IT2 = queueiterator( $@Guill_Duplicate ); if( qiget(.@Q_IT1) == ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) { queueremove( $@Croix_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ); for( .@a = 0; .@a < getarraysize( $@Croix_QID ); .@a ++ ) if( $@Croix_QID[ .@a ] == getcharid(3) ) deletearray $@Croix_QID[ .@a ], 1; $@Croix --; } else if( qiget(.@Q_IT2) == ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) { queueremove( $@Guill_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ); for( .@a = 0; .@a < getarraysize( $@Guill_QID ); .@a ++ ) if( $@Guill_QID[ .@a ] == getcharid(3) ) deletearray $@Guill_QID[ .@a ], 1; $@Guill --; } else { message strcharinfo(0), "You are not in queue."; end; } if( getcharid(4) ) { bg_leave(); warp "SavePoint", 0, 0; } end; } prontera,158,174,3 script Battle Recruiter#Main 4_EP16_SPIEGEL,{ doevent "Battle_Register::OnJoinBG"; end; } // ==== NPC Duplicates prontera,153,173,6 duplicate(Battle Recruiter#Main) Battle Recruiter#A 4_EP16_SPIEGEL
-
Make an NPC wherever you like and put something like such in it.
prontera,150,150,3 script Start That Event 4_F_TELEPORTER,{ mes "Would you like to start that event?"; next; if (select("Yes", "No") == 2) close; close2; donpcevent "Free For All::OnStartEvent"; end; }
Sir should i remove:
OnClock1245:
OnClock1645:
OnClock2045:
OnClock0045:
OnClock0445:
OnClock0845
Its up to you. Those cause the everything below the label 'OnEventStart' to trigger at those times.
Sir what should i do if i wanted the npc to be used at anytime the players want to use it without timers?
-
Hi guys! Just wondering how can i remove the timer and make it usable all the time? Thanks in advance!
// ============================= /* Free for All: http://herc.ws/board/topic/13863-rlast-man-standing-pvp-with-prize/ ---------------------------- by: Legend compatible w/: Hercules ---------------------------- special thanks to: * Annieruru ---------------------------- Description: * Free for all event like last man standing * Can be activated through command "@ffa" * Also can be activated every hour * You can set your own number of winners * Configurable settings (npc name, maps, minimum level to participate, maximum recognized winners, rewards, restricted jobs.) * Significant mapflags were set */ // ============================= prontera,156,157,4 script Request#2 4_CAT_DOWN,{ doevent "Request#2::OnMenu"; end; OnActivate: // activated by the GM if (agitcheck()) || (agitcheck2()){ mes .npc$; mes "WoE is in progress."; close; } if (.checkffa > 0) { mes .npc$; mes "Event is in progress."; close; } OnMinute00: // activated every hour if (agitcheck()) || (agitcheck2()) end; if (.checkffa > 0) end; .checkffa = 1; announce .npc$+": Registration for the event is now open for 3 minutes!",bc_all; initnpctimer; end; OnTimer150000: announce .npc$+": 30 seconds left before the registration will be closed.",bc_all; end; OnTimer180000: .checkffa = 2; if ( .psize <= .maxwin) { announce .npc$+": The Event has been cancelled! Not enough participants.",bc_all; callsub Reset_evt_stats; end; } announce .npc$+": Registration is now closed!",bc_all; end; OnTimer185000: mapannounce .pvpmap$,.npc$+": The Event will occur in a few moments!",bc_blue; end; OnTimer187000: mapannounce .pvpmap$,.npc$+": Get ready in 3!",bc_blue; end; OnTimer188000: mapannounce .pvpmap$,.npc$+": 2!",bc_blue; end; OnTimer189000: mapannounce .pvpmap$,.npc$+": 1!",bc_blue; end; OnTimer190000: stopnpctimer; mapannounce .pvpmap$,.npc$+": Good luck everyone!",bc_blue; setmapflag .pvpmap$, mf_pvp_noguild; removemapflag .pvpmap$, mf_noskill; pvpon .pvpmap$; end; OnMenu: mes .npc$; mes "Good day "+strcharinfo(0)+"!"; mes "How may I help you?"; next; switch(select("Information:Join")){ case 1: mes .npc$; mes "Minimum Base Level: ^FF0000"+.minblvl+"^000000"; mes "Restricted Jobs:"; for( .@z = 0; .@z < .rjsize; .@z++ ) { mes ( .@z +1 ) +". ^FF0000"+jobname (.resjob[.@z])+"^000000"; } close; case 2: if (!.checkffa) { mes .npc$; mes "Event isn't activated, come back later."; close; } if (.checkffa == 2) { mes .npc$; mes "Event is in progress, come back later."; close; } if (BaseLevel < .minblvl) { mes .npc$; mes "You need to"; mes "have ^FF0000"+.minblvl+"^000000 Base level or more than"; mes "before you can participate."; close; } for( .@z = 0; .@z < .rjsize; .@z++ ) { if (Class == .resjob[.@z] ){ mes .npc$; mes "Your job is restricted to join this event."; close; } } sc_end SC_ALL; percentheal 100,100; warp .pvpmap$,0,0; .regaid[.psize] = getcharid(3); .psize++; end; } OnPCDieEvent: OnPCLogoutEvent: if (strcharinfo(3) != .pvpmap$) end; while (.regaid != getcharid(3) && .@i < .psize) .@i++; deletearray .regaid[.@i],1; .psize--; if (.psize > .maxwin) end; if (.checkffa > 0) { announce .npc$+": The Event is now over! We already have our winners!",bc_all; for (.@i = 0; .@i < .psize; ++.@i){ getitem .ritem,.rcount,.regaid[.@i]; } } callsub Reset_evt_stats; end; Reset_evt_stats: removemapflag .pvpmap$, mf_pvp_noguild; setmapflag .pvpmap$, mf_noskill; pvpoff .pvpmap$; .checkffa = 0; deletearray .regaid; .psize = 0; mapwarp .pvpmap$,.extmap$,.extx,.exty,0; end; OnInit: bindatcmd "ffa",strnpcinfo(3)+"::OnActivate",99,99; // CONFIGURATION .npc$ = "[ Free for All ]"; // NPC name .pvpmap$ = "pvp_n_1-5"; // Set your FFA Map .minblvl = 99; // Set minimum base level who can enter .maxwin = 2; // Set the maximum winners .ritem = 7227; // Set the item id of the reward .rcount = 5; // Set reward amount .extmap$ = "prontera"; // Set exit map .extx = 150; // Exit map "x" coordinate .exty = 150; // Exit map "y" coordinate setarray .resjob[0], 0,4001; // This list serves as the restricted jobs .rjsize = getarraysize (.resjob); // DO NOT TOUCH THIS // MAPFLAGS setmapflag .pvpmap$, mf_noskill; pvpoff .pvpmap$; //--- setmapflag .pvpmap$, mf_nowarpto; setmapflag .pvpmap$, mf_nocommand; setmapflag .pvpmap$, mf_nowarp; setmapflag .pvpmap$, mf_nosave; setmapflag .pvpmap$, mf_noteleport; setmapflag .pvpmap$, mf_nomemo; setmapflag .pvpmap$, mf_novending; setmapflag .pvpmap$, mf_nobranch; end; }
-
You can use this one:
Please report if bugs were found.
http://upaste.me/efde36744f9f212ae
You can change some configs here according to your liking: http://upaste.me/efde36744f9f212ae#LC157
Only group 99 GM can activate the event, else you can change this here: http://upaste.me/efde36744f9f212ae#LC155
Sir how can i remove the timer? and make it usable all the time? thanks sir!
-
Hi sir. Where can i get ironbridge map? thanks in advance
Item reward npc / BG mall npc is not clickable..
Some errors?
Do you add item_db2.conf?How to fix this issue sir?
-
Make an NPC wherever you like and put something like such in it.
prontera,150,150,3 script Start That Event 4_F_TELEPORTER,{ mes "Would you like to start that event?"; next; if (select("Yes", "No") == 2) close; close2; donpcevent "Free For All::OnStartEvent"; end; }
Sir should i remove:
OnClock1245:
OnClock1645:
OnClock2045:
OnClock0045:
OnClock0445:
OnClock0845
-
// -----------------------------//
// ------- Free For All --------//
// -------- By : Butch ---------//
// A simple Free for all script //
// -----------------------------//
guild_vs5,48,51,6 script FFA Master 999,{
if(getmapusers("guild_vs5") != 1)
{
mes "[^FF0000FFA Master^000000]";
mes "Current players - ^FF0000"+ getmapusers("guild_vs5") +"^000000.";
close;
}
else if(getmapusers("guild_vs5") == 1)
{
dispbottom "You are a winner of Event Free for all. Congratz!";
donpcevent "Free For All::OnStopEvent";
announce "Free for all winner : "+ strcharinfo(0) +"", bc_all, "0xFFCE00";
getitem 25002,1; // Reward
warp "prontera", 156,149;
end;
}
}
// ------ FFA Warper -------//
prontera,147,149,6 script Free For All 999,{
if (.start != 1) {
mes "[^FF0000Agent Mil^000000]";
mes "Free for all is not available at the moment";
close;
}
mes "[^FF0000Agent Mil^000000]";
mes "What do you want?";
switch(select("Free for all")) {
case 1:
if( getcharid(1) ) { mes "Please leave your party."; close; }
if( getcharid(2) ) { mes "Please leave your guild."; close; }
else switch(rand(3)) {
case 0: .@x = 18; .@y = 50; break;
case 1: .@x = 50; .@y = 77; break;
case 2: .@x = 81; .@y = 49; break;
case 3: .@x = 49; .@y = 22; break;
}
warp "guild_vs5", .@x,.@y;
break;
}
close;
OnStartEvent:
OnClock1245:
OnClock1645:
OnClock2045:
OnClock0045:
OnClock0445:
OnClock0845:
.start = 1;
disablenpc "FFA Master";
announce "Free for all will start in 5 minutes.", bc_all, "0x00b89d";
sleep 120000;
announce "Free for all will start in 3 minutes.", bc_all, "0x00b89d";
sleep 120000;
announce "Free for all will start in 1 minute.", bc_all, "0x00b89d";
sleep 60000;
announce "Free for all has started!", bc_all, "0x00b89d";
.start = 2;
enablenpc "FFA Master";
sleep 2000;
if ( !getmapusers("guild_vs5") ) goto OnStopEvent;
mapannounce "guild_vs5", "FFA starts in 5", bc_map;
sleep 1000;
mapannounce "guild_vs5", "FFA starts in 4", bc_map;
sleep 1000;
mapannounce "guild_vs5", "FFA starts in 3", bc_map;
sleep 1000;
mapannounce "guild_vs5", "FFA starts in 2", bc_map;
sleep 1000;
mapannounce "guild_vs5", "FFA starts in 1", bc_map;
sleep 1000;
mapannounce "guild_vs5", "GO! Kill all!", bc_map;
setmapflag "guild_vs5", mf_gvg;
removemapflag "guild_vs5", mf_noskill;
end;
OnStopEvent:
.start = 0;
disablenpc "FFA Master";
removemapflag "guild_vs5", mf_gvg;
setmapflag "guild_vs5", mf_noskill;
end;
OnInit:
waitingroom "[Free For All]",0;
end;
}
guild_vs5 mapflag partylock
guild_vs5 mapflag guildlock
guild_vs5 mapflag notrade
guild_vs5 mapflag nodrop
Hi just wondering how can i start this npc and use it anytime? Thanks in advance!
-
hi guys! just wondering how to change font using nemo? what should i change inside clientinfo.xml? if you could please share step by step guide it would be awesome! thanks in advance!
-
prontera,159,183,4 script Quest Room Warper 2_F_SIGN1,{ mes "[ Quest Room Warper ]"; mes "Hi!.. Would you like to enter the Quest Room?"; switch(select("Yes", "Cancel")) { case 1: warp "jupe_ele_r",49,92; close; case 2: mes "[ Quest Room Warper ]"; mes "Owh...."; mes "Nevermind..since it is your decision."; mes "It is all up to you."; mes "Come back to me if you changed your mind."; close; } end; }
Thank you so much!
-
Hello. I'd like to request for a classic quest npc please. maybe around 5 npc's if possible or any. Thanks in advance!
-
Thanks sir! I'll try it out.
-
Solved* i just had to use the "make" command for the plugins and start athena. Since i recompiled ita
Add Announcement
in Script Support
Posted
Hello! Can i ask a little help with this Party vs. Party Script please? i wanted to add an announce on it. After the match, i wanted the npc to announce that the match has ended, congratulate the winner then the npc is open for match registration again. Thanks in advance and godbless!