Jump to content
  • 0

H>A little modification


Mabuhay

Question


  • Group:  Members
  • Topic Count:  105
  • Topics Per Day:  0.02
  • Content Count:  446
  • Reputation:   229
  • Joined:  03/20/12
  • Last Seen:  

Here is Emisty's Stage game:

guild_vs5,50,50,5    script    Stage Game    437,{
    // Monster ID / Amount Initiating ( Check db/Mob_db.txt || db/Mob_db2.txt )

    setarray .Stage[0],

                1001,10,            // Stage 1 + Amount

                1002,12,            // Stage 2 + Amount

                1004,14,            // Stage 3 + Amount

                1005,16,            // Stage 4 + Amount

                1007,18,            // etc......

                1008,20,            //

                1058,30;            // Final Stage ( Max. ~64 Rounds )



    // Reward ID / Amount Initiating ( Check db/Item_db.txt || db/Item_db2.txt )                        

    setarray .Reward[0],

                607,10,                // Reward 1 + Amount

                608,5,                // Reward 2 + Amount

                501,3,                // etc......

                512,1;                // Last Reward 1 ( Max. ~64 Items )

            

    // MapFlags Initiating ( Check db/Cont.txt )        

    setarray .MapFlags[0],0,1,2,3,4,5,11,13,14,15,22,29,30,31,32,33,34,35,38,41,43,44,47,49;



    for( set .@mf,0; .@mf < getarraysize( .MapFlags ); set .@mf,.@mf + 1 )

    {

        setmapflag strcharinfo(3),.MapFlags[.@mf];

    }    

    if( mobcount( strcharinfo(3),"all" ) > 0 || .Level > 0)

    {

        dispbottom "Just Kill All the Monster to Win the Game...";

        end;

    }

    set .Level,0;

    announce "[Level "+( (.Level/2)+1 )+"] : [ "+.Stage[.Level+1]+" x "+getmonsterinfo( .Stage[.Level],0)+" ]",bc_all,0x37FDFC;

    monster strcharinfo(3),0,0,"[Slave] "+getmonsterinfo( .Stage[.Level],0)+"",.Stage[.Level],.Stage[.Level+1],strnpcinfo(0)+"::OnMobKill";

    delwaitingroom;

    waitingroom "Left ["+mobcount( strcharinfo(3),strnpcinfo(0)+"::OnMobKill" )+"] Monster",0;

    end;



OnMobKill:

    delwaitingroom;

    if( mobcount( strcharinfo(3),strnpcinfo(0)+"::OnMobKill" ) == 0 && .Level < ( getarraysize( .Stage ) - 5 ) )

    {

        set .Level,.Level + 2;

        waitingroom "["+((( getarraysize( .Stage )/2 ) - .Level/2) - 1)+"] Rounds to Go.",0;

        for( set .@t,5; .@t > 0; set .@t,.@t - 1 )

        {

            announce "[Level "+( (.Level/2)+1 )+"] in "+.@t+" Seconds",bc_map,0x4EEE94,0,35;

            sleep2 1000;

        }

        announce "[Level "+( (.Level/2)+1 )+"] : [ "+.Stage[.Level+1]+" x "+getmonsterinfo( .Stage[.Level],0)+" ]",bc_all,0x37FDFC;

        monster strcharinfo(3),0,0,"[Slave] "+getmonsterinfo( .Stage[.Level],0)+"",.Stage[.Level],.Stage[.Level+1],strnpcinfo(0)+"::OnMobKill";

    }

    if( mobcount( strcharinfo(3),strnpcinfo(0)+"::OnMobKill" ) == 0 && .Level >= ( getarraysize( .Stage ) - 5 ) )

    {

        set .Level,.Level + 2;

        announce "BOSS Stage",bc_map,0xFF0000,0,90;

        specialeffect 563;

        sleep2 2000;

        for( set .@t,5; .@t > 0; set .@t,.@t - 1 )

        {

            specialeffect 563;

            announce "BOSS STAGE in "+.@t+" Seconds",bc_map,0xFF0000,0,60;

            sleep2 1000;

        }

        announce "[Level "+( (.Level/2)+1 )+"] : [ "+.Stage[.Level+1]+" x "+getmonsterinfo( .Stage[.Level],0)+" ]",bc_all,0x37FDFC;

        monster strcharinfo(3),0,0,"[BOSS] "+getmonsterinfo( .Stage[.Level],0)+"",.Stage[.Level],.Stage[.Level+1],strnpcinfo(0)+"::OnBossKill";

    }

    delwaitingroom;

    waitingroom "Left ["+mobcount( strcharinfo(3),strnpcinfo(0)+"::On"+( ( .Level-2 ) > ( getarraysize( .Stage ) - 5 ) ? "BossKill":"MobKill") )+"] Monster",0;

    end;



OnBossKill:

    delwaitingroom;

    if( mobcount( strcharinfo(3),strnpcinfo(0)+"::OnBossKill" ) > 0 )

    {

        waitingroom "Left ["+mobcount( strcharinfo(3),strnpcinfo(0)+"::OnBossKill")+"] Monster",0;

        end;

    }else{

        delwaitingroom;

        waitingroom "REWARD TIME",0;

        specialeffect 709;

        announce "Congratulation to Team [ "+getpartyname( getcharid(1) )+" ] who had just finished the Stage Game. ",0;

        getpartymember getcharid(1),1;

        getpartymember getcharid(1),2;

        set @Location$,strcharinfo(3);

        for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 )

        {

            if ( isloggedin($@partymemberaid[.@i]) )

            {

                attachrid $@partymemberaid[.@i];

                if( strcharinfo(3) == @Location$ )

                {

                    unittalk getcharid(3),"Yeehaaa !! We Beat ALL the Monster !!!";

                    unitemote getcharid(3),e_heh;

                    specialeffect2 709;

                    for( set .@a,0; .@a < getarraysize( .Reward ); set .@a,.@a + 2 )

                        getitem .Reward[.@a],.Reward[.@a+1], $@partymemberaid[.@i];

                    dispbottom "Gained those items as Reward for Finishing Stage Game";

                }

            }

        }

        sleep2 5000;

        mapwarp strcharinfo(3),"prontera",155,180;

        set .Level,0;

        delwaitingroom;

    }

OnInit:

    waitingroom "Click Me",0;

    end;

}





prontera,146,188,5    script    Stage Game#Register    794,{



while(1){

mes "Hello, i am ^FF0000Stage Game Manager^000000. How can i help you ?";

mes "^0000FFRegistration Status^000000 : "+( getmapusers(.Map$) > 0 ?"^FF0000OFF":"^00FF00ON")+"^000000";

mes "(^FF0000Only Leader can Register^000000)";

mes "";

mes "It is In ^FF0000BETA Test^000000.";

next;

switch(select("^00FF00Stage Game Information^000000",

            ( getmapusers(.Map$) > 0 || getcharid(0) != getpartyleader( getcharid(1),2 ) )?"":"^0000FFRegister for Stage Game^000000",

            ( getmapusers(.Map$) < 1 || getgmlevel() < 60 )?"":"^FF0000Reset Stage Game^000000")) {

            

    Case 1:

        mes "^FF0000Stage Game^000000 is a small game that have alot of monster to be kill from round to round.";

        mes "With every increase or round you manage to reach, the monster could be stronger than before.";

        next;

        mes "You could win up some ^0000FFUnique^000000 prize upon you finished the whole ^FF0000Stage Game^000000";

        next;

        mes "In order to ^0000FFRegister^000000 for ^FF0000Stage Game^000000, all your party member must meet the ^0000FFRequirements^000000";

        next;

        mes "[ ^00FF00Requirements^000000 ]";

        mes "^0000FFBase Level^000000 : "+.Level+" Level";

        mes "^0000FFZeny^000000 : "+.Zeny+" Zeny ";

        mes "^0000FFParty Members^000000 : "+.PartyMember+" Members";

        mes "(^FF0000Level / Zeny only Applied on Leader ^000000 )";

        next;

        break;

    Case 2:

    //    if( getgmlevel() < 80 ){

    //    mes "Stage Game is under Debugging Development. Simple Game but Hard ";

    //    close;

    //    }

        getpartymember getcharid(1),1;

        getpartymember getcharid(1),2;

        set @Count,0;

        for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ){

            if ( isloggedin($@partymemberaid[.@i]) ){

                set @Count,@Count+1;

                }

            }

        if( @Count < .PartyMember || BaseLevel < .Level || Zeny < .Zeny ){

        mes "[ ^00FF00Requirements^000000 ]";

        mes "^0000FFBase Level^000000 : "+.Level+" Level";

        mes "^0000FFZeny^000000 : "+.Zeny+" Zeny ";

        mes "^0000FFParty Members^000000 : "+.PartyMember+" Members";

        mes "(^FF0000Level / Zeny only Applied on Leader ^000000 )";

        close;

        }else{

        set Zeny, Zeny - .Zeny;

        mes "Your party will now be warped into the Destination to start the Game.";

        dispbottom "Click on the NPC inside to start the game.";

        delwaitingroom "Stage Game";

        close2;

        announce "Team [ "+getpartyname( getcharid(1) )+"] has joined STAGE GAME.",0;

        warpparty .Map$,0,0,getcharid(1);

        killmonster .Map$,"All";

        set getvariableofnpc(.Level,"Stage Game"),0;

        end;

        }

    Case 3:

        mes "The Game has been Reset.";

        killmonster .Map$,"All";

        mapwarp .Map$,"prontera",155,180;

        announce "A GM has RESET the Stage Game, Sorry for the Incovenience.",0;

        set getvariableofnpc(.Level,"Stage Game"),0;

        delwaitingroom "Stage Game";

        next;

        break;

    }

}

close;



OnInit:

    waitingroom "NULL",0;

OnWhisperGlobal:

    set .Level,1;

    set .Zeny,0;

    set .PartyMember,1;

    set .Map$,"guild_vs5";

    while(sleep2(1000))

    {

        delwaitingroom;

        waitingroom ( getmapusers(.Map$) > 0 ? " NOT":" " )+" Available",0;

    }

    end;

}

Need a little modification regarding the reward system, i want it to be distributed to all party members and not only to the party leader alone. Thanks in advance!

Link to comment
Share on other sites

2 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  48
  • Topics Per Day:  0.01
  • Content Count:  123
  • Reputation:   29
  • Joined:  04/09/12
  • Last Seen:  

I didn't read all of the script but I assume all the members will also be in the same map. So why don't you use a script to give items to everyone in that particular map.

 

Here's a reference that might be useful. http://rathena.org/board/topic/86286-get-map-player-list/

Instead of giving one random person apple, edit that script to make it give apple to everyone in the map by adding a for-loop like so:

prontera,150,150,5	script	Give Item	100,{
	set(.player,getcharid(3));
	deletearray(.players[0],128); addrid(1);
	set(.players[getarraysize(.players)],getcharid(3));
	detachrid; attachrid(.player);
	for(set @i,0; @i < getarraysize(.players); set @i,@i+1) {
	    getitem(512,1,set(.@a,.players[@i]));
	    npctalk rid2name(.@a)+" got a Apple!";
}
	end;
}

This code is untested.

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  105
  • Topics Per Day:  0.02
  • Content Count:  446
  • Reputation:   229
  • Joined:  03/20/12
  • Last Seen:  

Solved it by myself. Thanks anyways. I used some codes I read in multiple scripts and put them together.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...