viewing paste topic/11035- poring_catcher_1.2 | 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
prontera,156,184,3      script  Poring Catcher Warper   1_SHADOW_NPC,{
        mes "Do you want to join the Poring Catcher Event?";
        select ( "Yes" );
        warp getvariableofnpc( .eventmap$, "poring_catcher" ), rand(102,104), 101;;
        end;
}
 
-       script  poring_catcher  FAKE_NPC,{
OnInit:
        .eventlasting = 30*60; // how many seconds the event will last ? default : 30*60 = 30 minutes
        .gmsetting = 60; // in which level the GMs can start this event ? The GM can end the event faster by killing porings without getting freeze
        .fakes = 3; // spawn the fake poring = .fakes * 12 types * number of players in the maps
        .eventmap$ = "poring_w01"; // the name of the map where the event runs
       
        setarray .rewardwin, 501, 10,
                                                502, 10; // edit the reward items here
 
        .onesec = 1000; // for debug purpose only, set to 100 to make announcement faster
 
        bindatcmd "poring_catcher", strnpcinfo(0)+"::OnStart", .gmsetting, 100;
        .rewardwinsize = getarraysize( .rewardwin );
        getmapxy .map$, .x, .y, 1, "Poring Catcher Warper";
        mapwarp .eventmap$, .map$, .x, .y;
        disablenpc "Poring Catcher Warper";
        setarray .@mapflag,
                mf_nopenalty,
                mf_nomobloot,
                mf_nomvploot,
                mf_noskill,
                mf_nowarpto,
                mf_noteleport,
                mf_nomemo,
                mf_nosave,
                mf_nobranch,
                mf_nodrop;
        .@mapflagsize = getarraysize( .@mapflag );
        for ( .@i = 0; .@i < .@mapflagsize; .@i++ )
                setmapflag .eventmap$, .@mapflag[.@i];
        end;
OnStart:
OnClock0705: // put all the start timer here
OnClock1105:
OnClock1905:
OnClock2305:
        enablenpc "Poring Catcher Warper";
        announce "Poring Catcher Event: We are going to have a Poring Catcher Event",bc_all,0xFF7F50;
        sleep 1 * .onesec;
        announce "Poring Catcher Event: For those who want to join, please come to Prontera!",bc_all,0xFF7F50; //Edit to where would you place the warper
        sleep 1 * .onesec;
        announce "Poring Catcher Event: The Warper would be open for 1 minute",bc_all,0xFF7F50;
        sleep 30 * .onesec;
        announce "Poring Catcher Event: Last 30 Seconds.",bc_all,0xFF7F50;
        sleep 30 * .onesec;
        announce "Poring Catcher Event: Warper Closed.",bc_all,0xFF7F50;
        disablenpc "Poring Catcher Warper";
        if ( !getmapusers( .eventmap$ ) )
                end;
        mapannounce .eventmap$,"We are about to start the Poring Catcher Event.",bc_blue;
        sleep 1 * .onesec;
        mapannounce .eventmap$,"Rules are simple:",bc_blue;
        sleep 1 * .onesec;
        mapannounce .eventmap$,"In a few seconds I'm going to spawn tons of porings..",bc_blue;
        sleep 1 * .onesec;
        mapannounce .eventmap$,"..All you need to do is kill the Poring with the right name..",bc_blue;
        sleep 1 * .onesec;
        mapannounce .eventmap$,"..Which would be Poring.",bc_blue;
        sleep 1 * .onesec;
        mapannounce .eventmap$,"If you kill the wrong one, you will be freeze for seconds!",bc_blue;
        sleep 3 * .onesec;
        mapannounce .eventmap$,"That's it.. Now let's get this on!",bc_blue;
        sleep 3 * .onesec;
        mapannounce .eventmap$,"Ready...",bc_blue;
        sleep 1 * .onesec;
        mapannounce .eventmap$,"Get Set..",bc_blue;
        sleep 1 * .onesec;
        mapannounce .eventmap$,"Go!",bc_blue;
        sleep 1 * .onesec;
        areamonster .eventmap$,95,108,113,87,"Poring",1002,1, strnpcinfo(0)+"::OnCorrectKilled";
        .@amount = .fakes * getmapusers(.eventmap$);
        areamonster .eventmap$,95,108,113,87,"Poking",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"Poiring",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"Poling",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"Porng",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"pH0ur1n6",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"P0ring",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"Porong",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"Powing",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"Poriing",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"Boring",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"Lolwut!?",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        areamonster .eventmap$,95,108,113,87,"Kill me to win!",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled";
        sleep .eventlasting * 1000;
        if ( getstrlen(.winner$) )
                announce .winner$ +" won the Poring Catcher Event!",bc_all,0xFF7F50;
        else if ( getmapusers( .eventmap$ ) )
                announce "No one won the Poring Catcher Event!",bc_all,0xFF7F50;
        killmonsterall .eventmap$;
        sleep 5000;
        mapwarp .eventmap$, .map$, .x, .y;
        .winner$ = "";
        end;
OnCorrectKilled:
        for ( .@i = 0; .@i < .rewardwinsize; .@i += 2 )
                getitem .rewardwin[ .@i ], .rewardwin[ .@i +1 ];
        .winner$ = strcharinfo(0);
        awake strnpcinfo(0);
        end;
OnFakeKilled:
//      dispbottom "You killed the wrong Poring! Yerrrrrrrrrrrr out!";
//      warp .map$, .x, .y;
//      if ( !getmapusers( .eventmap$ ) ) 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;
}
Viewed 820 times, submitted by AnnieRuru.