-
Posts
10015 -
Joined
-
Days Won
400
Community Answers
-
Emistry's post in Reduce Item Refine level was marked as the answer
erm..if SQL Based...
try run this Query...hope it work well for you~
UPDATE `inventory` SET refine = 10 WHERE refine > 10;
-
Emistry's post in [Request] Refiner with decide was marked as the answer
i guess..what you want...has already implant in Official RO long time ago....
find this
npc/merchant/refine.txt
callfunc "refinemain","Fulerr",0;
change to this
callfunc "refinemain","Hollengrhen",1; callfunc "refinemain","Aragham",1; callfunc "refinemain","Antonio",1; callfunc "refinemain","Fredrik",1; callfunc "refinemain","Disturb",1; callfunc "refinemain","Manthasman Pruhag",1; callfunc "refinemain","Fulerr",1;
-
Emistry's post in [Request] Zeny Room + ideas was marked as the answer
something like this ??
prontera,155,181,5 script Sample 718,{ mes "Go to Zeny Room ?"; mes "Higher Level Gain more Zeny."; set @Room,select("Level 1:Level 2:Level 3:Level 4:Level 5"); warp .Map$[@Room],0,0; end; OnInit: // Set Map Name for each 5 Maps setarray .Map$[0],"guild_vs1","guild_vs2","guild_vs3","guild_vs4","guild_vs5"; // Monster ID for each 5 Maps setarray .MobID[0],1007,1008,1009,1010,1011; // Minimum Zeny to gain for each 5 Maps setarray .MinZeny[0],1000,2000,3000,4000,5000; // Maximum Zeny to gain for each 5 Maps setarray .MaxZeny[0],10000,20000,30000,40000,50000; for( set .@i,0; .@i < getarraysize( .Map$ ); set .@i,.@i + 1 ){ monster .Map$[.@i],0,0,"--ja--",.MobID[.@i],200,strnpcinfo(0)+"::OnMobKilled"; } end; OnMobKilled: set Zeny,Zeny + rand( .MinZeny,.MaxZeny ); monster .Map$[@Room],0,0,"--ja--",.MobID[@Room],1,strnpcinfo(0)+"::OnMobKilled"; }
-
Emistry's post in need script +20 refiner using bradium/kalunium like official server was marked as the answer
Check jakeRed's post for -3 to refine level when refining fails:
http://www.eathena.ws/board/index.php?s=&a...t&p=1263803
-
Emistry's post in Coin Exchanger was marked as the answer
try this
prontera,155,181,5 script Sample 718,{ setarray .CoinID, 677, 671, 675, 674; setarray .Zeny, 500000000, 100000000, 50000000, 1000000; while( 1 ){ mes "What service you want ?"; next; switch( select("Zeny to Coin:Coin to Zeny") ){ Case 1: mes "What Coin you want ?"; set .@CoinMenu$,""; for( set .@i,0; .@i < getarraysize( .CoinID ); set .@i,.@i + 1 ){ mes "^0000FF"+getitemname( .CoinID[.@i] )+" : ^FF0000"+.Zeny[.@i]+"^000000 Zeny"; set .@CoinMenu$,.@CoinMenu$ + getitemname( .CoinID[.@i] )+":"; } set .@Coin,select( .@CoinMenu$ ) - 1; next; mes "Selected : ^00FF00"+getitemname( .CoinID[.@Coin] )+"^000000"; if( Zeny < .Zeny[.@Coin] ){ mes "It seem like you didnt have Enough Zeny for this."; next; break; } mes "You can exchange to ^FF0000"+( Zeny / .Zeny[.@Coin] )+" ^0000FF"+getitemname( .CoinID[.@Coin] )+"^000000 ."; mes "How many ^0000FF"+getitemname( .CoinID[.@Coin] )+"^000000 do you want ?"; input @Amount,0,( Zeny / .Zeny[.@Coin] ); if( !@Amount ) close; mes "You gained "+@Amount+" ^0000FF"+getitemname( .CoinID[.@Coin] )+"^000000."; set Zeny,Zeny - ( @Amount * .Zeny[.@Coin] ); getitem .CoinID[.@Coin],@Amount; next; break; Case 2: mes "Which Coin ?"; set .@CoinMenu$,""; for( set .@i,0; .@i < getarraysize( .CoinID ); set .@i,.@i + 1 ){ mes "^0000FF"+getitemname( .CoinID[.@i] )+" : ^FF0000"+countitem( .CoinID[.@i] )+"^000000 Available"; set .@CoinMenu$,.@CoinMenu$ + getitemname( .CoinID[.@i] )+":"; } do{ set .@Coin,select( .@CoinMenu$ ) - 1; }while( !countitem( .CoinID[.@Coin] ) ); next; mes "Selected : ^00FF00"+getitemname( .CoinID[.@Coin] )+"^000000"; mes "You can exchange ^0000FF"+countitem( .CoinID[.@Coin] )+" "+getitemname( .CoinID[.@Coin] )+"^000000 to ^FF0000"+( countitem( .CoinID[.@Coin] ) * .Zeny[.@Coin] )+"^000000 Zeny."; mes "How many ^0000FF"+getitemname( .CoinID[.@Coin] )+"^000000 do you want to change into Zeny ?"; input @Amount,0,( ( 1000000000 - Zeny ) / .Zeny[.@Coin] ); if( !@Amount ) close; mes "You gained "+( @Amount * .Zeny[.@Coin] )+" Zeny."; delitem .CoinID[.@Coin],@Amount; set Zeny,Zeny + ( @Amount * .Zeny[.@Coin] ); next; break; } } }
-
Emistry's post in [Request] Normal MvP Warper was marked as the answer
So, i guess this will be the final 1 right ?
Script :
prontera,155,181,5 script Sample 718,{ function MonsterList; mes "Heeyyyy....Little fella!"; mes "I'm the Prof.M aka the Warp Caster. My Services are totally free,uhm...At least for today."; mes "Uhm...I'm talking too much...Come...come...Pick and Warp."; next; switch( select( "^FF0000Last Warp^000000 [ "+( ( LastWarp$ )?LastWarp$:"No Map Selected" )+" ]","MVP Monster Lists","Mini Boss Monster Lists" )){ Case 1: mes "You will be warped back to ^FF0000"+LastWarp$+"^000000 ."; if( select("Yes:No") == 2 ) break; warp LastWarp$,0,0; end; Case 2: mes "^0000FFYou took over the MvP List from Prof. M and start choosing your desired option carefully...^000000"; next; switch( select( "Amon Ra", "Atroce", "Bacsojin", "Baphomet", "Dark Lord", "Detale", "Bio Lab MvP" )){ Case 1: MonsterList( 1,1511,1,"moc_pryd06" ); Case 2: MonsterList( 1,1785,5,"ra_fild02","ra_fild03","ra_fild04","ve_fild01","ve_fild02"); Case 3: MonsterList( 1,1630,1,"lou_dun03" ); Case 4: MonsterList( 1,1039,1,"prt_maze03" ); Case 5: MonsterList( 1,1272,1,"gl_chyard" ); Case 6: MonsterList( 1,1719,1,"abyss_03" ); Case 7: MonsterList( 6,1646,1647,1648,1649,1650,1651,1,"lhz_dun03" ); // Case 6: // Case 7: // etc...( Max 128 ) default: mes "Wrong Selection."; break; } Case 3: mes "^0000FFYou took over the Mini Boss List from Prof. M and start choosing your desired option carefully...^000000"; next; switch( select( "Angeling", "Arch Angeling", "Cat O Nine Tail", "Chimera", "Deviling" )){ Case 1: MonsterList( 1,1096,1,"pay_fild04" ); Case 2: MonsterList( 1,1388,1,"yuno_fild05" ); Case 3: MonsterList( 1,1307,1,"pay_dun04" ); Case 4: MonsterList( 1,1283,1,"gl_cas02" ); Case 5: MonsterList( 1,1582,1,"pay_fild04" ); // Case 6: // Case 7: // etc...( Max 128 ) default: mes "Wrong Selection."; break; } }[/size][/size] [size=7][size=4]function MonsterList { for( set .@i,1; .@i <= getarg(0); set .@i,.@i + 1 ) set .@MobMenu$,.@MobMenu$ + getmonsterinfo( getarg(.@i),0 ) +":"; set .@i,select( .@MobMenu$ );[/size][/size] [size=7][size=4]mes "^FF0000Name^000000 : "+getmonsterinfo( getarg(.@i),0 ); mes "^FF0000Level^000000 : "+getmonsterinfo( getarg(.@i),1 ); mes "^FF0000Max HP^000000 : "+getmonsterinfo( getarg(.@i),2 ); mes "^FF0000Base EXP^000000 : "+getmonsterinfo( getarg(.@i),3 ); mes "^FF0000Job EXP^000000 : "+getmonsterinfo( getarg(.@i),4 ); mes "^FF0000Size^000000 : "+.Size$[ getmonsterinfo( getarg(.@i),18 ) ]; mes "^FF0000Race^000000 : "+.Race$[ getmonsterinfo( getarg(.@i),19 ) ]; mes "^FF0000Element^000000 : "+.Element$[ getmonsterinfo( getarg(.@i),20 ) ];[/size][/size] [size=7][size=4]for( set .@i,( getarg(0) + 2 ); .@i < ( ( getarg(0) + 2 ) + getarg( getarg(0) + 1 ) ); set .@i,.@i + 1 ) set .@Map$,.@Map$ + getarg( .@i )+" [ "+getmapusers( getarg(.@i) )+" ]:"; next; set .@i,select( .@Map$ ); set LastWarp$,getarg( getarg(0) + 1 + .@i ); warp getarg( getarg(0) + 1 + .@i ),0,0; end; } OnInit: setarray .Size$[0],"Small","Medium","Large"; setarray .Race$[0],"Formless","Undead","Brute","Plant","Insect","Fish","Demon","Demi Human","Angel","Dragon"; setarray .Element$[0],"Neutral","Water","Earth","Fire","Wind","Poison","Holy","Dark","Spirit","Undead"; end; } Add Monsters ( Multi Monster & Multi Maps ):
For Multi Maps i take the Atroce as Example .....
Case 2: MonsterList( 1,1785,5,"ra_fild02","ra_fild03","ra_fild04","ve_fild01","ve_fild02");
For Multi Monsters i take the Bio Lab MvP as Example .....
Case 7: MonsterList( 6,1646,1647,1648,1649,1650,1651,1,"lhz_dun03" );
Format for Setup :
Case X: MonsterList( <MonsterNumber>,<MonsterList>,<MonsterList>.........,<MapNumber>,<MapName>,<MapName>....... );
-
Emistry's post in [Resolved] How to Disable Warp Portal was marked as the answer
LOL....this is script part...not graphic..
find the warp at here and disable it ( remove it )
npc/warps/
-
Emistry's post in Npc for newbie? (Freebies) was marked as the answer
prontera,155,181,5 script Sample 718,{ if( !#Freebies ){ set #Freebies,1; mes "Welcome...this is your gift..."; getitem 607,10; getitem 7539,10; }else{ mes "You have claim the Reward already."; } close; }
if you want to make it Character Based..
change All #Freebies into Freebies
Edit the Price here
getitem 607,10; getitem 7539,10;
-
Emistry's post in [request] How to make a NPC party buffer? was marked as the answer
try this ~
prontera,155,181,5 script Sample 718,{ if( !getcharid(1) ){ mes "You didnt have Party."; close; } getpartymember getcharid(1),1; getpartymember getcharid(1),2; set .@Location$,strcharinfo(3); for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ){ if ( isloggedin($@partymemberaid[.@i]) && attachrid($@partymemberaid[.@i]) && strcharinfo(3) == .@Location$ ){ message strcharinfo(0),"Your Party get buffs."; sc_start SC_BLESSING,300000,10; sc_start SC_INCREASEAGI,300000,10; sc_start SC_MAGNIFICAT,300000,5; sc_start SC_ANGELUS,300000,10; } } end; }
-
Emistry's post in Npc donation was marked as the answer
if you want to learn scripting...
Read these...
Basic_Scripting
Script_Command
Scripting for Dummies
If you are request for a script...( Since you are posting in Script Request Section )
then you must explain / give details on what script you are going to request with
-
Emistry's post in Requesting Special Job Changer was marked as the answer
Ouch ~ sry..there is a little typo at the SetArray there, and several bug >.<
try this...
prontera,155,181,5 script Sample 718,{ if( countitem( 7227 ) < 3 || JobLevel < 70 || BaseLevel < 99 ){ mes "You required 3 TCG Card , 99 Base Level and 70 JobLevel to Switch your Job Class."; }else{ setarray .JobLists[0],4008,4009,4010,4011,4012,4013,4015,4016,4017,4018,4019,( Sex )?"4020":"4021"; for( set .@i,0; .@i < getarraysize( .JobLists ); set .@i,.@i + 1 ){ set .@Menu$,.@Menu$ + (( Class != .JobLists[.@i] )?jobname( .JobLists[.@i] ):"")+":"; } set .@i,select( .@Menu$ ) - 1; jobchange .JobLists[.@i]; delitem 7227,3; resetskill; set JobLevel,70; set SkillPoint,130; mes "You have changed Job into "+jobname( Class ); } close; }
if the Skill Points amount is incorrect..then modify here
set SkillPoint,130; // Novice 10 + First Class 50 + Trans 70 = 130
-
Emistry's post in Request - MVP npc and warper was marked as the answer
You may try these
A Normal and Simple Warper Script :
prontera,155,181,5 script Sample 718,{ switch( select( "Map 1", "Map 2", "Map 3", "Map 4", "Map 5" )){ Case 1: warp "pvp_n_1-2",0,0; end; Case 2: warp "pvp_n_2-2",0,0; end; Case 3: warp "pvp_n_3-2",0,0; end; Case 4: warp "pvp_n_4-2",0,0; end; Case 5: warp "pvp_n_5-2",0,0; end; } }
and for the second script, if you are looking for direct warp inside the instance so that can "Start" instances quest directly..
i dont think it will work ~ unless you have somekind of way to trigger it...
However,if you are just looking for a script like above..you can just copy above script change the Destination Coordinate to warp into the entrances there
-
Emistry's post in Refund Script was marked as the answer
are you looking for something work like this ??
Player able to Exchange any 4 type of their Points into a Ticket which cost 100 Point Accordingly ???
try this one :
prontera,155,181,5 script Sample 718,{ function PointExchange; mes "Which Point you would like to use it to exchange into ticket ?"; next; switch( select( "Custom Point 1", "Custom Point 2", "Custom Point 3", "Custom Point 4" )){ Case 1: PointExchange( CustomPoint1,100,7539 ); Case 2: PointExchange( CustomPoint2,100,7539 ); Case 3: PointExchange( CustomPoint3,100,7539 ); Case 4: PointExchange( CustomPoint4,100,7539 ); default: break; } close; PointExchange: if( getarg(0) < getarg(1) ){ mes "Sorry you required "+getarg(1)+" Points to exchange into 1 "+getitemname(getarg(2))+" ."; }else{ mes "You have "+getarg(0)+" Points total now."; mes "Are you sure want to change "+getarg(1)+" Points to change into 1 "+getitemname(getarg(2))+" ?"; next; if ( select("NO:YES") == 1 ) close; set getarg(0), getarg(0) - getarg(1); mes "Gained 1 "+getitemname(getarg(2))+" by exchanged 100 Points of yours Points."; getitem getarg(2),1; } close; }
Setting :
PointExchange( <PointVariable> , <Cost> , <Item Gain> );
Example : use any 100 Points of each type to exhange into 1 Poring Coin
Case 1: PointExchange( CustomPoint1,100,7539 ); Case 2: PointExchange( CustomPoint2,100,7539 ); Case 3: PointExchange( CustomPoint3,100,7539 ); Case 4: PointExchange( CustomPoint4,100,7539 );
Script are not tested yet ~
if it doesnt work..please explain in detail..
-
Emistry's post in [How to Activate Nightmode @ all town] was marked as the answer
try this....
NPC Script :
- script Sample -1,{ OnInit: OnPCLoginEvent: if( !isnight ) night; end; }
beside.....if you are using those from above posts...
you should include this also ~
Server Setting :
conf/battle/misc.conf
// Choose if server begin with night (yes) or day (no) night_at_start: yes
-
Emistry's post in [Request] Refiner with refining weapon only. was marked as the answer
For your Second Request...you can try make use of my Refine Ticket Script..
Refine Ticket [ Version 3 ]
Changelog :
Scripts : View ♥ Download
but in order to make it become a NPC ..just edit the header...
change to
prontera,155,181,5 script RefineNPC 718,{
and since it has become a NPC now..it doesnt have the Item Checking yet..so you have to add this above the select Menu.
if( !countitem( .TicketID ) ){ mes "You didnt have "+getitemname( .TicketID )+"."; close; }
to enable the NPC pnly refine for Weapon
change this
into this
set .Mode,4;
Bitmask Mode :