3MrcRO - Development TEAM
Selamat Datang Di 3MrcRO Develpment TeaM
Disini Kalian Bebas Belajar Tentang Ragnarok Private Server. Mari Kita Bangun Forum Ini Bersama"


- Admin -
3MrcRO - Development TEAM
Selamat Datang Di 3MrcRO Develpment TeaM
Disini Kalian Bebas Belajar Tentang Ragnarok Private Server. Mari Kita Bangun Forum Ini Bersama"


- Admin -
3MrcRO - Development TEAM
Would you like to react to this message? Create an account in a few clicks or log in to continue.

3MrcRO - Development TEAM

Ragnarok - Support Board
 
IndeksLatest imagesPencarianPendaftaranLogin

 

 [SCRIPT]FULL MvP

Go down 
PengirimMessage
madtoyz

madtoyz


Jumlah posting : 10
Join date : 27.03.10
Age : 35
Lokasi : kuching,sarawak bumi kenyalang

[SCRIPT]FULL MvP Empty
PostSubyek: [SCRIPT]FULL MvP   [SCRIPT]FULL MvP I_icon_minitimeSat Mar 27, 2010 12:29 pm

TENTANG : Boleh dikatakan semua jenis MvP ada didalam script ini.
MENGAPA/KENAPA : Semestinya orang mengatakan saya ciplak script ini daripada Original site tetapi sekarang ini saya melihat sudah ramai orang-orang baru yang malas hendak mencari disudut-sudut lain sedangkan ia sekarang bertaburan dimerata tempat.

Mengadungi dua versi iaitu malay dan english pada main NPC sahaja
[SCRIPT]FULL MvP 103002
CARA-CARA MEMASANGNYA? :
1. salinkan segala CODE dibawah ini dan letakkan didalam textplain anda.
2. Letakkan nama FuLL_MvP atau nama-nama yang anda suka.
3. Letakkan script tersebut didalam file npc/custom.
4. Selepas itu anda buka file scripts_custom dan tuliskan tempat pautan script tersebut,sebagai contoh npc/custom/FuLL_MvP.txt
5. Didalam pelayan anda pula,anda hanya perlu menulis commands @reloadscript dan @loadnpc <file pautan tadi seperti didalam langkah ke4.>

DOWNLOAD LINK : tekan disini !!
Code:
function   script   int__   {
   set .@num, atoi(getarg(0));
   if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
   set .@l, getstrlen(.@num);
   for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
  set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
  if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
   }
   return .@num$;

}


//   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



-   script   MVP Summoner   -1,{
   goto L_Start;

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.

   // the cost to rent a room
   set .rentitemid, 674; // item id use for rent a room - 674 - mithil coin
   set .rentitemamount, 0; // amount of items to rent a room
   set .rentcost, 1000000; // otherwise, zeny cost to rent a room

   // 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 .floodcontrol is turn off, your players might experience lag if they summoned too many MVPs
   // so what is the maximum input to limit your players summon too many ?
   set .inputlimit, 30;

   // 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

   //   Options menu setting for MVP Summoner NPC.
   set .@menu[0], 1; // Turn Heal option On/Off
   set .@menu[1], 1; // Turn Group 1 summons On/Off -> MVP
   set .@menu[2], 1; // Turn Group 2 summons On/Off -> mini boss
   set .@menu[3], 0; // Turn Group 3 summons On/Off
   set .@menu[4], 0; // Turn Group 4 summons On/Off
   set .@menu[5], 0; // Turn Group 5 summons On/Off
   set .@menu[6], 0; // Turn Group 6 summons On/Off
   set .@menu[7], 0; // Turn Group 7 summons On/Off
   set .@menu[8], 0; // Turn Group 8 summons On/Off
   set .@menu[9], 0; // Turn Group 9 summons On/Off
   set .@menu[10], 0; // Sell shop items options On/Off ( shop npc above )

   //   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;

   // The minimum GM level can kick a room in use
   set .gmlvlkick, 80;

   // .limitspawn in previous revision changed to .grouplimit .
   // it is for limit each monster spawn per session, prevent them only killing same monster again and again
   // Now you can configure one group has limited summon, and another group has unlimited summon
   // Tips: if you server has an insane custom MVP, you can put your custom mob to Group 3~9 with insane item cost, and limit only 1 summon per session
   // .grouplimit use amount, means if group1limit set to 10, then each session can only summon up to 10 amount of that kind of monster. 0 is unlimited

   // ---------
   // 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,//   Gorynych
  1990,// Hardrock Mammoth
  1649,// High Priest Magaleta
  1651,// High Wizard Katrinn
  1832,//   Ifrit
  1492,//   Incantation Samurai
  1734,//   Kiel D-01
  1251,//   Knight of Windstorm
  1779,//   Ktullanux
  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
  1502,// Pori Pori
  1623,//   RSX 0806
  1650,// Sniper Shecil
  1583,//   Tao Gunka
  1991,// Tendril Lion
  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
  1641,// Assassin Cross Eremes
  1873,// Beelzebub
  1830,// Bow Master
  1795,// Bloody Knight
  1839,// Byorgue
  1307,// Cat o' Nine Tails
  1283,// Chimera
  1302,// Dark Illusion
  1582,// Deviling
  1091,// Dragon Fly
  1093,// Eclipse
  1957,// Entweihen Crothen
  1205,// Executioner
  1783,// Galion
  1681,// Gemini-S58
  1592,// Gangster
  1120,// Ghostring
  1259,// Gryphon
  1626,// Hellion Revenant
  1643,// High Priest Margaretha
  1645,// High Wizard Kathryne
  1720,// Hydro
  1920,// Incarnation of Morroc
  1918,// Incarnation of Morroc 1
  1921,// Incarnation of Morroc 2
  1919,// Incarnation of Morroc 3
  1833,// Kasa
  1640,// Lord Knight Seyren
  1090,// Mastering
  1289,// Maya Purple
  1262,// Mutant Dragon
  1203,// Mysteltainn
  1870,// Necromancer
  1700,// Dame of Sentinel
  1295,// Owl Baron
  1320,// Owl Duke
  1702,// Baroness of Retribution
  1831,// Salamander
  1701,// Mistress of Shelter
  1916,// Satan Morroc
  1754,// Skeggiold
  1755,// Skeggiold 1
  1644,// Sniper Cecil
  1703,// Lady Solace
  1829,// Sword Master
  1705,// Despero of Thanato
  1710,// Despero of Thanato 1
  1707,// Dolor of Thanatos
  1712,// Dolor of Thanatos 1
  1711,// Maero of Thanatos
  1706,// Maero of Thanatos 1
  1704,// Odium of Thanatos
  1709,// Odium of Thanatos 1
  1960,// Thorn of Magic
  1961,// Thorn of Purification
  1959,// Thorn of Recovery
  1958,// Thorny Skeleton
  1204,// Ogretooth
  1089,// Toad
  1092,// Vagabond Wolf
  1765;// Valkyrie
  1642;// Whitesmith Howard

   // ---------
   // 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

   // ---------
   // 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 ------------------------------------------------------------------------

  if ( .timeout == 0 ) set .timeout, 60;
  if ( .nobodygiveup == 0 ) set .nobodygiveup, 5;
  if ( .inputlimit < 1 ) set .inputlimit, 1;

  if ( .rentitemid && .rentitemamount ) {
     if ( getitemname(.rentitemid) == "null" ) {
    debugmes "Private MVP Room: Rent a room is using invalid item id.";
     }
  }
  set .@i, 1;
  while ( .@i <= 9 ) {
     if ( .@menu[.@i] && getd(".group"+ .@i +"itemid") && getd(".group"+ .@i +"itemamount") ) {
    if ( getitemname( getd(".group"+ .@i +"itemid") ) == "null" ) {
       debugmes "Private MVP Room: Group no. "+ .@i +" is using invalid item id.";
    }
     }
     set .@i, .@i +1;
  }
  set .menu$, ( (.@menu[0])?"Heal":"" )+":"+( (.@menu[1])?"Summon "+ .group1name$:"" )+":"+( (.@menu[2])?"Summon "+ .group2name$:"" )+":"+( (.@menu[3])?"Summon "+ .group3name$:"" )+":"+( (.@menu[4])?"Summon "+ .group4name$:"" )+":"+( (.@menu[5])?"Summon "+ .group5name$:"" )+":"+( (.@menu[6])?"Summon "+ .group6name$:"" )+":"+( (.@menu[7])?"Summon "+ .group7name$:"" )+":"+( (.@menu[8])?"Summon "+ .group8name$:"" )+":"+( (.@menu[9])?"Summon "+ .group9name$:"" )+":"+( (.@menu[10])?"Buy branches":"" )+":Leave this room:Give up this room";

  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 {
  sleep 1;
  mapannounce .@map$, "Admin has refresh the server, please register the room again.", 1;
  mapwarp .@map$, .respawnmap$, .respawnx, .respawny;
   }
   end;

L_Start: // I hate gotos ... but ...
   set .@dif, strnpcinfo(2);
   if ( .remind[.@dif] == 0 ) {
  set .remind[.@dif], 1;
  initnpctimer;
   }
   mes "[MVP Summoner]";
   mes "Hi, what can I do for you ?";
   next;
   switch ( select(.menu$) ) {
  case 1:
     mes "[MVP Summoner]";
     if ( getmapmobs("this") > 0 ) {
    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 7;
     mes "You have completely healed.";
     close;
  default:
     set .@group, @menu -1;
     if ( .floodcontrol && getmapmobs("this") > 0 ) {
    mes "[MVP Summoner]";
    mes "I cannot summon another monster when there are monsters around.";
    close;
     }
     else if ( getd(".group"+ .@group +"itemid") && getd(".group"+ .@group +"itemamount") ) {
    mes "[MVP Summoner]";
    mes "The cost to summon a "+ getd(".group"+ .@group +"name$") +" is "+ getd(".group"+ .@group +"itemamount") +" "+ getitemname( getd(".group"+ .@group +"itemid") ) +".";
    if ( getd(".group"+ .@group +"limit") < 0 )
       mes "("+( ( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) <= 0 )?0:( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) ) )+") more summons for this group.";
    next;
     }
     else if ( getd(".group"+ .@group +"cost") ) {
    mes "[MVP Summoner]";
    mes "The cost to summon a "+ getd(".group"+ .@group +"name$") +" is "+ callfunc("int__", getd(".group"+ .@group +"cost") ) +" zeny.";
    if ( getd(".group"+ .@group +"limit") < 0 )
       mes "("+( ( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) <= 0 )?0:( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) ) )+") more summons for this group.";
    next;
     }
     else if ( getd(".group"+ .@group +"limit") < 0 ) {
    mes "[MVP Summoner]";
    mes "("+( ( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) <= 0 )?0:( ~getd(".group"+ .@group +"limit")+1 - getd(".group"+ .@group +"limit"+ .@dif) ) )+") more summons for this group.";
    next;
     }
     if ( getd(".group"+ .@group +"limit") < 0 && getd(".group"+ .@group +"limit"+ .@dif) >= ~getd(".group"+ .@group +"limit")+1 ) {
    mes "[MVP Summoner]";
    mes "I'm sorry, but you can't summon any more monster for this group.";
    close;
     }
     else if ( getd(".group"+ .@group +"limit") > 0 ) {
    for ( set .@i, 0; .@i < getd(".group"+ .@group +"idsize"); set .@i, .@i +1 )
       set .@menu$, .@menu$ +( ( getd(".group"+ .@group +"limit"+ .@dif +"["+ .@i +"]") >= getd(".group"+ .@group +"limit") )?"^999999":"^000000" )+ getmonsterinfo( getd(".group"+ .@group +"id["+ .@i +"]"), 0) +" ("+ ( ( getd(".group"+ .@group +"limit") - getd(".group"+ .@group +"limit"+ .@dif +"["+ .@i +"]") <= 0 )?0:( getd(".group"+ .@group +"limit") - getd(".group"+ .@group +"limit"+ .@dif +"["+ .@i +"]") ) ) +")"+":";
    set .@menu, select(.@menu$) -1;
     }
     else
    set .@menu, select( getd(".group"+ .@group +"menu$") ) -1;
     mes "[MVP Summoner]";
     if ( .floodcontrol == 0 && .inputlimit > 1 ) {
    mes "Input an amount of monsters to summon.";
    next;
    input .@amount;
    if ( .@amount == 0 ) close;
    else if ( .@amount > .inputlimit )
       set .@amount, .inputlimit;
    mes "[MVP Summoner]";
     }
     else
    set .@amount, 1;
     if ( getd(".group"+ .@group +"itemid") && getd(".group"+ .@group +"itemamount") ) {
    if ( countitem( getd(".group"+ .@group +"itemid") ) < getd(".group"+ .@group +"itemamount") * .@amount ) {
       mes "You don't have enough "+ getitemname( getd(".group"+ .@group +"itemid") ) +" to summon a "+ getd(".group"+ .@group +"name$") +".";
       close;
    }
     }
     else if ( getd(".group"+ .@group +"cost") ) {
    if ( zeny < getd(".group"+ .@group +"cost") * .@amount ) {
       mes "You don't have enough zeny to summon a "+ getd(".group"+ .@group +"name$") +".";
       close;
    }
     }
     if ( .floodcontrol && getmapmobs("this") > 0 ) {
    mes "I cannot summon another monster when there are monsters around.";
    close;
     }
     else if ( getd(".group"+ .@group +"limit") > 0 ) {
    if ( getd(".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]") >= getd(".group"+ .@group +"limit") ) {
       mes "I'm sorry, but you already summoned that monster too much. Try summon another.";
       close;
    }
    else if ( getd(".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]") + .@amount > getd(".group"+ .@group +"limit") ) {
       mes "The amount you input is more than the limit you can summon. Try reduce the amount.";
       close;
    }
     }
     else if ( getd(".group"+ .@group +"limit") < 0 ) {
    if ( getd(".group"+ .@group +"limit"+ .@dif) >= ~getd(".group"+ .@group +"limit")+1 ) {
       mes "I'm sorry, but you can't summon any more monster for this group.";
       close;
    }
    else if ( getd(".group"+ .@group +"limit"+ .@dif) + .@amount > ~getd(".group"+ .@group +"limit")+1 ) {
       mes "The amount you input is more than the limit you can summon. Try reduce the amount.";
       close;
    }
     }
     mes "Summoning "+ .@amount +" "+ getmonsterinfo( getd(".group"+ .@group +"id["+ .@menu +"]"), 0) +".";
     mes "Ok, get ready ?";
     close2;
     if ( .floodcontrol && getmapmobs("this") > 0 ) end;
     if ( getd(".group"+ .@group +"itemid") && getd(".group"+ .@group +"itemamount") ) {
    if ( countitem( getd(".group"+ .@group +"itemid") ) < getd(".group"+ .@group +"itemamount") * .@amount ) end;
    delitem getd(".group"+ .@group +"itemid"), getd(".group"+ .@group +"itemamount") * .@amount;
     }
     else if ( getd(".group"+ .@group +"cost") ) {
    if ( zeny < getd(".group"+ .@group +"cost") * .@amount ) end;
    set zeny, zeny - getd(".group"+ .@group +"cost") * .@amount;
     }
     if ( getd(".group"+ .@group +"limit") > 0 ) {
    if ( getd(".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]") + .@amount > getd(".group"+ .@group +"limit") ) end;
    setd ".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]", getd(".group"+ .@group +"limit"+ .@dif +"["+ .@menu +"]") + .@amount;
     }
     else if ( getd(".group"+ .@group +"limit") < 0 ) {
    if ( getd(".group"+ .@group +"limit"+ .@dif) + .@amount > ~getd(".group"+ .@group +"limit")+1 ) end;
    setd ".group"+ .@group +"limit"+ .@dif, getd(".group"+ .@group +"limit"+ .@dif) + .@amount;
     }
     monster "this", 0, 0, "--ja--", getd(".group"+ .@group +"id["+ .@menu +"]"), .@amount;
     end;
  case 11:
     if ( getmapmobs("this") > 0 ) {
    mes "[MVP Summoner]";
    mes "I cannot offer this service when there are monsters around.";
    close;
     }
     close2;
     callshop "MVP room#branch", 0;
     end;
  case 12:
     mes "[MVP Summoner]";
     mes "Are you sure you want to leave this room ?";
     mes "If this room left empty for more than "+ .nobodygiveup +" minutes, you lost ownership for this room.";
     if ( select( "Yes:No") == 2 ) close;
     warp .respawnmap$, .respawnx, .respawny;
     end;
  case 13:
     mes "[MVP Summoner]";
     getmapxy .@map$, .@x, .@y, 0;
     if ( getmapusers(.@map$) > 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;
     warp .respawnmap$, .respawnx, .respawny;
     set .remaintime[.@dif], -1;
     end;
   }
   close;

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;
}

aldebaran,134,119,5   script   Private MVP Room   100,{

   menu "Malay",Q_1, "English",Q_2;

Q_1:
   mes "[Bilik MvP Peribadi]";
   mes "Pilih kawasan bilik persendirian anda untuk MvP.";
   if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") )
  mes "Harga untuk penyewaan bilik ini adalah "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes is "+ getvariableofnpc(.rentitemamount, "MVP Summoner") +" "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +".";
   else if ( getvariableofnpc(.rentcost, "MVP Summoner") )
  mes "Harga untuk penyewaan bilik ini adalah "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes is "+ callfunc("int__", getvariableofnpc(.rentcost, "MVP Summoner") ) +" zeny.";
   else
  mes "Anda hanya boleh menggunakan bilik ini hanya "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes.";
   mes " ";
   for ( set .@i, 1; .@i <= 8; set .@i, .@i +1 ) {
  if ( getvariableofnpc(.remaintime[.@i],"MVP Summoner") ) {
     switch ( .type[.@i] ) {
    case 1: set .@color$, "^EE8800"; break;
    case 2: set .@color$, "^70CC11"; break;
    case 3: set .@color$, "^0000FF"; break;
    default: set .@color$, "^000000";
     }
     mes "Room #"+ .@i +" = "+ .@color$ + .whoinuse$[.@i] +"^000000";
  }
   }
   next;
   set .@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(.remaintime[.@room],"MVP Summoner") ) {
  if ( .inuseid[.@room] == getcharid(.type[.@room]) ) {
     if ( getvariableofnpc(.killmonster,"MVP Summoner") && getmapusers("06guild_0"+ .@room) == 0 )
    killmonsterall "06guild_0"+ .@room;
     warp "06guild_0"+ .@room, 0,0;
     end;
  } else {
     mes "[Bilik MvP Peribadi]";
     switch ( .type[.@room] ) {
    case 1: set .@color$, "^EE8800Party "; break;
    case 2: set .@color$, "^70CC11Guild "; break;
    case 3: set .@color$, "^0000FFPlayer ";
     }
     mes "Bilik ini ditempah oleh ";
     mes .@color$ + .whoinuse$[.@room] +"^000000 .";
     if ( getgmlevel() < getvariableofnpc(.gmlvlkick,"MVP Summoner") ) {
    mes "Pilih bilik yang lain.";
    close;
     }
     mes " ";
     mes "Sukacitanya mereka adalah "+ getmapusers("06guild_0"+ .@room) +" players";
     mes "didalam bilik tersebut.";
     set .@remaintime, getvariableofnpc(.remaintime[.@room],"MVP Summoner");
     mes "Ia masih ada "+( .@remaintime /60 )+"mn "+( .@remaintime %60 )+"s left.";
     set .@nobodycounter, getvariableofnpc(.nobodycounter[.@room],"MVP Summoner");
     if ( .@nobodycounter )
    mes "Dan telah ditinggalkan kosong selama "+( .@nobodycounter /60 )+"mn "+( .@nobodycounter %60 )+"s.";
     mes "Keluarkan mereka ?";
     next;
     if ( select ( "No:Yes" ) == 1 ) close;
     set getvariableofnpc(.remaintime[.@room],"MVP Summoner"), -1;
     mes "[Bilik MvP Peribadi]";
     mes "Room#"+ .@room +" is empty now.";
     close;
  }
   }
   mes "[Bilik MvP Peribadi]";
   if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
  if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
     mes "Kamu tidak mencukupi "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +" to rent a room.";
     close;
  }
   }
   else if ( getvariableofnpc(.rentcost, "MVP Summoner") ) {
  if ( zeny < getvariableofnpc(.rentcost, "MVP Summoner") ) {
     mes "Zeny anda tidak mencukupi untuk bilik ini.";
     close;
  }
   }
   mes "Kamu menyewa bilik ini untuk ...";
   next;
   set .@type, select("Untuk kawan-kawan", "Untuk ahli kesatuan", "Untuk peribadi sahaja" );
   if ( getcharid(.@type) == 0 ) {
  mes "[Bilik MvP Peribadi]";
  mes "Kamu tidak ada "+( (.@type == 1)?"Party":"Guild" )+".";
  close;
   }
   else if ( getvariableofnpc(.remaintime[.@room],"MVP Summoner") ) {
  mes "[Bilik MvP Peribadi]";
  mes "Minta maaf kerana sudah ada orang yang tempah lebih awal daripada kamu.";
  close;
   }
   for ( set .@i, 1; .@i <= 8; set .@i, .@i +1 ) {
  if ( getvariableofnpc(.remaintime[.@i],"MVP Summoner") && .@type == .type[.@i] && getcharid(.@type) == .inuseid[.@i] ) {
     mes "[Bilik MvP Peribadi]";
     mes "Kamu sudah menyewa Room#"+ .@i +". masih ingin menggunakannya?.";
     close;
  }
   }
   set .type[.@room], .@type;
   set .inuseid[.@room], getcharid(.@type);
   set .whoinuse$[.@room], strcharinfo( (.@type == 3)?0:.@type );
   if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
  if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) end;
  delitem getvariableofnpc(.rentitemid, "MVP Summoner"), getvariableofnpc(.rentitemamount, "MVP Summoner");
   }
   else if ( getvariableofnpc(.rentcost, "MVP Summoner") ) {
  if ( zeny < getvariableofnpc(.rentcost, "MVP Summoner") ) end;
  set zeny, zeny - getvariableofnpc(.rentcost, "MVP Summoner");
   }
   warp "06guild_0"+ .@room, 0,0;
   killmonsterall "06guild_0"+ .@room;
   donpcevent "MVP Summoner#"+ .@room +"::OnEnterMap";
   end;

Q_2:
   mes "[Private MVP Room]";
   mes "Please select a private MVP room.";
   if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") )
  mes "The cost to rent a room for "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes is "+ getvariableofnpc(.rentitemamount, "MVP Summoner") +" "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +".";
   else if ( getvariableofnpc(.rentcost, "MVP Summoner") )
  mes "The cost to rent a room for "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes is "+ callfunc("int__", getvariableofnpc(.rentcost, "MVP Summoner") ) +" zeny.";
   else
  mes "You can only use the room for only "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes.";
   mes " ";
   for ( set .@i, 1; .@i <= 8; set .@i, .@i +1 ) {
  if ( getvariableofnpc(.remaintime[.@i],"MVP Summoner") ) {
     switch ( .type[.@i] ) {
    case 1: set .@color$, "^EE8800"; break;
    case 2: set .@color$, "^70CC11"; break;
    case 3: set .@color$, "^0000FF"; break;
    default: set .@color$, "^000000";
     }
     mes "Room #"+ .@i +" = "+ .@color$ + .whoinuse$[.@i] +"^000000";
  }
   }
   next;
   set .@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(.remaintime[.@room],"MVP Summoner") ) {
  if ( .inuseid[.@room] == getcharid(.type[.@room]) ) {
     if ( getvariableofnpc(.killmonster,"MVP Summoner") && getmapusers("06guild_0"+ .@room) == 0 )
    killmonsterall "06guild_0"+ .@room;
     warp "06guild_0"+ .@room, 0,0;
     end;
  } else {
     mes "[Private MVP Room]";
     switch ( .type[.@room] ) {
    case 1: set .@color$, "^EE8800Party "; break;
    case 2: set .@color$, "^70CC11Guild "; break;
    case 3: set .@color$, "^0000FFPlayer ";
     }
     mes "This room is reserved for ";
     mes .@color$ + .whoinuse$[.@room] +"^000000 .";
     if ( getgmlevel() < getvariableofnpc(.gmlvlkick,"MVP Summoner") ) {
    mes "Please select another.";
    close;
     }
     mes " ";
     mes "Currently there are "+ getmapusers("06guild_0"+ .@room) +" players";
     mes "in that room.";
     set .@remaintime, getvariableofnpc(.remaintime[.@room],"MVP Summoner");
     mes "It still has "+( .@remaintime /60 )+"mn "+( .@remaintime %60 )+"s left.";
     set .@nobodycounter, getvariableofnpc(.nobodycounter[.@room],"MVP Summoner");
     if ( .@nobodycounter )
    mes "And have left empty for "+( .@nobodycounter /60 )+"mn "+( .@nobodycounter %60 )+"s.";
     mes "Kick them ?";
     next;
     if ( select ( "No:Yes" ) == 1 ) close;
     set getvariableofnpc(.remaintime[.@room],"MVP Summoner"), -1;
     mes "[Private MVP Room]";
     mes "Room#"+ .@room +" is empty now.";
     close;
  }
   }
   mes "[Private MVP Room]";
   if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
  if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
     mes "You don't have enough "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +" to rent a room.";
     close;
  }
   }
   else if ( getvariableofnpc(.rentcost, "MVP Summoner") ) {
  if ( zeny < getvariableofnpc(.rentcost, "MVP Summoner") ) {
     mes "You don't have enough zeny to rent a room.";
     close;
  }
   }
   mes "You reserve this room for ...";
   next;
   set .@type, select("For my party members", "For my guild members", "For personal account use" );
   if ( getcharid(.@type) == 0 ) {
  mes "[Private MVP Room]";
  mes "You do not own a "+( (.@type == 1)?"Party":"Guild" )+".";
  close;
   }
   else if ( getvariableofnpc(.remaintime[.@room],"MVP Summoner") ) {
  mes "[Private MVP Room]";
  mes "I'm sorry, somebody else has already register this room faster than you.";
  close;
   }
   for ( set .@i, 1; .@i <= 8; set .@i, .@i +1 ) {
  if ( getvariableofnpc(.remaintime[.@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 );
   if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {
  if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) end;
  delitem getvariableofnpc(.rentitemid, "MVP Summoner"), getvariableofnpc(.rentitemamount, "MVP Summoner");
   }
   else if ( getvariableofnpc(.rentcost, "MVP Summoner") ) {
  if ( zeny < getvariableofnpc(.rentcost, "MVP Summoner") ) end;
  set zeny, zeny - getvariableofnpc(.rentcost, "MVP Summoner");
   }
   warp "06guild_0"+ .@room, 0,0;
   killmonsterall "06guild_0"+ .@room;
   donpcevent "MVP Summoner#"+ .@room +"::OnEnterMap";
   end;
}

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
Kembali Ke Atas Go down
http://renzosite.ning.com
 
[SCRIPT]FULL MvP
Kembali Ke Atas 
Halaman 1 dari 1
 Similar topics
-
» Script Release From Agustus 2009 - 2010
» [SHARE] IDM v 6.15 [FULL WITH PATCH]

Permissions in this forum:Anda tidak dapat menjawab topik
3MrcRO - Development TEAM :: Download Area :: Download Script RO-
Navigasi: