-
Posts
146 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by madtoyz
-
How to convert the worm text into english ?
madtoyz replied to madtoyz's question in Client-side Support
so which one is the translation for this ? °í´ë ½ÅÀüÀÇ ¼öÈ£ÀÚ¿´´ø °ÅÀεéÀÇ Ã¢À» Å©±â¸¸ ÁÙÀÎ »óÅÂ. ÁøÁ¤ÇÑ ÈûÀ» ²ø¾î³¾ ¼ö ÀÖ´Â ÀÚ°¡ °ÅÀÇ ¾ø´Ù°í ÇÑ´Ù. -
thanks..done
-
Quests, Games: Monsterspawn Event
madtoyz replied to WhiteEagle's topic in Game, Event, Quest Script Releases
OnMyMobDead: set .mob_left,.mob_left-1; if (.mob_left == 0) { announce "[Monsterspawn Event]: "+strcharinfo(0)+" has killed the last "+.mobname$+".",bc_all; donpcevent "MSE::OnStop"; } else { announce "["+.mob_left+"/"+.moba+"] "+.mobname$+" left.",bc_all; } end; } dont know how. -
Quests, Games: Monsterspawn Event
madtoyz replied to WhiteEagle's topic in Game, Event, Quest Script Releases
how to add getitem in this event ? -
How to convert the worm text into english ?
madtoyz replied to madtoyz's question in Client-side Support
ive already download at RMS but dontknow how to use it -
How to remove Delay Asura Strike Skill ?
-
How to convert the worm text into english ? example : [1490] = { unidentifiedDisplayName = "Gigantic Lance", unidentifiedResourceName = "À𺧸°", unidentifiedDescriptionName = { "Unidentified item, can be identified with [Magnifier].", }, identifiedDisplayName = "Gigantic Lance", identifiedResourceName = "±â°£Æ®·£½º", identifiedDescriptionName = { "°í´ë ½ÅÀüÀÇ ¼öÈ£ÀÚ¿´´ø °ÅÀεéÀÇ Ã¢À» Å©±â¸¸ ÁÙÀÎ »óÅÂ. ÁøÁ¤ÇÑ ÈûÀ» ²ø¾î³¾ ¼ö ÀÖ´Â ÀÚ°¡ °ÅÀÇ ¾ø´Ù°í ÇÑ´Ù.", "ASPD - 10, ÀåÂøÇØÁ¦ ½Ã SP - 600.", "½ºÆÄÀÌ·² ÇǾÀÇ Àç»ç¿ë µô·¹ÀÌ 20ÃÊ Ãß°¡.", "¼ø¼ö STR 120ÀÌ»óÀÏ ½Ã ATK 300 Ãß°¡.", "°è¿ : ^777777¾ç¼Õâ^000000 °ø°Ý : ^77777720^000000", "¹«°Ô : ^7777772000^000000", "¹«±â ·¹º§ : ^7777774^000000", "¿ä±¸ ·¹º§ : ^777777140^000000", "ÀåÂø : ^777777·é³ªÀÌÆ®^000000", }, slotCount = 0, ClassNum = 5 },
-
sorry because i dont know how to change the title...lets the MOD make it.
-
im using client date 2012-05-15 done..from the 1st post until this post,what my problem is about the "" things in data/luafiles514/lua files/datainfo/spriterobename.lub thanks allot for helping me from the 1st post i made until solve the problem. very appreciate to members : jysn darristan dastgirpojee Winz [sOLVE]
-
getitem still cannot use. but the error already fix
-
prontera,167,178,3 script Gold Room Manager 965,{ mes "[ Gold Room Manager ]"; //mes "Hello, "; //mes "How may i serve for you ?"; mes "I can warp you to the gold room."; //mes "Would you like to go there try to get some gold ?"; //mes "You could be get rich if you lucky enough."; next; switch(select("Okay.:Not now.")) { Case 1: mes "[Gold Room Manager]"; //mes "So you have decide to go there."; //mes "A wise decision."; mes "You'll be there quickly. c;"; next; mes "[ Gold Room Manager ]"; mes "Enjoy."; close2; warp "guild_vs1",50,50; //OnInit: //waitingroom "Gold Room Warper",0; //end; Case 2: mes "[Gold Room Manager]"; //mes "Owh...."; //mes "Okay ;D"; //mes "It is all up to you."; mes "Come back to me if you've changed your mind."; close; } } //-------- Spawn Monster --------// guild_vs1,0,0,0,0 monster Golden Dokebi 1110,1000,0,0,0"GOLDMANAGERNAME::OnMobKilled" OnMobKilled: getitem 969,10; end; } //The Exit to Prontera guild_vs1,49,49,5 script Exit 902,{ warp "prontera" ,155,181; OnInit: waitingroom "Prontera",0,0; end; }
-
ok thanks
-
i dont know which client i use
-
cant change at here ? //-------- Spawn Monster --------// guild_vs1,0,0,0,0 monster Golden Dokebi 1110,1000,0,0,0
-
how to do the Golden Dokebi drop gold only ? prontera,167,178,3 script Gold Room Manager 965,{ mes "[ Gold Room Manager ]"; //mes "Hello, "; //mes "How may i serve for you ?"; mes "I can warp you to the gold room."; //mes "Would you like to go there try to get some gold ?"; //mes "You could be get rich if you lucky enough."; next; switch(select("Okay.:Not now.")) { Case 1: mes "[Gold Room Manager]"; //mes "So you have decide to go there."; //mes "A wise decision."; mes "You'll be there quickly. c;"; next; mes "[ Gold Room Manager ]"; mes "Enjoy."; close2; warp "guild_vs1",50,50; //OnInit: //waitingroom "Gold Room Warper",0; //end; Case 2: mes "[Gold Room Manager]"; //mes "Owh...."; //mes "Okay ;D"; //mes "It is all up to you."; mes "Come back to me if you've changed your mind."; close; } } //-------- Spawn Monster --------// guild_vs1,0,0,0,0 monster Golden Dokebi 1110,1000,0,0,0 //The Exit to Prontera guild_vs1,49,49,5 script Exit 902,{ warp "prontera" ,155,181; OnInit: waitingroom "Prontera",0,0; end; }
-
which one i need to change it ? db/skill_cast_db_RENEWAL.txt //-- RK_HUNDREDSPEAR 2004,1000:900:800:700:600:500:400:300:200:100,500,3000,0,0,0,-1
-
this is wing zero information. data/luafiles514/lua files/datainfo/spriterobeid.lub SPRITE_ROBE_IDs = { ROBE_WINGS = 1, ROBE_BAG_OF_ADVENTURER = 2, ROBE_WINGS_OF_FALLEN_ANGEL = 3, ROBE_WING_ZERO = 4, ROBE_BLOODWINGS = 5 } data/luafiles514/lua files/datainfo/spriterobename.lub RobeNameTable = { [sPRITE_ROBE_IDs.ROBE_WINGS] = "õ»ç³¯°³", [sPRITE_ROBE_IDs.ROBE_BAG_OF_ADVENTURER] = "¸ðÇè°¡¹è³¶", [sPRITE_ROBE_IDs.ROBE_WINGS_OF_FALLEN_ANGEL] = "Ÿ¶ôõ»çÀdz¯°³", [sPRITE_ROBE_IDs.ROBE_WING_ZERO] = wing_zero, [sPRITE_ROBE_IDs.ROBE_BLOODWINGS] = bloodwings, } RobeNameTable_Eng = { [sPRITE_ROBE_IDs.ROBE_WINGS] = "ANGEL_WINGS", [sPRITE_ROBE_IDs.ROBE_BAG_OF_ADVENTURER] = "BAG_OF_ADVENTURER", [sPRITE_ROBE_IDs.ROBE_WINGS_OF_FALLEN_ANGEL] = "WINGS_OF_FALLEN_ANGEL", [sPRITE_ROBE_IDs.ROBE_WING_ZERO] = wing_zero, [sPRITE_ROBE_IDs.ROBE_BLOODWINGS] = _bloodwings, } data/cskroption.lub [29004] = { unidentifiedDisplayName = "wing_zero", unidentifiedResourceName = "wing_zero", unidentifiedDescriptionName = { "Unidentified item, can be identified with [Magnifier].", }, identifiedDisplayName = "wing_zero", identifiedResourceName = "wing_zero", identifiedDescriptionName = { "Large, wings from zero gundam.", "All Stats + 1.", "Base stats (without modifiers) is equal to 20 or higher,", "-Str -> Attack + 1", "-Int -> Magic Attack + 1", "-Vit -> Tolerance to Neutral Property + 1%", "-Agi -> Increase ASPD (After Attack delay -1%)", "-Dex -> Ranged Attack +1%", "-Luk -> Inflict 1% more critical attack.", "Class : ^777777Garment^000000", "Defense : ^77777718^000000", "Weight : ^77777720^000000", "Required Level : ^7777771^000000", "Applicable Job : ^777777Every Job^000000", }, slotCount = 1, ClassNum = 4 }, db/item_db2.txt 29004,wing_zero,wing zero,5,0,,0,,0,,0,0xFFFFFFFF,7,2,4,,1,0,4,{ bonus bAllStats,1; bonus bAtk,readparam(bStr)/20; bonus bWMatk,readparam(bInt)/20; bonus2 bSubEle,0,readparam(bVit)/20; bonus bAspdRate,readparam(bAgi)/20; bonus bCriticalRate,readparam(bLuk)/20; },{},{} when use it,still same like first post. my data\sprite\wing_zero base on Ragnarok 2012-07-04\rdata\sprite\·Îºê\õ»ç³¯°³ . spr and act format in wing_zero base on data\sprite\¾Ç¼¼»ç¸®(¿© and ³²)
-
ive already try just like what you tell about,but still same ERROR. http://www.mediafire...3foo90v26h7ll7y this include : data\luafiles514\lua files\datainfo accessoryid.lub accname.lub accname_eng.lub spriterobeid.lub spriterobename.lub data\sprite\·Îºê\wing_zero ¿© ³² item_db2 29004,wing_zero,wing zero,5,0,,0,,0,,0,0xFFFFFFFF,7,2,4,,1,0,29004,{ bonus bAllStats,1; bonus bAtk,readparam(bStr)/20; bonus bWMatk,readparam(bInt)/20; bonus2 bSubEle,0,readparam(bVit)/20; bonus bAspdRate,readparam(bAgi)/20; bonus bCriticalRate,readparam(bLuk)/20; },{},{}
-
i try change Loc to 4,256,512,4096 but all same.no sprite is out.
-
erkk...become lowerheadgear ?.
-
its mean still dont have any custom item that can replace the fallen angel wings and archangel wings official ragnarok online ? im using grf format,not the data folder so what i need change in item_db ?
-
accname_eng.lub [ACCESSORY_IDs.ACCESSORY_WING_ZERO] = "_wing_zero" yes my client support view id until 30k.
-
thanks for the information.i'll try it spriterobeid.lub RobeNameTable = { [sPRITE_ROBE_IDs.ROBE_WING_ZERO] = wing_zero, } RobeNameTable_Eng = { [sPRITE_ROBE_IDs.ROBE_WING_ZERO] = wing_zero, } spriterobename.lub ROBE_WING_ZERO = 29004 after add,still just like the 1st post
-
when i using archangel wings.the sprite will show. if im using wing zero,no sprite is appear. wing zero im using this script item_db 2589,Fallen_Angel_Wings,Fallen Angel Wings,5,0,,200,,18,,1,0xFFFFFFFF,7,2,4,,0,1,3,{ bonus bAllStats,1; bonus bAtk,readparam(bStr)/20; bonus bWMatk,readparam(bInt)/20; bonus2 bSubEle,0,readparam(bVit)/20; bonus bAspdRate,readparam(bAgi)/20; bonus bCriticalRate,readparam(bLuk)/20; },{},{} accid.lub ACCESSORY_WING_ZERO = 29004 accname.lub [ACCESSORY_IDs.ACCESSORY_WING_ZERO] = "_wing_zero" cskroption.lub [29004] = { unidentifiedDisplayName = "wing_zero", unidentifiedResourceName = "wing_zero", unidentifiedDescriptionName = { "Unidentified item, can be identified with [Magnifier].", }, identifiedDisplayName = "wing_zero", identifiedResourceName = "wing_zero", identifiedDescriptionName = { "Large, wings from zero gundam.", "All Stats + 1.", "Base stats (without modifiers) is equal to 20 or higher,", "-Str -> Attack + 1", "-Int -> Magic Attack + 1", "-Vit -> Tolerance to Neutral Property + 1%", "-Agi -> Increase ASPD (After Attack delay -1%)", "-Dex -> Ranged Attack +1%", "-Luk -> Inflict 1% more critical attack.", "Class : ^777777Garment^000000", "Defense : ^77777718^000000", "Weight : ^77777720^000000", "Required Level : ^7777771^000000", "Applicable Job : ^777777Every Job^000000", }, slotCount = 1, ClassNum = 29004 }, item_db2 29004,wing_zero,wing zero,5,0,,200,,18,,1,0xFFFFFFFF,7,2,4,,0,1,29004,{ bonus bAllStats,1; bonus bAtk,readparam(bStr)/20; bonus bWMatk,readparam(bInt)/20; bonus2 bSubEle,0,readparam(bVit)/20; bonus bAspdRate,readparam(bAgi)/20; bonus bCriticalRate,readparam(bLuk)/20; },{},{} in data folder
-
thats mean the code for getmapmobs change to mobcount ? problem solve after using this script. // ....... 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$, "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 // --------- 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; } prontera,164,175,4 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 06guild_02 mapflag nosave 06guild_03 mapflag nosave 06guild_04 mapflag nosave 06guild_05 mapflag nosave 06guild_06 mapflag nosave 06guild_07 mapflag nosave 06guild_08 mapflag nosave 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