Professional Documents
Culture Documents
Private MVP Room 1.4b
Private MVP Room 1.4b
Private MVP Room 1.4b
~~~~~
function script int__ {
.@i = getstrlen( .@str$ = getarg(0) ) -3;
.@is_negative = charat( .@str$, 0 ) == "-";
while ( .@i > .@is_negative ) {
.@str$ = insertchar( .@str$, ",", .@i );
.@i -= 3;
}
return .@str$;
}
// This is the shop for this Branch room IF you already enable it. Can sell
whatever things you want.
- shop MVP room#branch -1,604:100000,12103:1000000
OnInit:
getmapxy .@map$, .@x, .@y, 1;
if ( .@map$ == "" ) {
// Config
-----------------------------------------------------------------------------------
----
// Time for rent a room IN MINUTES. When time out, players inside the room
will kick out. Do Not set this as 0
set .timeout, 60;
// if the room left empty for # minutes, will be treated as give up the room.
Do Not set this as 0
set .nobodygiveup, 5;
// NOTE : The script only search item OR Zeny. if you specify item amount,
then it will ask for the item. If item amount is 0, then it will ask for Zeny.
// limit each room can only summon 1 monster at a time. (only the Summoning
option)
// Turn it off (0) means the player can summon a lot of monsters as long as
the player has enough Zeny/item. High rate server players love the room with a lot
MVPs
// Turn it on (1) means the player have to kill existing monster before can
summon a new one. Low rate server player prefer to take out MVP 1 by 1
set .floodcontrol, 0;
// If the room has left over monsters while nobody in the room and the room
not give up yet, shall we kill monsters in empty room ?
set .killmonster, 1; // Default is yes
// set respawn point when they leave the room. Obviously warp to the
Private MVP Room Warper npc
set .respawnmap$, "prontera"; // Note : "SavePoint" does NOT work
set .respawnx, 150;
set .respawny, 174;
// ---------
// Group 1 -> MVP
// ---------
set .group1name$, "MVP"; // Group 1 name
set .group1itemid, 674; // item id use for summon any Group 1 monster - 674 -
mithil coin
set .group1itemamount, 0; // amount of items to summon a Group 1 monster
set .group1cost, 100000; // if no item is specify, Zeny cost to summon a
Group 1 monster
set .group1limit, 0; // limit of summon of Group 1 monster per session,
prevent them only killing same monster again and again
setarray .group1id,
1511,// Amon Ra
1647,// Assassin Cross Eremes
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
1871,// Fallen Bishop
1252,// Garm
1768,// Gloom Under Night
1086,// Golden Thief Bug
1885,// Gopinich
1649,// High Priest Magaleta
1651,// High Wizard Katrinn
1832,// Ifrit
1492,// Incantation Samurai
1734,// Kiel D-01
1251,// Knight of Windstorm
1779,// Ktullanux
// 1980,// Kubkin ( I think this mvp is still new )
1688,// Lady Tanee
1646,// Lord Knight Seyren
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
1650,// Sniper Shecil
1583,// Tao Gunka
1708,// Thanatos
1312,// Turtle General
1751,// Valkyrie Randgris
1685,// Vesper
1648,// Whitesmith Harword
1917,// Wounded Morroc
1658;// Ygnizem
// ---------
// Group 2 -> mini boss
// ---------
set .group2name$, "mini boss"; // Group 2 name
set .group2itemid, 674; // item id use for summon any Group 2 monster - 674 -
mithil coin
set .group2itemamount, 0; // amount of items to summon a Group 2 monster
set .group2cost, 10000; // if no item is specify, Zeny cost to summon a Group
2 monster
set .group2limit, 0; // limit of summon of Group 2 monster per session,
prevent them only killing same monster again and again
setarray .group2id,
1096,// Angeling
1388,// Archangeling
1795,// Bloody Knight
1830,// Bow Guardian
1839,// Byorgue
1309,// 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
1262,// Mutant Dragon
1203,// Mysteltainn
1870,// Necromancer
1295,// Owl Baron
1829,// Sword Guardian
1204,// Tirfing
1089,// Toad
1092,// Vagabond Wolf
1765;// Valkyrie
// ---------
// Group 3
// ---------
set .group3name$, "Poring-Family"; // Group 3 name
set .group3itemid, 12109; // item id use for summon any Group 3 monster -
12109 - Poring box
set .group3itemamount, 1; // amount of items to summon a Group 3 monster
set .group3cost, 0; // if no item is specify, Zeny cost to summon a Group 3
monster
set .group3limit, -5; // limit of summon of Group 3 monster per session,
prevent them only killing same monster again and again
setarray .group3id,
1002,// Poring
1113,// Drops
1031,// Poporing
1242,// Marin
1062,// Santa Poring
1613,// Metaling
1784,// Stapo
1090,// Mastering
1096,// Angeling
1120,// Ghostring
1582,// Deviling
1388,// Arc Angeling
1502;// Pori Pori
// ---------
// Group 4
// ---------
set .group4name$, ""; // Group 4 name
set .group4itemid, 0; // item id use for summon any Group 4 monster
set .group4itemamount, 0; // amount of items to summon a Group 4 monster
set .group4cost, 0; // if no item is specify, Zeny cost to summon a Group 4
monster
set .group4limit, 0; // limit of summon of Group 4 monster per session,
prevent them only killing same monster again and again
setarray .group4id,
1001,
1002;
// ---------
// Group 5
// ---------
set .group5name$, ""; // Group 5 name
set .group5itemid, 0; // item id use for summon any Group 5 monster
set .group5itemamount, 0; // amount of items to summon a Group 5 monster
set .group5cost, 0; // if no item is specify, Zeny cost to summon a Group 5
monster
set .group5limit, 0; // limit of summon of Group 5 monster per session,
prevent them only killing same monster again and again
setarray .group5id,
1001,
1002;
// ---------
// Group 6
// ---------
set .group6name$, ""; // Group 6 name
set .group6itemid, 0; // item id use for summon any Group 6 monster
set .group6itemamount, 0; // amount of items to summon a Group 6 monster
set .group6cost, 0; // if no item is specify, Zeny cost to summon a Group 6
monster
set .group6limit, 0; // limit of summon of Group 6 monster per session,
prevent them only killing same monster again and again
setarray .group6id,
1001,
1002;
// ---------
// Group 7
// ---------
set .group7name$, ""; // Group 7 name
set .group7itemid, 0; // item id use for summon any Group 7 monster
set .group7itemamount, 0; // amount of items to summon a Group 7 monster
set .group7cost, 0; // if no item is specify, Zeny cost to summon a Group 7
monster
set .group7limit, 0; // limit of summon of Group 7 monster per session,
prevent them only killing same monster again and again
setarray .group7id,
1001,
1002;
// ---------
// Group 8
// ---------
set .group8name$, ""; // Group 8 name
set .group8itemid, 0; // item id use for summon any Group 8 monster
set .group8itemamount, 0; // amount of items to summon a Group 8 monster
set .group8cost, 0; // if no item is specify, Zeny cost to summon a Group 8
monster
set .group8limit, 0; // limit of summon of Group 8 monster per session,
prevent them only killing same monster again and again
setarray .group8id,
1001,
1002;
// ---------
// Group 9
// ---------
set .group9name$, ""; // Group 9 name
set .group9itemid, 0; // item id use for summon any Group 9 monster
set .group9itemamount, 0; // amount of items to summon a Group 9 monster
set .group9cost, 0; // if no item is specify, Zeny cost to summon a Group 9
monster
set .group9limit, 0; // limit of summon of Group 9 monster per session,
prevent them only killing same monster again and again
setarray .group9id,
1001,
1002;
// Config Ends
------------------------------------------------------------------------
set .@i, 1;
while ( .@i <= 9 ) {
setd ".group"+ .@i +"idsize", getarraysize( getd(".group"+ .@i
+"id") );
if ( .@menu[.@i] && getd(".group"+ .@i +"limit") <= 0 ) {
set .@j, 0;
while ( .@j < getd(".group"+ .@i +"idsize") ) {
setd ".group"+ .@i +"menu$", getd(".group"+ .@i
+"menu$") + getmonsterinfo( getd(".group"+ .@i +"id["+ .@j +"]"), 0) +":";
set .@j, .@j +1 ;
}
}
set .@i, .@i +1 ;
}
}
else {
setmapflag .@map$, mf_nowarpto;
setmapflag .@map$, mf_noteleport;
setmapflag .@map$, mf_nomemo;
setmapflag .@map$, mf_nosave;
setmapflag .@map$, mf_nopenalty;
// setmapflag .@map$, mf_nowarp;
// setmapflag .@map$, mf_noreturn;
// setmapflag .@map$, mf_nomobloot;
// setmapflag .@map$, mf_nomvploot;
// setmapflag .@map$, mf_monster_noteleport;
// setmapflag .@map$, mf_noicewall;
// setmapflag .@map$, mf_nobaseexp;
// setmapflag .@map$, mf_nojobexp;
// setmapflag .@map$, mf_novending;
sleep 1;
mapannounce .@map$, "Admin has refresh the server, please register the
room again.", 1;
mapwarp .@map$, .respawnmap$, .respawnx, .respawny;
}
end;
OnEnterMap:
set .@dif, strnpcinfo(2);
set .remind[.@dif], 0;
for ( set .@i, 1; .@i <= 9; set .@i, .@i +1 )
deletearray getd(".group"+ .@i +"limit"+ .@dif), getd(".group"+ .@i
+"idsize");
set .nobodycounter[.@dif], 0;
getmapxy .@map$, .@x, .@y ,1;
set .starttime[.@dif], gettimetick(2);
do {
set .remaintime[.@dif], .timeout * 60 + .starttime[.@dif] -
gettimetick(2);
set .@hour[.@dif], .remaintime[.@dif] / 3600 ;
set .@min[.@dif], .remaintime[.@dif] % 3600 / 60 ;
set .@sec[.@dif], .remaintime[.@dif] % 3600 % 60 ;
delwaitingroom strnpcinfo(0);
waitingroom "Time Left = "+( ( .@hour[.@dif] )?( .@hour[.@dif] +":"):""
)+( ( .@min[.@dif] < 10 )?"0"+ .@min[.@dif]: .@min[.@dif] )+":"+( ( .@sec[.@dif] <
10 )?"0"+ .@sec[.@dif]: .@sec[.@dif] ), 0;
if ( getmapusers(.@map$) )
set .nobodycounter[.@dif], 0;
else {
set .nobodycounter[.@dif], .nobodycounter[.@dif] +1 ;
if ( .nobodycounter[.@dif] > .nobodygiveup * 60 ) break;
}
sleep 995;
} while ( .remaintime[.@dif] > 1 );
set .remaintime[.@dif], 0;
delwaitingroom "MVP Summoner#"+ .@dif;
mapwarp .@map$, .respawnmap$, .respawnx, .respawny;
end;
OnTimer100:
stopnpctimer;
npctalk "Hi ~ the bubble above my head is the countdown for using this
room.";
sleep 2000;
npctalk "Sometimes, I can skip for about 1 second in the countdown.";
sleep 3000;
npctalk "That is because the server is experiencing minor lag problem.";
sleep 3000;
npctalk "So, don't complain about me cheated for the countdown ~ ^.^";
sleep 3000;
npctalk "Have a nice day ~";
end;
}