viewing paste topic/4656- poring-catcher-modified | Athena

Posted on the | Last edited on
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
//======Name========================================
// Poring Catcher Event
//======Version=====================================
// 1.0
//======Author(s)===================================
// Sandbox, Clydelion
//======Comments====================================
// In loving memory of AstralRO
//==================================================
 
prontera,156,184,3  script  Poring Catcher Warper   723,{
    if ( getgmlevel() >= .gmsetting ) {
        if ( !.start ) {
            mes "start the event ?";
            next;
            if ( select( "Yes", "No" ) == 2 ) close;
            donpcevent strnpcinfo(0)+"::OnStart";
            close;
        }
        else {
            mes "Join or Abort the event ?";
            next;
            if ( select( "Join", "Abort" ) == 1 ) {
                warp "poring_w01", rand(102,104), 101;
                end;
            }
            .skip = 1;
            awake strnpcinfo(0);
        //  donpcevent strnpcinfo(0)+"::OnEnd";
            close;
        }
    }
    else if ( .start == 1 ) {
        mes "Do you want to join the Poring Catcher Event?";
        select ( "Yes" );
        warp "poring_w01", rand(102,104), 101;
        end;
    }
    else if ( .start == 2 ) {
        mes "Too late, the event has already started";
        close;
    }
    mes "No Event right now";
    close;
OnInit:
    .eventlasting = 30*60; // how many seconds the event will last ? default : 30*60 = 30 minutes
    .gmsetting = 60; // in which level the GMs can control this event ?
    .fakes = 3; // the amount of fakes poring * 12 * number of players in the maps
    
    setarray .rewardwin, 7227, 1; // edit the reward items here
 
    .seconds = 1000; // for debug purpose only, how many mili-second = 1 second ?
 
    bindatcmd "poring_catcher", strnpcinfo(0)+"::OnStart", .gmsetting, 100;
    .rewardwinsize = getarraysize( .rewardwin );
    getmapxy .map$, .x, .y, 1;
    mapwarp "poring_w01", .map$, .x, .y;
    end;
 
OnClock0800: // put all the start timer here
OnClock2000:
OnStart:
    .start = 1;
    announce "Poring Catcher Event: We are going to have a Poring Catcher Event",bc_all,0xFF7F50;
    sleep 1 * .seconds * !.skip;
    announce "Poring Catcher Event: For those who want to join, please @warp "+ .map$ +" "+ .x +" "+ .y +"!",bc_all,0xFF7F50; //Edit to where would you place the warper
    sleep 1 * .seconds * !.skip;
    announce "Poring Catcher Event: The Warper would be open for 1 minute",bc_all,0xFF7F50;
    sleep 30 * .seconds * !.skip;
    announce "Poring Catcher Event: Last 30 Seconds.",bc_all,0xFF7F50;
    sleep 30 * .seconds * !.skip;
    announce "Poring Catcher Event: Warper Closed.",bc_all,0xFF7F50;
    if ( !getmapusers( "poring_w01" ) ) goto OnEnd;
    .start = 2;
    mapannounce "poring_w01","We are about to start the Poring Catcher Event.",bc_blue;
    sleep 1 * .seconds * !.skip;
    mapannounce "poring_w01","Rules are simple:",bc_blue;
    sleep 1 * .seconds * !.skip;
    mapannounce "poring_w01","In a few seconds I'm going to spawn tons of porings..",bc_blue;
    sleep 1 * .seconds * !.skip;
    mapannounce "poring_w01","..All you need to do is kill the Poring with the right name..",bc_blue;
    sleep 1 * .seconds * !.skip;
    mapannounce "poring_w01","..Which would be Poring.",bc_blue;
    sleep 1 * .seconds * !.skip;
    mapannounce "poring_w01","If you kill the wrong one, you're out!",bc_blue;
    sleep 3 * .seconds * !.skip;
    mapannounce "poring_w01","That's it.. Now let's get this on!",bc_blue;
    sleep 3 * .seconds * !.skip;
    mapannounce "poring_w01","Ready...",bc_blue;
    sleep 1 * .seconds * !.skip;
    mapannounce "poring_w01","Get Set..",bc_blue;
    sleep 1 * .seconds * !.skip;
    mapannounce "poring_w01","Go!",bc_blue;
    sleep 1 * .seconds * !.skip;
    areamonster "poring_w01",95,108,113,87,"Poring",1002,1, strnpcinfo(0)+"::OnCorrectKilled";
    areamonster "poring_w01",95,108,113,87,"Poking",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"Poiring",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"Poling",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"Porng",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"pH0ur1n6",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"P0ring",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"Porong",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"Powing",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"Poriing",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"Boring",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"Lolwut!?",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    areamonster "poring_w01",95,108,113,87,"Kill me to win!",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled";
    sleep .eventlasting * .seconds * !.skip;
    .skip = 0;
    if ( getmapusers( "poring_w01" ) ) goto OnEnd;
    end;
OnEnd:
    announce "No one won the Poring Catcher Event!",bc_all,0xFF7F50;
    killmonsterall "poring_w01";
    mapwarp "poring_w01", .map$, .x, .y;
    .start = 0;
    end;
OnCorrectKilled:
    for ( .@i = 0; .@i < .rewardwinsize; .@i += 2 )
        getitem .rewardwin[ .@i ], .rewardwin[ .@i +1 ];
    announce strcharinfo(0) +" won the Poring Catcher Event!",bc_all,0xFF7F50;
    killmonsterall "poring_w01";
    mapwarp "poring_w01", .map$, .x, .y;
    .start = 0;
    awake strnpcinfo(0);
    end;
OnFakeKilled:
//  dispbottom "You killed the wrong Poring! Yerrrrrrrrrrrr out!";
//  warp .map$, .x, .y;
//  if ( !getmapusers( "poring_w01" ) ) goto OnEnd;
    dispbottom "You killed the wrong Poring!";
    sc_start2 SC_FREEZE, 9000,0,10000; // 9 seconds to freeze
//  sc_start2 SC_STONE, 9000,0,10000;
//  sc_start2 SC_STUN, 9000,0,10000;
//  sc_start2 SC_SLEEP, 9000,0,10000;
    end;
}
 
poring_w01  mapflag nopenalty
poring_w01  mapflag noloot
poring_w01  mapflag noskill
poring_w01  mapflag nowarpto
poring_w01  mapflag nowarp
poring_w01  mapflag noteleport
poring_w01  mapflag nomemo
poring_w01  mapflag nosave  SavePoint
poring_w01  mapflag nobranch
poring_w01  mapflag nodrop
Viewed 2178 times, submitted by AnnieRuru.