Jump to content

Skorm

Forum Moderator
  • Posts

    1,238
  • Joined

  • Last visited

  • Days Won

    28

Everything posted by Skorm

  1. Just like to mention @goddameit did this back in 2011 with bad apple. Bad Apple Props to him for that.
  2. View File RWC Battleground 2012 This file is in no way Official. This is my interpretation of the Ragnarok World Championships Battleground system. Since this file has been up for years and I haven't seen a penny from it. I will not be offering support for the file if it is purchased here. Please contact me directly. Please run the SQL Commands at the beginning of the script file before installing said script. This script DOESN'T work without SQL support. What is this NPC? This is basically like a GVG script but it warps players who are in a party/guild into a map where they all ready up. After that, there is a waiting period where they can buff. Then they battle for however many rounds and get prizes at the end. What can it do? Ranking. Unrestricted Party Queuing. ( You can queue up and go do other things while you wait. ) Disable Usable Items. Disable Equip-able Items. Restrict Party to Specific Jobs. ( Restrict Duplicate Jobs as well ) Modify what maps it works on. Require Items. Cooldown. Disable Commands. Item/Point Rewards. IP Abuse Prevention. ( Mac Address in applicable servers. ) Auto party. Healer and repairer NPCs. Join or leave anywhere with @rwcjoin & @rwcleave. Completely customizable interface. Here are some of the other files you might need: Map Files ItemInfo Accessory Enchanter Item Database If you purchase this script from rAthena.org I will offer full support for the features listed above. Additional feature requests are ok but added at my own discretion. Email: [email protected] Submitter Skorm Submitted 04/28/2017 Category PvP, GvG, WoE, Battleground Video https://youtu.be/kSJYZVCYBzI Content Author Skorm  
  3. Version 6.3.2

    209 downloads

    This file is in no way Official. This is my interpretation of the Ragnarok World Championships Battleground system. Since this file has been up for years and I haven't seen a penny from it. I will not be offering support for the file if it is purchased here. Please contact me directly. Please run the SQL Commands at the beginning of the script file before installing said script. This script DOESN'T work without SQL support. What is this NPC? This is basically like a GVG script but it warps players who are in a party/guild into a map where they all ready up. After that, there is a waiting period where they can buff. Then they battle for however many rounds and get prizes at the end. What can it do? Ranking. Unrestricted Party Queuing. ( You can queue up and go do other things while you wait. ) Disable Usable Items. Disable Equip-able Items. Restrict Party to Specific Jobs. ( Restrict Duplicate Jobs as well ) Modify what maps it works on. Require Items. Cooldown. Disable Commands. Item/Point Rewards. IP Abuse Prevention. ( Mac Address in applicable servers. ) Auto party. Healer and repairer NPCs. Join or leave anywhere with @rwcjoin & @rwcleave. Completely customizable interface. Here are some of the other files you might need: Map Files ItemInfo Accessory Enchanter Item Database If you purchase this script from rAthena.org I will offer full support for the features listed above. Additional feature requests are ok but added at my own discretion. Email: [email protected]
    $5.00
  4. There were a few problems when trying to use it with Euphy's WOE controller also I hadn't thought about the fact that 0 actually means something in this script. So getarraysize didn't work correctly when sunday was the last day in your list. To fix that I had to change the days from 1 ~ 7 instead of 0 ~ 6... That on its own was pretty easy but Euphy's script still uses 0 ~ 6 so I had to do a bunch of arbitrary junk to still keep it a standalone npc yet compatible with Euphy's script. Firstly don't remove credits. ( Seriously I can't stress that enough. ) Uhh... So I didn't have a lot of time tonight. I will make an integrated version with Euphy's WOE controller but there are a few things with his script that I wanted to change/add. Alternatively you could just put this npc on the same location as his npc but make it invisible with sprite number 139. Anyways here is a working standalone version that is compatible with Euphy's WOE Controller. ( Sorry @neXus it's the version with Days, Minutes, Seconds. I'll make it easier to change that or something. ) //Skormie's WOE Waitingroom Timer v1.03 //Should natively work with Euphy's WOE Controller. prontera,151,193,5 script Woe Time 100,{ end; OnInit: function s; function woe_update; // CONFIG // ...If you're not using Euphy's Woe Controller. setarray [email protected]_day, 5, 1; //Day of the week WOE Starts on. (1 for Sunday, 7 is Saturday) setarray [email protected]_hour, 20, 0; //rAthena works on a 24 hour clock. .auto_update = 60; //Auto update timer in seconds. .woe_len = getarraysize( [email protected]_day ); for( [email protected] = 0; [email protected] < .woe_len; [email protected]++ ) { .woe_day[ [email protected] * 4 ] = [email protected]_day[ [email protected] ] -1; .woe_day[ ([email protected] * 4) + 1 ] = [email protected]_hour[ [email protected] ]; } .woe_len = ( ( .woe_len ) * 4 ); woe_update(); while ( 1 ) { if( !( gettimetick(2) % .auto_update ) ) woe_update(); [email protected]_tick = .woe_time[.current] - gettimetick(2); [email protected] = [email protected]_tick / 86400; [email protected] = [email protected]_tick % 86400 / 3600; [email protected] = [email protected]_tick % 3600 / 60; [email protected] = [email protected]_tick % 60; [email protected]$ = ( [email protected] ? [email protected] +" day"+ s( [email protected] ) : "" ) + ( [email protected] ? [email protected] +" hour"+ s( [email protected] ) : "" ) + ( [email protected] ? [email protected] +" minute"+ s( [email protected] ) : "" ) + ( [email protected] ? [email protected] +" second"+ s( [email protected], 1 ) : "" ); delwaitingroom strnpcinfo(0); waitingroom ( .woe_len ? ( agitcheck() ? "WOE is Active!" : [email protected]$ ) : "WOE is Disabled!" ), 0; sleep 1000; } end; OnAgitEnd: woe_update(); end; function s { return ( getarg(0) > 1 ? "s" : "" ) + ( getarg(1,0) ? "" : " " ); } function woe_update { if( getnpcid( 0, "WOE_CONTROL" ) ) { [email protected]_Len = getarraysize( $WOE_CONTROL ); copyarray .woe_day, $WOE_CONTROL, [email protected]_Len; .woe_len = [email protected]_Len; } for( [email protected] = 0; [email protected] < .woe_len; [email protected] += 4 ) { [email protected]_day[[email protected]] = ( .woe_day[[email protected]] - gettime(4) + 7 ) % 7 * 86400; [email protected]_hour[[email protected]] = ( .woe_day[[email protected]+1] * 3600 ) - gettimetick(1); .woe_time[[email protected]] = gettimetick(2) + [email protected]_day[[email protected]] + [email protected]_hour[[email protected]]; if(gettimetick(2) > .woe_time[[email protected]]) .woe_time[[email protected]] = .woe_time[[email protected]] + 7 * 86400; if( .woe_time[[email protected]] <= .woe_time[.current] ) .current = [email protected]; } } }
  5. Thanks for your continued support @zackdreaver.
  6. Oh dang yeah I'll look into it when I get home.
  7. I'm not sure what you've added. Xd
  8. Yeah, sorry about that. Some requests just really catch my attention. I felt like a standalone woe countdown timer has been missing for awhile or if it's here I haven't seen it. Anyways thanks for helping and keep scripting/sharing!
  9. Sure thing. //Skormie's WOE Waitingroom Timer v1.02.1 //Should natively work with Euphy's WOE Controller. prontera,150,150,5 script Woe Time 100,{ end; OnInit: function add_zero; function woe_update; [email protected]_Len = getarraysize( $WOE_CONTROL ); if( [email protected]_Len ) { for( [email protected] = 0; [email protected] < [email protected]_Len; [email protected] += 4 ) { .woe_day[ getarraysize( .woe_day ) ] = $WOE_CONTROL[[email protected]]; .woe_hour[ getarraysize( .woe_hour ) ] = $WOE_CONTROL[[email protected]+1]; } } else { setarray .woe_day, 5, 4; //Day of the week WOE Starts on. (0 for Sunday, 6 is Saturday) setarray .woe_hour, 16, 20; //rAthena works on a 24 hour clock. } woe_update(); while ( 1 ) { [email protected]_tick = .woe_time[.current] - gettimetick(2); [email protected] = [email protected]_tick / 86400; [email protected] = [email protected]_tick % 86400 / 3600; [email protected] = [email protected]_tick % 3600 / 60; [email protected] = [email protected]_tick % 60; [email protected]$ = add_zero( [email protected] ) + add_zero( [email protected] ) + add_zero( [email protected] ) + add_zero( [email protected], 1 ); delwaitingroom strnpcinfo(0); waitingroom agitcheck() ? "WOE is Active!" : [email protected]$, 0; sleep 1000; } end; OnAgitEnd: woe_update(); end; function add_zero { return ( ( getarg(0) < 10 ) ? "0" : "" )+ getarg(0) +( getarg(1,0) ? "" : ":" ); } function woe_update { [email protected]_len = getarraysize( .woe_day ); for( [email protected] = 0; [email protected] < [email protected]_len; [email protected]++ ) { [email protected]_day[[email protected]] = ( .woe_day[[email protected]] - gettime(4) + 7 ) % 7 * 86400; [email protected]_hour[[email protected]] = ( .woe_hour[[email protected]] * 3600 ) - gettimetick(1); .woe_time[[email protected]] = gettimetick(2) + [email protected]_day[[email protected]] + [email protected]_hour[[email protected]]; if(gettimetick(2) > .woe_time[[email protected]]) .woe_time[[email protected]] = .woe_time[[email protected]] + 7 * 86400; if( .woe_time[[email protected]] <= .woe_time[.current] ) .current = [email protected]; } } }
  10. Something I botched together pretty quick it should natively work with Euphy's WOE Controller. (lightly tested) Let me know if you have any problems. //Skormie's WOE Waitingroom Timer v1.02 //Should natively work with Euphy's WOE Controller. prontera,150,150,5 script Woe Time 100,{ end; OnInit: function s; function woe_update; [email protected]_Len = getarraysize( $WOE_CONTROL ); if( [email protected]_Len ) { for( [email protected] = 0; [email protected] < [email protected]_Len; [email protected] += 4 ) { .woe_day[ getarraysize( .woe_day ) ] = $WOE_CONTROL[[email protected]]; .woe_hour[ getarraysize( .woe_hour ) ] = $WOE_CONTROL[[email protected]+1]; } } else { setarray .woe_day, 5, 4; //Day of the week WOE Starts on. (0 for Sunday, 6 is Saturday) setarray .woe_hour, 16, 20; //rAthena works on a 24 hour clock. } woe_update(); while ( 1 ) { [email protected]_tick = .woe_time[.current] - gettimetick(2); [email protected] = [email protected]_tick / 86400; [email protected] = [email protected]_tick % 86400 / 3600; [email protected] = [email protected]_tick % 3600 / 60; [email protected] = [email protected]_tick % 60; [email protected]$ = ( [email protected] ? [email protected] +" day"+ s( [email protected] ) : "" ) + ( [email protected] ? [email protected] +" hour"+ s( [email protected] ) : "" ) + ( [email protected] ? [email protected] +" minute"+ s( [email protected] ) : "" ) + ( [email protected] ? [email protected] +" second"+ s( [email protected], 1 ) : "" ); delwaitingroom strnpcinfo(0); waitingroom agitcheck() ? "WOE is Active!" : [email protected]$, 0; sleep 1000; } end; OnAgitEnd: woe_update(); end; function s { return ( getarg(0) > 1 ? "s" : "" ) + ( getarg(1,0) ? "" : " " ); } function woe_update { [email protected]_len = getarraysize( .woe_day ); for( [email protected] = 0; [email protected] < [email protected]_len; [email protected]++ ) { [email protected]_day[[email protected]] = ( .woe_day[[email protected]] - gettime(4) + 7 ) % 7 * 86400; [email protected]_hour[[email protected]] = ( .woe_hour[[email protected]] * 3600 ) - gettimetick(1); .woe_time[[email protected]] = gettimetick(2) + [email protected]_day[[email protected]] + [email protected]_hour[[email protected]]; if(gettimetick(2) > .woe_time[[email protected]]) .woe_time[[email protected]] = .woe_time[[email protected]] + 7 * 86400; if( .woe_time[[email protected]] <= .woe_time[.current] ) .current = [email protected]; } } } (External Link)
  11. Skorm

    Special Buffs

    Honestly in this situation just save yourself the trouble and use Addrid. - script kdsfksdjhfksdj -1,{ OnInit: bindatcmd "buffall", strnpcinfo(0) +"::Onbuff",99,99; end; Onbuff: addrid 0,0; // ripped almost entirely from Annieruru's script which ripped a little bit from Winz script if ( !checkvending( strcharinfo(0) ) ) { skilleffect 34,0; sc_start SC_BLESSING,600000,10; skilleffect 29,0; sc_start SC_INCREASEAGI,600000,10; } end; }
  12. ... - script hourly_point_main -1,{ OnInit: .max_hour = 5; .duration = 3600; .npc_name$ = strnpcinfo(3); .vip_multi = 2; bindatcmd "hourly", .npc_name$ + "::OnCheck"; end; OnClock0000: deletearray [email protected]_tick; OnUpdate: [email protected] = getcharid(3) & 0xFFFF; deltimer .npc_name$+"::OnUpdate"; [email protected]_ticks[[email protected]]++; #reward += [email protected]_ticks[[email protected]] * 10 * ( vip_status(1) ? .vip_multi : 1 ); OnPCLoginEvent: [email protected] = getcharid(3) & 0xFFFF; if ( [email protected]_ticks[[email protected]] < .max_hour ) { @timer = gettimetick(2) + .duration; addtimer ( .duration * 1000 ), .npc_name$+"::OnUpdate"; } else { dispbottom "[ Hourly Rewards ] You've reached the daily maximum of "+.max_hour+" hours played, well done!",0x9ae2d7; end; } if ( #reward && [email protected]_ticks[[email protected]] ) dispbottom "[ Hourly Rewards ] " + [email protected]_ticks[[email protected]] + "/" + .max_hour + " hours played, "+#reward+" point(s)!",0x9ae2d7; end; OnCheck: [email protected] = (@timer - gettimetick(2))/60; [email protected] = (@timer - gettimetick(2))%60; dispbottom "[ Hourly Rewards ] Your next reward will be achieved in " + (([email protected])? "[ " + [email protected] + " ] minute" + (([email protected] > 1)?"s":""):"") + (([email protected] && [email protected])? " and ":"") + (([email protected])? "[ " + [email protected] + " ] second" + (([email protected] > 1)?"s":""):"") + "!",0x9ae2d7; end; }
  13. https://github.com/rathena/rathena/wiki/Adding-a-Script
  14. There are other hourly points scripts that prevent that. Like this one that I modified awhile ago. http://upaste.me/66e5267563e64fefe
  15. change callfunc("F_RandMes", 7, 969, 1002, 757, 756); to callfunc("F_RandMes", 4, 969, 1002, 757, 756); For other people reading this post F_RandMes was changed to F_Rand sometime in 2014 the new format is like... callfunc("F_Rand",1129,1222,1163,1357,1360,1522,1811,1410);
  16. Great work if only this was a release. I like the demon guy with the orb, did you make that?
  17. This is already a thing. In conf/log_athena.conf enable // Log AtCommands & Charcommands (Note 1) // Only commands issued by player groups ('conf/groups.conf') with // 'log_commands' setting set to 'true' will be logged. log_commands: yes Then in conf/groups.conf add log_commands: true For all the groups you want to log. Logs will then be sent to your log sql database.
  18. Here is a "working version" there are still some bugs that I'm aware of but I really don't feel like spending anymore time on this script. If I was to make an instance house system I would start from the ground up. http://upaste.me/71e44369959bcfea1
  19. Oh yeah I was trying to do some cheeky stuff to save the houses information and all that junk. It's buggy but I'll probably see if I can't fix it up tomorrow. I don't know about the instance bit. Sure it wouldn't be very hard but I don't really see the point.
  20. You don't you either use variables or an sql table with all the players specifics like, locations, house, and all that other junk. Then use that information to dynamically build the house when the instance is created.
  21. It's great to see devs posting their intended additions. I actually made an RWC Battleground system that did this with scripts although I'm sure a source version would be much faster and more reliable. I only ask if you can make it usable outside of battleground for like events and instances too! That would be fantastic, thanks.
  22. Because Sanasol thought this script was good enough to base his PVP Ladder off of. I decided to update it and fix a few bugs. There's still much more to be done but at the moment it's good enough for what I'm using it for. This script is something of a legend in my opinion and I'm sure Ghost worked very hard on it. So at its core everything is basically the same, and I decided to keep things compatible with eAthena as well. If you run into any problems or have any features you want added let me know. Here's a link to the script: http://upaste.me/3f6a4327724c1149e
  23. Cool stuff. Use unittalk with getnpcid. https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L7302-L7306 https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L2397-L2407 Keep it up.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.