Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/27/22 in all areas

  1. Hello friends of rAthena, I came to share the CD of Brazil Ragnarok Online that was distributed at the time. (I remember coming to Sucrilhos) In case anyone wants to study or try to make an Old Times Root. Episode of Niflheim (EP-6), Released in Brazil in 2004. Promotional video of the time that was released. Credit: LevelUpGames/Gravity Download
    1 point
  2. View File MvP's Tombs with top 3 damage players The mvps tombs include the top 3 players with damage. tomb_damage.diff Submitter EveeX Submitted 07/02/2022 Category Source Modifications Video Content Author gndx  
    1 point
  3. Heya, The original script can be opened with Scripts > Open scripts folder > script5_remove_unused_sprites.cs. In your case, you'd want something like this: foreach (var actPath in Directory.GetFiles(@"C:\Test\", "*.act")) { var sprPath = actPath.ReplaceExtension(".spr"); if (!File.Exists(sprPath)) continue; var actFile = new Act(actPath, sprPath); for (int i = actFile.Sprite.Images.Count - 1; i >= 0; i--) { if (actFile.FindUsageOf(i).Count == 0) { actFile.Sprite.Remove(i, actFile, EditOption.AdjustIndexes); } } actFile.SaveWithSprite(actPath, sprPath); }
    1 point
  4. hey guys that's simple though complicated: anyway i have deployed server inside kuber, why not xxbbxb/open-ro (github.com) as the matter of joke you are free to play
    1 point
  5. Hi all ? I haven't written any updates for a long time. Causes covid, life, work and more... Other full server configuration , i decide to implements a visual scripting editor like Blue Print (Unreal Engine) How to work is very simple, Just connect Node to Node, setting value, and the program, generate the npc script. The source code work like that. All nodes contains this function to generate code relative to parameters setting. public string CreateCode() { return map.Text + "," + x.Text + "," + y.Text + "," + dir.Text + " script " + name.Text + " " + graphics.Text + ",{"; } Really simple. And, this is Frontend Hope like this new NPC Editor. Actually need more time to create all Node and function relative to all npc command and sql operation. Follow for more news or join in rAthena Studio on discord ??
    1 point
  6. grfeditor does not support data.grf more than 4GB, I tried to create a clean date with all contents of kRO, bRO, jRO, thRO and twRO. when finalizing all the files disappear inside the grf.
    1 point
  7. Version 1.0.0

    119 downloads

    I'm bored. So i made this simple Cutin Checker via @cutin command. To use this, simply type @cutin and input the EXACT cutin name. Cutin names can be found in data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\illust ?
    Free
    1 point
  8. extract fluxcp C:\xampp\htdocs [if you install xampp on C:\xampp] open on web browser 127.0.0.1/fluxcp input secretpassword on password at Install & Update choise Install or Update Everything if show notice press OK -Finis-
    1 point
  9. Version 1.0.0

    42 downloads

    This is a high quality map consisting on 3 Payon style islands, intended to be a start point or a quest map. Features: High quality lighting. Effects, like the waterfall or the campfire. Full of ambient sounds. Minimap included Made as close as possible to an official map I hope you like it! Please, encrypt your GRF file when using my maps on your server to avoid people from stealing them. By buying this map, you agree to these terms: You are not allowed to redistribute this map in any way, shape, or form. Chargeback scams are not tolerated and will get you punished on rAthena. I (Daegaladh) still retain all rights to this map. Terms above may be changed or adjusted without prior notification. © Daegaladh 2017
    6.00 USD
    1 point
  10. make sure u didn't diff this option
    1 point
  11. Version 1.00

    520 downloads

    Follow Alice into the forest in Niflheim and try to figure out what is wrong with her. This is an instance dungeon that includes 3 maps, 2 quest and 3 boss for pre-renewal. One of the boss is a hidden extra to the instance with a small quest including a multi stage battle that will take a few days to fully complete. There are no default drops or rewards to the dungeon quests or monsters, So you will need to add those yourself. Although the instance is Pre-renewal, it can be used for renewal but you will need to revamp the monsters else they will be extremly weak. If your server is a highly modified pre-re server you might wanna tweak the monster since they are geared toward original RO servers. More detailed info in readme.txt Map used are Haunt_e and Haunt_1 made by Syouji
    Free
    1 point
  12. Version 1.0.0

    15 downloads

    This is a a custom city map inspired by Niflheim. It can be used as a city or as an event/quest map. This map includes: HollowTown An Inn A Shop A Weapon Shop An Armor Shop A Workshop/Smithery A Small House A Mansion A Pub A cave connected to Lutie/Xmas map Secret passages (one inside and another one outside) Effects like Ghosts and bats around the city Minimap All warps already located in a file I hope you enjoy it! Drop my a comment if you have any question. By buying this map, you agree to these terms: You are not allowed to redistribute this map in any way, shape, or form. Chargeback scams are not tolerated and will get you punished on rAthena. I (Ketsuhiro) still retain all rights to this map. Terms above may be changed or adjusted without prior notification.
    10.00 USD
    1 point
  13. here you go //===== Athena Script ===================================== //= Mr. Password //===== By ================================ //= //===== Description ======================================= //= Use the GM menu to enter a Password, clue and prize. //= Players will then have to input the password using the //= clue given. //===== Credits =========================================== //= //===== Version =========================================== //= v1.1 //========================================================= //= v1.0 - First release. //= v1.1 - Fixed an exploit. //========================================================= prontera,159,226,1 script Mr Password 869,{ // Set this to the minimum GM level allowed to access the GM CP. if (getgmlevel() > 10) goto L_gm; L_insert: if($prizewon == 0) { mes "[Mr Password]"; mes "Somebody already guessed the password."; mes "Please wait for my boss to give me a new one."; close; } mes "[Mr Password]"; mes "Hello " + strcharinfo(0) + ", would you like to guess the password?"; mes "The clue is: ^008000"+$clue$+"^000000"; next; mes "[Mr Password]"; mes "Go on, take a guess."; input @text$; if ( $prizewon == 0 ) { mes "Too late, you were'nt fast enough!"; close; } if (@text$ == $password$) goto L_win; if (@text$ != $password$) goto L_error; L_error: mes "[Mr Password]"; mes "Sorry, that's incorrect. Try again."; close; L_win: mes "[Mr Password]"; mes "Congratulations!! You guessed correctly!"; mes "Check your Inventory for your amazing ^008000"+ getitemname($get_item_id) +"^000000"; mes "Cool Prize huh?"; announce "Mr Password: " + strcharinfo(0) + " has guessed correctly, what a smart person!",0; getitem $get_item_id,$get_item_amount; set $prizewon, 0; close; L_gm: mes "[Mr Password]"; mes "Hello GM " + strcharinfo(0) + ", What would you like to do?"; switch(select("Set Password:Set Clue:Set Prize:Normal Player Mode:Announce")) { case 1: mes "[Mr Password]"; mes "So, what password should I use this time boss?"; input $password$; next; mes "[Mr Password]"; mes "Ok, so you want the password to be ^008000"+$password$+"^000000? cool."; next; goto L_gm; case 2: mes "[Mr Password]"; mes "So, what clue should I give them boss?"; input $clue$; next; mes "[Mr Password]"; mes "Ok, so the clue is: ^008000"+$clue$+"^000000, gotcha!"; next; goto L_gm; case 3: mes "[Mr Password]"; mes "Alright, what should the prize be boss?"; input $get_item_id; next; mes "[Mr Password]"; mes "How many of this item should I give them?"; input $get_item_amount; next; mes "[Mr Password]"; mes "So, the prize is ^008000"+ $get_item_amount +" "+ getitemname($get_item_id) +"^000000? Awesome."; next; goto L_gm; case 4: next; goto L_insert; case 5: mes "[Mr Password]"; mes "Ok, I'll let everyone know we're ready."; next; announce "Mr Password: The Boss has given me a new Password, come try guess it and get a prize!",0; set $prizewon, 1; next; goto L_gm; } }
    1 point
  14. Version v.1

    644 downloads

    Hi, I learned these days Effect-, Sound- and Light adding. So i startet a new map it calls Mall. For now it is only 1 Room but enough for more than 18 NPC's. It is a big Map cuz i will add next time more rooms. The package includes Minimap + Map Please rate my 2nd Map 1-10 and say please what i can do better. Thank you in advance. Here are some Screenshots:
    Free
    1 point
  15. Version 1.0

    2474 downloads

    Here is a great cool little map for any little server. All your players can come and take refuge in this cozy map: great from small populated servers. It's obviously a map made by myself and free-to-download. You guys can find all my other maps, on my post: http://rathena.org/b...pping-services/ Hope to hear from you guys soon, and hope you enjoy the map.
    Free
    1 point
  16. An easier way: - script #sample -1,{ OnAgitStart: OnAgitStart2: sleep rand(10,50); // In case both are executed simultaneously, don't overlap. if (!.bound) { set .bound,1; bindatcmd("guildrecall",strnpcinfo(0)+"::OnBlock"); bindatcmd("recall",strnpcinfo(0)+"::OnBlock"); } end; OnAgitEnd: OnAgitEnd2: sleep rand(10,50); if (.bound && !agitcheck() && !agitcheck2()) { set .bound,0; unbindatcmd("guildrecall"); unbindatcmd("recall"); } end; OnBlock: message strcharinfo(0),.@atcmd_command$+" is blocked during WoE."; end; }
    1 point
  17. @joelolopez I totally mess this part.. thanks ! prontera,150,145,5 script register 56,{ function isreq; callsub L_check; select( "Register ?" ); if( !getcharid(1) ) { mes "you're not in a party"; close; } else if( .party1 == getcharid(1) || .party2 == getcharid(1) ) { mes "you're already on my list"; close; } getpartymember getcharid(1); if( $@partymembercount != .count_req || !instance_check_party( getcharid(1),.count_req ) ) { mes "you need "+ .count_req +" players online in your party"; close; } callsub L_check; if( !.party2 ) .party2 = getcharid(1); else .party1 = getcharid(1); dispbottom "your party is now on my list"; if( !.party1 || !.party2 ) end; .start = 1; warpparty .map_event$, 0,0, .party1; warpparty .map_event$, 0,0, .party2; initnpctimer; end; OnPCKillEvent: .@self = getcharid(3); .@killed = killedrid; .@is_reg = isreq(); attachrid( .@killed ); if( !isreq() ) end; getpartymember getcharid(1),1; getpartymember getcharid(1),2; for( .@i = 0; .@i < $@partymembercount; .@i++ ) { if( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid( $@partymemberaid[.@i] ); sleep2 1; if( strcharinfo(3) == .map_event$ ) { .@is_online += 1; if( Hp < 1 ) .@count += 1; } } } if( .@is_online != .@count ) { attachrid( .@killed ); sleep2( .wait * 1000 ); atcommand "@alive"; end; } else if( !.@is_reg ) end; attachrid( .@self ); sleep2 2; announce "team "+ getpartyname( getcharid(1) ) +" win the event !", 0; getpartymember getcharid(1); getpartymember getcharid(1),1; getpartymember getcharid(1),2; for( .@i = 0; .@i < $@partymembercount; .@i++ ) if( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { getmapxy .@map$, .@x, .@y, 0, $@partymembername$[.@i]; if( .@map$ == .map_event$ ) getitem .item_id, .item_count, $@partymemberaid[.@i]; } stopnpctimer; sleep 3000; OnTimer300000: // 5 min then end of event .start = .party1 = .party2 = 0; mapwarp .map_event$,"prontera",0,0; end; L_check: if( .start ) end; else if( getpartyname( .party1 ) == "null" ) .party1 = 0; else if( getpartyname( .party2 ) == "null" ) .party2 = 0; else if( getpartyname( .party1 ) != "null" ) { getpartymember .party1; if( $@partymembercount != .count_req || !instance_check_party( .party1,.count_req ) ) .party1 = 0; } else if( getpartyname( .party2 ) != "null" ) { getpartymember .party2; if( $@partymembercount != .count_req || !instance_check_party( .party2,.count_req ) ) .party2 = 0; } return; function isreq { if( strcharinfo(3) == .map_event$ && .start && ( getcharid(1) == .party1 || getcharid(1) == .party2 ) ) return 1; return 0; } OnInit: .map_event$ = "geffen"; // your event map .count_req = 1; // count required in the party to start the event .wait = 20; // time in secs to be rezu .item_id = 501; // item id gained .item_count = 1; // item count gained setmapflag .map_event$,mf_noteleport; setmapflag .map_event$,mf_nowarp; setmapflag .map_event$,mf_nowarpto; setmapflag .map_event$,mf_nomemo; setmapflagnosave .map_event$,"prontera",0,0; setmapflag .map_event$,mf_partylock; setmapflag .map_event$,mf_pvp; end; } Now those who leave the event map are not in the killed list + can't gain a reward. No don't touch the map name in the mapflag. Just change the setting : .map_event$ = "geffen"; // your event map .count_req = 1; // count required in the party to start the event .wait = 20; // time in secs to be rezu .item_id = 501; // item id gained .item_count = 1; // item count gained
    1 point
  18. Try this http://pastebin.com/QfydWwrY Put your item id to be restricted in this line of code : setarray .@restricted[0],607,608; // Restricted items
    1 point
×
×
  • Create New...