//Le Livre d'Ymir http://www.bookofymir.net/ //traduit par No Healing, corrigé par Myllena // ============================================================================== // BattleGround System - Tierra Valley 1 // ============================================================================== // Registration NPC's // ********************************************************************* bat_room,85,227,4 script Inscription::TV1R_Guillaume 418,{ end; OnInit: waitingroom "Combat à 10 Joueurs",10,"Tierra_BG1::OnGuillaumeJoin",1; end; OnEnterBG: set $@TierraBG1_id1, waitingroom2bg("bat_a01",50,374,"Tierra_BG1::OnGuillaumeQuit",""); end; } bat_room,85,204,0 script Inscription::TV1R_Croix 414,{ end; OnInit: waitingroom "Combat à 10 Joueurs",10,"Tierra_BG1::OnCroixJoin",1; end; OnEnterBG: set $@TierraBG1_id2, waitingroom2bg("bat_a01",42,16,"Tierra_BG1::OnCroixQuit",""); end; } // Battleground Engine // ********************************************************************* - script Tierra_BG1 -1,{ end; OnInit: disablenpc "Croix Vintenar#tv1"; disablenpc "Guillaume Vintenar#tv1"; disablenpc "Rebouteux#tv11"; disablenpc "Rebouteux#tv12"; end; OnGuillaumeQuit: OnCroixQuit: set BG_Delay_Tick, gettimetick(2) + 1200; end; OnGuillaumeJoin: OnCroixJoin: if( $@TierraBG1 == 0 ) donpcevent "Tierra_BG1::OnReadyCheck"; end; OnReadyCheck: if( $@TierraBG1 ) end; set .@Guillaume, getwaitingroomstate(0,"TV1R_Guillaume"); set .@Croix, getwaitingroomstate(0,"TV1R_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,0xFFA500; end; } set $@TierraBG1, 1; donpcevent "TV1R_Croix::OnEnterBG"; donpcevent "TV1R_Guillaume::OnEnterBG"; donpcevent "Guillaume_TV1B::OnBuild"; donpcevent "Croix_TV1B::OnBuild"; bg_monster $@TierraBG1_id1,"bat_a01",176,345,"Dépôt de Nourriture",1909,"Tierra_BG1::OnGuillaumeBreak"; bg_monster $@TierraBG1_id2,"bat_a01",167,50,"Réserve de Nourriture",1910,"Tierra_BG1::OnCroixBreak"; bg_monster 0,"bat_a01",273,204,"Bannière de Neutralité",1911,"Tierra_BG1::OnNeutralBreak"; set .Neutral_Base, 0; set $@TierraBG1_Victory, 0; set .Guardian_1, 0; set .Guardian_2, 0; set .Guardian_3, 0; enablenpc "Rebouteux#tv11"; enablenpc "Rebouteux#tv12"; disablenpc "Croix Vintenar#tv1"; disablenpc "Guillaume Vintenar#tv1"; // Respawner donpcevent "#gtv1_respawn::OnBGStart"; donpcevent "#ctv1_respawn::OnBGStart"; donpcevent "#ntv1_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 $@TierraBG1_id1,"bat_a01",353,344; bg_warp $@TierraBG1_id2,"bat_a01",353,52; // Final Messages sleep 6000; mapannounce "bat_a01","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_a01","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) == $@TierraBG1_id1 ) { mapannounce "bat_a01","Guillaume a capturé une Bannière de Neutralité et gagne l'avantage.",0,0x0000FF; bg_team_setxy $@TierraBG1_id2,42,16; areawarp "bat_a01",52,208,61,217,"bat_a01",42,16; } else if( getcharid(4) == $@TierraBG1_id2 ) { mapannounce "bat_a01","Croix a capturé une Bannière de Neutralité et gagne l'avantage.",0,0xFF0000; bg_team_setxy $@TierraBG1_id1,50,374; areawarp "bat_a01",52,208,61,217,"bat_a01",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_a01",280,233,"Garde",1949,"Tierra_BG1::OnGuardian1"); else bg_monster_set_team .Guardian_1, .Neutral_Base; if( .Guardian_2 == 0 ) set .Guardian_2, bg_monster(.Neutral_Base,"bat_a01",287,203,"Garde",1950,"Tierra_BG1::OnGuardian2"); else bg_monster_set_team .Guardian_2, .Neutral_Base; if( .Guardian_3 == 0 ) set .Guardian_3, bg_monster(.Neutral_Base,"bat_a01",268,204,"Garde",1949,"Tierra_BG1::OnGuardian3"); else bg_monster_set_team .Guardian_3, .Neutral_Base; sleep 10000; if( $@TierraBG1 != 1 ) end; if( .Neutral_Base == $@TierraBG1_id1 ) bg_monster .Neutral_Base,"bat_a01",273,204,"Bannière de Guillaume",1912,"Tierra_BG1::OnNeutralBreak"; else if( .Neutral_Base == $@TierraBG1_id2 ) bg_monster .Neutral_Base,"bat_a01",273,204,"Bannière de Croix",1913,"Tierra_BG1::OnNeutralBreak"; end; OnGuardian1: set .Guardian_1, 0; end; OnGuardian2: set .Guardian_2, 0; end; OnGuardian3: set .Guardian_3, 0; end; OnGuillaumeBreak: set $@TierraBG1_Victory, 2; mapannounce "bat_a01","Aide de Camp de Croix Swandery: Nous avons détruit les réserves de nourriture de Guillaume. Hourra, braves guerriers!",0,0xFF0000; donpcevent "Tierra_BG1::OnStop"; end; OnCroixBreak: set $@TierraBG1_Victory, 1; mapannounce "bat_a01","Aide de Camp de Guillaume Axl Rose: Nous avons détruit les réserves de nourriture de Croix. Hourra, braves guerriers!",0,0x0000FF; donpcevent "Tierra_BG1::OnStop"; end; OnTimer2400000: mapannounce "bat_a01","La bataille des Gorges de Tierra prendra fin dans 5 minutes.",0,0xF4A460; end; OnTimer2640000: mapannounce "bat_a01","La bataille des Gorges de Tierra prendra fin dans 1 minute.",0,0xF4A460; end; OnTimer2700000: set $@TierraBG1_Victory, 3; // Draw Game mapannounce "bat_a01","La Bataille des Gorges de Tierra est terminée. Elle s'achève par une égalité!",0,0xF4A460; donpcevent "Tierra_BG1::OnStop"; end; OnStop: set $@TierraBG1, 2; disablenpc "Rebouteux#tv11"; disablenpc "Rebouteux#tv12"; donpcevent "#gtv1_respawn::OnBGStop"; donpcevent "#ctv1_respawn::OnBGStop"; donpcevent "#ntv1_respawn::OnBGStop"; enablenpc "Croix Vintenar#tv1"; enablenpc "Guillaume Vintenar#tv1"; killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak"; killmonster "bat_a01","Tierra_BG1::OnCroixBreak"; killmonster "bat_a01","Tierra_BG1::OnNeutralBreak"; killmonster "bat_a01","Tierra_BG1::OnGuardian1"; killmonster "bat_a01","Tierra_BG1::OnGuardian2"; killmonster "bat_a01","Tierra_BG1::OnGuardian3"; stopnpctimer; sleep 3000; bg_warp $@TierraBG1_id1,"bat_a01",50,374; bg_warp $@TierraBG1_id2,"bat_a01",42,16; sleep 3000; mapannounce "bat_a01","La Bataille des Gorges de Tierra prendra fin dans 1 minute!",0,0xFFA500; initnpctimer; end; OnTimer30000: if( $@TierraBG1 == 2 ) mapannounce "bat_a01","La Bataille des Gorges de Tierra prendra fin dans 30 secondes!",0,0xFFA500; end; OnTimer50000: if( $@TierraBG1 == 2 ) mapannounce "bat_a01","La Bataille des Gorges de Tierra prendra fin dans 10 secondes!",0,0xFFA500; end; OnTimer60000: if( $@TierraBG1 != 2 ) end; OnReset: stopnpctimer; set .Neutral_Base, 0; disablenpc "Croix Vintenar#tv1"; disablenpc "Guillaume Vintenar#tv1"; disablenpc "Rebouteux#tv11"; disablenpc "Rebouteux#tv12"; donpcevent "#gtv1_respawn::OnBGStop"; donpcevent "#ctv1_respawn::OnBGStop"; donpcevent "#ntv1_respawn::OnBGStop"; killmonster "bat_a01","Tierra_BG1::OnGuillaumeBreak"; killmonster "bat_a01","Tierra_BG1::OnCroixBreak"; killmonster "bat_a01","Tierra_BG1::OnNeutralBreak"; killmonster "bat_a01","Tierra_BG1::OnGuardian1"; killmonster "bat_a01","Tierra_BG1::OnGuardian2"; killmonster "bat_a01","Tierra_BG1::OnGuardian3"; donpcevent "Guillaume_TV1B::OnDestroy"; donpcevent "Croix_TV1B::OnDestroy"; set $@TierraBG1_Victory, 0; if( $@TierraBG1_id1 ) { bg_destroy $@TierraBG1_id1; set $@TierraBG1_id1, 0; } if( $@TierraBG1_id2 ) { bg_destroy $@TierraBG1_id2; set $@TierraBG1_id2, 0; } sleep 1000; mapwarp "bat_a01","bat_room",155,150; sleep 2000; maprespawnguildid "bat_a01",0,3; // Just in case someone else sleep 2000; set $@TierraBG1, 0; donpcevent "Tierra_BG1::OnReadyCheck"; // Maybe a game is ready to start end; } // MapFlags // ********************************************************************* bat_a01 mapflag battleground bat_a01 mapflag nomemo bat_a01 mapflag nosave SavePoint bat_a01 mapflag noteleport bat_a01 mapflag nowarp bat_a01 mapflag nowarpto bat_a01 mapflag noreturn bat_a01 mapflag nobranch bat_a01 mapflag nopenalty // Other Flags // ********************************************************************* bat_a01,148,85,1 duplicate(Camp de Croix#bat) Camp de Croix#bat10 974 bat_a01,155,85,1 duplicate(Camp de Croix#bat) Camp de Croix#bat11 974 bat_a01,357,75,1 duplicate(Camp de Croix#bat) Camp de Croix#bat12 974 bat_a01,348,74,1 duplicate(Camp de Croix#bat) Camp de Croix#bat13 974 bat_a01,199,49,1 duplicate(Camp de Croix#bat) Camp de Croix#bat14 974 bat_a01,168,16,1 duplicate(Camp de Croix#bat) Camp de Croix#bat15 974 bat_a01,138,12,1 duplicate(Camp de Croix#bat) Camp de Croix#bat16 974 bat_a01,108,35,1 duplicate(Camp de Croix#bat) Camp de Croix#bat17 974 bat_a01,164,308,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat10 973 bat_a01,157,308,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat11 973 bat_a01,359,327,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat12 973 bat_a01,350,326,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat13 973 bat_a01,209,344,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat14 973 bat_a01,173,380,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat15 973 bat_a01,150,380,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat16 973 bat_a01,118,357,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat17 973 bat_a01,119,336,1 duplicate(Camp de Guillaume#bat) Camp de Guillaume#bat18 973 // Barricades // ********************************************************************* - script Guillaume_TV1B -1,{ end; OnBuild: for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) bg_monster 0,"bat_a01",170+.@i,130,"Barricade",1906,"Guillaume_TV1B::OnWall"; setwall "bat_a01",170,130,16,6,1,"bat_a01_g1"; set .MyMobCount,16; end; OnDestroy: killmonster "bat_a01","Guillaume_TV1B::OnWall"; delwall "bat_a01_g1"; set .MyMobCount,0; end; OnWall: if( set(.MyMobCount,.MyMobCount - 1) < 1 ) { delwall "bat_a01_g1"; mapannounce "bat_a01","Porte Sud: La Porte a été détruite!",1,0xFFA500; } end; } - script Croix_TV1B -1,{ end; OnBuild: for( set .@i, 0; .@i < 16; set .@i, .@i + 1 ) bg_monster 0,"bat_a01",186+.@i,266,"Barricade",1906,"Croix_TV1B::OnWall"; setwall "bat_a01",186,266,16,6,1,"bat_a01_c1"; set .MyMobCount,16; end; OnDestroy: killmonster "bat_a01","Croix_TV1B::OnWall"; delwall "bat_a01_c1"; set .MyMobCount,0; end; OnWall: if( set(.MyMobCount,.MyMobCount - 1) < 1 ) { delwall "bat_a01_c1"; mapannounce "bat_a01","Porte Nord: La Porte a été détruite!",1,0xFFA500; } end; } // Battleground rewards // ********************************************************************* bat_a01,45,19,3 script Aide de Camp (Croix)::Croix Vintenar#tv1 415,{ if( $@TierraBG1_Victory ) { if( $@TierraBG1_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_a01,53,377,3 script Aide de Camp (Guillaume)::Guillaume Vintenar#tv1 419,{ if( $@TierraBG1_Victory ) { if( $@TierraBG1_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_a01,60,216,3 script Fantôme#tv13 950,{ mes "[Fantôme de la Vallée]"; mes "Bouh...Bouh..."; specialeffect2 312; close; } bat_a01,53,377,3 script Rebouteux#tv12 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_a01,45,18,3 script Rebouteux#tv11 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_a01,57,213,0 script #ntv1_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer19000: misceffect 83; end; OnTimer20000: areapercentheal "bat_a01",52,208,61,217,100,100; areawarp "bat_a01",52,208,61,217,"bat_a01",301,208; initnpctimer; end; } bat_a01,50,374,0 script #gtv1_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer24000: misceffect 83; end; OnTimer25000: areapercentheal "bat_a01",46,370,54,378,100,100; areawarp "bat_a01",46,370,54,378,"bat_a01",354,340; initnpctimer; end; } bat_a01,42,16,0 script #ctv1_respawn 139,{ end; OnBGStart: initnpctimer; end; OnBGStop: stopnpctimer; end; OnTimer24000: misceffect 83; end; OnTimer25000: areapercentheal "bat_a01",38,12,47,21,100,100; areawarp "bat_a01",38,12,47,21,"bat_a01",354,57; initnpctimer; end; }