Jump to content

Search the Community

Showing results for tags 'battleground'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Bulletin Centre
    • Community News
    • Repository News
    • Ragnarok News
  • Hercules Development Centre
    • Development Discussion
    • Suggestions
    • Development Centre Archives
  • Support & Releases
    • General Server Support
    • Database
    • Scripting
    • Source
    • Plugin
    • Client-Side
    • Graphic Enhancements
    • Other Support & Releases
  • Hercules Community
    • General Discussion
    • Projects
    • Employment
    • Server Advertisement
    • Arts & Writings
    • Off Topic
  • 3CeAM Centre
    • News and Development
    • Community
  • International Communities
    • Filipino Community
    • Portuguese Community
    • Spanish Community
    • Other Communities

Categories

  • Client Resources
  • Graphic Resources
    • Sprites & Palettes
    • Maps & Textures
    • Other Graphics
  • Server Resources
    • Server Managers / Editors Releases
    • Script Releases
    • Source Modifications
    • Plugins
    • Pre-Compiled Server
  • Web Resources

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Discord


Skype


IRC Nickname


Website URL


Location:


Interests


Github

Found 19 results

  1. View File Death Match - Battleground Addon Come to join a Battleground match where you'll have to defeat all ennemies to earn points Death Match is a battleground addon where players may fight until the end of the delay configured to earn as much points as possible. The highest points rate will be rewarded, others will too but in a lowest range. Each team will count 6 players at start, and killing them will bring points to the opposite team. Enables first player to configure the game duration at will (5, 10 or 15 minutes), and diffuse announce for players attraction. Configuration enabled: Price to enter, number of player to start the game, duration enabled Command: allowing use of @dmboard, to get a score board for each player in game Credits: Do not claim my work as yours. Feel free to use it, even modify it, but leave the credit on file header Submitter Alayne Submitted 07/02/17 Category PvP, WoE, GvG, & Battleground  
  2. Hey everyone I have an idea for a BG based on a game called GunZ i used to play. It's called "Assassination" This is similiar to capture the flag in some ways more than anything, Concept: Normal teams Red vs Blue, lets say its a 3v3 ( u need a minimum of 2 players in a team or itd be lame xD) one of the 3 players get a target on their head ( some marker is put on the player to suggest that he/she is the one to be killed. This should not be shown in minimap though or it would be gamebreaking) The other 2 players in red and blue should search for the targets of their respective opponent teams, 1st team to kill the opponent target wins the round. Targets are the main priority. even if its 3 players alive in team Blue, 1 player alive in team Red, If the 1 player(who is the target and the rest of his/her team is dead) in Red kills the target of Blue, Blue looses. So basically, 1 target is chosen at random in each team(this changes in each round so basically every 1 might get to be the target). The opponent team has to assassinate this target. If the target dies, all his/her teammates die and the round is over, opponent wins. Hope i explained it well xD i have posted it on rA as well, hopefully someone comes up with possibilities of making this a script
  3. Hello peoples, This post is more a "link to others" than a post in itself. As I stated some ago that I never really wrote a script for PvP (in the most basic meaning of it), I decided last week-end to start writing some. But as I'm a bit...let's say 'mad', I didn't wrote one or two, but 15. This includes a non exhaustive list of: -8 PvP scripts (Battle Royal, Royal Rumble, Deus Ex, PvPvM, Vampire Bal, Clone Defense, Rotative Hunt and Mistery Case) Battle Royal Vampire Bal PvPvM Deus Ex -5 Battle ground scripts, based over the games in S4 League (Captain, Death Match, Captain, Siege, TouchDown) Captain Death Match TouchDown -1 Reaper, based over the game of the same name in S4 League too. -1 'improved' battleground, as it's a 4 team fight. I'll start to release those scripts in the week end (need some time for small edits before releasing them), and I'll all the scripts in this one and only topic, to ensure the access will be centralized for those who may want to get several. I don't know yet if I'll make it paid scripts, as the initial goal was to provide it for free, but the hardest took me a bunch of time to write and debug. So I guess some will be free, and some will be paid ones. Hope you'll like it, peoples! Edit: Here we go, first link added
  4. Version 1.0.0

    83 downloads

    A Battleground Addon based over S4 League TouchDown mode, where players may fight until the end of the delay configured to earn as much points as possible. You'll earn points by killing players, or by bringing the Poring Ball to the Goal of the opposite team. The highest points rate will be rewarded, others will too but in a lowest range. Enables first player to configure the game duration at will (5, 10 or 15 minutes), and diffuse announce for players attraction. Configuration enabled: Price to enter, number of player to start the game, duration enabled Command: allowing use of @tdboard, to get a score board for each player in game
  5. View File TouchDown - Battleground Addon A Battleground Addon based over S4 League TouchDown mode, where players may fight until the end of the delay configured to earn as much points as possible. You'll earn points by killing players, or by bringing the Poring Ball to the Goal of the opposite team. The highest points rate will be rewarded, others will too but in a lowest range. Enables first player to configure the game duration at will (5, 10 or 15 minutes), and diffuse announce for players attraction. Configuration enabled: Price to enter, number of player to start the game, duration enabled Command: allowing use of @tdboard, to get a score board for each player in game Submitter Alayne Submitted 07/02/17 Category PvP, WoE, GvG, & Battleground  
  6. Version 1.0.0

    74 downloads

    Come to join a Battleground match where you'll have to defeat all ennemies to earn points Death Match is a battleground addon where players may fight until the end of the delay configured to earn as much points as possible. The highest points rate will be rewarded, others will too but in a lowest range. Each team will count 6 players at start, and killing them will bring points to the opposite team. Enables first player to configure the game duration at will (5, 10 or 15 minutes), and diffuse announce for players attraction. Configuration enabled: Price to enter, number of player to start the game, duration enabled Command: allowing use of @dmboard, to get a score board for each player in game Credits: Do not claim my work as yours. Feel free to use it, even modify it, but leave the credit on file header
  7. Version 1.0.0

    35 downloads

    Come to join a Battleground match where you'll have to defeat all Captains ennemies before going anymore further Captain is a battleground addon where players may fight until the end of the delay configured to earn as much points as possible. The highest points rate will be rewarded, others will too but in a lowest range. Each team will count 5 Captains at start, bringing 5 points when you kill one. When a Captain died, he'll raise again as a normal player, but killing him will only bring 1 point. Kill all Captains to get the full team back! Enables first player to configure the game duration at will (5, 10 or 15 minutes), and diffuse announce for players attraction. Configuration enabled: Price to enter, number of player to start the game, duration enabled Command: allowing use of @cboard, to get a score board for each player in game Credits: Do not claim my work as yours. Feel free to use it, even modify it, but leave the credit on file header
  8. View File Captain - Battleground Addon Come to join a Battleground match where you'll have to defeat all Captains ennemies before going anymore further Captain is a battleground addon where players may fight until the end of the delay configured to earn as much points as possible. The highest points rate will be rewarded, others will too but in a lowest range. Each team will count 5 Captains at start, bringing 5 points when you kill one. When a Captain died, he'll raise again as a normal player, but killing him will only bring 1 point. Kill all Captains to get the full team back! Enables first player to configure the game duration at will (5, 10 or 15 minutes), and diffuse announce for players attraction. Configuration enabled: Price to enter, number of player to start the game, duration enabled Command: allowing use of @cboard, to get a score board for each player in game Credits: Do not claim my work as yours. Feel free to use it, even modify it, but leave the credit on file header Submitter Alayne Submitted 07/02/17 Category PvP, WoE, GvG, & Battleground  
  9. Preview: Info: Just like what video show you, winner is who can own EMP when time out, so Attacker need to break EMP to be a new owner, Defender need to protect EMP until time out. Setting: .sett_totaltime = 180; // total gaming time .sett_waitenemydelay = 10; // wait for enemy .sett_opendelay = 10; // wait for game map open .sett_startdelay = 10; // wait for game start, defender can enter now .sett_restartdelay = 60; // when EMP is down, how long that setting will restart .sett_respawnHEARTdelay = 60; // respawn time for obstacle .sett_respawnBOMBdelay = 60; // respawn time for bomber .sett_reBOMBdelay = 60; // cd for bomber Script: Another 1v1 KoE .txt db: mob_avail.txt 2414,1288 2415,1908 2416,1906 mob_db.txt 2414,FAKE_EMP,FAKE_EMP,FAKE_EMP,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02415,FAKE_HEART_STONE,FAKE_HEART_STONE,FAKE_HEART_STONE,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02416,FAKE_DEF_STONE,FAKE_DEF_STONE,FAKE_DEF_STONE,1,20,0,0,0,1,1,2,100,99,0,0,0,0,0,90,7,12,0,3,26,0x40,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  10. 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( [email protected] = 0; [email protected] < .rjsize; [email protected]++ ) { mes ( [email protected] +1 ) +". ^FF0000"+jobname (.resjob[[email protected]])+"^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( [email protected] = 0; [email protected] < .rjsize; [email protected]++ ) { if (Class == .resjob[[email protected]] ){ 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) && [email protected] < .psize) [email protected]++; deletearray .regaid[[email protected]],1; .psize--; if (.psize > .maxwin) end; if (.checkffa > 0) { announce .npc$+": The Event is now over! We already have our winners!",bc_all; for ([email protected] = 0; [email protected] < .psize; [email protected]){ getitem .ritem,.rcount,.regaid[[email protected]]; } } 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; }
  11. 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! - script init -1,{ OnInit: //== CONFIG START ==// set [email protected]$,"#"; // Set the symbol of your char command ex. # set [email protected]$,"^009966War Organizer^000000"; // Set NPC name set [email protected]_mem,7; // Set minimum members per party, if a party has 6 members below including the leader, leader can't register his/her party set [email protected]_map$,"guild_vs3"; // Set where you want the players to battle set [email protected]_arena_mapX,15; // Set the starting X position of Team 1 set [email protected]_arena_mapY,49; // Set the starting Y position of Team 1 set [email protected]_arena_mapX,85; // Set the starting X position of Team 2 set [email protected]_arena_mapY,49; // Set the starting Y position of Team 2 set [email protected]_map$,"quiz_02"; // Set where you want the players to be warped after the player was killed. set [email protected]_mapX,350; set [email protected]_mapY,379; //== Set Winning Party Rewards ==// set [email protected]_winitem_qnty,0; // Important, set to how many reward items you set below for the winning party setarray [email protected]_itemid[0],0; // Set the item id of the reward item setarray [email protected]_itemname$[0],"Red Potion", // Set the name of the reward item "Orange Potion", "Yellow Potion", "White Potion", "Blue Potion"; setarray [email protected]_itemnum[0],0; // Set the quantity of the reward //== Set Losing Party Rewards ==// set [email protected]_loseitem_qnty,0; // Important, set to how many reward items you set below for losing party setarray [email protected]_itemid[0],0; // Set the item id of the reward item setarray [email protected]_itemname$[0],"Red Potion", // Set the name of the reward item "Orange Potion"; setarray [email protected]_itemnum[0],0; // Set the quantity of the reward //== Set Draw Rewards ==// set [email protected]_drawitem_qnty,0; // Important, set to how many reward items you set below for draw result setarray [email protected]_itemid[0],0; // Set the item id of the reward item setarray [email protected]_itemname$[0],"Yellow Potion", // Set the name of the reward item "White Potion"; setarray [email protected]_itemnum[0],0; // Set the quantity of the reward //== CONFIG END ==// // Do not change configs below, this will reset in case the server unexpectedly shuts down set [email protected]_Start,0; set [email protected]_team,0; set [email protected]_team1,0; set [email protected]_team2,0; set $team1_mem,0; set $team2_mem,0; // RWC 3 enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; // Now let's check if the event is on going or not (checks current server's time) // if the event is on going, Enable NPC and sends a message to the player upon logging in for(set [email protected],0; [email protected]<=22; set [email protected],[email protected]+2) { set [email protected],[email protected]+1; if(gettime(3)>[email protected] && gettime(3)<[email protected]) { set [email protected]_start,1; enablenpc "PartyReg"; } set [email protected],[email protected]+1; } end; } // Party Registration NPC quiz_02,350,389,3 script Party Registration::PartyReg 89,{ mes "["[email protected]$+"]"; if(([email protected]_Start && getcharid(1)[email protected]_team1) || ([email protected]_Start && getcharid(1)[email protected]_team2) ) { mes "Hmm... Too bad for you, you didn't make it to win for your party. Cheer them up instead."; close; } if([email protected]_Start || [email protected]_team>=2) { mes "Battle is currently on"; mes "going. Party registration is"; mes "close during this time."; next; if(select("> Check current battle info.:> Leave") == 2){ mes "["[email protected]$+"]"; mes "Come back to me and register your party after the battle between "+getpartyname([email protected]_team1)+" and "+getpartyname([email protected]_team2)+" has ended."; close; } mes "["[email protected]$+"]"; if([email protected]_Start) { mes "The Battle already ended."; close; } set @standing_mem1,[email protected]_mem-$team2_mem; set @standing_mem2,[email protected]_mem-$team1_mem; mes "Battle Information"; mes "---"; mes "- " + getpartyname([email protected]_team1) + " Party : "; mes "Standing Members Left : " + @standing_mem1; mes "---"; mes "- " + getpartyname([email protected]_team2) + " Party : "; mes "Standing Members Left : " + @standing_mem2; next; mes "["[email protected]$+"]"; if($team1_mem>$team2_mem) { mes "Current leading party is "+getpartyname([email protected]_team1); close; } else if($team1_mem<$team2_mem) { mes "Current leading party is "+getpartyname([email protected]_team2); close; } else { mes "Both Party has the same number of members that are still alive."; close; } } if(getcharid(1)==0) goto L_ContinueMain; if(getcharid(1)[email protected]_team1 || getcharid(1)[email protected]_team2) { mes getpartyleader(getcharid(1)) + ", your party leader already registered your party, please wait for the other team to register."; close; } L_ContinueMain: mes "Welcome "+strcharinfo(0)+"!"; mes "I am the War Arena Organizer"; next; switch(select("> Register")) { case 1: callsub R_Party; } R_Party: mes "["[email protected]$+"]"; if ( callfunc("party_has_duplicate_job") ) { mes "It seems that someone in the party has the same class than another member. Please check again the requirements..."; close; } if ( [email protected] != 7 ) { mes "You have to be 7 on the team."; close; } if(getcharid(1)==0) { mes "I see that you have no party yet. Please form your party first before registering."; close; } mes "Party Name : "+strcharinfo(1); if(getpartyleader(getcharid(1),2)==getcharid(0)) { mes "Party Leader : You"; } else { mes "Party Leader : "+getpartyleader(getcharid(1)); } mes "-"; getpartymember(getcharid(1)); set @partymembercount,[email protected]; copyarray @partymembername$[0],[email protected]$[0],@partymembercount; set @countmem,0; L_DisplayMem: if(@countmem == @partymembercount) goto L_Continue; set @countmem,@countmem+1; goto L_DisplayMem; L_Continue: mes "Party Members ("+(@countmem)+"/"[email protected]_mem+")"; set @count,0; L_DisplayMember: if(@count == @partymembercount) goto L_Continue2; mes (@count + 1) + ". ^0000FF" + @partymembername$[@count] + "^000000"; set @count,@count+1; goto L_DisplayMember; L_Continue2: if([email protected]_Start || [email protected]_team>=2) { next; mes "Sorry but party registration is now close. Please re-register after the current battle progress has ended."; close; } if(getpartyleader(getcharid(1),2)!=getcharid(0)) { next; mes strcharinfo(0)+", If you have time, please find your Party Leader "+getpartyleader(getcharid(1))+" and let him/her register your party"; close; } if(@countmem>[email protected]_mem) { next; mes "This event requires you to form a party with only "[email protected]_mem+" members including you. I'm sorry to say but you need to expel ^FF0000"+(@[email protected]_mem)+"^000000 more member(s)."; close; } if(@countmem<[email protected]_mem) { next; mes "This event requires you to form a party with "[email protected]_mem+" members including you. You still need to recruit ^FF0000"+([email protected][email protected])+"^000000 more member(s)."; close; } set [email protected]_team,[email protected]_team+1; if([email protected]_team==1) { set [email protected]_team1,getcharid(1); setarray [email protected]_name1$[0],@partymembername$[0],@partymembername$[1],@partymembername$[2],@partymembername$[3],@partymembername$[4]; announce "Team "+getpartyname([email protected]_team1)+" registered on Team "[email protected]_team+".",bc_all; goto L_Continue3; } if([email protected]_team==2) { set [email protected]_team2,getcharid(1); announce "Team "+getpartyname([email protected]_team2)+" registered on Team "[email protected]_team+".",bc_all; setarray [email protected]_name2$[0],@partymembername$[0],@partymembername$[1],@partymembername$[2],@partymembername$[3],@partymembername$[4]; goto L_Continue3; } L_Continue3: close2; if([email protected]_team==2) donpcevent "PvP_Func::OnStart"; end; OnPCDieEvent: getmapxy @map$,@x,@y,0; if([email protected]_Start && @[email protected]_map$ && getcharid(1)[email protected]_team1) { set $team2_mem,$team2_mem+1; warp [email protected]_map$,[email protected]_mapX,[email protected]_mapY; if([email protected]_mem) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnTeam2Win2"; } end; } if([email protected]_Start && @[email protected]_map$ && getcharid(1)[email protected]_team2) { set $team1_mem,$team1_mem+1; warp [email protected]_map$,[email protected]_mapX,[email protected]_mapY; if([email protected]_mem) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnTeam1Win2"; } end; } OnPCLogoutEvent: getmapxy @map$,@x,@y,0; if([email protected]_Start && @[email protected]_map$ && getcharid(1)[email protected]_team1) { warp [email protected]_map$,[email protected]_mapX,[email protected]_mapY; set $team2_mem,$team2_mem+1; mapannounce [email protected]_map$,"User "+strcharinfo(0)+" of "+getpartyname([email protected]_team1)+" Team logged out of the game.",bc_all; if([email protected]_mem) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnTeam2Win2"; } end; } if([email protected]_Start && @[email protected]_map$ && getcharid(1)[email protected]_team2) { warp [email protected]_map$,[email protected]_mapX,[email protected]_mapY; set $team1_mem,$team1_mem+1; mapannounce [email protected]_map$,"User "+strcharinfo(0)+" of "+getpartyname([email protected]_team2)+" Team logged out of the game.",bc_all; if([email protected]_mem) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnTeam1Win2"; } end; } OnPCLoadMapEvent: getmapxy @map$,@x,@y,0; if([email protected]_Start && @[email protected]_map$ && getcharid(1)[email protected]_team1) { warp [email protected]_map$,[email protected]_mapX,[email protected]_mapY; set $team2_mem,$team2_mem+1; mapannounce [email protected]_map$,""+strcharinfo(0)+" of "+getpartyname([email protected]_team1)+" party warped out of the battle arena.",bc_blue; if([email protected]_mem) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnTeam2Win2"; } end; } if([email protected]_Start && @[email protected]_map$ && getcharid(1)[email protected]_team2) { warp [email protected]_map$,[email protected]_mapX,[email protected]_mapY; set $team1_mem,$team1_mem+1; mapannounce [email protected]_map$,""+strcharinfo(0)+" of "+getpartyname([email protected]_team2)+" party warped out of the battle arena.",bc_blue; if([email protected]_mem) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnTeam1Win2"; } end; } } // Script where all functions are stored - script PvP_Func -1,{ OnStart: initnpctimer; set [email protected]_Start,1; setcell [email protected]_map$,80,55,80,44,cell_walkable,0; setcell [email protected]_map$,19,55,19,44,cell_walkable,0; announce "The Battle between "+getpartyname([email protected]_team1)+" and "+getpartyname([email protected]_team2)+" Party has engaged. Registered Party along with its members will be automatically warped to the arena after 10 seconds.",bc_all; gvgoff [email protected]_map$; setnpctimer 0; startnpctimer; end; OnTimer5000: warpparty [email protected]_map$,[email protected]_arena_mapX,[email protected]_arena_mapY,[email protected]_team1; warpparty [email protected]_map$,[email protected]_arena_mapX,[email protected]_arena_mapY,[email protected]_team2; end; OnTimer30000: mapannounce [email protected]_map$,"Players, you only have 30 seconds left to prepare for the Battle.",bc_all; end; OnTimer50000: mapannounce [email protected]_map$,"The Battle will begin in 5 seconds.",bc_all; end; OnTimer51000: mapannounce [email protected]_map$,"The Battle will begin in 4 seconds.",bc_all; end; OnTimer52000: mapannounce [email protected]_map$,"The Battle will begin in 3 seconds.",bc_all; end; OnTimer53000: mapannounce [email protected]_map$,"The Battle will begin in 2 seconds.",bc_all; end; OnTimer54000: mapannounce [email protected]_map$,"The Battle will begin in 1 second.",bc_all; end; OnTimer55000: gvgon [email protected]_map$; setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; disablenpc "WALL#41"; disablenpc "WALL#42"; disablenpc "WALL#43"; disablenpc "WALL#44"; disablenpc "WALL#45"; disablenpc "WALL#46"; disablenpc "WALL#47"; disablenpc "WALL#48"; disablenpc "WALL#49"; disablenpc "WALL#50"; disablenpc "WALL#51"; disablenpc "WALL#52"; disablenpc "WALL#53"; disablenpc "WALL#54"; disablenpc "WALL#55"; disablenpc "WALL#56"; disablenpc "WALL#57"; disablenpc "WALL#58"; disablenpc "WALL#59"; disablenpc "WALL#60"; disablenpc "WALL#61"; disablenpc "WALL#62"; disablenpc "WALL#63"; disablenpc "WALL#64"; announce "The team "+getpartyname([email protected]_team1)+" vs "+getpartyname([email protected]_team2)+" battle has begun!",bc_all; mapannounce [email protected]_map$,"You only have 5 minutes to eliminate all opponent's party members. Be quick!!!",bc_all; end; // After 5 Minutes, system will check the party who has the most number of member and will declare that party as a winner. // All variables will be resetted. OnTimer420000: if($team2_mem<$team1_mem) { donpcevent "PvP_Func::OnTeam1Win"; } else if ($team2_mem<$team1_mem) { donpcevent "PvP_Func::OnTeam2Win"; } else if ($team2_mem==$team1_mem || $team1_mem==$team2_mem) { donpcevent "PvP_Func::OnDraw"; } else { donpcevent "PvP_Func::OnNoWin"; } end; // This label will be called after the event has ended without registered parties OnNoWin: announce "The Battle has ended.",bc_all; gvgoff [email protected]_map$; set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; stopnpctimer; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; OnEndNoWin: announce "The Battle has ended.",bc_all; gvgoff [email protected]_map$; set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; set [email protected]_start,0; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; stopnpctimer; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; OnDraw: announce "Team "+getpartyname([email protected]_team1)+" and Team "+getpartyname([email protected]_team2)+" has the same number of members standing in the arena, the battle result is a draw.",bc_all; for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_drawitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name1$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_drawitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name2$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } stopnpctimer; gvgoff [email protected]_map$; set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; OnEndDraw: announce "Team "+getpartyname([email protected]_team1)+" and Team "+getpartyname([email protected]_team2)+" has the same number of members standing in the arena, the battle result is a draw.",bc_all; for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_drawitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name1$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_drawitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name2$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } stopnpctimer; gvgoff [email protected]_map$; set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; set [email protected]_start,0; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; OnTeam1Win: announce "After 5 minutes of battle, "+getpartyname([email protected]_team1)+" party member survives more than "+getpartyname([email protected]_team2)+" party member and won the Battle!",bc_all; for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_winitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name1$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_loseitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name2$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; gvgoff [email protected]_map$; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; stopnpctimer; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; OnEndTeam1Win: announce "After 5 minutes of battle, "+getpartyname([email protected]_team1)+" party member survives more than "+getpartyname([email protected]_team2)+" party member and won the Battle!",bc_all; for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_winitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name1$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_loseitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name2$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; set [email protected]_start,0; gvgoff [email protected]_map$; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; stopnpctimer; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; OnTeam2Win: announce "After 5 minutes of battle, "+getpartyname([email protected]_team2)+" party member survives more than "+getpartyname([email protected]_team1)+" party member and won the Battle!",bc_all; for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_winitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name2$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_loseitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name1$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; gvgoff [email protected]_map$; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; stopnpctimer; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; OnEndTeam2Win: announce "After 5 minutes of battle, "+getpartyname([email protected]_team2)+" party member survives more than "+getpartyname([email protected]_team1)+"'s Party member and won the Battle!",bc_all; for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_winitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name2$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_loseitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name1$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; set [email protected]_start,0; disablenpc "PartyReg"; gvgoff [email protected]_map$; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; stopnpctimer; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; OnTeam1Win2: announce "Team "+getpartyname([email protected]_team1)+" smashed all the member of Team "+getpartyname([email protected]_team2)+" and won the Battle!",bc_all; for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_winitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name1$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_loseitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name2$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; gvgoff [email protected]_map$; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; stopnpctimer; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; OnTeam2Win2: announce "Team "+getpartyname([email protected]_team2)+" smashed all the member of Team "+getpartyname([email protected]_team1)+"and won the Battle!",bc_all; for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_winitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name2$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } for(set [email protected],0; [email protected]<[email protected]_mem; set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<[email protected]_loseitem_qnty; set [email protected],[email protected]+1) { charcommand ""[email protected]$+"item "[email protected]_name1$[[email protected]]+" "[email protected]_itemid[[email protected]]+" "[email protected]_itemnum[[email protected]]+""; } } set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; gvgoff [email protected]_map$; setcell "guild_vs3",19,55,19,44,cell_walkable,0; setcell "guild_vs3",80,55,80,44,cell_walkable,0; enablenpc "WALL#41"; enablenpc "WALL#42"; enablenpc "WALL#43"; enablenpc "WALL#44"; enablenpc "WALL#45"; enablenpc "WALL#46"; enablenpc "WALL#47"; enablenpc "WALL#48"; enablenpc "WALL#49"; enablenpc "WALL#50"; enablenpc "WALL#51"; enablenpc "WALL#52"; enablenpc "WALL#53"; enablenpc "WALL#54"; enablenpc "WALL#55"; enablenpc "WALL#56"; enablenpc "WALL#57"; enablenpc "WALL#58"; enablenpc "WALL#59"; enablenpc "WALL#60"; enablenpc "WALL#61"; enablenpc "WALL#62"; enablenpc "WALL#63"; enablenpc "WALL#64"; stopnpctimer; sleep2 10000; areawarp [email protected]_map$,12,87,87,12,[email protected]_map$,[email protected]_mapX,[email protected]_mapY; end; } function script StartEvent { enablenpc "PartyReg"; set [email protected]_start,1; announce "The Battle has begun.",bc_all; return; } function script EndEvent { if ([email protected]_Start && [email protected]_team<2) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnEndNoWin"; } else if ($team2_mem<$team1_mem) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnEndTeam1Win"; } else if ($team2_mem<$team1_mem) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnEndTeam2Win"; } else if ($team2_mem==$team1_mem || $team1_mem==$team2_mem) { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnEndDraw"; } else { setcell [email protected]_map$,80,55,80,44,cell_walkable,1; setcell [email protected]_map$,19,55,19,44,cell_walkable,1; donpcevent "PvP_Func::OnEndNoWin"; } end; } //////////////////////////////////////////////////////////////////////////// ////RWC 3/////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// guild_vs3,19,55,0 script WALL#41 1905,{ } guild_vs3,19,54,0 duplicate(WALL#41) WALL#42 1905 guild_vs3,19,53,0 duplicate(WALL#41) WALL#43 1905 guild_vs3,19,52,0 duplicate(WALL#41) WALL#44 1905 guild_vs3,19,51,0 duplicate(WALL#41) WALL#45 1905 guild_vs3,19,50,0 duplicate(WALL#41) WALL#46 1905 guild_vs3,19,49,0 duplicate(WALL#41) WALL#47 1905 guild_vs3,19,48,0 duplicate(WALL#41) WALL#48 1905 guild_vs3,19,47,0 duplicate(WALL#41) WALL#49 1905 guild_vs3,19,46,0 duplicate(WALL#41) WALL#50 1905 guild_vs3,19,45,0 duplicate(WALL#41) WALL#51 1905 guild_vs3,19,44,0 duplicate(WALL#41) WALL#52 1905 guild_vs3,80,55,0 duplicate(WALL#41) WALL#53 1905 guild_vs3,80,54,0 duplicate(WALL#41) WALL#54 1905 guild_vs3,80,53,0 duplicate(WALL#41) WALL#55 1905 guild_vs3,80,52,0 duplicate(WALL#41) WALL#56 1905 guild_vs3,80,51,0 duplicate(WALL#41) WALL#57 1905 guild_vs3,80,50,0 duplicate(WALL#41) WALL#58 1905 guild_vs3,80,49,0 duplicate(WALL#41) WALL#59 1905 guild_vs3,80,48,0 duplicate(WALL#41) WALL#60 1905 guild_vs3,80,47,0 duplicate(WALL#41) WALL#61 1905 guild_vs3,80,46,0 duplicate(WALL#41) WALL#62 1905 guild_vs3,80,45,0 duplicate(WALL#41) WALL#63 1905 guild_vs3,80,44,0 duplicate(WALL#41) WALL#64 1905 function script party_has_duplicate_job { set [email protected]_id, getarg( 0, getcharid(1) ); // Need to have a party. if ( [email protected]_id ) { return -1; } // Loading party members variables getpartymember [email protected]_id, 1; getpartymember [email protected]_id, 2; // Keep rid attached. set [email protected], playerattached(); // Check all members for ( set [email protected],0; [email protected]<[email protected]; set [email protected], [email protected]+1 ) { // Online user if ( isloggedin( [email protected][[email protected]], [email protected][[email protected]]) ) { // Attach the member to access "Class" attachrid( [email protected][[email protected]] ); if ( compare( [email protected]_class$ + "|", "|" + Class + "|" ) ) { if ( [email protected] ) attachrid([email protected]); else detachrid; return 1; } set [email protected]_class$, [email protected]_class$ + "|" + Class; } // Offline user (use sql) else { set [email protected]$, [email protected]$ + ( [email protected]_i ? "OR " : "" ) + "`char_id`='" + [email protected][[email protected]] + "' "; set [email protected]_i, [email protected]_i + 1; } } // SQL for offline users if ( getstrlen([email protected]$) ) { // get class from offline members set [email protected], query_sql("SELECT `class` FROM `char` WHERE " + [email protected]$, [email protected] ); // Check the class. for ( set [email protected], 0; [email protected]<[email protected]; set [email protected], [email protected]+1 ) { if ( compare( [email protected]_class$ + "|", "|" + [email protected][[email protected]] + "|" ) ) { if ( [email protected] ) attachrid([email protected]); else detachrid; return 1; } set [email protected]_class$, [email protected]_class$ + "|" + [email protected][[email protected]]; } } // Restore RID. if ( [email protected] ) attachrid([email protected]); else detachrid; return 0; } - script RWC -1,{ // Settings // GM LVL Allowed set .gmlvl,99; OnWhisperGlobal: if(getgmlevel() <= .gmlvl) goto N_Authority; switch(select("Reset:")) { case 1: stopnpctimer; gvgoff [email protected]_map$; set [email protected]_team,0; set [email protected]_Start,0; set $team1_mem,0; set $team2_mem,0; set [email protected]_team1,0; set [email protected]_team2,0; set [email protected]_start,0; dispbottom "Reset OK."; close; N_Authority: dispbottom "You cannot use this commands anymore."; close; } }
  12. I'd like to request for a script that is a free for all last man stading. 4 player pvp with prize for the winner. thanks in advance!
  13. 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 ( [email protected] = 5; [email protected] > 0; [email protected] ) { mapannounce("guild_vs5", sprintf("FFA starts in [%d]", [email protected]), .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(); [email protected] = select("Enter ^FFA500FFA Arena^000000", "Nothing"); if ( [email protected] == 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: [email protected] = 18; [email protected] = 50; break; case 1: [email protected] = 50; [email protected] = 77; break; case 2: [email protected] = 81; [email protected] = 49; break; case 3: [email protected] = 49; [email protected] = 22; break; } warp("guild_vs5", [email protected], [email protected]); } } 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
  14. 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
  15. 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([email protected] = 8500; [email protected] < 8511; [email protected] ++) if( ([email protected] != 8506 && questprogress([email protected], PLAYTIME) ) ) erasequest [email protected]; 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; } [email protected] = queueiterator( [email protected]_Duplicate ); [email protected] = queueiterator( [email protected]_Duplicate ); for( [email protected] = 0; [email protected] < .BG_Max[ .Index ]; [email protected] ++ ) { if( qiget([email protected]) == ( .MultipleCheck == 1? getcharid(0):getcharip() ) || qiget([email protected]) == ( .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( [email protected]_QID ) < .BG_Max[ .Index ] || getarraysize( [email protected]_QID ) < .BG_Max[ .Index ] ) { if( getarraysize( [email protected]_QID ) > getarraysize( [email protected]_QID ) ) { if( !queueadd( [email protected]_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } [email protected]_QID[ [email protected] ] = getcharid(3); [email protected] ++; if( .debug ) debugmes strcharinfo(0) + " guillame"; } else if( getarraysize( [email protected]_QID ) < getarraysize( [email protected]_QID ) ) { if( !queueadd( [email protected]_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } [email protected]_QID[ [email protected] ] = getcharid(3); [email protected] ++; if( .debug ) debugmes strcharinfo(0) + " croix"; } else { if( !queueadd( [email protected]_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } [email protected]_QID[ [email protected] ] = getcharid(3); [email protected] ++; 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( [email protected]_QID ) < .BG_Max[ .Index ] || getarraysize( [email protected]_QID ) < .BG_Max[ .Index ] ) { if( getarraysize( [email protected]_QID ) > getarraysize( [email protected]_QID ) ) { if( !queueadd( [email protected]_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } [email protected]_QID[ [email protected] ] = getcharid(3); [email protected] ++; if( .BG_Names$[ .Index] == "Conquest" ) if( [email protected]_BG == getvariableofnpc( .Atacker, "Conquest" ) ) bg_single( [email protected]_BG, .BG_Map$[ .Index ], .BG_AtackerX, .BG_AtackerY ); else bg_single( [email protected]_BG, .BG_Map$[ .Index ], .BG_DefenerX, .BG_DefenerY ); else bg_single( [email protected]_BG, .BG_Map$[ .Index ], .BG_GuillX[ .Index ], .BG_GuillY[ .Index ] ); if( .debug ) debugmes strcharinfo(0) + " guillame"; } else if( getarraysize( [email protected]_QID ) < getarraysize( [email protected]_QID ) ) { if( !queueadd( [email protected]_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } [email protected]_QID[ [email protected] ] = getcharid(3); [email protected] ++; if( .BG_Names$[ .Index] == "Conquest" ) if( [email protected]_BG == getvariableofnpc( .Atacker, "Conquest" ) ) bg_single( [email protected]_BG, .BG_Map$[ .Index ], .BG_AtackerX, .BG_AtackerY ); else bg_single( [email protected]_BG, .BG_Map$[ .Index ], .BG_DefenerX, .BG_DefenerY ); else bg_single( [email protected]_BG, .BG_Map$[ .Index ], .BG_CroixX[ .Index ], .BG_CroixY[ .Index ] ); if( .debug ) debugmes strcharinfo(0) + " croix"; } else { if( !queueadd( [email protected]_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) ) { mes "^D2691E[Battle Requiter]^000000"; mes "You already in queue"; close; } [email protected]_QID[ [email protected] ] = getcharid(3); [email protected] ++; if( .BG_Names$[ .Index] == "Conquest" ) if( [email protected]_BG == getvariableofnpc( .Atacker, "Conquest" ) ) bg_single( [email protected]_BG, .BG_Map$[ .Index ], .BG_AtackerX, .BG_AtackerY ); else bg_single( [email protected]_BG, .BG_Map$[ .Index ], .BG_DefenerX, .BG_DefenerY ); else bg_single( [email protected]_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: [email protected]_RewardID = 7773; // (War Badge) [email protected]_WinnerAmount = 15; // Reward amount for winning team [email protected]_LooserAmount = 10; // Reward amount for loosing team [email protected]_TieAmount = 5; // Reward amount for Tie. // = Flavius Score (Kills for end game): [email protected]_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; [email protected]$ = strnpcinfo(0) + "::OnBGRotate"; OnBGRotate: if( ( .Index += 1 ) > ( getarraysize( .BG_Names$ ) - 1 ) ) .Index = 0; if( [email protected]_Duplicate ) queuedel [email protected]_Duplicate; if( [email protected]_Duplicate ) queuedel [email protected]_Duplicate; if( [email protected]_BG ) bg_destroy [email protected]_BG; if( [email protected]_BG ) bg_destroy [email protected]_BG; // ===== Queue with Gepard ID [email protected]_Duplicate = queue(); [email protected]_Duplicate = queue(); deletearray [email protected]_QID[0], getarraysize( [email protected]_QID ); deletearray [email protected]_QID[0], getarraysize( [email protected]_QID ); .Leavers = 0; .Battle_State = 1; .BG_Tick = 0; .Player2Start = ( .BG_Min[ .Index ] * 2 ) - ( queuesize( [email protected]_Duplicate ) + queuesize( [email protected]_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( [email protected]_Duplicate ) + queuesize( [email protected]_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" ); } [email protected]_BG = bg_create_team( .BG_Map$[ .Index ], .BG_GuillX[ .Index ], .BG_GuillY[ .Index ], .BG_Arena$[ .Index ] + "::OnGuillameQuit", .BG_Arena$[ .Index ] + "::OnGuillameDie" ); [email protected]_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( [email protected]_QID ); .c ++ ) { if( !isloggedin( [email protected]_QID[ .c ] ) ) .Leavers ++; else bg_join_team( [email protected]_BG, [email protected]_QID[ .c ] ); } for( .g = 0; .g < getarraysize( [email protected]_QID ); .g ++ ) { if( !isloggedin( [email protected]_QID[ .g ] ) ) .Leavers ++; else bg_join_team( [email protected]_BG, [email protected]_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: [email protected]_IT1 = queueiterator( [email protected]_Duplicate ); [email protected]_IT2 = queueiterator( [email protected]_Duplicate ); if( qiget([email protected]_IT1) == ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) { queueremove( [email protected]_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ); for( [email protected] = 0; [email protected] < getarraysize( [email protected]_QID ); [email protected] ++ ) if( [email protected]_QID[ [email protected] ] == getcharid(3) ) deletearray [email protected]_QID[ [email protected] ], 1; [email protected] --; } else if( qiget([email protected]_IT2) == ( .MultipleCheck == 1? getcharid(0):getcharip() ) ) { queueremove( [email protected]_Duplicate, ( .MultipleCheck == 1? getcharid(0):getcharip() ) ); for( [email protected] = 0; [email protected] < getarraysize( [email protected]_QID ); [email protected] ++ ) if( [email protected]_QID[ [email protected] ] == getcharid(3) ) deletearray [email protected]_QID[ [email protected] ], 1; [email protected] --; } 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
  16. //===== rAthena Script ======================================= //= Battleground: PVP //===== By: ================================================== //= AnnieRuru //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A simple battleground script: //= Kill players from the other team. //===== Additional Comments: ================================= //= 1.0 First version, edited. [Euphy] //============================================================ - script bg_pvp#control -1,{ OnInit: .minplayer2start = 2; // minimum players to start (ex. if 3vs3, set to 3) .eventlasting = 20*60; // event duration before auto-reset (20 minutes * seconds) setarray .rewarditem[0], // rewards for the winning team: <item>,<amount>,... 501, 10; end; OnStart: if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end; // create Battleground and teams .red = waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ ); copyarray .team1aid, [email protected], [email protected]; .team1count = .minplayer2start; .blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ ); copyarray .team2aid, [email protected], [email protected]; .team2count = .minplayer2start; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; bg_warp .red, "guild_vs3", 13,50; bg_warp .blue, "guild_vs3", 86,50; .score[1] = .score[2] = .minplayer2start; bg_updatescore "guild_vs3", .score[1], .score[2]; // match duration sleep .eventlasting * 1000; // end match, destroy Battleground, reset NPCs if ( .score[1] > .score[2] ) { mapannounce "guild_vs3", "- Red Team is victorious! -", bc_map; callsub L_Reward, 1; } else if ( .score[1] < .score[2] ) { mapannounce "guild_vs3", "- Blue Team is victorious! -", bc_map; callsub L_Reward, 2; } else mapannounce "guild_vs3", "- The match has ended in a draw! -", bc_map; bg_warp .red, "prontera",152,178; bg_warp .blue, "prontera",154,178; bg_destroy .red; bg_destroy .blue; donpcevent .rednpcname$ +"::OnStart"; donpcevent .bluenpcname$ +"::OnStart"; end; L_Reward: for ( [email protected] = 0; [email protected] < getd(".team"+ getarg(0) +"count"); [email protected]++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(0) +"aid["+ [email protected] +"]" ); return; // "OnDeath" event OnRedDead: callsub L_Dead, 1; OnBlueDead: callsub L_Dead, 2; L_Dead: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2]; while ( getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ) != getcharid(3) && [email protected] < getd(".team"+ getarg(0) +"count") ) [email protected]++; deletearray getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; bg_leave; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); sleep2 1250; percentheal 100,100; end; // "OnQuit" event OnRedQuit: callsub L_Quit, 1; OnBlueQuit: callsub L_Quit, 2; L_Quit: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2]; percentheal 100, 100; while ( getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ) != getcharid(3) && [email protected] < getd(".team"+ getarg(0) +"count") ) [email protected]++; deletearray getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); end; } gonryun,153,107,5 script Red Team#bg_pvp 733,{ end; OnInit: sleep 1; set getvariableofnpc( .rednpcname$, "bg_pvp#control" ), strnpcinfo(0); OnStart: waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" ); end; } gonryun,153,104,5 script Blue Team#bg_pvp 734,{ end; OnInit: sleep 1; set getvariableofnpc( .bluenpcname$, "bg_pvp#control" ), strnpcinfo(0); OnStart: waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" ); end; } guild_vs3 mapflag battleground 2 guild_vs3 mapflag nosave SavePoint guild_vs3 mapflag nowarp guild_vs3 mapflag nowarpto guild_vs3 mapflag noteleport guild_vs3 mapflag nomemo guild_vs3 mapflag nopenalty guild_vs3 mapflag nobranch guild_vs3 mapflag noicewall Hi all, based on this script, can someone help me to add and edit: Announcement Player A has join the blue team and Player B has join the red team in battleground in the whole server. We need another 2 player to begin the battle. #The script will detect how much player need based on waiting room. Player A join blue team, Player B join red team, but when start auto shuffle to new team instead of same entered color ?
  17. The "Battleground" and the "Navigation" buttons are somehow useless for our clients, so i'm going to show you how to remove them from the client, keep in mind that this Technic is a little hackish as it consist in changing the HEX value, misleading the image information for those buttons. Needed: [*]HxD ( Or some other HEX editor ) [*]Your patched client ( Tested on 08.07a ) Search and replace the following Hex values to hide the buttons: Navigation: Search: [cbox]5C 62 74 6E 5F 4E 61 76 69 67 61 74 69 6F 6E[/cbox] Replace [cbox]5F 62 74 6E 5F 4E 61 76 69 67 61 74 69 6F 6E[/cbox] Battleground: Search: [cbox]5C 62 74 6E 5F 62 61 74 74 6C 65 5F 66 69 65 6C 64[/cbox] Replace [cbox]5F 62 74 6E 5F 62 61 74 74 6C 65 5F 66 69 65 6C 64[/cbox] Replacing the first 5C for a 5F is what i'm doing. What it does? It changes the image path, so the client do not reach and load the buttons. It goes well with the skin that I've released, where i hided the navigation from the menu for a better fit. raPzLight Skin Renewal 1.0 Category: Other Graphics Last Updated Jul 14 2014 02:57 AM That's it yall. ‚Äč
  18. Is there any toggle to disable the whole battleground system including the npcs, items, maps? I looked into conf/battle folder but could not find one.
  19. hi i am running server on hercules trunk i need help with battlegrounds. is it possible to make BG like eAthena / rAthena rA/eA mod in hercules? Capture The Flags, WOE Type Battle Ground / Team Vs Team / and all?? please help me . thank you
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.