Jump to content

Blazing Spear

Members
  • Posts

    208
  • Joined

  • Last visited

Posts posted by Blazing Spear

  1. What is wrong with this item script??

    4492,Upgrade_Maya_Purple_Card,6,20,,10,,,,,,,,769,,,,,{ bonus bIntravision,0; bonus bAllStats,1; skill "AL_RUWACH",1; },{},{ sc_end SC_RUWACH; }
    4535,Sealed_Garm Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddEffWhenHit,Eff_Freeze,2500; if(getrefine()>=15) { bonus2 bAddEffWhenHit,Eff_Freeze,4000; } },{},{}
    4536,Sealed_Atroce Card,6,20,,10,,,,,,,,2,,,,,{ bonus bBaseAtk,15; autobonus "{ bonus bAspdRate,50; }",5,10000,0,"{ specialeffect2 EF_POTION_BERSERK; }"; if(getrefine()>=15) {bonus bBaseAtk,55; autobonus "{ bonus bAspdRate,75; }",5,10000,0,"{ specialeffect2 EF_POTION_BERSERK; }"; } },{},{}
    4537,Sealed_Phreeoni Card,6,20,,10,,,,,,,,2,,,,,{ bonus bHit,50; if(getrefine()>=15) { bonus bHit,75; } },{},{}
    4538,Sealed_White Lady Card,6,20,,10,,,,,,,,769,,,,,{ bonus bHealPower,15; bonus bUseSPrate,30; if(getrefine()>=15) { bonus bHealPower,25; bonus bUseSPrate,20; } },{},{}
    4539,Sealed_Pharaoh Card,6,20,,10,,,,,,,,769,,,,,{ bonus bUseSPrate,15; },{},{}
    

    Here the Scree Shot

    post-1302-0-31843600-1355040408_thumb.png

  2. note i want to translate my custom item idnum2itemdesctable+idnum2itemdisplaynametable+idnum2itemresnametable=iteminfo.lub

    is that much way faster right??

    like xray to lua converter??

  3. thanks men your the best :)

    but how to make it script like this?? there is a enter private room, party room, guild mate room,

    it will cause map crash when i use this script i want like this

    // ....... if your server has { Overwriting user function [int__] } don't blame me ..........
    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$;
    }
    //===== eAthena Script ======================================
    //= Private MVP/Branch Room
    //===== By: ===============================================
    //= by ~AnnieRuru~
    //===== Current Version: ======================================
    //= 1.3
    //===== Compatible With: =====================================
    //= eAthena 11650 Trunk above or 11863 Stable above
    //===== Description: =========================================
    //= Player can rent MVP room for the player him/herself, for party or for guilds
    //===== Topic =================================================
    //= http://www.eathena.ws/board/index.php?showtopic=187654
    //===== Additional Comments: ==================================
    //= 1.0
    //= ---- break the tradition which a script only for a player, or only for a party.
    //=	  now 1 room can be use for party and another room can use for guilds.
    //= ---- timeout feature to prevent player owns the room indefinitely,
    //=	  by create a new account and sit/@at'ing inside overnight.
    //= ---- can disable mvp/boss summon via configuration and becomes a branch room script.
    //= ---- a double check to prevent players rent all the rooms for himself.
    //= 1.0a
    //= ---- fix a critial bug that the time count too fast "
    //= 1.1
    //= ---- added item cost to rent or to summon
    //= ---- added a config to limit summoning per session
    //= ---- added flood control option
    //= 1.2
    //= ---- rewrite the waitingroom counter
    //= ---- optimize the script in a way can add custom summon group
    //= ---- add config to kill the monsters if the room just being left empty
    //= ---- add GM can kick room in use
    //= ---- add able to spawn in numbers
    //= ---- add limitspawn can configure to negative to limit spawn in that group instead of individual one
    //= 1.3
    //= ---- fix chatroom countdown issue due to rev13269
    //= ---- fix a bug if 2 people rent a room at same time, the later 1 will get the room
    //= ---- add a feature so the GM can know how long the room has rented or abandoned
    //= 1.4
    //= ---- update with new mvp and mini bosses
    //= ---- fix an exploit if server allow to use @mail, player can send item/zeny away to prevent item/zeny deletion when registering the room
    //= ---- players die inside mvp room shouldn't lose exp
    //========================================================
    // 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, 30;
    // 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, 0; // 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, 0; // 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], 1; // 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$, "dicastes01"; // Note : "SavePoint" does NOT work
    set .respawnx, 261;
    set .respawny, 149;
    // 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
    // ---------
    set .group1name$, "Top Tier"; // Group 1 name
    set .group1itemid, 0; // 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, 40000000; // 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,
     1647,// Assassin Cross Eremes
     1871,// Fallen Bishop
     1768,// Gloom Under Night
     1086,// Golden Thief Bug
     1832,// Ifrit
     1734,// Kiel D-01
     1251,// Knight of Windstorm
     1646,// Lord Knight Seyren
     1147,// Maya
     1650,// Sniper Shecil
     1583,// Tao Gunka
     1708,// Thanatos
     1312,// Turtle General
     1751,// Valkyrie Randgris
     1685,// Vesper
     1648,// Whitesmith Harword
     1917;// Wounded Morroc
    // ---------
    // Group 2 -> mini boss
    // ---------
    set .group2name$, "Mid Tier"; // Group 2 name
    set .group2itemid, 0; // 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, 20000000; // 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,
     1511,// Amon Ra
     1630,// Bacsojin
     1039,// Baphomet
     1115,// Eddga
     1252,// Garm
     1649,// High Priest Magaleta
     1651,// High Wizard Katrinn
     1492,// Incantation Samurai
     1190,// Orc Lord
     1159,// Phreeoni
     1658;// Ygnizem
    // ---------
    // Group 3
    // ---------
    set .group3name$, "Low Tier"; // Group 3 name
    set .group3itemid, 0; // item id use for summon any Group 3 monster - 12109 - Poring box
    set .group3itemamount, 0; // amount of items to summon a Group 3 monster
    set .group3cost, 10000000; // if no item is specify, zeny cost to summon a Group 3 monster
    set .group3limit, 0; // limit of summon of Group 3 monster per session, prevent them only killing same monster again and again
    setarray .group3id,
     1785,// Atroce
     1096,// Angeling
     1388,// Archangeling
     1795,// Bloody Knight
     1874,// Beelzebub
     1272,// Dark Lord
     1719,// Datale
     1389,// Dracula
     1112,// Drake
     1046,// Doppelgangger
     1418,// Evil Snake Lord
     1120,// Ghostring
     1688,// Lady Tanee
     1373,// Lord of Death
     1289,// Maya Purple
     1150,// Moonlight Flower
     1087,// Orc Hero
     1038,// Osiris
     1157,// Pharaoh
     1623;// RSX 0806
    // ---------
    // 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 ( mobcount("this","all") > 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 && mobcount("this","all") > 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 && mobcount("this","all") > 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 && mobcount("this","all") > 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 ( mobcount("this","all") > 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;
    }
    dicastes01,263,149,5 script Private MVP Room 100,{
    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(.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(.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
    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
    

  4. How to make this script bloody branch instead of zeny to summon MVP's monster

    // = Script made by RIKIMARU on rathena.org
    // = Profile Link :
    // = http://rathena.org/board/user/434-rikimaru/
    // = ENJOY THIS SCRIPT!
    //===================================================================================
    //		//=====//	 /==/	 /==/		  /==/	
    //	   //	 //	 /==/	 /==/  /=/	 /==/		
    //	  //=====//			  /==/  /=/			 /==============/	 /========/   /==//===/	/==/	 /==/
    //	 //=//////	/==/	  /==//=/	   /==/	/==/==/==/==/==/	 /	 /  /   /==/		 /==/	 /==/
    //	// ==		/==/	  /==//=/	   /==/	/==/  /==/  /==/	 ======/  /   /==/		 /==/	 /==/
    //   //   ==	  /==/	  /==/  /=/	 /==/	/==/  /==/  /==/	 / /===/  /   /==/		 /==/	 /==/
    //  //	 ==	/==/	  /==/   /=/	/==/	/==/  /==/  /==/	 / /===/  /   /==/		 /==/=====/==/
    // //	   ==  /==/	  /==/	/=/   /==/	/==/  /==/  /==/	 /========/   /==/		 /==///////==/
    // ================ rAthena Script ==================================================
    // ============== Information =======================================================
    // = MVP Arena + MVP Arena Warper
    // = Made by :
    // = Rikimaru
    //===== Current Version: ===================================================
    //= 1.3
    //===== Compatible With: ===================================================
    //= rAthena Revision 15908 or Higher <--------------- IMPORTANT
    //===== Description: =======================================================
    //= MVP Arena + Warper with the newest MVP's added to the Script
    //= LHZ MVP's have a higher cost than normal MVP's,remember that.
    //===== Additional Comments: ===============================================
    //= 1.0 Finished the Script [Rikimaru]
    //= 1.1 Shorted by llchrisll
    //= 1.2 Added new MVP'S like Boitata and the new LHZ MVP's [Rikimaru]
    //= 1.3 fixed a little Bug in the arrays,which was caused by me. [Rikimaru]
    //=========================================================================
    //= DO NOT REMOVE MY AND CHRIS CREDITS AND CLAIM OUR WORK AS YOURS
    //=========================================================================
    mor_in,26,164,5 script MVP Warper 790,{
    // ================== Settings ============================================
    set .@n$,"^0000FF[ MVP Warper ]^000000";
    // ============= End of Settings ==========================================
    mes .@n$;
    mes "I can warp you to the MVP Room,do you want to go there?";
    next;
    switch(select("Yes!:No!")) {
    case 1:
    mes .@n$;
    mes "Okay I'm going to warp you.";
    warp "guild_vs1",50,50;
    close;
    case 2:
    mes .@n$;
    mes "Okay bye!";
    close;
    }
    }
    //========================= First Script End =============//
    //================== MVP Summoner ========================//
    guild_vs1,50,57,5 script MVP Summoner 790,{
    set .@nsummon$,"^0000FF[ MVP Summoner ]^000000";
    mes .@nsummon$;
    mes "Hello,I'm able to spawn MVP's.";
    mes "Which MVP do you want me to spawn?";
    mes "1 MVP costs "+.zeny[1]+" Zeny";
    mes "LHZ MVPs and Thanatos have a";
    mes "cost of "+.zeny[2]+" Zeny.";
    next;
    set .@m,select(.smenu$) - 1;
    mes .@nsummon$;
    mes "Okay let me check if you have enough Zeny.";
    if( Zeny < .zeny[.mobze[.@m]] ) {
    mes "You don't have enough money";
    close;
    } else {
    close2;
    set Zeny, Zeny - .zeny[.mobze[.@m]];
    atcommand "@spawn "+.mobid[.@m] + " "+.mobam[.@m];
    npctalk "[ MVP Summoner]: "+getmonsterinfo(.mobid[.@m],0) +" Spawned!";
    end;
    }
    OnInit:
    setarray .zeny[1],50000000,250000000; // 50m,250m Zeny
    // Mob IDs
    setarray .mobid[0],1511,1647,1785,1630,1039,1874,2068,1272,1719,1046,1389,1112,1115,1418,1871,1252,1768,1086,1885,1649,1651,1832,1492,1734,1251,1779,1688,1646,1373,1147,1059,1150,1087,1190,1038,1157,1159,1623,1650,1583,1708,1312,1751,1648,1658,2236,2238,2240,2241,2156,2235,2237,2087,2239;
    // Mob Spawn Amount
    setarray .mobam[0],1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1;
    // Price: Entry as Index from .zeny
    // 1 = .zeny[1] - 2 = .zeny[2]
    setarray .mobze[0],1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,2,2,2,2,2,2,1,2,2,1,2;
    set .smenu$,"";
    for( set .@s,0; .@s < getarraysize(.mobid); set .@s,.@s + 1) {
    // Skips an Monster if it does not exist in the db
    if(getmonsterinfo(.mobid[.@s],0) == "" || getmonsterinfo(.mobid[.@s],0) == "null") continue;
    // else adding it to the menu
    set .smenu$,.smenu$ + "- "+getmonsterinfo(.mobid[.@s],0) + ( (.mobid[.@s+1] == 0)?"":":");
    }
    end;
    }
    guild_vs1,31,68,5 duplicate(MVP Summoner) MVP Summoner#1 790
    guild_vs1,31,31,5 duplicate(MVP Summoner) MVP Summoner#2 790
    guild_vs1,68,31,5 duplicate(MVP Summoner) MVP Summoner#3 790
    guild_vs1,68,68,5 duplicate(MVP Summoner) MVP Summoner#4 790
    

×
×
  • Create New...