//Le Livre d'Ymir http://www.bookofymir.net/ //traduit par No Healing, corrigé par Myllena // ============================================================================== // BattleGround System - Tierra Valley 2 // ============================================================================== // Registration NPC's // ********************************************************************* bat_room,85,97,4 script Inscription::TV2R_Guillaume 418,{ end; OnInit: waitingroom "Combat à 10 Joueurs",10,"Tierra_BG2::OnGuillaumeJoin",1; end; OnEnterBG: set $@TierraBG2_id1, waitingroom2bg("bat_a02",50,374,"Tierra_BG2::OnGuillaumeQuit",""); end; } bat_room,85,74,0 script Inscription::TV2R_Croix 414,{ end; OnInit: waitingroom "Combat à 10 Joueurs",10,"Tierra_BG2::OnCroixJoin",1; end; OnEnterBG: set $@TierraBG2_id2, waitingroom2bg("bat_a02",42,16,"Tierra_BG2::OnCroixQuit",""); end; } // Battleground Engine // ********************************************************************* - script Tierra_BG2 -1,{ end; OnInit: disablenpc "Croix Vintenar#tv2"; disablenpc "Guillaume Vintenar#tv2"; disablenpc "Rebouteux#tv21"; disablenpc "Rebouteux#tv22"; end; OnGuillaumeQuit: OnCroixQuit: set BG_Delay_Tick, gettimetick(2) + 1200; end; OnGuillaumeJoin: OnCroixJoin: if( $@TierraBG2 == 0 ) donpcevent "Tierra_BG2::OnReadyCheck"; end; OnReadyCheck: if( $@TierraBG2 ) end; set .@Guillaume, getwaitingroomstate(0,"TV2R_Guillaume"); set .@Croix, getwaitingroomstate(0,"TV2R_Croix"); if( .@Guillaume < 10 || .@Croix < 10 ) { mapannounce "bat_room","Champ de Bataille -- Vallée de Tierra [80-99] G: " + .@Guillaume + "/10, C: " + .@Croix + "/10",0,0xF4A460; end; } set $@TierraBG2, 1; donpcevent "TV2R_Croix::OnEnterBG"; donpcevent "TV2R_Guillaume::OnEnterBG"; donpcevent "Guillaume_TV2B::OnBuild"; donpcevent "Croix_TV2B::OnBuild"; bg_monster $@TierraBG2_id1,"bat_a02",176,345,"Dépôt de Nourriture",1909,"Tierra_BG2::OnGuillaumeBreak"; bg_monster $@TierraBG2_id2,"bat_a02",167,50,"Réserve de Nourriture",1910,"Tierra_BG2::OnCroixBreak"; bg_monster 0,"bat_a02",273,204,"Drapeau Neutre",1911,"Tierra_BG2::OnNeutralBreak"; set .Neutral_Base, 0; set $@TierraBG2_Victory, 0; set .Guardian_1, 0; set .Guardian_2, 0; set .Guardian_3, 0; enablenpc "Rebouteux#tv21"; enablenpc "Rebouteux#tv22"; disablenpc "Croix Vintenar#tv2"; disablenpc "Guillaume Vintenar#tv2"; // Respawner donpcevent "#gtv2_respawn::OnBGStart"; donpcevent "#ctv2_respawn::OnBGStart"; donpcevent "#ntv2_respawn::OnBGStart"; // Warp Teams announce "Champ de Bataille -- La bataille de la Vallée de Tierra [80-99] vient de débuter!",0,0xFFA500; bg_warp $@TierraBG2_id1,"bat_a02",353,344; bg_warp $@TierraBG2_id2,"bat_a02",353,52; // Final Messages sleep 6000; mapannounce "bat_a02","Aide de Camp de Guillaume Axl Rose : Chargez, fiers soldats, et réduisez les réserves de nourriture de Croix en cendres!",0,0x0000FF; sleep 2000; mapannounce "bat_a02","Aide de Camp de Croix Swandery : Seigneurs du Walhalla! Donnez-nous la force de brandir le fer avec foi et courage!",0,0xFF0000; initnpctimer; end; OnNeutralBreak: if( getcharid(4) == $@TierraBG2_id1 ) { mapannounce "bat_a02","Guillaume a capturé une Bannière de Neutralité et gagne l'avantage.",0,0x0000FF; bg_team_setxy $@TierraBG2_id2,42,16; areawarp "bat_a02",52,208,61,217,"bat_a02",42,16; } else if( getcharid(4) == $@TierraBG2_id2 ) { mapannounce "bat_a02","Croix a capturé une Bannière de Neutralité et gagne l'avantage.",0,0xFF0000; bg_team_setxy $@TierraBG2_id1,50,374; areawarp "bat_a02",52,208,61,217,"bat_a02",50,374; } else end; set .Neutral_Base, getcharid(4); bg_team_setxy .Neutral_Base,56,212; if( .Guardian_1 == 0 ) set .Guardian_1, bg_monster(.Neutral_Base,"bat_a02",280,233,"Garde",1949,"Tierra_BG2::OnGuardian1"); else bg_monster_set_team .Guardian_1, .Neutral_Base; if( .Guardian_2 == 0 ) set .Guardian_2, bg_monster(.Neutral_Base,"bat_a02",287,203,"Garde",1950,"Tierra_BG2::OnGuardian2"); else bg_monster_set_team .Guardian_2, .Neutral_Base; if( .Guardian_3 == 0 ) set .Guardian_3, bg_monster(.Neutral_Base,"bat_a02",268,204,"Garde",1949,"Tierra_BG2::OnGuardian3"); else bg_monster_set_team .Guardian_3, .Neutral_Base; sleep 10000; if( $@TierraBG2 != 1 ) end; if( .Neutral_Base == $@TierraBG2_id1 ) bg_monster .Neutral_Base,"bat_a02",273,204,"Bannière de Guillaume",1912,"Tierra_BG2::OnNeutralBreak"; else if( .Neutral_Base == $@TierraBG2_id2 ) bg_monster .Neutral_Base,"bat_a02",273,204,"Bannière de Croix",1913,"Tierra_BG2::OnNeutralBreak"; end; OnGuardian1: set .Guardian_1, 0; end; OnGuardian2: set .Guardian_2, 0; end; OnGuardian3: set .Guardian_3, 0; end; OnGuillaumeBreak: set $@TierraBG2_Victory, 2; mapannounce "bat_a02","Aide de Camp de Croix Swandery: Nous avons détruit les réserves de nourriture de Guillaume. Hourra, braves guerriers!",1,0xFF0000; donpcevent "Tierra_BG2::OnStop"; end; OnCroixBreak: set $@TierraBG2_Victory, 1; mapannounce "bat_a02","Aide de Camp de Guillaume Axl Rose: Nous avons détruit les réserves de nourriture de Croix. Hourra, braves guerriers!",1,0x0000FF; donpcevent "Tierra_BG2::OnStop"; end; OnTimer2400000: mapannounce "bat_a02","La bataille des Gorges de Tierra prendra fin dans 5 minutes.",0,0xF4A460; end; OnTimer2640000: mapannounce "bat_a02","La bataille des Gorges de Tierra prendra fin dans 1 minutes.",0,0xF4A460; end; OnTimer2700000: set $@TierraBG2_Victory, 3; // Draw Game mapannounce "bat_a02","La Bataille des Gorges de Tierra est terminée. Elle s'achève par une égalité!",0,0xF4A460; donpcevent "Tierra_BG2::OnStop"; end; OnStop: set $@TierraBG2, 2; disablenpc "Rebouteux#tv21"; disablenpc "Rebouteux#tv22"; donpcevent "#gtv2_respawn::OnBGStop"; donpcevent "#ctv2_respawn::OnBGStop"; donpcevent "#ntv2_respawn::OnBGStop"; enablenpc "Croix Vintenar#tv2"; enablenpc "Guillaume Vintenar#tv2"; killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak"; killmonster "bat_a02","Tierra_BG2::OnCroixBreak"; killmonster "bat_a02","Tierra_BG2::OnNeutralBreak"; killmonster "bat_a02","Tierra_BG2::OnGuardian1"; killmonster "bat_a02","Tierra_BG2::OnGuardian2"; killmonster "bat_a02","Tierra_BG2::OnGuardian3"; stopnpctimer; sleep 3000; bg_warp $@TierraBG2_id1,"bat_a02",50,374; bg_warp $@TierraBG2_id2,"bat_a02",42,16; sleep 3000; mapannounce "bat_a02","La Bataille des Gorges de Tierra prendra fin dans 1 minute!",0,0xF4A460; initnpctimer; end; OnTimer30000: if( $@TierraBG2 == 2 ) mapannounce "bat_a02","La Bataille des Gorges de Tierra prendra fin dans 30 secondes!",0,0xF4A460; end; OnTimer50000: if( $@TierraBG2 == 2 ) mapannounce "bat_a02","La Bataille des Gorges de Tierra prendra fin dans 10 secondes!",0,0xF4A460; end; OnTimer60000: if( $@TierraBG2 != 2 ) end; OnReset: stopnpctimer; set .Neutral_Base, 0; disablenpc "Croix Vintenar#tv2"; disablenpc "Guillaume Vintenar#tv2"; disablenpc "Rebouteux#tv21"; disablenpc "Rebouteux#tv22"; donpcevent "#gtv2_respawn::OnBGStop"; donpcevent "#gtv2_respawn::OnBGStop"; donpcevent "#ctv2_respawn::OnBGStop"; killmonster "bat_a02","Tierra_BG2::OnGuillaumeBreak"; killmonster "bat_a02","Tierra_BG2::OnCroixBreak"; killmonster "bat_a02","Tierra_BG2::OnNeutralBreak"; killmonster "bat_a02","Tierra_BG2::OnGuardian1"; killmonster "bat_a02","Tierra_BG2::OnGuardian2"; killmonster "bat_a02","Tierra_BG2::OnGuardian3"; donpcevent "Guillaume_TV2B::OnDestroy"; donpcevent "Croix_TV2B::OnDestroy"; set $@TierraBG2_Victory, 0; if( $@TierraBG2_id1 ) { bg_destroy $@TierraBG2_id1; set $@TierraBG2_id1, 0; } if( $@TierraBG2_id2 ) { bg_destroy $@TierraBG2_id2; set $@TierraBG2_id2, 0; } sleep 1000; mapwarp "bat_a02","bat_room",155,150; sleep 2000; maprespawnguildid "bat_a02",0,3; // Just in case someone else sleep 2000; set $@TierraBG2, 0; donpcevent "Tierra_BG2::OnReadyCheck"; // Maybe a game is ready to start end; } // MapFlags // ********************************************************************* bat_a02 mapflag battleground bat_a02 mapflag nomemo bat_a02 mapflag nosave SavePoint bat_a02 mapflag noteleport bat_a02 mapflag nowarp bat_a02 mapflag nowarpto bat_a02 mapflag noreturn bat_a02 mapflag nobranch bat_a02 mapflag nopenalty // Other Flags // ********************************************************************* bat_a02,148,85,1 duplicate(Camp de Croix#bat) Camp de Croix#bat22 974 bat_a02,155,85,1 duplicate(Camp de Croix#bat) Camp de Croix#bat23 974 bat_a02,357,75,1 duplicate(Camp de Croix#bat) Camp de Croix#bat24 974 bat_a02,348,74,1 duplicate(Camp de Croix#bat) Camp de Croix#bat25 974 bat_a02,199,49,1 duplicate(Camp de Croix#bat) Camp de Croix#bat26 974 bat_a02,168,16,1 duplicate(Camp de Croix#bat) Camp de Croix#bat27 974 bat_a02,138,12,1 duplicate(Camp de Croix#bat) Camp de Croix#bat28 974 bat_a02,108,35,1 duplicate(Camp de Croix#bat) Camp de Croix#bat29 974 bat_a02,164,308,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat23 973 bat_a02,157,308,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat24 973 bat_a02,359,327,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat25 973 bat_a02,350,326,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat26 973 bat_a02,209,344,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat27 973 bat_a02,173,380,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat28 973 bat_a02,150,380,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat29 973 bat_a02,118,357,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat30 973 bat_a02,119,336,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat31 973 // Barricades // ********************************************************************* - script Guillaume_TV2B -1,{ end; OnBuild: for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) bg_monster 0,"bat_a02",170+.@i,130,"Barricade",1906,"Guillaume_TV2B::OnWall"; setwall "bat_a02",170,130,16,6,1,"bat_a02_g1"; set .MyMobCount,16; end; OnDestroy: killmonster "bat_a02","Guillaume_TV2B::OnWall"; delwall "bat_a02_g1"; set .MyMobCount,0; end; OnWall: if( set(.MyMobCount,.MyMobCount - 1) < 1 ) { delwall "bat_a02_g1"; mapannounce "bat_a02","Porte Sud: La Porte a été détruite!",0,0xF4A460; } end; } - script Croix_TV2B -1,{ end; OnBuild: for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) bg_monster 0,"bat_a02",186+.@i,266,"Barricade",1906,"Croix_TV2B::OnWall"; setwall "bat_a02",186,266,16,6,1,"bat_a02_c1"; set .MyMobCount,16; end; OnDestroy: killmonster "bat_a02","Croix_TV2B::OnWall"; delwall "bat_a02_c1"; set .MyMobCount,0; end; OnWall: if( set(.MyMobCount,.MyMobCount - 1) < 1 ) { delwall "bat_a02_c1"; mapannounce "bat_a02","Porte Nord: La Porte a été détruite!",0,0xF4A460; } end; } // Battleground rewards // ********************************************************************* bat_a02,45,19,3 script Aide de Camp (Croix)::Croix Vintenar#tv2 415,{ if( $@TierraBG2_Victory ) { if( $@TierraBG2_Victory == Bat_Team ) { // Victory set .@Reward, 3; 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, 1; 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 2069; getitem 7828, .@Reward; bg_leave; warp "bat_room",155,150; end; } end; } bat_a02,53,377,3 script Aide de Camp (Guillaume)::Guillaume Vintenar#tv2 419,{ if( $@TierraBG2_Victory ) { if( $@TierraBG2_Victory == Bat_Team ) { // Victory set .@Reward, 3; 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, 1; 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 2069; getitem 7828, .@Reward; bg_leave; warp "bat_room",155,150; end; } end; } // Battleground Therapist // ********************************************************************* bat_a02,60,216,3 script Fantôme#tv23 950,{ mes "[Fantôme de la Vallée]"; mes "Bouh...Bouh..."; specialeffect2 312; close; } bat_a02,53,377,3 script Rebouteux#tv22 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_a02,45,18,3 script Rebouteux#tv21 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_a02,57,213,0 script #ntv2_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer19000: misceffect 83; end; OnTimer20000: areapercentheal "bat_a02",52,208,61,217,100,100; areawarp "bat_a02",52,208,61,217,"bat_a02",301,208; initnpctimer; end; } bat_a02,50,374,0 script #gtv2_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer24000: misceffect 83; end; OnTimer25000: areapercentheal "bat_a02",46,370,54,378,100,100; areawarp "bat_a02",46,370,54,378,"bat_a02",354,340; initnpctimer; end; } bat_a02,42,16,0 script #ctv2_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer24000: misceffect 83; end; OnTimer25000: areapercentheal "bat_a02",38,12,47,21,100,100; areawarp "bat_a02",38,12,47,21,"bat_a02",354,57; initnpctimer; end; }