//= Le Livre d'Ymir http://www.bookofymir.net/ //= traduit par No Healing // ============================================================================== // BattleGround System - KvM 1~59 // ============================================================================== // Registration NPC's // ********************************************************************* bat_room,197,227,4 script Inscription::KvM03R_Guillaume 418,{ // KvM Guillaume end; OnInit: waitingroom "Combat à 5 Joueurs",5,"KvM03_BG::OnGuillaumeJoin",1; end; OnEnterBG: set $@KvM03BG_id1, waitingroom2bg("bat_c03",53,128,"KvM03_BG::OnGuillaumeQuit","KvM03_BG::OnGuillaumeDie"); end; } bat_room,197,204,0 script Inscription::KvM03R_Croix 414,{ // KvM Croix end; OnInit: waitingroom "Combat à 5 Joueurs",5,"KvM03_BG::OnCroixJoin",1; end; OnEnterBG: set $@KvM03BG_id2, waitingroom2bg("bat_c03",146,55,"KvM03_BG::OnCroixQuit","KvM03_BG::OnCroixDie"); end; } // Light Effects // ********************************************************************* bat_c03,54,123,0 script #bat_c03a 111,{ end; OnKvM03LightA: misceffect 54; end; OnKvM03LightB: misceffect 55; end; OnKvM03LightC: misceffect 56; end; } bat_c03,56,125,0 duplicate(#bat_c03a) #bat_c03b 111 bat_c03,58,127,0 duplicate(#bat_c03a) #bat_c03c 111 bat_c03,141,56,0 duplicate(#bat_c03a) #bat_c03d 111 bat_c03,143,58,0 duplicate(#bat_c03a) #bat_c03e 111 bat_c03,145,60,0 duplicate(#bat_c03a) #bat_c03f 111 // Battleground Engine // ********************************************************************* - script KvM03_BG -1,{ end; OnInit: setwall "bat_c03",54,122,6,7,0,"batc03wall_a"; setwall "bat_c03",55,122,5,7,0,"batc03wall_b"; setwall "bat_c03",140,56,6,7,0,"batc03wall_c"; setwall "bat_c03",140,57,5,7,0,"batc03wall_d"; disablenpc "TherapistKvM03a"; disablenpc "TherapistKvM03b"; disablenpc "VintenarKvM03a"; disablenpc "VintenarKvM03b"; end; OnGuillaumeJoin: OnCroixJoin: donpcevent "KvM03_BG::OnReadyCheck"; end; OnGuillaumeQuit: set BG_Delay_Tick, gettimetick(2) + 1200; OnGuillaumeDie: if( $@KvM03BG == 2 ) { set .Guillaume_Count, .Guillaume_Count - 1; set .Croix_Score, .Croix_Score + 1; bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score; if( .Guillaume_Count < 1 ) donpcevent "KvM03_BG::OnCroixWin"; } end; OnCroixQuit: set BG_Delay_Tick, gettimetick(2) + 1200; OnCroixDie: if( $@KvM03BG == 2 ) { set .Croix_Count, .Croix_Count - 1; set .Guillaume_Score, .Guillaume_Score + 1; bg_updatescore "bat_c03",.Guillaume_Score,.Croix_Score; if( .Croix_Count < 1 ) donpcevent "KvM03_BG::OnGuillaumeWin"; } end; OnReadyCheck: if( $@KvM03BG ) end; set .@Guillaume, getwaitingroomstate(0,"KvM03R_Guillaume"); set .@Croix, getwaitingroomstate(0,"KvM03R_Croix"); if( .@Guillaume < 5 || .@Croix < 5 ) { if( .@Guillaume > 3 && .@Croix > 3 && !agitcheck() && $@KvM_Flood < gettimetick(2) ) { announce "Champ de Bataille -- Kreiger Von Midgard [1-59] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",0,0xC0C0C0; set $@KvM_Flood, gettimetick(2) + 15; } else mapannounce "bat_room","Champ de Bataille -- Kreiger Von Midgard [1-59] G: " + .@Guillaume + "/5, C: " + .@Croix + "/5",0,0xC0C0C0; end; } set $@KvM03BG, 1; // Starting donpcevent "KvM03R_Croix::OnEnterBG"; donpcevent "KvM03R_Guillaume::OnEnterBG"; donpcevent "KvM03_BG::OnStart"; end; OnStart: announce "Champ de Bataille -- La bataille de Kreiger Von Midgard [1-59] vient de débuter!",0,0xC0C0C0; enablenpc "TherapistKvM03a"; enablenpc "TherapistKvM03b"; disablenpc "VintenarKvM03a"; disablenpc "VintenarKvM03b"; set $@KvM03BG_Victory, 0; sleep 2000; // Warp Teams bg_warp $@KvM03BG_id1,"bat_c03",53,128; bg_warp $@KvM03BG_id2,"bat_c03",146,55; // ScoreBoard set .Guillaume_Score, 0; set .Croix_Score, 0; initnpctimer; end; OnTimer5000: areapercentheal "bat_c03",50,123,58,131,100,100; areapercentheal "bat_c03",141,52,149,60,100,100; mapannounce "bat_c03","La bataille commencera dans 25 secondes!",0,0xC0C0C0; end; OnTimer26000: mapannounce "bat_c03","La bataille commencera dans 4 secondes!",0,0xC0C0C0; end; OnTimer27000: donpcevent "::OnKvM03LightA"; end; OnTimer28000: donpcevent "::OnKvM03LightB"; end; OnTimer29000: donpcevent "::OnKvM03LightC"; end; OnTimer30000: // Team Members set .Guillaume_Count, bg_get_data($@KvM03BG_id1, 0); set .Croix_Count, bg_get_data($@KvM03BG_id2, 0); if( .Guillaume_Count < 5 || .Croix_Count < 5 ) { set $@KvM03BG_Victory, 3; set $@KvM03BG, 3; mapannounce "bat_c03","Il n'y a pas assez de participants pour commencer la bataille.",0,0xC0C0C0; stopnpctimer; sleep 2000; donpcevent "KvM03_BG::OnStop"; end; } set $@KvM03BG, 2; // Playing areapercentheal "bat_c03",50,123,58,131,100,100; bg_warp $@KvM03BG_id1,"bat_c03",62,119; areapercentheal "bat_c03",141,52,149,60,100,100; bg_warp $@KvM03BG_id2,"bat_c03",137,64; end; OnTimer32000: mapannounce "bat_c03","La bataille de Kreiger Von Midgard vient de commencer!",0,0xC0C0C0; end; OnTimer300000: mapannounce "bat_c03","La bataille se terminera dans 30 secondes!",0,0xC0C0C0; end; OnTimer330000: if( .Croix_Count > .Guillaume_Count ) donpcevent "KvM03_BG::OnCroixWin"; else if( .Croix_Count < .Guillaume_Count ) donpcevent "KvM03_BG::OnGuillaumeWin"; else { // Draw Game set $@KvM03BG, 3; set $@KvM03BG_Victory, 3; stopnpctimer; sleep 2000; mapannounce "bat_c03","La Bataille est terminée. Elle s'achève par une égalité!",0,0xC0C0C0; donpcevent "KvM03_BG::OnStop"; } end; OnGuillaumeWin: set $@KvM03BG, 3; set $@KvM03BG_Victory, 1; stopnpctimer; sleep 2000; mapannounce "bat_c03","L'armée de Guillaume remporte la bataille de Kreiger Von Midgard!",0,0x0000FF; donpcevent "KvM03_BG::OnStop"; end; OnCroixWin: set $@KvM03BG, 3; set $@KvM03BG_Victory, 2; stopnpctimer; sleep 2000; mapannounce "bat_c03","L'armée de Croix remporte la bataille de Kreiger Von Midgard!",0,0xFF0000; donpcevent "KvM03_BG::OnStop"; end; OnStop: disablenpc "TherapistKvM03a"; disablenpc "TherapistKvM03b"; enablenpc "VintenarKvM03a"; enablenpc "VintenarKvM03b"; // Warp Teams bg_warp $@KvM03BG_id1,"bat_c03",53,128; bg_warp $@KvM03BG_id2,"bat_c03",146,55; donpcevent "KvM03_BG_Out::OnBegin"; end; OnReset: stopnpctimer; stopnpctimer "KvM03_BG_Out"; set .Croix_Count, 0; set .Guillaume_Count, 0; set .Croix_Score, 0; set .Guillaume_Score, 0; set $@KvM03BG_Victory, 0; if( $@KvM03BG_id1 ) { bg_destroy $@KvM03BG_id1; set $@KvM03BG_id1, 0; } if( $@KvM03BG_id2 ) { bg_destroy $@KvM03BG_id2; set $@KvM03BG_id2, 0; } disablenpc "TherapistKvM03a"; disablenpc "TherapistKvM03b"; disablenpc "VintenarKvM03a"; disablenpc "VintenarKvM03b"; sleep 1000; mapwarp "bat_c03","bat_room",155,150; sleep 2000; maprespawnguildid "bat_c03",0,3; // Just in case someone else bg_updatescore "bat_c03",0,0; sleep 2000; set $@KvM03BG, 0; donpcevent "KvM03_BG::OnReadyCheck"; // Maybe a game is ready to start end; } - script KvM03_BG_Out -1,{ end; OnBegin: initnpctimer; end; OnTimer3000: mapannounce "bat_c03","La Bataille de Kreiger Von Midgard se terminera dans 1 minute!",0,0xC0C0C0; end; OnTimer30000: mapannounce "bat_c03","La Bataille de Kreiger Von Midgard se terminera dans 30 secondes!",0,0xC0C0C0; end; OnTimer50000: mapannounce "bat_c03","La Bataille de Kreiger Von Midgard se terminera dans 10 secondes!",0,0xC0C0C0; end; OnTimer60000: donpcevent "KvM03_BG::OnReset"; end; } // Battleground Therapist // ********************************************************************* bat_c03,51,130,5 script Rebouteux::TherapistKvM03a 95,{ mes "[Rebouteux]"; mes "Serre bien les dents mon p'tit gars, et prends une bonne bouffée d'air. Ça risque de faire un peu mal..."; specialeffect2 312; close; } bat_c03,148,53,1 script Rebouteux::TherapistKvM03b 95,{ mes "[Rebouteux]"; mes "Serre bien les dents mon p'tit gars, et prends une bonne bouffée d'air. Ça risque de faire un peu mal..."; specialeffect2 312; close; } // Battleground rewards // ********************************************************************* bat_c03,51,130,5 script Aide de Camp (Guillaume)::VintenarKvM03a 419,{ if( $@KvM03BG_Victory ) { if( $@KvM03BG_Victory == 3 ) { setquest 6025; bg_leave; warp "bat_room",155,150; end; } else if( $@KvM03BG_Victory == Bat_Team ) { // Victory set .@Reward, 1; mes "[Swandery]"; mes "Guillaume le Très Saint!!"; mes "Festoyons à notre glorieuse victoire!"; mes "" + strcharinfo(0) + ", voici un symbole de notre triomphe."; close2; } else { // set .@Reward, 0; mes "[Swandery]"; mes "Nous avons failli, mais vous avez su faire preuve de bravoure sur le champ de bataille. Voici de quoi récompenser votre dévotion envers Guillaume Marollo! Que cette défaite soit pour nous une leçon et nous rende plus forts."; close2; } setquest 6025; getitem 7773, .@Reward; bg_leave; warp "bat_room",155,150; end; } end; } bat_c03,148,53,1 script Aide de Camp (Croix)::VintenarKvM03b 415,{ if( $@KvM03BG_Victory ) { if( $@KvM03BG_Victory == 3 ) { setquest 6025; bg_leave; warp "bat_room",155,150; end; } else if( $@KvM03BG_Victory == Bat_Team ) { // Victory set .@Reward, 1; mes "[Swandery]"; mes "Croix le Très Saint!!"; mes "Festoyons à notre glorieuse victoire!"; mes "" + strcharinfo(0) + ", voici un symbole de notre triomphe."; close2; } else { // set .@Reward, 0; mes "[Swandery]"; mes "Point de larmes ni de regrets, " + strcharinfo(0) + ". Nous avons failli, mais nous avons aussi su faire preuve de bravoure. Voici un présent royal de Croix. Puisse-t-il vous permettre de ne jamais oublier cette bataille. Que la prochaine soit celle de notre triomphe!"; close2; } setquest 6025; getitem 7773, .@Reward; bg_leave; warp "bat_room",155,150; end; } end; } // MapFlags // ********************************************************************* bat_c03 mapflag battleground 2 bat_c03 mapflag nomemo bat_c03 mapflag nosave SavePoint bat_c03 mapflag noteleport bat_c03 mapflag nowarp bat_c03 mapflag nowarpto bat_c03 mapflag noreturn bat_c03 mapflag nobranch bat_c03 mapflag nopenalty