Sallycantdance Posted January 13, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: 20 hours ago Share Posted January 13, 2021 (edited) hi everyone i would like to ask if how can i add more teams/guild allowed to join in Sir @Mabuhay Automated GvG event Script. thanks in advance Automated GvG Event v2 - PvP, GvG, WoE, Battleground - rAthena Script:/ / Automated GvG Event 2.0 Beta version // Event runs every hour via OnMinute timer. // Feel free to edit as you wish // By : Mabuhay // Free release // Dont remove credit // Updated to v 2.0 /* - Added gepard support and check to every members - More flexible options - Can set cash, members, timer, and winpoints if gm starts the command. New mechanics. - When using @gvgeventjoin, all your members must be around you by 5x5 cell. NOTE: item rewards are only to be set here in script because adding them in the GM option would be quite troublesome for me */ // - script gvg_event -1,{ OnInit: // How many guild members are required? .membercount = 1; // registration timer in mins. .timer = 3; // how much points to win? Points is earned per kill .win_points = 2; // item reward // <item_id>, <amount> setarray .item, 7179, 20, 14003, 5; // how much cash points earned // set to 0 to disable .cash = 0; .size = getarraysize(.item); bindatcmd "gvgeventstart", strnpcinfo(0)+"::OnStartEvent",60,60; bindatcmd "gvgeventend", strnpcinfo(0)+"::OnEndEvent",60,60; bindatcmd "gvgeventjoin", strnpcinfo(0)+"::OnJoinEvent"; end; OnStartEvent: mes "Hi GM, what do you want to do?"; mes "Current settings :"; mes "Member count : "+ $gvgevent_mem; mes "Registration time : "+ $gvgevent_time; mes "Win points : "+ $gvgevent_winpts; mes "Cashpoint reward : "+ $gvgevent_cash; next; switch(select("Start Event:Set Mem Count:Set Reg timer:Set Win Points:Set Cashpoint Reward")) { case 1: mes "Starting event.."; close2; break; case 2: mes "Enter member count value"; mes "current : "+ $gvgevent_mem; next; input .@amt, 1; mes "Do you want to set member count to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_mem = .@amt; end; case 3: mes "Enter registration time value"; mes "current : "+ $gvgevent_time; next; input .@amt, 1; mes "Do you want to set registration time to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_time = .@amt; end; case 4: mes "Enter win points value"; mes "current : "+ $gvgevent_winpts; next; input .@amt, 1; mes "Do you want to set win points to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_winpts = .@amt; end; case 5: mes "To disable, set to zero (0)"; mes "current : "+ $gvgevent_cash; next; input .@amt; mes "Do you want to set cashpoints to "+ .@amt +"?"; next; select("Yes"); mes "Done!"; close2; $gvgevent_cash = .@amt; end; } OnMinute00: // runs every hour.. if ( .start ) end; .start = 1; .@m = $gvgevent_mem; gvgoff "guild_vs1"; for ( .@j = 1; .@j < 9; .@j++ ) enablenpc "#bari0"+.@j; setwall "guild_vs1", 12, 48, 4, DIR_NORTH, 0, "wonderwall_1"; setwall "guild_vs1", 87, 48, 4, DIR_NORTH, 0, "wonderwall_2"; for ( .@i = $gvgevent_time; .@i > 0; .@i-- ) { if ( .start < 2 ) { announce "<"+.@m+"v"+.@m+" Guild Event> Event start in "+.@i+" min(s) until slots are taken. Register now.", bc_all; sleep 60000; } } if ( !.slot1 || !.slot2 ) { announce "<"+.@m+"v"+.@m+" Guild Event> Event is cancelled. Not enough participants.", bc_all; donpcevent strnpcinfo(0)+"::OnEndEvent"; end; } announce "<"+.@m+"v"+.@m+" Guild Event> Guild ["+getguildname(.slot1)+"] vs Guild ["+getguildname(.slot2)+"].", bc_all; end; OnJoinEvent: .@GID = getcharid(2); if (.@GID == 0) { mes "Sorry, you are not in a guild."; close; } if (!is_guild_leader(.@GID)) { mes "Sorry, only your guild master can register."; close; } if ( !.start ) { mes "Event has not started."; close; } else if ( .start == 2 ) { mes "Event is still on-going."; close; } else { if ( .slot1 && .slot2 ) { mes "All slots has been taken."; close; } if ( !.slot1 ) .@slot = 1; else if ( !.slot2) .@slot = 2; if ( .slot1 == .@GID ) { mes "You're guild has already registered."; close; } getmapxy(.@map$, .@x, .@y, BL_PC); getareaunits(BL_PC,.@map$,.@x+5,.@y+5,.@x-5,.@y-5,.@char_name$[0]); freeloop(true); for(.@i=0;.@i<getarraysize(.@char_name$);.@i++) if ( getcharid(2, .@char_name$[.@i] ) == .@GID ) { if ( .gepard ) { query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+ getcharid(3, .@char_name$[.@i] ) +"'", .@unique_id$); .@gvg_gepard$[.@gsize++] = .@unique_id$; if ( countinarray( .@gvg_gepard$[0], .@unique_id$ ) > 1 ) .@duplicate++; } .@current_mem++; .@aid[.@size++] = convertpcinfo(.@char_name$[.@i], CPC_ACCOUNT); .@validmem$[.@size2++] = .@char_name$[.@i]; } freeloop(false); if ( .@current_mem < $gvgevent_mem ) { mes "You need at least "+$gvgevent_mem+" guild members around you"+(.gepard ? " with unique gepard id":"")+"."; close; } if ( .@current_mem > $gvgevent_mem ) { mes "You need only need "+$gvgevent_mem+" guild members around you"+(.gepard ? " with unique gepard id":"")+"."; close; } if ( .gepard && .@duplicate ) { mes "Gepard ID duplicate detected."; mes "A member around you is using dual account."; close; } mes "Participating members are :"; for ( .@i = 0; .@i < .@size2; .@i++) mes "~ "+ .@validmem$[.@i]; next; mes "Are you ready ?"; next; select("Yes"); switch ( .@slot ) { case 1: .slot1 = .@GID; break; case 2: .slot2 = .@GID; break; } for ( .@j = 0; .@j < .@size; .@j++ ) { attachrid(.@aid[.@j]); .@gid = getcharid(2); sc_end SC_ALL; // remove all status buffs percentheal 100,100; // heals before warp warp "guild_vs1", ( .slot1 == .@gid ) ? 7 : 92, 50; } detachrid; if ( .slot1 && .slot2 ) { .start = 2; awake strnpcinfo(0); sleep 3000; mapannounce "guild_vs1", "Get ready !~", bc_blue; sleep 2000; for ( .@i = 5; .@i > 0; --.@i ) { mapannounce "guild_vs1", .@i +" !~", bc_blue; sleep 1000; } mapannounce "guild_vs1", "Start !~", bc_blue; gvgon "guild_vs1"; for ( .@j = 1; .@j < 9; .@j++ ) disablenpc "#bari0"+.@j; delwall "wonderwall_1"; delwall "wonderwall_2"; } } end; OnPCKillEvent: if ( .start && strcharinfo(3) == "guild_vs1" ) { .@GID = getcharid(2); if ( .@GID == .slot1 ) .guild1_score++; else if ( .@GID == .slot2 ) .guild2_score++; mapannounce "guild_vs1", strcharinfo(0) +" of Guild ["+getguildname(.@GID)+"] has pawned "+ rid2name(killedrid), bc_blue; mapannounce "guild_vs1", "Guild ["+getguildname(.slot1)+"] - "+.guild1_score+" || Guild ["+getguildname(.slot2)+"] - "+.guild2_score+"", bc_blue; if ( .guild1_score == $gvgevent_winpts || .guild2_score == $gvgevent_winpts ) { gvgoff "guild_vs1"; if ( .guild1_score > .guild2_score ) { .winner = .slot1; .loser = .slot2; } else { .winner = .slot2; .loser = .slot1; } .@m = $gvgevent_mem; announce "<"+.@m+"v"+.@m+" Guild Event> Guild ["+getguildname(.winner)+"] is victorious against Guild ["+getguildname(.loser)+"] !", bc_all; mapannounce "guild_vs1", "Rewards will be delivered in few seconds before warping out.", bc_blue; sleep 8000; // 8 sec pause so participating members can re-warp if dead getmapunits(BL_PC, "guild_vs1", .@aid[0]); for(.@i=0;.@i<getarraysize(.@aid);.@i++) { attachrid(.@aid[.@i]); if ( getcharid(2) == .winner ) { // if winner for ( .@j = 0; .@j < .size; .@j+=2 ) getitem .item[.@j], .item[.@j+1]; if ( $gvgevent_cash ) { #CASHPOINTS += $gvgevent_cash; dispbottom "You have gained "+$gvgevent_cash+" cashpoints. Total : "+ #CASHPOINTS; } } else if ( getcharid(2) == .loser ) { // if loser dispbottom "Thank you for participating GvG Event."; } } detachrid; sleep 2000; // 2 sec pause.. donpcevent strnpcinfo(0)+"::OnEndEvent"; end; } attachrid( killedrid ); .@GID = getcharid(2); if ( .@GID == .slot1 || .@GID == .slot2 ) { dispbottom "You will be warped back to the battle area in few secs."; sleep2 4000; // return to battle in 5 sec warp "guild_vs1", (.@GID == .slot1) ? 7:(.@GID == .slot2) ? 92:50, 50; sleep2 1000; // heal in 1 sec percentheal 100,100; } } end; OnEndEvent: if ( !.start ) end; .start = .slot1 = .slot2 = .loser = .winner = .guild1_score = .guild2_score = false; mapwarp "guild_vs1", "prontera", 150, 180; end; } // Barricades guild_vs1,12,48,0 script #bari01 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,12,49,0 script #bari02 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,12,50,0 script #bari03 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,12,51,0 script #bari04 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,48,0 script #bari05 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,49,0 script #bari06 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,50,0 script #bari07 1906,{ end; OnInit: disablenpc strnpcinfo(0); } guild_vs1,87,51,0 script #bari08 1906,{ end; OnInit: disablenpc strnpcinfo(0); } Edited January 13, 2021 by Mael Use codebox Quote Link to comment Share on other sites More sharing options...
0 hikashin-rae Posted January 13, 2021 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 213 Reputation: 24 Joined: 01/14/13 Last Seen: Sunday at 08:40 PM Share Posted January 13, 2021 Increase slots will do. atm i can see on your script it only allow 2 guild to participate. Just increase the slots it will do. 1 Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted January 13, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: 20 hours ago Author Share Posted January 13, 2021 39 minutes ago, Cookie-rae said: Increase slots will do. atm i can see on your script it only allow 2 guild to participate. Just increase the slots it will do. thanks sir did you mean here? } else { if ( .slot1 && .slot2 ) { mes "All slots has been taken."; close; } if ( !.slot1 ) .@slot = 1; else if ( !.slot2) .@slot = 2; if ( .slot1 == .@GID ) { mes "You're guild has already registered."; close; Quote Link to comment Share on other sites More sharing options...
0 hikashin-rae Posted January 13, 2021 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 213 Reputation: 24 Joined: 01/14/13 Last Seen: Sunday at 08:40 PM Share Posted January 13, 2021 Yes correct. not only that just check all slots info. Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted January 13, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: 20 hours ago Author Share Posted January 13, 2021 Just now, Cookie-rae said: Yes correct. not only that just check all slots info. thank you sir i will try it hope i can fix it alone thanks again godbless you Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted January 13, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: 20 hours ago Author Share Posted January 13, 2021 29 minutes ago, Cookie-rae said: Yes correct. not only that just check all slots info. i already add the slots but the problem is all of them are warping in the same room Quote Link to comment Share on other sites More sharing options...
0 hikashin-rae Posted January 13, 2021 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 213 Reputation: 24 Joined: 01/14/13 Last Seen: Sunday at 08:40 PM Share Posted January 13, 2021 (edited) 8 hours ago, chadness said: warp "guild_vs1", ( .slot1 == .@gid ) ? 7 : 92, 50; You need to check this. 8 hours ago, chadness said: if ( .@GID == .slot1 || .@GID == .slot2 ) { dispbottom "You will be warped back to the battle area in few secs."; sleep2 4000; // return to battle in 5 sec warp "guild_vs1", (.@GID == .slot1) ? 7:(.@GID == .slot2) ? 92:50, 50; sleep2 1000; // heal in 1 sec percentheal 100,100; } Then this please do warp coordinations. Edited January 13, 2021 by Cookie-rae Edit Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted January 13, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: 20 hours ago Author Share Posted January 13, 2021 7 minutes ago, Cookie-rae said: You need to check this. Then this please do warp coordinations. percentheal 100,100; // heals before warp warp "guild_vs1", ( .slot1 == .@gid ) ? 7 : 92, 50:(.@GID == .slot3) ? 49:90, 50:(.@GID == .slot4) ? 49:7, 50; sleep2 4000; // return to battle in 5 sec warp "guild_vs1", (.@GID == .slot1) ? 7:(.@GID == .slot2) ? 92:50, 50:(.@GID == .slot3) ? 49:90, 50:(.@GID == .slot4) ? 49:7, 50; i didnt get what does the yellow 50 means since so i just copied it in my next coordinations can you help me? Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted January 14, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: 20 hours ago Author Share Posted January 14, 2021 up Quote Link to comment Share on other sites More sharing options...
Question
Sallycantdance
hi everyone i would like to ask if how can i add more teams/guild allowed to join in Sir @Mabuhay Automated GvG event Script. thanks in advance
Automated GvG Event v2 - PvP, GvG, WoE, Battleground - rAthena
Script:/
Use codebox
Link to comment
Share on other sites
8 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.