Search the Community
Showing results for tags 'BG'.
Found 7 results
-
Hello Hercules Community, Let me explain it first. It is ExtendedBG, which tends to contain all eAmodBG modes and extra modes(as and when coded). Some Previews: http://imgur.com/a/2SSVR Ohh, and the last thing I forgot to tell, Its 100% Plugin and Script, no Source Edits .. Special Thanks To: jaBote co-founded this project(and really thanks to him , that he motivated me at start at provided some functions and idea of how the base should be, and what we should do it to give flavor of Hercules in it). Repository Link: https://github.com/dastgirp/eBG (Please read README.md for installation steps) Leave Comments/Suggestions if you find something. NOTE: There might be some(/many) debug messages left in map-server which will be cleaned up. I will add battle.conf soon (you have to add it yourself for now or edit the plugin) The plugin might be a big mess to read/understand (I did many experiments over the year) There might be some bugs Thanks to @Rebel and @Myriad for testing and providing initial feedback Contact me on Discord: @Dastgir#1460 if there's some urgent issue or else open the issue in github. keep this topic for support. Want to encourage me??
-
View File soularena BG Map (free) It is a small gift from me to the Ragnarok Community soularena is created for SoulRO and anyone can use it This map is created by me (caspe) & it is 100% free Request to users Do not claim other's work as yours Do not sell this map Give credit to the original creator all texture and models which are used in this map are created by Gravity. Submitter caspe Submitted 02/09/18 Category Maps & Textures
-
Version 1.0.0
195 downloads
It is a small gift from me to the Ragnarok Community soularena is created for SoulRO and anyone can use it This map is created by me (caspe) & it is 100% free Request to users Do not claim other's work as yours Do not sell this map Give credit to the original creator all texture and models which are used in this map are created by Gravity. -
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
-
Topic says it all, display the battleground information on your server using @bginfo. Add in ..src/map/atcommand.c in any line /*==========================================* @bginfo by Aeromesi / Michael - Converted from eAthena to Hercules* -> Displays the Battlegrounds info you setup on your server to your players./=============================================*/ACMD(bginfo){ char buf[CHAT_SIZE_MAX]; memset(buf, '0', sizeof(buf)); snprintf(buf, "BG Settings: Flee Penalty rate %.1fx Short Attack Damage rate %.1fx / Long Attack Damage rate %.1fx / Weapon Attack Damage rate %.1fx / Magic Attack Damage rate %.1fx", battle_config.bg_flee_penalty/100., battle_config.bg_short_damage_rate/100., battle_config.bg_long_damage_rate/100., battle_config.bg_weapon_damage_rate/100., battle_config.bg_magic_damage_rate/100.); clif->message(fd, buf); return 0;}
-
Hi, I'm looking for a script or a modification that does not allow the use of Mercenary in BG and WoE, but results so far, would appreciate help on this. Also looking that it can not come with mercenary and pulled them out to maps or being in them, something similar as Pets in WoE.
-
Tem como ver o danos das habilidades em mapas com: mapflag battleground 2 ? Grato.