Jump to content

k3u151312

Members
  • Posts

    1
  • Joined

  • Last visited

Posts posted by k3u151312

  1. Help please I want this private_mvp entrance fee and summon mobs become coin instead of zeny, and can summon 10 to 30 mobs inside.. please all pro scriptor here help me.. thanks in advance

    //===== rAthena Script =======================================
    //= Private MVP & Branch Room
    //===== By: ==================================================
    //= AnnieRuru
    //===== Current Version: =====================================
    //= 1.0
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= Allows players to rent an MVP room for personal use,
    //= or for a party or guild.
    //===== Additional Comments: =================================
    //= 1.0 First version, edited. [Euphy]
    //============================================================
    
    prontera,164,172,3    script    Private MVP Room    100,{
        mes "[Private MVP Room]";
        mes "Please select a private MVP room.";
        if ( getvariableofnpc( .rentcost, "MVP Summoner" ) )
            mes "The cost to rent a room for "+ getvariableofnpc( .timeout, "MVP Summoner" ) +" minutes is "+ callfunc("F_InsertComma", getvariableofnpc( .rentcost, "MVP Summoner" ) ) +" zeny.";
        else
            mes "You can only use the room for only "+ getvariableofnpc( .timeout, "MVP Summoner" ) +" minutes.";
        mes " ";
        for ( .@i = 1; .@i <= 8; .@i++ )
            if ( getvariableofnpc( .renttime[.@i], "MVP Summoner" ) )
                mes "Room #"+ .@i +" = "+ .color$[ .type[.@i] ] + .whoinuse$[.@i] +"^000000";
        next;
        .@room = select(
            "MVP Room 1 ["+ getmapusers("06guild_01") +"]",
            "MVP Room 2 ["+ getmapusers("06guild_02") +"]",
            "MVP Room 3 ["+ getmapusers("06guild_03") +"]",
            "MVP Room 4 ["+ getmapusers("06guild_04") +"]",
            "MVP Room 5 ["+ getmapusers("06guild_05") +"]",
            "MVP Room 6 ["+ getmapusers("06guild_06") +"]",
            "MVP Room 7 ["+ getmapusers("06guild_07") +"]",
            "MVP Room 8 ["+ getmapusers("06guild_08") +"]");
        if ( getvariableofnpc( .renttime[.@room], "MVP Summoner" ) ) {
            if ( .inuseid[.@room] == getcharid( .type[.@room] ) ) {
                warp "06guild_0"+ .@room, 0,0;
                close;
            } else {
                mes "[Private MVP Room]";
                mes "This room is reserved for ";
                mes .color$[ .type[.@room] ] + .whoinuse$[.@room] +"^000000.";
                mes "Please select another.";
                close;
            }
        }
        mes "[Private MVP Room]";
        mes "Reserve this room for...";
        next;
        set .@type, select( "For my party members", "For my guild members", "For personal account use" );
        if ( !getcharid(.@type) ) {
            mes "[Private MVP Room]";
            mes "You do not own a "+( ( .@type == 1 )? "Party" : "Guild" )+".";
            close;
        }
        else if ( Zeny < getvariableofnpc( .rentcost, "MVP Summoner" ) ) {
            mes "You don't have enough zeny to rent a room.";
            close;
        }
        else if ( getvariableofnpc( .renttime[.@room], "MVP Summoner" ) ) {
            mes "[Private MVP Room]";
            mes "I'm sorry, somebody else has already registered this room faster than you.";
            close;
        }
        for ( .@i = 1; .@i <= 8; .@i++ ) {
            if ( ( getvariableofnpc( .renttime[.@i], "MVP Summoner" ) ) && .@type == .type[.@i] && getcharid(.@type) == .inuseid[.@i] ) {
                mes "[Private MVP Room]";
                mes "You already rented Room#"+ .@i +". Use that room instead.";
                close;
            }
        }
        set .type[.@room], .@type;
        set .inuseid[.@room], getcharid(.@type);
        set .whoinuse$[.@room], strcharinfo( ( .@type == 3 )? 0 : .@type );
        Zeny -= getvariableofnpc( .rentcost, "MVP Summoner" );
        warp "06guild_0"+ .@room, 0,0;
        killmonsterall "06guild_0"+ .@room;
        donpcevent "MVP Summoner#"+ .@room +"::OnEnterMap";
        close;
    OnInit:
        .color$[1] =  "^EE8800"; // party color
        .color$[2] =  "^70CC11"; // guild color
        .color$[3] =  "^0000FF"; // account color
        end;
    }
    
    -    script    MVP Summoner    -1,{
        mes "[MVP Summoner]";
        mes "Time left: " + callfunc( "Time2Str", .renttime[ atoi( strnpcinfo(2) ) ] + .timeout * 60 );
        mes "Hi, what can I do for you?";
        next;
        switch ( select(.menu$) ) {
        case 1:
            mes "[MVP Summoner]";
            if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) ) {
                mes "I cannot offer heal service when there are monsters around.";
                close;
            }
            sc_end SC_STONE;
            sc_end SC_SLOWDOWN;
            sc_end SC_FREEZE;
            sc_end SC_SLEEP;
            sc_end SC_CURSE;
            sc_end SC_SILENCE;
            sc_end SC_CONFUSION;
            sc_end SC_BLIND;
            sc_end SC_BLEEDING;
            sc_end SC_DECREASEAGI;
            sc_end SC_POISON;
            sc_end SC_HALLUCINATION;
            sc_end SC_STRIPWEAPON;
            sc_end SC_STRIPARMOR;
            sc_end SC_STRIPHELM;
            sc_end SC_STRIPSHIELD;
            sc_end SC_CHANGEUNDEAD;
            sc_end SC_ORCISH;
            sc_end SC_BERSERK;
            sc_end SC_SKE;
            sc_end SC_SWOO;
            sc_end SC_SKA;
            percentheal 100,100;
            specialeffect2 EF_HEAL;
            mes "You are completely healed.";
            close;
        case 2:
            if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) ) {
                mes "[MVP Summoner]";
                mes "I cannot summon another MVP when there are monsters around.";
                close;
            } else if ( .mvp1cost ) {
                mes "[MVP Summoner]";
                mes "The cost to summon an MVP is "+ callfunc( "F_InsertComma", .mvp1cost ) +" zeny.";
                next;
                set .@menu, select(.mvp1id_menu$) -1;
                mes "[MVP Summoner]";
                if ( Zeny < .mvp1cost ) {
                    mes "You don't have enough zeny to summon an MVP.";
                    close;
                }
            } else {
                set .@menu, select(.mvp1id_menu$) -1;
                mes "[MVP Summoner]";
            }
            mes "Please get ready.";
            close2;
            if ( Zeny < .mvp1cost ) end;
            Zeny -= .mvp1cost;
            monster "this", 0, 0, "--ja--", .mvp1id[.@menu], 1, strnpcinfo(3)+"::OnMobDead";
            end;
        case 3:
            if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) ) {
                mes "[MVP Summoner]";
                mes "I cannot summon another Special MVP when there are monsters around.";
                close;
            } else if ( .mvp2cost ) {
                mes "[MVP Summoner]";
                mes "The cost to summon an Special MVP is "+ callfunc( "F_InsertComma", .mvp2cost ) +" zeny.";
                next;
                set .@menu, select(.mvp2id_menu$) -1;
                mes "[MVP Summoner]";
                if ( Zeny < .mvp2cost ) {
                    mes "You don't have enough zeny to summon an Special MVP.";
                    close;
                }
            } else {
                set .@menu, select(.mvp2id_menu$) -1;
                mes "[MVP Summoner]";
            }
            mes "Please get ready.";
            close2;
            if ( Zeny < .mvp2cost ) end;
            Zeny -= .mvp2cost;
            monster "this", 0, 0, "--ja--", .mvp2id[.@menu], 1, strnpcinfo(3)+"::OnMobDead";
            end;
        case 4:
            if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) ) {
                mes "[MVP Summoner]";
                mes "I cannot summon another MVP when there are monsters around.";
                close;
            } else if ( .mvp3cost ) {
                mes "[MVP Summoner]";
                mes "The cost to summon an Hardcore MVP is "+ callfunc( "F_InsertComma", .mvp3cost ) +" zeny.";
                next;
                set .@menu, select(.mvp3id_menu$) -1;
                mes "[MVP Summoner]";
                if ( Zeny < .mvp3cost ) {
                    mes "You don't have enough zeny to summon an Hardcore MVP.";
                    close;
                }
            } else {
                set .@menu, select(.mvp3id_menu$) -1;
                mes "[MVP Summoner]";
            }
            mes "Please get ready.";
            close2;
            if ( Zeny < .mvp3cost ) end;
            Zeny -= .mvp3cost;
            monster "this", 0, 0, "--ja--", .mvp3id[.@menu], 1, strnpcinfo(3)+"::OnMobDead";
            end;
        case 5:
            if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) ) {
                mes "[MVP Summoner]";
                mes "I cannot summon another mini-boss when there are monsters around.";
                close;
            } else if ( .bosscost ) {
                mes "[MVP Summoner]";
                mes "The cost to summon a mini-boss is "+ callfunc( "F_InsertComma", .bosscost ) +" zeny.";
                next;
                set .@menu, select(.bossid_menu$) -1;
                mes "[MVP Summoner]";
                if ( Zeny < .bosscost ) {
                    mes "You doesn't have enough zeny to summon a Mini-Boss.";
                    close;
                }
            } else {
                set .@menu, select(.bossid_menu$) -1;
                mes "[MVP Summoner]";
            }
            mes "Please get ready.";
            close2;
            if ( Zeny < .bosscost ) end;
            Zeny -= .bosscost;
            monster "this", 0, 0, "--ja--", .bossid[.@menu], 1, strnpcinfo(3)+"::OnMobDead";
            end;
        case 6:
            if ( mobcount( "this", strnpcinfo(3)+"::OnMobDead" ) > 0 ) {
                mes "[MVP Summoner]";
                mes "I cannot offer this service when there are monsters around.";
                close;
            }
            close2;
            callshop "MVP room#branch", 1;
            end;
        case 7:
            mes "[MVP Summoner]";
            mes "Are you sure you want to leave this room?";
            next;
            if ( select( "Yes:No") == 1 )
                warp .respawnmap$, .respawnx, .respawny;
            close;
        case 8:
            mes "[MVP Summoner]";
            if ( getmapusers( strcharinfo(3) ) > 1 ) {
                mes "There are still some players in this room. Make sure you are the last member in this room to use this option.";
                close;
            }
            mes "Are you sure you want to give up this room?";
            if ( .rentcost )
                mes "You will need to pay again to enter this room.";
            next;
            if ( select( "Yes", "No" ) == 2 ) close;
            awake strnpcinfo(0);
            end;
        }
        close;
    
    OnMobDead:
        end;
    
    OnEnterMap:
        .@id = atoi( strnpcinfo(2) );
        .renttime[.@id] = gettimetick(2);
        sleep .timeout * 60000;
        mapwarp strnpcinfo(4), .respawnmap$, .respawnx, .respawny;
        .renttime[.@id] = 0;
        killmonsterall strnpcinfo(4);
        end;
    
    OnInit:
        if ( !getstrlen( strnpcinfo(2) ) ) {
    
    //    Config ---------------------------------------------------------------------------------------
    
        // Room rental time, in minutes.
        // When time runs out, all players inside the room will be kicked out.
        // Do NOT set this to zero!
        set .timeout, 60;
    
        set .rentcost, 100000;    // Zeny cost for renting a room (0 = free)
        set .mvp1cost, 100000;    // Zeny cost to summon an MVP (0 = free)
        set .mvp2cost, 150000;    // Zeny cost to summon an Specail MVP (0 = free)
        set .mvp3cost, 500000;    // Zeny cost to summon an Hardcore MVP (0 = free)
        set .bosscost, 100000;    // Zeny cost to summon a boss monster (0 = free)
    
        //    Options setting inside MVP room
        set .@menu[1], 1;    // Turn Heal option On/Off
        set .@menu[2], 1;    // Turn MVP Summoning On/Off
        set .@menu[3], 1;    // Turn Special MVP Summoning On/Off
        set .@menu[4], 1;    // Turn Hardcore MVP Summoning On/Off
        set .@menu[5], 1;    // Turn Mini boss Summoning On/Off
        set .@menu[6], 0;    // Sell items (branches) On/Off (see shop below, before the mapflags)
    
        // Respawn point when players leave the room
        set .respawnmap$, "prontera";
        set .respawnx, 150;
        set .respawny, 174;
    
        setarray .mvp1id[0],
            1511,//    Amon Ra
            1785,//    Atroce
            1630,//    Bacsojin
            1039,//    Baphomet
            1874,//    Beelzebub
            1272,//    Dark Lord
            1719,//    Datale
            1046,//    Doppelgangger
            1389,//    Dracula
            1112,//    Drake
            1115,//    Eddga
            1418,//    Evil Snake Lord
            1252,//    Garm
            1086,//    Golden Thief Bug
            1885,//    Gopinich
            1492,//    Incantation Samurai
            1734,//    Kiel D-01
            1251,//    Knight of Windstorm
            1779,//    Ktullanux
            1688,//    Lady Tanee
            1373,//    Lord of Death
            1147,//    Maya
            1059,//    Mistress
            1150,//    Moonlight Flower
            1087,//    Orc Hero
            1190,//    Orc Lord
            1038,//    Osiris
            1157,//    Pharaoh
            1159,//    Phreeoni
            1623,//    RSX 0806
            1583,//    Tao Gunka
            1312,//    Turtle General
            1685,// Vesper
            1658;//    Ygnizem
    
        setarray .mvp2id[0],
            1646,// Lord Knight Seyren
            1647,// Assassin Cross Eremes
            1648,// Whitesmith Harword
            1649,// High Priest Magaleta
            1650,// Sniper Shecil
            1651;// High Wizard Katrinn
    
    
        setarray .mvp3id[0],
            1917,// Wounded Morroc
            1956,// Naght Sieger
            1957,// Entweihen Crothen
            2022;// Nidhoggr's Shadow
    
        setarray .bossid[0],
            1096,// Angeling
            1388,// Archangeling
            1268,// Bloody Knight
            1830,// Bow Guardian
            1839,// Byorgue
            1307,// Cat O' Nine Tail
            1283,// Chimera
            1302,// Dark Illusion
            1198,// Dark Priest
            1582,// Deviling
            1091,// Dragon Fly
            1093,// Eclipse
            1205,// Executioner
            1783,// Galion
            1592,// Gangster
            1120,// Ghostring
            1259,// Gryphon
            1720,// Hydro
            1090,// Mastering
            1289,// Maya Purple
            1313,// Mobster
            1262,// Mutant Dragon
            1203,// Mysteltainn
            1870,// Necromancer
            1295,// Owl Baron
            1829,// Sword Guardian
            1991,// Tendrillion
            1204,// Tirfing
            1089,// Toad
            1092,// Vagabond Wolf
            1765,// Valkyrie
            1200;// Zherlthsh
    
    //    Config Ends ------------------------------------------------------------------------
    
            if ( !.timeout ) set .timeout, 60;
            .menu$ = ( .@menu[1] ? "Heal" : "" ) +":" ;
            .menu$ = .menu$ + ( .@menu[2] ? "Summon MVP" : "" ) +":";
            .menu$ = .menu$ + ( .@menu[3] ? "Summon Special MVP" : "" ) +":";
            .menu$ = .menu$ + ( .@menu[4] ? "Summon Hardcore MVP" : "" ) +":";
            .menu$ = .menu$ + ( .@menu[5] ? "Summon Mini-boss" : "" ) +":";
            .menu$ = .menu$ + ( .@menu[6] ? "Buy branches" : "" ) +":";
            .menu$ = .menu$ + "Leave this room:Give up this room";
            if ( .@menu[2] ) {
                .@size = getarraysize( .mvp1id );
                for ( .@i = 0; .@i < .@size; .@i++ )
                    .mvp1id_menu$ = .mvp1id_menu$ + getmonsterinfo( .mvp1id[.@i], MOB_NAME ) +":";
            }
            if ( .@menu[3] ) {
                .@size = getarraysize( .mvp2id );
                for ( .@i = 0; .@i < .@size; .@i++ )
                    .mvp2id_menu$ = .mvp2id_menu$ + getmonsterinfo( .mvp2id[.@i], MOB_NAME ) +":";        }
            if ( .@menu[4] ) {
                .@size = getarraysize( .mvp3id );
                for ( .@i = 0; .@i < .@size; .@i++ )
                    .mvp3id_menu$ = .mvp3id_menu$ + getmonsterinfo( .mvp3id[.@i], MOB_NAME ) +":";
            }
            if ( .@menu[5] ) {
                .@size = getarraysize( .bossid );
                for ( .@i = 0; .@i < .@size; .@i++ )
                    .bossid_menu$ = .bossid_menu$ + getmonsterinfo( .bossid[.@i], MOB_NAME ) +":";
            }
        }
        else {
            mapannounce strnpcinfo(4), "An administrator has refreshed the server. Please re-register this room.", bc_map;
            mapwarp strnpcinfo(4), .respawnmap$, .respawnx, .respawny;
        }
        end;
    }
    
    -    shop    MVP room#branch    -1,604:100000,12103:1000000
    
    06guild_01,49,49,4    duplicate(MVP Summoner)    MVP Summoner#1    116
    06guild_02,49,49,4    duplicate(MVP Summoner)    MVP Summoner#2    116
    06guild_03,49,49,4    duplicate(MVP Summoner)    MVP Summoner#3    116
    06guild_04,49,49,4    duplicate(MVP Summoner)    MVP Summoner#4    116
    06guild_05,49,49,4    duplicate(MVP Summoner)    MVP Summoner#5    116
    06guild_06,49,49,4    duplicate(MVP Summoner)    MVP Summoner#6    116
    06guild_07,49,49,4    duplicate(MVP Summoner)    MVP Summoner#7    116
    06guild_08,49,49,4    duplicate(MVP Summoner)    MVP Summoner#8    116
    
    06guild_01    mapflag    nowarpto
    06guild_02    mapflag    nowarpto
    06guild_03    mapflag    nowarpto
    06guild_04    mapflag    nowarpto
    06guild_05    mapflag    nowarpto
    06guild_06    mapflag    nowarpto
    06guild_07    mapflag    nowarpto
    06guild_08    mapflag    nowarpto
    06guild_01    mapflag    nomemo
    06guild_02    mapflag    nomemo
    06guild_03    mapflag    nomemo
    06guild_04    mapflag    nomemo
    06guild_05    mapflag    nomemo
    06guild_06    mapflag    nomemo
    06guild_07    mapflag    nomemo
    06guild_08    mapflag    nomemo
    06guild_01    mapflag    noteleport
    06guild_02    mapflag    noteleport
    06guild_03    mapflag    noteleport
    06guild_04    mapflag    noteleport
    06guild_05    mapflag    noteleport
    06guild_06    mapflag    noteleport
    06guild_07    mapflag    noteleport
    06guild_08    mapflag    noteleport
    06guild_01    mapflag    nosave    SavePoint
    06guild_02    mapflag    nosave    SavePoint
    06guild_03    mapflag    nosave    SavePoint
    06guild_04    mapflag    nosave    SavePoint
    06guild_05    mapflag    nosave    SavePoint
    06guild_06    mapflag    nosave    SavePoint
    06guild_07    mapflag    nosave    SavePoint
    06guild_08    mapflag    nosave    SavePoint
    06guild_01    mapflag    nopenalty
    06guild_02    mapflag    nopenalty
    06guild_03    mapflag    nopenalty
    06guild_04    mapflag    nopenalty
    06guild_05    mapflag    nopenalty
    06guild_06    mapflag    nopenalty
    06guild_07    mapflag    nopenalty
    06guild_08    mapflag    nopenalty
    
×
×
  • Create New...