//Le Livre d'Ymir http://www.bookofymir.net/ //traduit par No Healing, corrigé par Myllena // ============================================================================== // BattleGround System - Flavius 1 // ============================================================================== // Registration NPC's // ********************************************************************* bat_room,253,97,4 script Inscription::Fl1R_Guillaume 418,{ end; OnInit: waitingroom "Combat à 10 Joueurs",10,"Flavius_BG1::OnGuillaumeJoin",1; end; OnEnterBG: set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",390,10,"Flavius_BG1::OnGuillaumeQuit",""); end; } bat_room,253,74,0 script Inscription::Fl1R_Croix 414,{ end; OnInit: waitingroom "Combat à 10 Joueurs",10,"Flavius_BG1::OnCroixJoin",1; end; OnEnterBG: set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",10,290,"Flavius_BG1::OnCroixQuit",""); end; } // Battleground Engine // ********************************************************************* - script Flavius_BG1 -1,{ end; OnInit: disablenpc "Guillaume Vintenar#fl1"; disablenpc "Croix Vintenar#fl1"; disablenpc "Rebouteux#fl11"; disablenpc "Rebouteux#fl12"; end; OnGuillaumeQuit: OnCroixQuit: set BG_Delay_Tick, gettimetick(2) + 1200; end; OnGuillaumeJoin: OnCroixJoin: if( $@FlaviusBG1 == 0 ) donpcevent "Flavius_BG1::OnReadyCheck"; end; OnReadyCheck: if( $@FlaviusBG1 ) end; set .@Guillaume, getwaitingroomstate(0,"Fl1R_Guillaume"); set .@Croix, getwaitingroomstate(0,"Fl1R_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 $@FlaviusBG1, 1; set $@FlaviusBG1_Victory, 0; set .Guillaume_Score, 0; set .Guillaume_Loss, 0; set .Croix_Score, 0; set .Croix_Loss, 0; set .Match, 0; // Prepare NPC donpcevent "#gfl1_respawn::OnBGStart"; donpcevent "#cfl1_respawn::OnBGStart"; enablenpc "Rebouteux#fl11"; enablenpc "Rebouteux#fl12"; disablenpc "Guillaume Vintenar#fl1"; disablenpc "Croix Vintenar#fl1"; // Build and Warp Teams donpcevent "Fl1R_Guillaume::OnEnterBG"; donpcevent "Fl1R_Croix::OnEnterBG"; announce "Champ de Bataille -- La bataille de Flavius [80-99] vient de débuter!",0,0x006400; initnpctimer; // Start Match!! OnRoundStart: sleep 2000; if( $@FlaviusBG1 != 1 ) end; areapercentheal "bat_b01",382,2,397,17,100,100; areapercentheal "bat_b01",2,282,17,297,100,100; bg_warp $@FlaviusBG1_id1,"bat_b01",311,224; bg_warp $@FlaviusBG1_id2,"bat_b01",87,75; sleep 2000; if( $@FlaviusBG1 != 1 ) end; set .Match, .Match + 1; // Crystal Spawn set .Guillaume_Crystal, bg_monster($@FlaviusBG1_id1,"bat_b01",328,150,"Cristal de Guillaume",1914,"Flavius_BG1::OnGuillaumeBreak"); setwall "bat_b01",327,149,2,6,0,"gui_wall1-1"; setwall "bat_b01",329,149,2,0,0,"gui_wall1-2"; setwall "bat_b01",329,151,2,2,0,"gui_wall1-3"; setwall "bat_b01",327,151,2,4,0,"gui_wall1-4"; set .Croix_Crystal, bg_monster($@FlaviusBG1_id2,"bat_b01",62,150,"Cristal de Croix",1915,"Flavius_BG1::OnCroixBreak"); setwall "bat_b01",61,149,2,6,0,"cro_wall1-1"; setwall "bat_b01",63,149,2,0,0,"cro_wall1-2"; setwall "bat_b01",63,151,2,2,0,"cro_wall1-3"; setwall "bat_b01",61,151,2,4,0,"cro_wall1-4"; // Guardian Spawns bg_monster $@FlaviusBG1_id1,"bat_b01",328,160,"Garde de Guillaume",1949,"Flavius_BG1::OnGuiGuardian"; bg_monster $@FlaviusBG1_id1,"bat_b01",328,140,"Garde de Guillaume",1950,"Flavius_BG1::OnGuiGuardian"; set .Guillaume_Guardian, 2; bg_monster $@FlaviusBG1_id2,"bat_b01",62,160,"Garde de Croix",1949,"Flavius_BG1::OnCroGuardian"; bg_monster $@FlaviusBG1_id2,"bat_b01",61,140,"Garde de Croix",1950,"Flavius_BG1::OnCroGuardian"; set .Croix_Guardian, 2; // Announces mapannounce "bat_b01","Le round [ " + .Match + " ] de la bataille de Flavius vient de débuter!!",0,0x006400; end; OnRoundStop: // Remove Monsters killmonster "bat_b01","Flavius_BG1::OnGuiGuardian"; killmonster "bat_b01","Flavius_BG1::OnCroGuardian"; delwall "gui_wall1-1"; delwall "gui_wall1-2"; delwall "gui_wall1-3"; delwall "gui_wall1-4"; killmonster "bat_b01","Flavius_BG1::OnGuillaumeBreak"; delwall "cro_wall1-1"; delwall "cro_wall1-2"; delwall "cro_wall1-3"; delwall "cro_wall1-4"; killmonster "bat_b01","Flavius_BG1::OnCroixBreak"; end; OnGuiGuardian: if( set(.Guillaume_Guardian, .Guillaume_Guardian - 1) <= 0 ) { delwall "gui_wall1-1"; delwall "gui_wall1-2"; delwall "gui_wall1-3"; delwall "gui_wall1-4"; mapannounce "bat_b01","Le Cristal de Guillaume est maintenant vulnérable aux attaques!",0,0x0000FF; } end; OnCroGuardian: if( set(.Croix_Guardian, .Croix_Guardian - 1) <= 0 ) { delwall "cro_wall1-1"; delwall "cro_wall1-2"; delwall "cro_wall1-3"; delwall "cro_wall1-4"; mapannounce "bat_b01","Le Cristal de Croix est maintenant vulnérable aux attaques!",0,0xFF0000; } end; OnGuillaumeBreak: donpcevent "Flavius_BG1::OnRoundStop"; set .Guillaume_Loss, .Guillaume_Loss + 1; if( set(.Croix_Score, .Croix_Score + 1) < 2 ) { bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; mapannounce "bat_b01","Le Cristal de Guillaume vient d'être détruit!",0,0x0000FF; donpcevent "Flavius_BG1::OnRoundStart"; } else { bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; mapannounce "bat_b01","L'armée de Croix remporte la Bataille de Flavius!",0,0xFF0000; set $@FlaviusBG1_Victory, 2; donpcevent "Flavius_BG1::OnMatchEnd"; } end; OnCroixBreak: donpcevent "Flavius_BG1::OnRoundStop"; set .Croix_Loss, .Croix_Loss + 1; if( set(.Guillaume_Score, .Guillaume_Score + 1) < 2 ) { bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; mapannounce "bat_b01","Le Cristal de Croix vient d'être détruit!",0,0xFF0000; donpcevent "Flavius_BG1::OnRoundStart"; } else { bg_updatescore "bat_b01",.Guillaume_Score,.Croix_Score; mapannounce "bat_b01","L'armée de Guillaume remporte la Bataille de Flavius!",0,0x0000FF; set $@FlaviusBG1_Victory, 1; donpcevent "Flavius_BG1::OnMatchEnd"; } end; OnTimer2400000: mapannounce "bat_b01","La Bataille de Flavius prendra fin dans 5 minutes.",0,0x006400; end; OnTimer2640000: mapannounce "bat_b01","La Bataille de Flavius prendra fin dans 1 minute.",0,0x006400; end; OnTimer2700000: if( .Croix_Score > .Guillaume_Score ) { mapannounce "bat_b01","L'armée de Croix a remporté la Bataille de Flavius!",0,0xFF0000; set $@FlaviusBG1_Victory, 2; } else if( .Croix_Score < .Guillaume_Score ) { mapannounce "bat_b01","L'armée de Guillaume a remporté la Bataille de Flavius!",0,0x0000FF; set $@FlaviusBG1_Victory, 1; } else { mapannounce "bat_b01","La Bataille de Flavius est terminée. Elle s'achève par une égalité!",0,0x006400; set $@FlaviusBG1_Victory, 3; } OnMatchEnd: set $@FlaviusBG1, 2; stopnpctimer; donpcevent "#gfl1_respawn::OnBGStop"; donpcevent "#cfl1_respawn::OnBGStop"; disablenpc "Rebouteux#fl11"; disablenpc "Rebouteux#fl12"; enablenpc "Guillaume Vintenar#fl1"; enablenpc "Croix Vintenar#fl1"; sleep 2000; bg_warp $@FlaviusBG1_id1,"bat_b01",390,10; bg_warp $@FlaviusBG1_id2,"bat_b01",10,290; sleep 3000; mapannounce "bat_b01","La Bataille de Flavius prendra fin dans 1 minute!",0,0x006400; initnpctimer; end; OnTimer30000: if( $@FlaviusBG1 == 2 ) mapannounce "bat_b01","La Bataille de Flavius prendra fin dans 30 secondes!",0,0x006400; end; OnTimer50000: if( $@FlaviusBG1 == 2 ) mapannounce "bat_b01","La Bataille de Flavius prendra fin dans 10 secondes!",0,0x006400; end; OnTimer60000: if( $@FlaviusBG1 != 2 ) end; OnReset: stopnpctimer; donpcevent "Flavius_BG1::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 $@FlaviusBG1_Victory, 0; // NPC's disablenpc "Guillaume Vintenar#fl1"; disablenpc "Croix Vintenar#fl1"; disablenpc "Rebouteux#fl11"; disablenpc "Rebouteux#fl12"; if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; } if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; } sleep 1000; mapwarp "bat_b01","bat_room",155,150; sleep 2000; maprespawnguildid "bat_b01",0,3; // Just in case someone else sleep 2000; bg_updatescore "bat_b01",0,0; set $@FlaviusBG1, 0; donpcevent "Flavius_BG1::OnReadyCheck"; end; } // Battleground rewards // ********************************************************************* bat_b01,390,13,5 script Aide de Camp (Guillaume)::Guillaume Vintenar#fl1 419,{ if( $@FlaviusBG1_Victory ) { if( $@FlaviusBG1_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_b01,10,293,5 script Aide de Camp (Croix)::Croix Vintenar#fl1 415,{ if( $@FlaviusBG1_Victory ) { if( $@FlaviusBG1_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_b01,390,13,5 script Rebouteux#fl12 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_b01,10,293,5 script Rebouteux#fl11 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_b01,390,10,0 script #gfl1_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer24000: misceffect 83; end; OnTimer25000: areapercentheal "bat_b01",382,2,397,17,100,100; areawarp "bat_b01",382,2,397,17,"bat_b01",311,224; initnpctimer; end; } bat_b01,10,290,0 script #cfl1_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer24000: misceffect 83; end; OnTimer25000: areapercentheal "bat_b01",2,282,17,297,100,100; areawarp "bat_b01",2,282,17,297,"bat_b01",87,75; initnpctimer; end; } // Flags // ********************************************************************* bat_b01,304,231,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat1 973 bat_b01,319,231,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat2 973 bat_b01,304,218,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat3 973 bat_b01,319,218,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat4 973 bat_b01,304,231,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat5 973 bat_b01,304,231,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat6 973 bat_b01,335,142,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat7 973 bat_b01,335,157,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat8 973 bat_b01,390,16,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat9 973 bat_b01,292,163,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat19 973 bat_b01,292,136,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat20 973 bat_b01,241,185,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat21 973 bat_b01,247,179,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat22 973 bat_b01,96,81,1 duplicate(Camp de Croix#bat) Camp de Croix#bat1 974 bat_b01,96,68,1 duplicate(Camp de Croix#bat) Camp de Croix#bat2 974 bat_b01,79,81,1 duplicate(Camp de Croix#bat) Camp de Croix#bat3 974 bat_b01,79,68,1 duplicate(Camp de Croix#bat) Camp de Croix#bat4 974 bat_b01,96,81,1 duplicate(Camp de Croix#bat) Camp de Croix#bat5 974 bat_b01,96,81,1 duplicate(Camp de Croix#bat) Camp de Croix#bat6 974 bat_b01,59,164,1 duplicate(Camp de Croix#bat) Camp de Croix#bat7 974 bat_b01,59,137,1 duplicate(Camp de Croix#bat) Camp de Croix#bat8 974 bat_b01,10,296,1 duplicate(Camp de Croix#bat) Camp de Croix#bat9 974 bat_b01,110,162,1 duplicate(Camp de Croix#bat) Camp de Croix#bat18 974 bat_b01,110,137,1 duplicate(Camp de Croix#bat) Camp de Croix#bat19 974 bat_b01,152,120,1 duplicate(Camp de Croix#bat) Camp de Croix#bat20 974 bat_b01,158,114,1 duplicate(Camp de Croix#bat) Camp de Croix#bat21 974 // MapFlags // ********************************************************************* bat_b01 mapflag battleground 2 bat_b01 mapflag nomemo bat_b01 mapflag nosave SavePoint bat_b01 mapflag noteleport bat_b01 mapflag nowarp bat_b01 mapflag nowarpto bat_b01 mapflag noreturn bat_b01 mapflag nobranch bat_b01 mapflag nopenalty