-
Posts
10018 -
Joined
-
Days Won
408
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Emistry
-
make sure the npc script are saved using appropriate encoding that support by server.
-
npc/re/instances/OldGlastHeim.txt#L54 add this before the switch command. if ( BaseLevel < 100 ) { mes "You level must be above 100 to join this instance."; close; }
-
// -----------------------------// // ------- Free For All --------// // -------- By : Butch ---------// // A simple Free for all script // // -----------------------------// guild_vs5,48,51,6 script FFA Master 999,{ if(getmapusers("guild_vs5") != 1) { mes "[^FF0000FFA Master^000000]"; mes "Current players - ^FF0000"+ getmapusers("guild_vs5") +"^000000."; close; } else if(getmapusers("guild_vs5") == 1) { dispbottom "You are a winner of Event Free for all. Congratz!"; donpcevent "Free For All::OnStopEvent"; announce "Free for all winner : "+ strcharinfo(0) +"", bc_all, "0xFFCE00"; getitem 25002,1; // Reward warp "prontera", 156,149; end; } } // ------ FFA Warper -------// prontera,147,149,6 script Free For All 999,{ mes "[^FF0000Agent Mil^000000]"; mes "What do you want?"; switch(select("Free for all")) { case 1: if( getcharid(1) ) { mes "Please leave your party."; close; } if( getcharid(2) ) { mes "Please leave your guild."; close; } else switch(rand(3)) { case 0: .@x = 18; .@y = 50; break; case 1: .@x = 50; .@y = 77; break; case 2: .@x = 81; .@y = 49; break; case 3: .@x = 49; .@y = 22; break; } warp "guild_vs5", .@x,.@y; break; } close; OnInit: waitingroom "[Free For All]",0; .start = 1; disablenpc "FFA Master"; announce "Free for all will start in 5 minutes.", bc_all, "0x00b89d"; sleep 120000; announce "Free for all will start in 3 minutes.", bc_all, "0x00b89d"; sleep 120000; announce "Free for all will start in 1 minute.", bc_all, "0x00b89d"; sleep 60000; announce "Free for all has started!", bc_all, "0x00b89d"; .start = 2; enablenpc "FFA Master"; sleep 2000; mapannounce "guild_vs5", "FFA starts in 5", bc_map; sleep 1000; mapannounce "guild_vs5", "FFA starts in 4", bc_map; sleep 1000; mapannounce "guild_vs5", "FFA starts in 3", bc_map; sleep 1000; mapannounce "guild_vs5", "FFA starts in 2", bc_map; sleep 1000; mapannounce "guild_vs5", "FFA starts in 1", bc_map; sleep 1000; mapannounce "guild_vs5", "GO! Kill all!", bc_map; setmapflag "guild_vs5", mf_gvg; removemapflag "guild_vs5", mf_noskill; end; } guild_vs5 mapflag partylock guild_vs5 mapflag guildlock guild_vs5 mapflag notrade guild_vs5 mapflag nodrop
-
- script sample -1,{ OnPCStatCalcEvent: if ( countitem( <item_id> ) && strcharinfo(3) == "map_name" ) { bonus bHit,30; } end; } you can try this.
-
prontera,155,181,5 script Sample#guild_value 757,{ .@guild_id = getcharid(2); if ( .@guild_id ) { value |= 1; if ( getguildmasterid( .@guild_id ) == getcharid(0) ) { value |= 2; } if ( value & 1 ) mes "You get value 1"; if ( value & 2 ) mes "You get value 2"; } else { mes "You didnt have guild."; } close; } you can try this
-
announce("Free for all will start in 1 minute.", bc_all, .ANNOUNCE_COLOR$); sleep(60000); change to for ( .@i = 3; .@i > 0; .@i-- ) { announce("Free for all will start in "+.@i+" minute.", bc_all, .ANNOUNCE_COLOR$); sleep(60000); }
-
help to modify this script for pvp ladder
Emistry replied to AinsLord's question in Scripting Support
shut down server, delete all data from both pvpladder and ownladder table. -
change itemtype to 11... and add the delitem script command to remove the item once they get the item using getitem.
-
i believe you should put all your files within the same folder with the perl file location.
-
} else if(getmapusers(.MapName$[.@m]) >= .MaxPlayers){ change to } else if(getmapusers(.MapName$[.@m]) >= .MaxPlayers[.@m]){
-
prontera,155,181,5 script Sample#change_color 757,{ if ( select( (( .status ) ? "^FF0000Inactive^000000" : "^0055FFActive^000000" ), "Cancel" ) == 1 ) { mes "blablbala"; .status = !.status; } close; }
-
every monster kill the simple bot checker applies
Emistry replied to AinsLord's question in Scripting Support
- script antibot -1,{ function GetString { if( getarg(0) & 1 ) setarray .@List$[ getarraysize( .@List$ ) ],"1","2","3","4","5","6","7","8","9"; if( getarg(0) & 2 ) setarray .@List$[ getarraysize( .@List$ ) ],"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"; if( getarg(0) & 4 ) setarray .@List$[ getarraysize( .@List$ ) ],"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"; if( getarg(0) & 8 ) setarray .@List$[ getarraysize( .@List$ ) ],"!","@","#","$","%","^","&","*","(",")","-","=","/","+"; set .@Str$,""; while( getstrlen( .@Str$ ) < getarg(1) ) set .@Str$,.@Str$ + .@List$[ rand( getarraysize( .@List$ ) ) ]; return .@Str$; } OnCheck: switch( rand(2) ){ case 0: sc_start sc_berserk, 1000000000, 1; set .@String$,GetString( 15,rand(5,10) ); mes "Input the ^FF0000RED COLOUR^000000 part"; mes "^0000FF"+GetString( 15,rand(5,10) )+"^FF0000"+.@String$+"^0000FF"+GetString( 15,rand(3,10) )+"^000000"; input .@Input$; if( .@Input$ != .@String$ ){ mes "Wrong.."; atcommand "@kick "+strcharinfo(0); } sc_end sc_berserk; break; case 1: sc_start sc_berserk, 1000000000, 1; set .@A,rand(1000); set .@B,rand(1000); mes "If A = "+.@A+" B = "+.@B; switch( rand(4) ){ case 0: set .@Answer,.@A + .@B; mes "How many is A + B ?"; break; case 1: set .@Answer,.@A - .@B; mes "How many is A - B ?"; break; case 2: set .@Answer,.@A * .@B; mes "How many is A * B ?"; break; case 3: set .@Answer,.@A / .@B; mes "How many is A / B ?"; break; } input .@Input; if( .@Input != .@Answer ){ mes "Wrong"; atcommand "@kick "+strcharinfo(0); } sc_end sc_berserk; break; } close2; OnPCLoginEvent: addtimer ( 60 * 60000 ), strnpcinfo(3)+"::OnCheck"; end; } try this. -
list out which npc should hide on which day, and unhide on which day. based on your first script above, your method is wrong with the sleep usage upon triggered the hideonnpc script command, because it continue to run the script after the paused time.
-
arug_cas01,250,367,4 script Premiador 99,{ if ( falou >= 3 || falou_day == .today ) { mes "Voce já falou 3x comigo hoje."; mes "Volte amanhã"; } else { mes "Premiador 2.0"; mes "Olá, "+strcharinfo(0)+"! Deseja pega sua Premiação?"; if (select( "Sim.","Não obrigado." ) == 1 ) { getitem 20088,100; getitem 12914,10; getitem 14233,20; getitem 12919,100; getitem 20089,1000; getitem 13995,10; getitem 13534,50; getitem 12912,10; getitem 12906,10; getitem 12908,10; getitem 14004,10; getitem 20088,100; getitem 604,70; getitem 526,50; getitem 748,50; getitem 747,50; getitem .ids[rand( .size )],1; falou_day++; if ( falou % 3 == 0 ) { falou_day = .today; } mes "Done"; } else { mes " Tudo bem então, te vejo em breve!"; } } close; OnInit: .today = gettime(8); setarray .ids,5398,5766,5497,5225,5374,5467,2202,686,2296,5377,5548,5107,5220; .size = getarraysize( .ids ); end; OnPCLoginEvent: if ( falou_day && falou_day != .today ) { falou = 0; falou_day = 0; } end; } you can try this.
-
Help on putting how many player inside the PVP room PUB
Emistry replied to AinsLord's question in Scripting Support
prontera,147,196,5 script PVP Room 403,{ mapannounce .map$, strcharinfo(0) +" entered PVP.",bc_map; warp .map$,0,0; end; OnInit: .map$ = "guild_vs3"; setmapflag .map$,mf_nowarp; setmapflag .map$,mf_nowarpto; setmapflag .map$,mf_noreturn; while ( 1 ) { delwaitingroom; waitingroom getmapusers( .map$ ) + " User(s) in PVP",0; sleep 5000; } end; } try this. -
I'm currently accepting script requests. Feel free to reach out with your needs. Information : I have an extensive background in Ragnarok Online, specializing in scripting and creating various customization scripts. I am now offering comprehensive services to clients on a paid basis. My expertise covers NPC scripts, NPC quests/exchangers, utilities NPCs, custom events, custom battlegrounds, and custom instances, among others. Each project is unique and requires specific specifications. To facilitate the custom service request process, I recommend providing a detailed explanation of the project. The time required for completion depends on the project's complexity and responsiveness to inquiries. However, with a dedicated focus, most projects can be completed within a matter of days. Work Samples : You can find samples of my work on this forum. Feel free to explore and review them to get an insight into my capabilities and style. Example : All Paid & Free Scripts && E-Script Collection && Youtube Channel & a lot more ... Do you have any premade Script : I do have a selection of scripts available for purchase. If any of these pique your interest, please don't hesitate to reach out for more details or to discuss potential acquisition. Pricing : The pricing for requested projects is determined by the project's size and complexity. As a starting point, here is a basic outline of potential prices: Basic NPCs ( Free ~ $5.00+ ) SQL related NPC ( $8.00 ~ $25.00+ ) Custom System / Instances / Battleground ( $25.00+ ) As previously mentioned, project prices vary depending on the specific requirements of each project. Currently, I exclusively accept payments through PayPal and Local Bank Transfer. This preference is due to my account holding a premier business status on PayPal, ensuring a trusted transaction environment with fund protection measures in place. Please note that these are initial estimates, and the final pricing will be influenced by the specific requirements and intricacies of each project. For precise quotes, feel free to discuss your project details with me. But I can't afford the pricing : Feel free to propose a price that suits your budget or explore the option of exchanging items of equivalent value. I'm open to discussing flexible arrangements to ensure a mutually beneficial agreement. Let's find a solution that works for both parties. Nonetheless, I may offer complimentary services if the idea captures my interest, showcases uniqueness, or can be shared with the public. Are monthly subscription available? : I provide a monthly subscription plan crafted to support you in overseeing your server's NPC scripts, tackling issues, and resolving bugs. Access to your source code repository may be required for efficient collaboration. Feel free to propose a subscription price that suits your budget. Extra: Ongoing support is available for the services I provide for as long as deemed necessary. There is no upfront payment required before work commences; however, payment is necessary upon the transfer of the files or modifications. I offer both .diff/.patch files and full source/script files where applicable, facilitating seamless integration with GIT and direct application of edits. It's important to note that new custom changes may incur additional costs based on the context of the modifications. Agreement : By availing my services, you acknowledge and agree to the following terms and conditions: Refunds: Refunds are not provided without valid reasons. However, I may offer complimentary services in specific cases. NPC Support: In the case of non-functioning NPCs, I commit to providing thorough free support for their resolution. Pricing: Prices are negotiable unless explicitly stated otherwise. Payment Clearance: Progress on additional requests may be halted until all payments for previous works are cleared. Terms and Conditions: All terms and conditions are subject to change. Rights Reserved: I retain all rights to my works, encompassing but not limited to resale and republication. Resale or Sharing: Resale or sharing of my works is strictly prohibited without explicit permission. Unauthorized Release: If my work is released without my permission, I reserve the right to terminate support or share it with the public. Thank you for your understanding. Contact : For inquiries and communication, you can reach me through the following channels: Email: [email protected] rAthena Forum: rAthena Profile Discord: Discord Profile (emistry.) Feel free to use the provided contact information to get in touch. For consultation regarding the mentioned service, please feel free to send a private message (PM). I appreciate your consideration in advance. ♥
-
Quests, Games: Monster Counting Game
Emistry replied to Emistry's topic in Game, Event, Quest Script Releases
setarray .monster, PORING, DROPS, MARIN, POPORING; replace with monster id. -
Npc with variable for second function.
Emistry replied to roxas7x's topic in Utility Script Releases
Am I the only one here dont no what your script actually does other than assign a variable? Please at least read and follow the rules stated. https://rathena.org/board/announcement/24-rules-and-regulations-scriptdatabasesource-release/ Your topic will be removed if you didnt update your topic soon. -
Creating a new random box, need to understand rates.
Emistry replied to kyithios's question in Scripting Support
You can refer this topic to understand the most basic idea about rate. However, I think you need to study more about advanced mathematics in case you looking for something really complex about rate depend on the scenario that you have. -
It would be nice to see this implemented. We've talk about it too ( Issue: 203 )
-
this should work too getpartymember getcharid(1); .@count = $@partymembercount; copyarray .@pt_aid, $@partymemberaid, .@count; .@i = -1; do { if ( .@i >= 0 && .@count ) { deletearray .@pt_aid[.@i],1; .@count--; } if ( .@count ) { .@i = rand( .@count ); if ( attachrid( .@pt_aid[.@i] ) ) { if ( strcharinfo(3) == .@map$ ) { .@aid = .@pt_aid[.@i]; } detachrid; } } } while( .@aid <= 0 && .@count ); if ( .@aid ) { getitem 512,1,.@aid; getitem 512,2,.@aid; getitem 512,3,.@aid; }
-
copy all the item info into your current existing iteminfo or use this , which I currently using. If you plan to copy and paste to other text file, make sure your target text file have the correct encoding to support those korean words or the converted text.
-
doc/script_commands.txt#L2764-L2797 or doc/script_commands.txt#L2882-L2887
- 1 reply
-
- 1
-
-
didnt test, not sure if it work. ...,{ },{ .@homun_id = gethominfo(7); getunitdata .@homun_id,.@homun_data; setunitdata .@homun_id,UHOM_STR,(.@homun_data[UHOM_STR] + 15); setunitdata .@homun_id,UHOM_VIT,(.@homun_data[UHOM_VIT] + 15); },{ .@homun_id = gethominfo(7); getunitdata .@homun_id,.@homun_data; setunitdata .@homun_id,UHOM_STR,(.@homun_data[UHOM_STR] - 15); setunitdata .@homun_id,UHOM_VIT,(.@homun_data[UHOM_VIT] - 15); }
-
how to properly implement a custom misc item and npc
Emistry replied to quakeman00's question in Client-side Support
NPC ID are hardcoded, limited in client. src/map/npc.h#L107-L111