Jump to content

Skorm

Forum Moderator
  • Posts

    1282
  • Joined

  • Last visited

  • Days Won

    41

Everything posted by Skorm

  1. They aren't it's just that most consumables are usable by every job so... ~24 * 5k per pot xD. I would but it's actually a mess right now... A functional mess. The way I wanted to do it was to create one npc/shop and duplicate them multiple times for each item type in the database, but for some reason duplicating npcs that access the sql database is causing a memory leak and crashing my mapserver ( The duplicated npc works perfectly ), the system is just unstable. I'm going to have to download a newer version of rAthena and see if this is something that was fixed.
  2. It helps if you post a screenshot of the error message from your map server console.
  3. Sorry for double post... You might want to consider modifying some of your prices. xD
  4. No need to act-out so strongly we're open to all kinds of requests, and your request is actually quite thorough. I'm not trying to take sides here but the task at hand isn't completely convoluted. I've done similar scripts in the past with monster hunting systems which used a formula based on your level and grabbed monsters directly from the SQL database while ignoring some of the event ones. Again no need to criticize his request. I didn't see it before he edited the post but even if it didn't have enough information, contrary to what's there now, it surely would've gone unanswered which is enough in my opinion.
  5. No need for that. Let me know if you have any problems. If you ever feel the need to delete the script from your server make sure to remove rf_opt from your sql database. //https://rathena.org/board/topic/107575-r-custom-refiner/ prontera,150,192,5 script God Refiner 4_F_KAFRA9,{ @menu = 0; mes "[Sample]"; mes "Select you refining options and click refine."; next; while( @menu != 1 ) { rf_opt = rf_opt ^ pow( 2, select ( "[Refine]", ( ( rf_opt & 4 ? "[^0000FFOn^000000] ":"[^FF0000Off^000000] " ) + "Add Chance Refine" ), ( ( rf_opt & 8 ? "[^0000FFOn^000000] ":"[^FF0000Off^000000] " ) + "No Reduction Refine" ) ) ); } if( !countitem( 7806 ) ) { mes "[Sample]"; mes "You need at least one " + getitemname( 7806 ) + " for me to refine your items."; close; } if( ( rf_opt & 4 ) && !countitem( 6232 ) ) { mes "[Sample]"; mes "You need at least one " + getitemname( 6232 ) + " to use the 'Add Chance Refine' option."; close; } if( ( rf_opt & 8 ) && !countitem( 6228 ) ) { mes "[Sample]"; mes "You need at least one " + getitemname( 6228 ) + " to use the 'No Reduction Refine' option."; close; } .@i = select( ""+( ( .@ep = getequipid( EQI_HEAD_TOP ) +1 ) > 0 ? "^0000FF"+getitemname(getequipid( EQI_HEAD_TOP ))+"^000000" : "" ), ""+( ( .@ep[1] = getequipid( EQI_ARMOR ) +1 ) > 0 ? "^0000FF"+getitemname(getequipid( EQI_ARMOR )) +"^000000" : "" ), ""+( ( .@ep[2] = getequipid( EQI_HAND_L ) +1 ) > 0 ? "^0000FF"+getitemname(getequipid( EQI_HAND_L )) +"^000000" : "" ), ""+( ( .@ep[3] = getequipid( EQI_HAND_R ) +1 ) > 0 ? "^0000FF"+getitemname(getequipid( EQI_HAND_R )) +"^000000" : "" ), ""+( ( .@ep[4] = getequipid( EQI_GARMENT ) +1 ) > 0 ? "^0000FF"+getitemname(getequipid( EQI_GARMENT )) +"^000000" : "" ), ""+( ( .@ep[5] = getequipid( EQI_SHOES ) +1 ) > 0 ? "^0000FF"+getitemname(getequipid( EQI_SHOES )) +"^000000" : "" ), ( getarraysize(.@ep) ? "" : "I have nothing equipped!" ) ); if( getequipid( .@i ) != -1 || !.@ep ) { if ( getequipisenableref( .@i ) ) { .@refine = getequiprefinerycnt( .@i ); if ( .@refine >= 10 ) { mes "[Sample]"; mes "That item has already reached max level!"; close; } delitem 7806,1; if ( ( rf_opt & 4 ) ) { delitem 6232,1; .@pr = .plus_refine; } if ( ( rf_opt & 8 ) ) { delitem 6228,1; .@rr++; } .@rand = rand(100) + 1; .@rand_refine = .refine_rates[.@refine] + .@pr; if( .@rand <= .@rand_refine ) { successrefitem .@i; mes "[Sample]"; mes "Success!!!"; } else { if( !.@rr ) { downrefitem .@i; mes "[Sample]"; mes "I failed and the item lost one refine!"; } else { mes "[Sample]"; mes "I failed but your item is fine!"; } } } else { mes "[Sample]"; mes "I'm sorry but I can't refine that item!"; } } else { mes "[Sample]"; mes "You need to equip something first!"; } close; OnInit: .plus_refine = 5; setarray .refine_rates, 100, 100, 100, 100, 100, 15 , 10 , 5 , 3 , 1 ; end; } [External Link] P.S: Emistry I used your refiner from the other post as a base hope you don't mind. xD
  6. You could try using Emistry's script but modifying it to use getitem2 instead which according to a script I wrote years ago "works"? I'm not exactly sure if the stats get modified or w/e, but it's worth a shot... Test Script: new_1-2,95,71,4 script +101 Refiner 100,{ for ( .@i = 1; .@i <= 10; .@i++ ) { if ( getequipisequiped(.@i) && getequipisenableref(.@i) ) { .@id = getequipid(.@i); .@ref = getequiprefinerycnt(.@i); .@card1 = getequipcardid( .@i, 0 ); .@card2 = getequipcardid( .@i, 1 ); .@card3 = getequipcardid( .@i, 2 ); .@card4 = getequipcardid( .@i, 3 ); delitem2 .@id, 1, 1, .@ref, 0, .@card1, .@card2, .@card3, .@card4; getitem2 .@id, 1, 1, 101, 0, .@card1, .@card2, .@card3, .@card4; equip .@id; } } end; }
  7. Whoa... This has a really fantastic atmosphere. Great job!
  8. I made a tutorial instance script like awhile back. I'm not completely sure if it still applies but I'll drop a link here if you feel the need to check it out. (Edit: Giving it a quick glance I can see that I was pretty vague back then. If you have any questions about parts of the script let me know.) http://upaste.me/r/858a16499f5511742
  9. I'm not saying you're wrong, but you'd be surprised. (As I side note I did look over the RAWs from the sample and they looked readable... Although my position is still neutral.)
  10. I'm going with the current minority on this one...
  11. Can I reserve one of the mediums... And would you describe it as a large-medium or a small-medium? Maybe I should just get a large...
  12. Do you have a medium without the name then? I'll paypal you the money for it.
  13. Currently untested you'll have to let me know if somethings up. At this point I'm just compiling all of my edits into this script because many people are asking for it. //===== Hourly Points Script ========================================= //===== By: ========================================================== //= GorthexTiger modified by Nibi //===== Current Version: ============================================= //= 1.4.1 //===== Compatible With: ============================================= //= Any eAthena Version //===== Description: ================================================= //= Get Points every successful hours of gameplay, you cannot get //= the points even if you miss a second or a minute. A player will //= get a very big bonus if they played 3 hours consecutively //= or without logging out of the game. If the player is vending //= the script will then stop. //===== Additional Comments: ========================================= //= You can modify the script to your liking. //= The default points is Kafrapoints change it anyway if you like. //= 1.1 = Check Chatting too //= 1.2 = 5 Minute Idle Check & @at/@autotrade check. //= 1.3 = Corrected the current balance line on 12 Hours Consecutive //= 1.4 = Added command to check remaining time and updated idle check. (Skorm) //= 1.4.1 = Modified the msgs to display according to .timer. (Skorm) //==================================================================== - script hourlypoints -1,{ OnPointGet: //Check for idle. while(checkvending() >= 1 || checkchatting() == 1 || checkidle() >= .idle) { if( .@mes$ == "" ) { dispbottom set( .@mes$, "The hourly points event stopped because you were vending, chatting, or idle!" ); set @hourly_points_timer, 0; } sleep2 .delay; } @consecutive_timer++; .@time_string$ = Time2Str( @consecutive_timer * ( .timer / 1000 ) ); dispbottom "You received "+.points+" Kafrapoint(s) by staying ingame for "+.@time_string$+"."; #CASHPOINTS = #CASHPOINTS + .points; dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoints"; @consecutive_bonus++; //Check for consecutive timer. if(@consecutive_bonus == .cdelay) { @consecutive_bonus = 0; #CASHPOINTS = #CASHPOINTS + .cpoints; dispbottom "You receive a bonus "+.cpoints+" Kafrapoint(s) by playing for "+.@time_string$+" consecutively!!!"; dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoint(s)"; } OnPCLoginEvent: addtimer .timer,"hourlypoints::OnPointGet"; @hourly_points_timer = gettimetick(2) + ( .timer / 1000 ); end; OnCmdHour: message strcharinfo(0),@hourly_points_timer ? Time2Str( @hourly_points_timer )+" remaining before you get your Hourly Reward(s).":"Something went wrong or you're considered idle at the moment, try relogging!"; end; OnInit: bindatcmd "ctr","hourlypoints::OnCmdHour"; //@ctr to view time till next point. .timer = 1000*60*60; //Timer in milliseconds. ( Default: 1000*60*60 [ = 1 Hour ] ) .cdelay = 3; //Delay before receiving the consecutive bonus. ( Default: 3 [ { ~ 3 Hours } *Using default timer ] ) .cpoints = 10; //Points gained for consecutive time online. ( Default: 10 ) .points = 1; //Normal points gained. ( Default: 1 ) .delay = 1000; //Delay for idle re-check check. ( Default: 1000 [ = 1 Second ] ) .idle = 60*5; //Player is idle after not moving for this many seconds. ( Default: 60*5 [ = 5 Minutes ] ) } - script check -1,{ OnInit: bindatcmd "check",strnpcinfo(3)+"::OnCheck"; end; OnCheck: dispbottom "You have " +#CASHPOINTS+ " cash points."; end; }
  14. Skorm

    help please

    I assumed the script was functioning correctly before hand. guild_vs2,50,49,3 script Mega Lotto 563,{ progressbar "",1; delitem .Cost[0], .Cost[1]; set .@i, rand(1,.Total); if (rand(1,100) > getd(".P"+.@i+"[0]")) { for(set .@j,0; .@j<getarraysize(.Default); set .@j,.@j+2) getitem .Default[.@j], .Default[.@j+1]; } else { for(set .@j,1; .@j<getarraysize(getd(".P"+.@i)); set .@j,.@j+2) { setarray .@k[0], getd(".P"+.@i+"["+.@j+"]"), getd(".P"+.@i+"["+(.@j+1)+"]"); getitem .@k[0], .@k[1]; if( getd(".P"+.@i+"[0]") == 1 ) announce "Congratulations to "+strcharinfo(0)+" for getting "+.@k[1]+"x "+getitemname(.@k[0])+"!",0; } } specialeffect2 248; close; OnTimer1800000: //30 Minutes. announce "I'd like to thank all of our lucky contestants. I'll be back in 5 Hours!",0; disablenpc strnpcinfo(3); end; OnTimer18000000: //5 Hours. initnpctimer; announce "Come test your luck at the Mega Lotta. Only avaliable for the next 30 Minutes!",0; enablenpc strnpcinfo(3); end; OnInit: initnpctimer; waitingroom "Play Lotto Here!",0; // Format: <%>,<item ID>,<count>{,...}; setarray .P1[0],100,607,5; setarray .P2[0],80,607,5; setarray .P3[0],70,607,5; setarray .P4[0],60,607,5; setarray .P5[0],50,607,5; setarray .P6[0],50,607,20; setarray .P7[0],40,607,25; setarray .P8[0],30,607,30; setarray .P9[0],20,607,25; setarray .P10[0],10,607,50; setarray .P11[0],100,30487,10; setarray .P12[0],90,30487,10; setarray .P13[0],50,12202,10; setarray .P14[0],50,12203,10; setarray .P15[0],50,12204,10; setarray .P16[0],50,12205,10; setarray .P17[0],50,12206,10; setarray .P18[0],50,12207,10; setarray .P19[0],20,30487,20; setarray .P20[0],10,30487,25; setarray .P21[0],50,12103,5; setarray .P22[0],40,12103,5; setarray .P23[0],30,12103,5; setarray .P24[0],20,12103,5; setarray .P25[0],10,12103,10; setarray .P26[0],50,12202,5; setarray .P27[0],50,12103,5; setarray .P28[0],50,12204,5; setarray .P29[0],50,12205,5; setarray .P30[0],50,12206,5; setarray .P31[0],50,12207,5; setarray .P32[0],5,7073,1; setarray .P33[0],5,7074,1; setarray .P34[0],5,7075,1; setarray .P35[0],5,7076,1; setarray .P36[0],5,7077,1; setarray .P37[0],5,7078,1; setarray .P38[0],5,7079,1; setarray .P39[0],5,7080,1; setarray .P40[0],5,7081,1; setarray .P41[0],5,7082,1; setarray .P42[0],5,7083,1; setarray .P43[0],5,7084,1; setarray .P44[0],5,7085,1; setarray .P45[0],5,7086,1; setarray .P46[0],5,7087,1; setarray .P47[0],5,7088,1; setarray .P48[0],5,7089,1; setarray .P49[0],5,7090,1; setarray .P50[0],5,7091,1; setarray .P51[0],5,7092,1; setarray .P52[0],1,4395,1; setarray .Default[0],30272,1; setarray .Cost[0],7368,1; set .Total,52; announce "Come test your luck at the Mega Lotta. Only avaliable for the next 30 Minutes!",0; end; }
  15. Back when I was using Openkore the system didn't detect client side monsters names but it was detecting an ID instead. So I made an Anti-bot script that took advantage of that. I'm sure it's by-passable from Openkore but if nobodies using it then perhaps there isn't a bypass for it just yet? Anyways this is a really old script and it was made for eAthena so enhancements could be made. You'll have to let me know if you get any errors or anything like that. https://github.com/Skormie/ea-addicts/blob/master/Antibot.txt Goodluck.
  16. Literally just did this last week and I'd ask you to search a bit harder before posting but for some reason the advanced search function wasn't working for me. Anyways if you want to see that post you can view it https://rathena.org/board/topic/105844-script-mod/ I've just went ahead and modified the script to your request and added a current idle check. //===== Hourly Points Script ========================================= //===== By: ========================================================== //= GorthexTiger modified by Nibi //===== Current Version: ============================================= //= 1.4 //===== Compatible With: ============================================= //= Any eAthena Version //===== Description: ================================================= //= Get Points every successful hours of gameplay, you cannot get //= the points even if you miss a second or a minute. A player will //= get a very big bonus if they played 3 hours consecutively //= or without logging out of the game. If the player is vending //= the script will then stop. //===== Additional Comments: ========================================= //= You can modify the script to your liking. //= The default points is Kafrapoints change it anyway if you like. //= 1.1 = Check Chatting too //= 1.2 = 5 Minute Idle Check & @at/@autotrade check. //= 1.3 = Corrected the current balance line on 12 Hours Consecutive //= 1.4 = Added command to check remaining time and updated idle check. (Skorm) //==================================================================== - script hourlypoints -1,{ OnPointGet: while(checkvending() >= 1 || checkchatting() == 1 || checkidle() >= .idle) { if( .@mes$ == "" ) { dispbottom set( .@mes$, "The hourly points event haulted because you were vending, chatting, or idle." ); set @hourly_points_timer, 0; } sleep2 .delay; } set #CASHPOINTS, #CASHPOINTS + .point_amt; dispbottom "You received "+.point_amt+" Kafrapoints by staying ingame for 1 hour"; dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoints"; set @consecutive_hour, @consecutive_hour + 1; //Check for 3 hours consecutive if(@consecutive_hour == 3) { set @consecutive_hour,0; set #CASHPOINTS, #CASHPOINTS + .cpoint_amt; dispbottom "You receive "+.cpoint_amt+" Kafrapoints in playing for 12 consecutive hours"; dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoints"; } OnPCLoginEvent: addtimer .timer,"hourlypoints::OnPointGet"; set @hourly_points_timer, gettimetick(2) + ( .timer / 1000 ); end; OnCmdHour: message strcharinfo(0),@hourly_points_timer ? Time2Str( @hourly_points_timer )+" remaining before you get your Hourly Reward(s).":"Something went wrong or you're considered idle at the moment try relogging!"; end; OnInit: bindatcmd "ctr","hourlypoints::OnCmdHour"; set .timer, 1000*15*15; //Timer in milliseconds. set .cpoint_amt, 15; //Points gained for consecutive time online. set .point_amt, 5; //Normal points gained. set .delay, 1000; //Delay for idle re-check check. set .idle, 60; //Player is idle after not moving for this many seconds. }
  17. Super salty that I missed my chance to get one of these... Would be cool if there were some color options maybe for staff (Scripting Leaders get Orange ) and donators.
  18. We're already looking into this! I'll keep you posted if we find anything.
  19. Skorm

    Script mod

    Change: Time2Str( @hourly_points_timer - gettimetick(2) ) To: Time2Str( @hourly_points_timer ) Didn't realize that was already part of the function.
  20. Skorm

    Script mod

    //= The default points is Kafrapoints change it anyway if you like. //= 1.1 = Check Chatting too //= 1.2 = 5 Minute Idle Check & @at/@autotrade check. //= 1.3 = Corrected the current balance line on 12 Hours Consecutive //==================================================================== - script hourlypoints -1,{ OnPointGet: while(checkvending() >= 1 || checkchatting() == 1) { sleep2 .delay; if(.@mes$=="") dispbottom set(.@mes$,"The hourly points event haulted because you were vending, chatting, or idle."); } set #CASHPOINTS, #CASHPOINTS + .point_amt; dispbottom "You received "+.point_amt+" Kafrapoints by staying ingame for 1 hour"; dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoints"; set @consecutive_hour, @consecutive_hour + 1; //Check for 3 hours consecutive if(@consecutive_hour == 3) { set @consecutive_hour,0; set #CASHPOINTS, #CASHPOINTS + .cpoint_amt; dispbottom "You receive "+.cpoint_amt+" Kafrapoints in playing for 12 consecutive hours"; dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoints"; } OnPCLoginEvent: addtimer .timer,"hourlypoints::OnPointGet"; set @hourly_points_timer, gettimetick(2) + ( .timer / 1000 ); end; OnCmdHour: message strcharinfo(0),@hourly_points_timer ? Time2Str( @hourly_points_timer )+" Remaining.":"Something went wrong relog!"; end; OnInit: bindatcmd "hour","hourlypoints::OnCmdHour"; set .timer, 1000*15*15; //Timer in milliseconds. set .cpoint_amt, 15; //Points gained for consecutive time online. set .point_amt, 5; //Normal points gained. set .delay, 1000; //Delay for idle re-check check. set .dlimit, 60*30; //Stop points if afk greater then in seconds (30mins). } Untested so let me know if you run into any problems @hour is the command.
  21. Skorm

    help please

    guild_vs2,50,49,3 script Mega Lotto 563,{ progressbar "",1; delitem .Cost[0], .Cost[1]; set .@i, rand(1,.Total); if (rand(1,100) > getd(".P"+.@i+"[0]")) { for(set .@j,0; .@j<getarraysize(.Default); set .@j,.@j+2) { getitem .Default[.@j], .Default[.@j+1]; if (!.@k[0]) setarray .@k[0], .Default[.@j], .Default[.@j+1]; } } else { for(set .@j,1; .@j<getarraysize(getd(".P"+.@i)); set .@j,.@j+2) { getitem getd(".P"+.@i+"["+.@j+"]"), getd(".P"+.@i+"["+(.@j+1)+"]"); if (!.@k[0]) setarray .@k[0], getd(".P"+.@i+"["+.@j+"]"), getd(".P"+.@i+"["+(.@j+1)+"]"); } } if( getd(".P"+.@i+"[0]") == 1 ) announce "Congratulations to "+strcharinfo(0)+" for getting "+.@k[1]+"x "+getitemname(.@k[0])+"!",0; specialeffect2 248; close; OnTimer1800000: //30 Minutes. announce "I'd like to thank all of our lucky contestants. I'll be back in 5 Hours!",0; disablenpc strnpcinfo(3); end; OnTimer18000000: //5 Hours. initnpctimer; announce "Come test your luck at the Mega Lotta. Only avaliable for the next 30 Minutes!",0; enablenpc strnpcinfo(3); end; OnInit: initnpctimer; waitingroom "Play Lotto Here!",0; // Format: <%>,<item ID>,<count>{,...}; setarray .P1[0],100,607,5; setarray .P2[0],80,607,5; setarray .P3[0],70,607,5; setarray .P4[0],60,607,5; setarray .P5[0],50,607,5; setarray .P6[0],50,607,20; setarray .P7[0],40,607,25; setarray .P8[0],30,607,30; setarray .P9[0],20,607,25; setarray .P10[0],10,607,50; setarray .P11[0],100,30487,10; setarray .P12[0],90,30487,10; setarray .P13[0],50,12202,10; setarray .P14[0],50,12203,10; setarray .P15[0],50,12204,10; setarray .P16[0],50,12205,10; setarray .P17[0],50,12206,10; setarray .P18[0],50,12207,10; setarray .P19[0],20,30487,20; setarray .P20[0],10,30487,25; setarray .P21[0],50,12103,5; setarray .P22[0],40,12103,5; setarray .P23[0],30,12103,5; setarray .P24[0],20,12103,5; setarray .P25[0],10,12103,10; setarray .P26[0],50,12202,5; setarray .P27[0],50,12103,5; setarray .P28[0],50,12204,5; setarray .P29[0],50,12205,5; setarray .P30[0],50,12206,5; setarray .P31[0],50,12207,5; setarray .P32[0],5,7073,1; setarray .P33[0],5,7074,1; setarray .P34[0],5,7075,1; setarray .P35[0],5,7076,1; setarray .P36[0],5,7077,1; setarray .P37[0],5,7078,1; setarray .P38[0],5,7079,1; setarray .P39[0],5,7080,1; setarray .P40[0],5,7081,1; setarray .P41[0],5,7082,1; setarray .P42[0],5,7083,1; setarray .P43[0],5,7084,1; setarray .P44[0],5,7085,1; setarray .P45[0],5,7086,1; setarray .P46[0],5,7087,1; setarray .P47[0],5,7088,1; setarray .P48[0],5,7089,1; setarray .P49[0],5,7090,1; setarray .P50[0],5,7091,1; setarray .P51[0],5,7092,1; setarray .P52[0],1,4395,1; setarray .Default[0],30272,1; setarray .Cost[0],7368,1; set .Total,52; announce "Come test your luck at the Mega Lotta. Only avaliable for the next 30 Minutes!",0; end; }
×
×
  • Create New...