-
Posts
2407 -
Joined
-
Last visited
-
Days Won
52
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Capuche
-
In many script, it's useful to check if a player is idle. checkchatting() and checkvending() exist, is it possible to add checkidle command ? Just an idea~
-
This command doesn't work for costume. Maybe this is not very useful since we can use getinventorylist command to check. Edit : Well I haven't properly argued :x It would probably help in some script, like in this request since it's easier to use getequipid than getinventorylist.
- 1 reply
-
- 1
-
-
Can i request a complete Dyestuff Maker NPC?
Capuche replied to Kiritoryu's question in Script Requests
or use my dye_maker changed Well It's free so do as your please morocc_in,146,99,3 script Java Dullihan 58,{ //- multi dyestuff 0/1 - disabled/enabled .multi = 1; //- if ((MaxWeight-Weight) < 200 || checkweight(1201,1) == 0) { mes "- Wait a moment! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please come back later -"; mes "- after you put some items into kafra storage. -"; close; } mes "[Dye Maker Java Dullihan]"; mes "Wow..."; mes "Such a nice day. Days like this are perfect to make dyes."; next; switch(select("Talk:Make Dyestuffs:Cancel")) { case 1: mes "[Dye Maker Java Dullihan]"; mes "Erm, I don't really have much to say to you. But, if you would like me to tell you about my life, I can do that. It's a little long and boring, but would you like to listen?"; next; if (select("Listen:Don't Listen") == 1) { mes "[Dye Maker Java Dullihan]"; mes "As long as I can remember, my father has been making dyes. He used to spend countless hours making dyes of different colors. Even when my mother passed away, he never stopped."; next; mes "[Dye Maker Java Dullihan]"; mes "At one point in my life, I became rebellious and ran away from home. I didn't want to be stuck to the family business and wanted to try other things."; next; mes "[Dye Maker Java Dullihan]"; mes "Anyways..."; mes "I eventually wound up back home to carry on the family tradition, making dyes for 15 years already. I guess it was really in my blood."; next; mes "[Dye Maker Java Dullihan]"; mes "Something I realized these days is that now I can understand my father. Why my father devoted everything to making dyes..."; next; mes "[Dye Maker Java Dullihan]"; mes "In the middle of all that tedious and hard work, he probably felt the magic of those colors passing on so many dreams for other people."; next; mes "[Dye Maker Java Dullihan]"; mes "It was probably for those dreams that he tried so hard to make dyes for his customers..."; next; mes "[Dye Maker Java Dullihan]"; mes "Heh... How do I know this? Well, that's the way I feel right now. Since a couple years ago, I've been able to hear what the colors were saying..."; next; mes "[Dye Maker Java Dullian]"; mes "Just watch. Someday, I'm going to succeed in making the color my father wanted to, but never got the chance to make."; close; } mes "[Dye Maker Java Dullihan]"; mes "Ahahahaha..."; mes "Well, I guess no one would want to listen to a measly dyemaker's story anyway. Hahaha...."; close; case 2: mes "[Dye Maker Java Dullihan]"; mes "Great! If you want it, I'll make it for you. I promise I'll make you the color you want. But what color dye would you like to make? The fee is different depending on the color."; next; mes "[Dye Maker Java Dullihan]"; mes "Why, do you ask? Just remember that there are colors that are easy to make, and those that require more effort and work. Please don't think the fee is too expensive."; next; mes "[Dye Maker Java Dullihan]"; mes "The color of the dye is special, made with all my heart and soul."; next; switch( select( .@a$ = "Scarlet Dyestuffs:Lemon Dyestuffs:Cobaltblue Dyestuffs:Darkgreen Dyestuffs:Orange Dyestuffs:Violet Dyestuffs:White Dyestuffs:Black Dyestuffs:Cancel" )) { case 1: callsub S_MakeDye,1,1,.@a$; break; case 2: callsub S_MakeDye,2,1,.@a$; break; case 3: callsub S_MakeDye,3,2,.@a$; break; case 4: callsub S_MakeDye,4,3,.@a$; break; case 5: callsub S_MakeDye,5,4,.@a$; break; case 6: callsub S_MakeDye,6,4,.@a$; break; case 7: callsub S_MakeDye,7,4,.@a$; break; case 8: callsub S_MakeDye,8,4,.@a$; break; case 9: mes "[Dye Maker Java Dullihan]"; mes "Eeeehhhh!! What's this? You change your mind now!? So disappointing..."; close; } case 3: mes "[Dye Maker Java Dullihan]"; mes "I'm not bragging or anything. But I have the skills to make dyestuff. If you ever need dyestuff, please come to me. I'll make them for you at a reasonable price."; close; } S_MakeDye: mes "[Dye Maker Java Dullihan]"; if ( .multi ) { explode(.@b$, getarg(2), ":"); mes "How must ^FF0000"+ .@b$[ @menu-1 ] +"^000000 do you want to do ?"; if( input( .@n, 1, 100000) != 0 ) { mes "Sorry, wrong value."; close; } } else .@n = 1; switch(getarg(0)) { case 1: setarray .@count[0], 30*.@n, 1*.@n, 1*.@n; set .@cost,3000*.@n; mes "Mmm... I need "+.@count[0]+" Red Herbs, "+.@count[1]+" Counteragent, and "+.@count[2]+" Empty Bottle to make Red Dyestuffs. The fee is only "+.@cost+" zeny to make it."; setarray .@item[0], 507, 973, 713; set .@dyestuff,975; break; case 2: setarray .@count[0], 30*.@n, 1*.@n, 1*.@n; set .@cost,3000*.@n; mes "Mmm... I need "+.@count[0]+" Yellow Herbs, "+.@count[1]+" Couneragent, and "+.@count[2]+" Empty Bottle to make Lemon Dyestuffs. The fee is only "+.@cost+" zeny to make it."; setarray .@item[0], 508, 973, 713; set .@dyestuff,976; break; case 3: setarray .@count[0], 20*.@n, 1*.@n, 1*.@n; set .@cost,3500*.@n; mes "Mmm... I need "+.@count[0]+" Blue Herbs, "+.@count[1]+" Counteragent, and "+.@count[2]+" Empty Bottle to make Cobaltblue Dyestuff. It's hard to use the Blue Herb, so the fee is going to be "+.@cost+" zeny."; setarray .@item[0], 510, 973, 713; set .@dyestuff,978; break; case 4: setarray .@count[0], 5*.@n, 20*.@n, 20*.@n, 1*.@n, 1*.@n, 1*.@n; set .@cost,5000*.@n; mes "Mmm... I need "+.@count[0]+" Blue Herbs, "+.@count[1]+" Green Herbs, "+.@count[2]+" Yellow Herbs, "+.@count[3]+" Counteragent, "+.@count[4]+" Mixture, and "+.@count[5]+" Empty Bottle to make Darkgreen Dyestuffs. Don't get all of the materials confused. The fee is only "+.@cost+" zeny."; setarray .@item[0], 510, 511, 508, 974, 973, 713; set .@dyestuff,979; break; case 5: setarray .@count[0], 20*.@n, 20*.@n, 1*.@n, 1*.@n, 1*.@n; set .@cost,5000*.@n; mes "Mmm... I need "+.@count[0]+" Red Herbs, "+.@count[1]+" Yellow Herbs, "+.@count[2]+" Counteragent, "+.@count[3]+" Mixture, and "+.@count[4]+" Empty Bottle to make Orange Dyestuff. The fee is going to be "+.@cost+" zeny."; setarray .@item[0], 507, 508, 974, 973, 713; set .@dyestuff,980; break; case 6: setarray .@count[0], 10*.@n, 30*.@n, 1*.@n, 1*.@n, 1*.@n; set .@cost,5000*.@n; mes "Mmm... I need "+.@count[0]+" Blue Herbs, "+.@count[1]+" Red Herbs, "+.@count[2]+" Counteragent, "+.@count[3]+" Mixture, and "+.@count[4]+" Empty Bottle to make Violet Dyestuffs. The fee will be "+.@cost+" zeny."; setarray .@item[0], 510, 507, 974, 973, 713; set .@dyestuff,981; break; case 7: setarray .@count[0], 30*.@n, 1*.@n, 1*.@n; set .@cost,3000*.@n; mes "Mmm... I need "+.@count[0]+" White Herbs, "+.@count[1]+" Counteragent, and "+.@count[2]+" Empty bottle to make White Dyestuffs. The fee will be "+.@cost+" zeny."; setarray .@item[0], 509, 973, 713; set .@dyestuff,982; break; case 8: setarray .@count[0], 30*.@n, 30*.@n, 30*.@n, 5*.@n, 1*.@n, 1*.@n, 1*.@n; set .@cost,7000*.@n; mes "Mmm... I need "+.@count[0]+" of each Red, Yellow, and Green Herb, "+.@count[3]+" Blue Herbs, "+.@count[4]+" Counteragent, "+.@count[5]+" Mixture, and "+.@count[6]+" Empty Bottle. The process takes longer and more effort than the others, so it is going to be "+.@cost+" zeny."; setarray .@item[0], 507, 508, 511, 510, 974, 973, 713; set .@dyestuff,983; break; } next; mes "[Dye Maker Java Dullihan]"; switch(getarg(1)) { case 1: mes "Ah! I think you would have everything ready. Would you like to start the process?"; break; case 2: mes "Okay! I believe you would have everything ready. Would you like to start the process?"; break; case 3: mes "Okay! I believe you would have everything ready. Shall we begin the process?"; break; case 4: mes "Okay! I believe you would have everything prepared. Would you like to start the process?"; break; } next; if (select("Make Dyestuffs:Cancel") == 1) { set .@size, getarraysize(.@item); // check requirements for( set .@i,0 ; .@i < .@size ; set .@i,.@i+1 ) if( countitem(.@item[.@i]) < .@count[.@i] ) break; if( .@i < .@size || Zeny < .@cost ) { mes "[Dye Maker Java Dullihan]"; mes "Hmmm. Not enough..."; mes "I don't think I'll be able to make the color you want with those materials. Why don't you go get some more materials...?"; close; } // delete items for (set .@i, 0; .@i < .@size ; set .@i, .@i+1) delitem .@item[.@i], .@count[.@i]; set zeny,zeny-.@cost; // get dyestuff getitem .@dyestuff,.@n; mes "[Dye Maker Java Dullihan]"; mes "Hmm... It came out pretty well. A very rich color. Of course I'll be trying harder to make a more charming color..."; next; mes "[Dye Maker Java Dullihan]"; mes "Well, then. Stop by whenever you need more dyes."; close; } mes "[Dye Maker Java Dullihan]"; mes "Eeeehhhh!! What's this?"; mes "You change your mind now!? So disappointing..."; return; } -
You can find item script bonus here http://svn.rathena.org/svn/rathena/trunk/doc/item_bonus.txt. It's very easy ! (but it take time...)
-
Something like this ? splendide,219,152,5 script My Custom Event 456,{ if ( getgmlevel() < 1 ) end; select( "Turn event "+(.onoff?"Off":"On") ); mes "Event "+(.onoff?"Off":"On")+"."; if ( .onoff = !.onoff ) { initnpctimer; monster .mp$,0,0,"RIGHT PORING",1002,10,"My Custom Event::OnRightKill"; monster .mp$,0,0,"WRONG MONSTER",1002,90,"My Custom Event::OnWrongKill"; .poringvar = 10; } else donpcevent strnpcinfo(0)+"::OnTimer300000"; close; OnRightKill: if ( playerattached() ) { mapannounce strcharinfo(3),strcharinfo(0)+" killed 1 right poring, "+ (.poringvar--?.poringvar:"No") +" more left",bc_map,"0x00CCFF",FW_NORMAL,12; if ( .poringvar ) end; } OnTimer300000: killmonster .mp$,"All"; stopnpctimer; .onoff = 0; mapannounce .mp$,"End of event.",bc_map,"0x00CCFF",FW_NORMAL,12; sleep 2000; mapwarp .mp$,"prontera",0,0; end; OnWrongKill: //do what you want here end; OnInit: set .poringvar, 10; .mp$ = "pvp_n_1-2"; end; } pvp_n_1-2 mapflag nomobloot
-
You can try Euphy's Quest Shop http://pastebin.com/raw.php?i=G7pt6HR7
-
Replace if(@consecutive_hour != 24) { by if(@consecutive_hour != 24 && @consecutive_hour%6 ) { If @consecutive hours is divisible by 6 then @consecutive_hour%6 equal 0 -->> skip +10 Cash Points.
-
Insufficient columns (in drop's monster). Check your lines. 1647,B_EREMES,Assassin Cross Eremes,Assassin Cross Eremes,99,1411230,0,4083400,1592380,1,4189,8289,37,39,90,181,62,37,122,60,10,12,1,7,85,0x37B5,100,76,384,288,2041700,617,5500,603,5000,732,2000,1234,1500,2319,9000,1233,3500,1232,3500,1265,3500,13002,3500,0,0,0,0,4359,300 // ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper
-
You're welcome /$
-
506,Green_Potion,Green Potion,0,40,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_end SC_OBLIVIONCURSE; sc_end SC_Poison; sc_end SC_Silence; sc_end SC_Blind; sc_end SC_Confusion; },{},{} Works for me
-
Refer post above, in trunk/db/re/skill_nocast_db.txt // PvP + GvG 467,6 // Estin 468,6 // Estun 469,6 // Esma 470,6 // Eswoo 471,6 // Eske 472,6 // Eska
-
getequipid don't check if a player has a costume item equipped (not yet implented ?) Maybe using getinventorylist ? function checkcostume { getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) if( @inventorylist_equip[.@i] && getiteminfo( @inventorylist_id[.@i], 5 ) == getarg(0) ) return @inventorylist_id[.@i]; return 0; } if( checkcostume( 1024 ) == 20003) {
-
trunk/conf/mapflag/restricted.txt mymap mapflag restricted <number> trunk/db/re/skill_nocast_db.txt
-
Okay replace if(@Broadcast> gettimetick(2)) { next; mes @header$; mes "Service will be available in 3 minutes."; close; OnTimer60000: mes "Service will be available in 2 minutes."; close; OnTimer120000: mes "Service will be available in 1 minute."; close; OnTimer180000: mes "Broadcasting Service Is Now Available."; close; } by if ( @Broadcast > gettimetick(2) ) { next; mes @header$; for ( set .@i, 3; .@i > 0; set .@i, .@i - 1 ) if ( @Broadcast > gettimetick(2) + (.@i-1)*60 ) { mes "Service will be available in "+ .@i +" minute"+ ((.@i-1)?"s":"")+ "."; break; } close; } Well just remove OnMinute50: // Change this to your liking and your event won't start automatically !
-
Post the few lines before announce
-
You're welcome
-
No rentmakeegg doesn't exist. I don't think it's possible to rent a QPet with rentitem.
-
Yo forgot a " before midgard camp ! Otherwise it seems to work.
-
Well post your current script (use codebox)
-
Add it after OnMinute50 If you don't configure mob, item (gained) or mvp and auto event start, your event wouldn't work. These numbers prevent an error in the mapserv, it's just a trick lol 601 = fly wing 1001 = scorpion 1002 = poring
-
Really ?! lol Well Okay. Delete this in onstart Label (map random) : sleep2 1000; set .@ran, rand(1,6); if (.@ran == 6) set .Map$,"splendide"; if (.@ran == 5) set .Map$,"izlude"; if (.@ran == 4) set .Map$,"payon"; if (.@ran == 3) set .Map$,"geffen"; if (.@ran == 2) set .Map$,"morocc"; if (.@ran == 1) set .Map$,"prontera"; Then replace switch GM menu by this switch - we add 'Select Map Event'. switch(select("Item [" + getitemname(.ItemID) + "]:Monster [" + strmobinfo(1,.MobID) + "]:MVP [" + strmobinfo(1,.MvpID) + "]:Start Event:Select Map Event")) { case 1: mes "Which item would you like the MVP to drop?"; mes "Please input the item ID:"; input .ItemID; goto Main; case 2: mes "Please input the monster ID:"; input .MobID; goto Main; case 3: mes "Please input the MVP ID:"; input .MvpID; goto Main; case 4: mes "Starting the event now..."; close2; if( .Map$ == "" ) set .Map$,"splendide"; goto onstart; case 5: for ( set .@i, 1; .@i < getarraysize(.@mp$); set .@i, .@i + 1 ) set .@menuE$, .@menuE$ + .@mp$[.@i] + ":"; set .Map$, .@mp$[select( .@menuE$ )]; mes "Map Event : "+.Map$; goto Main; } and add this at the begining of the NPC. We can now choose these map in GM menu. set .gm,50;//GM Level to access the GM Menu. Default: 50 setarray .@mp$[1], "splendide", "izlude", "payon", "geffen", "morocc", "prontera"; Edit : I forgot to add this ! OnMinute50: // Change this to your liking if( .Map$ == "" ) set .Map$, .@mp$[ rand(1, getarraysize(.@mp$)) ]; if( !.ItemID ) set .ItemID, 601; if( !.MobID ) set .MobID, 1001; if( !.MvpID ) set .MvpID, 1002;
-
getmonstername() / getmobname() These script command don't exist. You can try strmobinfo(1,<ID>) to display monster's name. monster .Map$,0,0," + getmobname(.MobID) + "," + .MobID + ",250,"Event Invasion::OnMyMobDead"; Wrong synthaxe. " + .MobID + " must be a number, not a string. There is a Label OnTimer but not an initnpctimer Well there are many thing that you forget (if it's your script), here a fast fix ! jupe_ele,36,53,6 script Event Invasion 105,{ set .gm,50;//GM Level to access the GM Menu. Default: 50 // GM menu //It allows GMs Level 50 or more to Start and Stop invasions. if (getgmlevel()>.gm) { if (.mobs_left) { mes "[Event Goblin Invasion]"; mes "An invasion is in progress.."; mes "Location: " + .Map$; mes "^FF0000"+.mobs_left+"^000000 Goblins left"; mes " "; mes "Stop invasion?"; if(select("No:Yes")==1) close; donpcevent "Event Invasion::OnStop"; mes "Invasion stopped"; announce "The Invasion has been stopped by "+strcharinfo(0),bc_all; close; } mes "[Event Invasion]"; mes "Please customize the Invasion event before starting it."; mes "Note - The Goblin Leader drops x5 of the prize."; Main: next; mes "[Event Invasion]"; switch(select("Item [" + getitemname(.ItemID) + "]:Monster [" + strmobinfo(1,.MobID) + "]:MVP [" + strmobinfo(1,.MvpID) + "]:Start Event")) { case 1: mes "Which item would you like the MVP to drop?"; mes "Please input the item ID:"; input .ItemID; goto Main; case 2: mes "Please input the monster ID:"; input .MobID; goto Main; case 3: mes "Please input the MVP ID:"; input .MvpID; goto Main; case 4: mes "Starting the event now..."; close2; goto OnStart; } } // If a player clicks the NPC, it displays: mes "[Event Invasion]"; mes .mobs_left+" have invaded "+.Map$[.rand_map]+"!"; close; ///////////////////////// //The actual NPC Script// ///////////////////////// OnMinute50: // Change this to your liking OnStart: if( .mobs_left ) end; set .mobs_left, 1; sleep2 1000; set .@ran, rand(1,6); if (.@ran == 6) set .Map$,"splendide"; if (.@ran == 5) set .Map$,"izlude"; if (.@ran == 4) set .Map$,"payon"; if (.@ran == 3) set .Map$,"geffen"; if (.@ran == 2) set .Map$,"morocc"; if (.@ran == 1) set .Map$,"prontera"; sleep2 1000; announce "[ Rune-Midgard Guard ]: We have trouble here in the town " + .Map$ + "!", bc_all; sleep2 5000; announce "[ Rune-Midgard Guard ]: Everyone, we need your help to get rid of these monsters!", bc_all; monster .Map$,0,0,"--ja--",.MobID,1,"Event Invasion::OnMyMobDead"; set .mobs_left, 1; initnpctimer; end; OnStop: killmonster .Map$,"Event Invasion::OnSpecialMobDead"; OnTimer1805000: // 30 minutes later, kills all the mobs. killmonster .Map$,"Event Invasion::OnMyMobDead"; set .mobs_left, 0; stopnpctimer; end; OnMyMobDead: //When a mob is killed set .mobs_left, .mobs_left-1; if (.mobs_left==0) { announce "[ Rune-Midgard Guard ]: The " + strmobinfo(1,.MvpID) + " has spawned in " + .Map$ + "!", bc_all; monster .Map$,0,0,"--ja--",.MvpID,1,"Event Invasion::OnSpecialMobDead"; } else announce "["+.mobs_left+"/250] " + strmobinfo(1,.MobID) + " left.",bc_map; end; OnSpecialMobDead: announce strcharinfo(0)+" has fought off the Invasion and has been awarded a worthy prize!", bc_all; getitem .ItemID,1; //Change the [5] to the amount you wish to hand out. end; }
-
http://code.google.com/p/release-script/source/browse/Card+Seller+NPC.txt
-
Custom_Pets