//Le Livre d'Ymir http://www.bookofymir.net/ //traduit par No Healing, corrigé par Myllena // ============================================================================== // BattleGround System - Flavius 2 // ============================================================================== // Registration NPC's // ********************************************************************* bat_room,57,97,4 script Inscription::Fl2R_Guillaume 418,{ end; OnInit: waitingroom "Combat à 10 Joueurs",10,"Flavius_BG2::OnGuillaumeJoin",1; end; OnEnterBG: set $@FlaviusBG2_id1, waitingroom2bg("bat_b02",390,10,"Flavius_BG2::OnGuillaumeQuit",""); end; } bat_room,57,74,0 script Inscription::Fl2R_Croix 414,{ end; OnInit: waitingroom "Combat à 10 Joueurs",10,"Flavius_BG2::OnCroixJoin",1; end; OnEnterBG: set $@FlaviusBG2_id2, waitingroom2bg("bat_b02",10,290,"Flavius_BG2::OnCroixQuit",""); end; } // Battleground Engine // ********************************************************************* - script Flavius_BG2 -1,{ end; OnInit: disablenpc "Guillaume Vintenar#fl2"; disablenpc "Croix Vintenar#fl2"; disablenpc "Rebouteux#fl21"; disablenpc "Rebouteux#fl22"; end; OnGuillaumeQuit: OnCroixQuit: set BG_Delay_Tick, gettimetick(2) + 1200; end; OnGuillaumeJoin: OnCroixJoin: if( $@FlaviusBG2 == 0 ) donpcevent "Flavius_BG2::OnReadyCheck"; end; OnReadyCheck: if( $@FlaviusBG2 ) end; set .@Guillaume, getwaitingroomstate(0,"Fl2R_Guillaume"); set .@Croix, getwaitingroomstate(0,"Fl2R_Croix"); if( .@Guillaume < 10 || .@Croix < 10 ) { mapannounce "bat_room","Champ de Bataille -- Flavius [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",0,0x006400; end; } // BG Variables set $@FlaviusBG2, 1; set $@FlaviusBG2_Victory, 0; set .Guillaume_Score, 0; set .Guillaume_Loss, 0; set .Croix_Score, 0; set .Croix_Loss, 0; set .Match, 0; // Prepare NPC donpcevent "#gfl2_respawn::OnBGStart"; donpcevent "#cfl2_respawn::OnBGStart"; enablenpc "Rebouteux#fl21"; enablenpc "Rebouteux#fl22"; disablenpc "Guillaume Vintenar#fl2"; disablenpc "Croix Vintenar#fl2"; // Build and Warp Teams donpcevent "Fl2R_Guillaume::OnEnterBG"; donpcevent "Fl2R_Croix::OnEnterBG"; announce "Champ de Bataille -- La bataille de Flavius [80-99] vient de débuter!",0,0x808000; initnpctimer; // Start Match!! OnRoundStart: sleep 2000; if( $@FlaviusBG2 != 1 ) end; areapercentheal "bat_b02",382,2,397,17,100,100; areapercentheal "bat_b02",2,282,17,297,100,100; bg_warp $@FlaviusBG2_id1,"bat_b02",311,224; bg_warp $@FlaviusBG2_id2,"bat_b02",87,75; sleep 2000; if( $@FlaviusBG2 != 1 ) end; set .Match, .Match + 1; // Crystal Spawn set .Guillaume_Crystal, bg_monster($@FlaviusBG2_id1,"bat_b02",328,150,"Cristal de Guillaume",1914,"Flavius_BG2::OnGuillaumeBreak"); setwall "bat_b02",327,149,2,6,0,"gui_wall2-1"; setwall "bat_b02",329,149,2,0,0,"gui_wall2-2"; setwall "bat_b02",329,151,2,2,0,"gui_wall2-3"; setwall "bat_b02",327,151,2,4,0,"gui_wall2-4"; set .Croix_Crystal, bg_monster($@FlaviusBG2_id2,"bat_b02",62,150,"Cristal de Croix",1915,"Flavius_BG2::OnCroixBreak"); setwall "bat_b02",61,149,2,6,0,"cro_wall2-1"; setwall "bat_b02",63,149,2,0,0,"cro_wall2-2"; setwall "bat_b02",63,151,2,2,0,"cro_wall2-3"; setwall "bat_b02",61,151,2,4,0,"cro_wall2-4"; // Guardian Spawns bg_monster $@FlaviusBG2_id1,"bat_b02",328,160,"Garde de Guillaume",1949,"Flavius_BG2::OnGuiGuardian"; bg_monster $@FlaviusBG2_id1,"bat_b02",328,140,"Garde de Guillaume",1950,"Flavius_BG2::OnGuiGuardian"; set .Guillaume_Guardian, 2; bg_monster $@FlaviusBG2_id2,"bat_b02",62,160,"Garde de Croix",1949,"Flavius_BG2::OnCroGuardian"; bg_monster $@FlaviusBG2_id2,"bat_b02",61,140,"Garde de Croix",1950,"Flavius_BG2::OnCroGuardian"; set .Croix_Guardian, 2; // Announces mapannounce "bat_b02","Le round [ " + .Match + " ] de la bataille de Flavius vient de débuter!!",0,0x808000; end; OnRoundStop: // Remove Monsters killmonster "bat_b02","Flavius_BG2::OnGuiGuardian"; killmonster "bat_b02","Flavius_BG2::OnCroGuardian"; delwall "gui_wall2-1"; delwall "gui_wall2-2"; delwall "gui_wall2-3"; delwall "gui_wall2-4"; killmonster "bat_b02","Flavius_BG2::OnGuillaumeBreak"; delwall "cro_wall2-1"; delwall "cro_wall2-2"; delwall "cro_wall2-3"; delwall "cro_wall2-4"; killmonster "bat_b02","Flavius_BG2::OnCroixBreak"; end; OnGuiGuardian: if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 ) { delwall "gui_wall2-1"; delwall "gui_wall2-2"; delwall "gui_wall2-3"; delwall "gui_wall2-4"; mapannounce "bat_b02","Le Cristal de Guillaume est maintenant vulnérable aux attaques!",0,0x0000FF; } end; OnCroGuardian: if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 ) { delwall "cro_wall2-1"; delwall "cro_wall2-2"; delwall "cro_wall2-3"; delwall "cro_wall2-4"; mapannounce "bat_b02","Le Cristal de Croix est maintenant vulnérable aux attaques!",0,0xFF0000; } end; OnGuillaumeBreak: donpcevent "Flavius_BG2::OnRoundStop"; set .Guillaume_Loss, .Guillaume_Loss + 1; if( set(.Croix_Score, .Croix_Score + 1) < 2 ) { bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; mapannounce "bat_b02","Le Cristal de Guillaume vient d'être détruit!",0,0x0000FF; donpcevent "Flavius_BG2::OnRoundStart"; } else { bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; mapannounce "bat_b02","L'armée de Croix remporte la Bataille de Flavius!",0,0xFF0000; set $@FlaviusBG2_Victory, 2; donpcevent "Flavius_BG2::OnMatchEnd"; } end; OnCroixBreak: donpcevent "Flavius_BG2::OnRoundStop"; set .Croix_Loss, .Croix_Loss + 1; if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 ) { bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; mapannounce "bat_b02","Le Cristal de Croix vient d'être détruit!",0,0xFF0000; donpcevent "Flavius_BG2::OnRoundStart"; } else { bg_updatescore "bat_b02",.Guillaume_Score,.Croix_Score; mapannounce "bat_b02","L'armée de Guillaume remporte la Bataille de Flavius!",0,0x0000FF; set $@FlaviusBG2_Victory, 1; donpcevent "Flavius_BG2::OnMatchEnd"; } end; OnTimer2400000: mapannounce "bat_b02","La Bataille de Flavius prendra fin dans 5 minutes.",0,0x808000; end; OnTimer2640000: mapannounce "bat_b02","La Bataille de Flavius prendra fin dans 1 minute.",0,0x808000; end; OnTimer2700000: if( .Croix_Score > .Guillaume_Score ) { mapannounce "bat_b02","L'armée de Croix a remporté la Bataille de Flavius!",0,0xFF0000; set $@FlaviusBG2_Victory, 2; } else if( .Croix_Score < .Guillaume_Score ) { mapannounce "bat_b02","L'armée de Guillaume a remporté la Bataille de Flavius!",0,0x0000FF; set $@FlaviusBG2_Victory, 1; } else { mapannounce "bat_b02","La Bataille de Flavius est terminée. Elle s'achève par une égalité!",0,0x808000; set $@FlaviusBG2_Victory, 3; } OnMatchEnd: set $@FlaviusBG2, 2; stopnpctimer; donpcevent "#gfl2_respawn::OnBGStop"; donpcevent "#cfl2_respawn::OnBGStop"; disablenpc "Rebouteux#fl21"; disablenpc "Rebouteux#fl22"; enablenpc "Guillaume Vintenar#fl2"; enablenpc "Croix Vintenar#fl2"; sleep 2000; bg_warp $@FlaviusBG2_id1,"bat_b02",390,10; bg_warp $@FlaviusBG2_id2,"bat_b02",10,290; sleep 3000; mapannounce "bat_b02","La Bataille de Flavius prendra fin dans 1 minute!",0,0x808000; initnpctimer; end; OnTimer30000: if( $@FlaviusBG2 == 2 ) mapannounce "bat_b02","La Bataille de Flavius prendra fin dans 30 secondes!",0,0x808000; end; OnTimer50000: if( $@FlaviusBG2 == 2 ) mapannounce "bat_b02","La Bataille de Flavius prendra fin dans 10 secondes!",0,0x808000; end; OnTimer60000: if( $@FlaviusBG2 != 2 ) end; OnReset: stopnpctimer; donpcevent "Flavius_BG2::OnRoundStop"; set .Guillaume_Score, 0; set .Guillaume_Crystal, 0; set .Guillaume_Loss, 0; set .Croix_Score, 0; set .Croix_Crystal, 0; set .Croix_Loss, 0; set .Match, 0; set $@FlaviusBG2_Victory, 0; // NPC's disablenpc "Guillaume Vintenar#fl2"; disablenpc "Croix Vintenar#fl2"; disablenpc "Rebouteux#fl21"; disablenpc "Rebouteux#fl22"; if( $@FlaviusBG2_id1 ) { bg_destroy $@FlaviusBG2_id1; set $@FlaviusBG2_id1, 0; } if( $@FlaviusBG2_id2 ) { bg_destroy $@FlaviusBG2_id2; set $@FlaviusBG2_id2, 0; } sleep 1000; mapwarp "bat_b02","bat_room",155,150; sleep 2000; maprespawnguildid "bat_b02",0,3; // Just in case someone else sleep 2000; bg_updatescore "bat_b02",0,0; set $@FlaviusBG2, 0; donpcevent "Flavius_BG2::OnReadyCheck"; end; } // Battleground rewards // ********************************************************************* bat_b02,390,13,5 script Aide de Camp (Guillaume)::Guillaume Vintenar#fl2 419,{ if( $@FlaviusBG2_Victory ) { if( $@FlaviusBG2_Victory == Bat_Team ) { // Victory mes "[Swandery]"; mes "Guillaume le Très Saint!!"; mes "Festoyons à notre glorieuse victoire!"; mes "" + strcharinfo(0) + ", voici un symbole de notre triomphe."; close2; set .@Reward, 9; } else { // 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; set .@Reward, 3; } setquest 2070; getitem 7829, .@Reward; bg_leave; warp "bat_room",155,150; end; } end; } bat_b02,10,293,5 script Aide de Camp (Croix)::Croix Vintenar#fl2 415,{ if( $@FlaviusBG2_Victory ) { if( $@FlaviusBG2_Victory == Bat_Team ) { // Victory mes "[Swandery]"; mes "Croix le Très Saint!!"; mes "Festoyons à notre glorieuse victoire!"; mes "" + strcharinfo(0) + ", voici un symbole de notre triomphe."; close2; set .@Reward, 9; } else { // 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; set .@Reward, 3; } setquest 2070; getitem 7829, .@Reward; bg_leave; warp "bat_room",155,150; end; } end; } // Battleground Therapist // ********************************************************************* bat_b02,390,13,5 script Rebouteux#fl22 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_b02,10,293,5 script Rebouteux#fl21 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 Respawn // ********************************************************************* bat_b02,390,10,0 script #gfl2_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer24000: misceffect 83; end; OnTimer25000: areapercentheal "bat_b02",382,2,397,17,100,100; areawarp "bat_b02",382,2,397,17,"bat_b02",311,224; initnpctimer; end; } bat_b02,10,290,0 script #cfl2_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer24000: misceffect 83; end; OnTimer25000: areapercentheal "bat_b02",2,282,17,297,100,100; areawarp "bat_b02",2,282,17,297,"bat_b02",87,75; initnpctimer; end; } // Flags // ********************************************************************* bat_b02,304,231,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat32 973 bat_b02,319,231,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat33 973 bat_b02,304,218,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat34 973 bat_b02,319,218,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat35 973 bat_b02,304,231,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat36 973 bat_b02,304,231,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat37 973 bat_b02,335,142,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat38 973 bat_b02,335,157,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat39 973 bat_b02,390,16,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat40 973 bat_b02,292,163,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat41 973 bat_b02,292,136,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat42 973 bat_b02,241,185,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat43 973 bat_b02,247,179,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat44 973 bat_b02,96,81,1 duplicate(Camp de Croix#bat) Camp de Croix#bat30 974 bat_b02,96,68,1 duplicate(Camp de Croix#bat) Camp de Croix#bat31 974 bat_b02,79,81,1 duplicate(Camp de Croix#bat) Camp de Croix#bat32 974 bat_b02,79,68,1 duplicate(Camp de Croix#bat) Camp de Croix#bat33 974 bat_b02,96,81,1 duplicate(Camp de Croix#bat) Camp de Croix#bat34 974 bat_b02,96,81,1 duplicate(Camp de Croix#bat) Camp de Croix#bat35 974 bat_b02,59,164,1 duplicate(Camp de Croix#bat) Camp de Croix#bat36 974 bat_b02,59,137,1 duplicate(Camp de Croix#bat) Camp de Croix#bat37 974 bat_b02,10,296,1 duplicate(Camp de Croix#bat) Camp de Croix#bat38 974 bat_b02,110,162,1 duplicate(Camp de Croix#bat) Camp de Croix#bat39 974 bat_b02,110,137,1 duplicate(Camp de Croix#bat) Camp de Croix#bat40 974 bat_b02,152,120,1 duplicate(Camp de Croix#bat) Camp de Croix#bat41 974 bat_b02,158,114,1 duplicate(Camp de Croix#bat) Camp de Croix#bat42 974 // MapFlags // ********************************************************************* bat_b02 mapflag battleground bat_b02 mapflag nomemo bat_b02 mapflag nosave SavePoint bat_b02 mapflag noteleport bat_b02 mapflag nowarp bat_b02 mapflag nowarpto bat_b02 mapflag noreturn bat_b02 mapflag nobranch bat_b02 mapflag nopenalty