Jump to content

Dark Theme was set as default for all members. Please report any issues here.

Search the Community

Showing results for tags 'hercules'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Bulletin Centre
    • Community News
    • Repository News
    • Ragnarok News
  • Hercules Development Centre
    • Development Discussion
    • Suggestions
    • Development Centre Archives
  • Support & Releases
    • General Server Support
    • Database
    • Scripting
    • Source
    • Plugin
    • Client-Side
    • Graphic Enhancements
    • Other Support & Releases
  • Hercules Community
    • General Discussion
    • Projects
    • Employment
    • Server Advertisement
    • Arts & Writings
    • Off Topic
  • 3CeAM Centre
    • News and Development
    • Community
  • International Communities
    • Filipino Community
    • Portuguese Community
    • Spanish Community
    • Other Communities

Categories

  • Client Resources
  • Graphic Resources
    • Sprites & Palettes
    • Maps & Textures
    • Other Graphics
  • Server Resources
    • Server Managers / Editors Releases
    • Script Releases
    • Source Modifications
    • Plugins
    • Pre-Compiled Server
  • Web Resources

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Discord


Skype


IRC Nickname


Website URL


Location:


Interests


Github

Found 42 results

  1. Introduction I'm planning to write a guide to Ragnarok Online development that begins with the big picture of server development, and transition into more detail through a series of carefully selected newbie questions to guide our path. I'll be providing extended reading materials (other people's guides, relevant tools) relevant to the current topic. Table of Contents How is this guide different Expectations Learning RO development the best way Who are we and what do we know? What do we see in games? High-level overview of Games Mid-level overview of Hercules How is this guide different? The guide will read less like a technical document that tells you "what to do". It will read more like a novel that walks through the questions a newbie would ask, just like when a newbie is on an adventure and exploring the unknown. So don't be afraid of the unknown, or the difficult challenges ahead. That's where we're going (there's more EXP there), and we'll find treasure and grow stronger that way! Expectations This guide works with the following assumptions: The target audience is a thirteen year old who has no computer science background at all (Or at least, the guide will explain things very simply to make sure even thirteen year olds could do it). Software development terminologies will be given two things: (a) an Explain Like I'm Five years old explanation; and (b) links for deeper reading. The target audience has never coded, or scripted before. The target audience has played other games. Preferably online games and RPGs such as World of Warcraft, DotA 2. The other games will be examples I will use when explaining certain topics. Learning RO development the best way Here are a few suggestions to make your RO development experience less frustrating and much, much more pleasant: Have an interest in playing RO and wanting to have an RO of your own. Have a little bit of patience and diligence to read about how things work. Have commitment to keep your eyes on what you want to accomplish. Cherish every victory no matter how small (e.g. make this npc talk, make this item give +99 LUK instead of +1 LUK). Every victory is a victory. Be open to experiencing things that you do not know. Have the humility to acknowledge what you cannot do and what you do not know, and to ask for help when you are lost. Have the humility, respectful reverence to the forum leaders who spare some of their valuable time not only to educate and teach you what they know, but also who contribute to building RO servers for free (open source development). Who are we and what do we know? We begin with what all gamers know: we like to play games. What are games that you are actually familiar with? I know I've played RO back in 2003. I played counter strike a decade ago, I tried out Gunbound and Runescape, I played Adventure Quest (Flash game). I even enjoyed writing in Gaia Online, doing role-play in forum threads. During my stay in the university (2011-2018), I played loads of DotA 2 and it showed me what competitive/professional gaming looked like, showing me the depth of gaming that I haven't seen before. I played shooter games like Overwatch, PUBG, Destiny 2, and different kinds of games from Steam like Project Zomboid and Stardew Valley. The reason why I bring up different kinds of games is because this is our shared or common knowledge. It is what unites you and me, two strangers in the internet. Our common love for playing RO and playing games in general. So now that you've gotten to know me a little better, we now ask the question: How does a person transition from a gamer into a game developer? What do we see in games? Scenario It's 8PM and you are at your house. You just finished having dinner, and are now about to start playing in your favorite RO private server. You go to your computer, you open up the game's patcher. You find some updates. "New game content!" you think to yourself. You go to the website to read about the changes: It might be changes to the items, buffs to your favorite RO class, or changes to the map, or new NPCs and events and dungeons! Your RO finishes updating, and your game begins. What happened? We begin our journey into game and server development with terminologies. Terminologies? Why do I have to memorize these things? We have to know what we call things to make sure we understand each other. If you don't understand me, you will not learn. If you get confused, you will get lost. If you do not know the terminology for the things you are having a problem with, you won't know how to say what your problem is. Game Website - This is the website where you go to learn how to install a private RO server, read about game changes and news, and interact with other people in the community through forums. Patcher - This is the tool that you use to make sure you're updated. Otherwise, you'll encounter outdated game information, problems, and worst case scenario: crashes. Game Client - This is the runnable program that you are in when playing the game. For example TalonRO.exe, or AeRO.exe. From the perspective of a gamer, these are all the areas where they interact with a game provider: They use the website to download the installer. The patcher updates the game. They run the game to play. High-level overview of Games What is a client? Simply put, a client is an application or a program that communicates with a remote system called a server. These terminologies are used when under a system that follows a client-server architecture. Alright, so what is a client and a server architecture? Imagine the following: You go to a restaurant to eat dinner. When you sit down, the waiter comes to you. The waiter is who you talk to and interact with so that the kitchen knows what food to cook for you. The waiter who takes your order and makes sure you are having a good time is the client. He is the interface between you and the kitchen. The kitchen which deals with the inventory of goods and making sure that chefs are doing the processes to produce food is the server. You can have multiple clients (e.g. TalonRO.exe distributed to different players across the world) that connect to one server. That in a nutshell is a client and server architecture. What does a client-to-server interaction look like? The illustration below is a very simplified illustration of a client-server architecture. This means that a client The server (on the left) and the client (on the right) communicate with each other. That is how the game works. Green - When it comes to accessing a game website (which is actually a web server) requires a web client or web browser like Google Chrome or Mozilla Firefox. Orange - When your patcher is running, it asks the question "Are there any new updates?" specifically to a patch server, which has a master list of patches. It's like how a customer in a restaurant asks "What can I order?" and the client tells them "This is what the kitchen can cook". Blue - When your game connects to the server, it not only can ask questions (e.g. "What is my player's level and stats?") it can also tell the server what to do (e.g. "Move my player to prontera X and Y location). The client interfaces between you (the player) and the server. That's the high-level overview of how games work. It's a combination or orchestration of fast-paced conversations between people (players on clients) and machines (servers that allow players to play together). There are machines in between to facilitate all of these complicated processes. Keywords: Port forwarding One example of a machine that facilitates people playing together is Hercules, or rAthena. These are game servers that follows a specific set of rules or instructions that dictate what is expected when RO clients connect to RO servers. What do you mean by "follows a specific set of rules or instructions"? A protocol is a set of specific rules or instructions. Having a set of specific rules or instructions makes sure that we follow the same rules. For example, if we play the game Rock Paper Scissors (roshambo, bato bato piks), we need to know the following rules: You're supposed to make a choice of either Rock or Paper or Scissors. You only choose one. You're supposed to make a choice after counting 1, 2, and 3. Rock is represented as a closed fist. Scissors is represented with two fingers (index and middle) extended. Paper is represented with five fingers extended. Rock beats Scissors. Paper beats Rock. Scissors beats Paper. When we learn about the rules and follow them, we can play Rock Paper Scissors. Two players can then follow the rules, understand each other, and agree as to who won the game. If players did not follow the rules ("1, 2, 3 - Suddenly, a player shows Fire which he says beats Rock Paper and Scissors!") then people would be confused, feel cheated, and things will not work. There will be misunderstandings. When it comes to game servers, we need a set of rules to follow as well. The protocol is the set of rules for how the server and the client will communicate. If your game server and your client does not follow the same protocol, they will have misunderstandings and they will not work. An example of protocols in RO development is the use of the following port values: 5121, 6121, 6900. If you don't have a client that talks to the server at the expected port, your server will be confused and will not respond to any requests. An example of protocol is the agreement on which packet version to use. If you use the wrong packet version, your server will not understand the packets being sent by your client. Relevant Keywords: Packets, PACKETVER, Compiling, Ports We talked about an example of machines that facilitate processes to enable multiple people to play together (MMORPG). An example of this is Hercules, which we look into more detail below in the following post.
  2. Need Help i search and change many thing on the config of the emulador and keep getting error when login! can't pass to character selection! when i login i even see the login_log on login-server but that it! nothing else. above all configs! please need help! my client is the one here: 2018-06-20d_RagexeRE.exe My clientinfo.xml: <?xml version="1.0" encoding="euc-kr" ?> <clientinfo> <desc>Ragnarok Online Client Information</desc> <servicetype>korea</servicetype> <servertype>sakray</servertype> <connection> <display>Local</display> <address>ipragnarok.myrag.com.br</address> <port>8040</port> <version>46</version> <langtype>0</langtype> <registrationweb></registrationweb> <loading> <image>loading00.jpg</image> </loading> <yellow> <admin>2000000</admin> </yellow> </connection> </clientinfo> char-server_log.txt login-server_log.txt map-server_log.txt map-server.conf packet.conf subnet.conf char-server.conf client.conf inter-server.conf login-server.conf
  3. Hey, I have been checking divine-pride. I see that Monster DB from KRO listst MATK (MIN-MAX) as its own value. hercules DB (or IRO DB) does not list MATK as its own value. I have noticed that Magic Skills from monsters on pservers are a lot weaker than on Official servers. I want to know how Monster MATK is calculated and if its perhaps outdated and need to be checked again? I was told that MATK is solely calculated in source, so Id like to ask someone with the required knowledge to answer this question. Thank you very much Inzanity
  4. Hercules Ragnarok Online Server Emulator. Hercules-Stable v2017.12.17 -Compiled with Visual Studio -Compiled By: BURAOT + Icons 2017.12 https://github.com/MAXBURAOT/Hercules/releases
  5. When I connect my server to the host I make the following errors. I'm very lost, I ask for a more detailed explanation. Thanks for listening.
  6. Hello, i want to know in which episode we are on Hercules right now. What are the last released instances here? Do we have Rebellion and Doram working? Thank you so much
  7. 1524 downloads

    Background History: I originally created this region as a Halloween update for my players at UtopiaRO using just one map, however, it became a popular location, and they urged me to continue. It eventually became what it is today; an expansive area to explore and a leveling alternative. This package includes nine maps total, town map, fields 1 through 3, two event versions of field #3 (they are duplicates, with different names used for PK fields), and one small deadbranch arena map. You will need to figure out what you want to do with the files. Be CREATIVE. No, I'm not giving you the coding I wrote for my current server. I've done all the hard work for you, now make something out of it. If you decide to use my files for your server, ESPECIALLY if your server has donations/makes a profit, send me a donation via Paypal. This is a FREE release, but Starbucks isn't, so buy me a coffee. [email protected] -> Send me $5, thanks boo. Don't ask for support, I'll not be giving it. Everything is released "as-is". This is an OLD release. I'm simply uploading my stuff I released on rAthena over here as well (as free downloads, yassss).
  8. Version 1.0

    401 downloads

    Hello, I thought I would offer the community this simple Hercules Guild Emblem in-case you want to represent Hercules in-game.
  9. Buenas amigos. tengo un problema al tratar de colocar un items custom. ya que cuando lo equipo y abro el "Equipament" me sale bien colocado la imagen del sprite. pero al personaje como tal le aparece mal puesto. muestro imagen del error. e intentado hacer todo desde 0 los efecto y TODO, pero me pasa lo mismo. entonces ya no se que hacer para acomodar este error. porque si ruedo la imagen mas hacia la derecha y arroba. en "Equipament" se vera mal puesto también. alguien por favor quien pueda ayudarme o orientarme? quedo atento a su valiosa respuesta y colaboración. Muchas gracias de ante mano.
  10. Hello community, I want to share BASIC guide for setting up Client date 2013+ (custom items, jobs, weapons, etc, go away) This is a compact list that you can follow to setup your client, let's start: [1]. Download latest kRO Installer from : [*] https://www.nickyzai.com/?p=kro [*]http://herc.ws/board/topic/10666-release-2012-04-10-ragexere-full-client/ [*]Torrent : https://kickass.to/ragnarok-online-06-06-2014-kro-client-folder-t9211110.html I will update when I found the other links. [2]. Choose which client date you want use, list clients date (Ragexe) that available in Hercules: [*] 2014 : 2014-01-15, 2014-02-05, 2014-03-05, 2014-04-02, 2014-04-16, 2014-10-16, 2014-10-22 [*]2013 : 2013-03-20, 2013-05-14, 2013-05-22, 2013-05-29, 2013-06-05, 2013-06-12, 2013-06-18, 2013-06-26, 2013-07-03, 2013-08-07, 2013-08-14, 2013-12-18, 2013-12-23, 2013-12-30 The recomended and stable clients are bolded [3]. Download UNPACKED Ragexe from : [*]2013 : http://k3dt.eu/Ragexe/unpacked/ [*]2014 : https://github.com/ThemonChan/2014-Ragexe-Client [*]Fixed 2014 April client, Link by @Lilystar : https://mega.co.nz/#!alM3kRyC!9z7xDPmFU3J9UFg4hXjNcv9XnLZxG5AL87iNksjpSiM [4]. Use NEMO patcher to diff your client [*] http://herc.ws/board/topic/2905-nemo-client-patcher/ , Use the git link, not the zip file. [*]Extract your client then open NEMO.exe [*]Browse and select your client. [*]Click "Load Client" button [*]Click "Select Recomended" button (Its checked all basic diffs) [*]Checked "Load Custom lua file instead of iteminfo.lub" Patch, and fill it with "System/iteminfo.lua" [*]Then click "APPLY SELECTED" button. (Default result will like this : yyyy-mm-ddbRagexe_patched.exe) [*]Move your patched.exe to your Ragnarok folder. [5]. Now you got the patched exe, next is to edit your Hercules so it accept your client date [*]go to srccommon and open "mmo.h" [*]scroll down to #define PACKETVER [*]then changed "#define PACKETVER yyyymmdd" to your client date (eg: #define PACKETVER 20140416) [*]Add "//" before "#define ENABLE_PACKETVER_RE" , because we use Ragexe [*]Save then compile your hercules. (choose "release", not "debug") Compiling guide: http://herc.ws/wiki/Compiling Setting up server guide: http://herc.ws/board/topic/968-guide-how-to-setup-hercules/ [6]. Now everything is ready to play, but you don't want to play with korean/unknown letter right? [*]Ok, now go to http://herc.ws/board/topic/398-client-translation-project/ [*]Download it, after that, copy the "data" folder to other folder (case sensitive). [*]Add your clientinfo.xml inside it (in folder data), then make a GRF from this. (Use GRF editor http://herc.ws/board/files/file/138-grf-editor/) [*]Save and name it "english.grf". [*]Move it to your Ragnarok folder. [*]Open your DATA.ini, if you don't have it, open your patched.exe, that should create one. [*]Add this line "1=english.grf" below "[Data]", without quote. so it will be like this : [*][Data]1=english.grf2=data.grf [*]Copy all files inside "SystemFont" folder of client translation, then paste it to Ragnarok "SystemFont" [*]Lastly copy "itemInfo.lua" and "Towninfo.lub" from client translation project to your ragnarok "system" folder [*]That's it! run Hercules's "run-server.bat" and open your patched.exe and play. [7]. Updating your KRO To make sure your KRO fully up to date, download RO patcher by Ai4rei , http://nn.nachtwolke.com/dev/rsu/ Put rsu-kro-rag-lite.exe to your ragnarok folder, run it until the patch is complete , then close it. P.S : Experimental client like 2014-10-22bRagexe and 2015-05-13aRagexe are NOT RECOMENDED to be used as client for your server. many broken feature inside them (like missing packets or unimplemented feature) as Developer still working on it (with no exact date), use it at your own risk =============================================== =================== F . A . Q =================== =============================================== All credits goes to Community
  11. Hello! First of all, I'd like to thank you to Herc.ws for providing us with this facility for FREE! Alright, so as mentioned in this title, we are looking for developer who can manage maintenance, upcoming projects, and bug fixing. Here's few information about our server: Base Server: Hercules Max Level: 175/60 Max Stats: 120 Attack Speed: 193 Rate: 800x/800x/600x Gameguard: Gepard Shield Protection Diversity: Faction Race, Mutate, Enchant Mastery, Weapon Mastery Open Beta: 14/05/2016 (NEW) Players: 60 PEAK yesterday
  12. Hello Hercules, I am asking on behalf of somebody. Our server wants to move its database to Hercules. We are a very old server, still running eAthena. I'm unsure of the logistics, but our server's database is very large. The server has racked up 7-8 years of data. We have already begun moving all our scripts, soon we want to move server info like accounts and stuff. Please, I am looking for any advice. I'm a little scared something will go horribly wrong. I'm not hugely clued in on the operation, but the conversion/upgrade is the SQL database and such where account, char info, etc. is stored. Thank you.
  13. //===== rAthena Script ======================================= //= Battleground: PVP //===== By: ================================================== //= AnnieRuru //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A simple battleground script: //= Kill players from the other team. //===== Additional Comments: ================================= //= 1.0 First version, edited. [Euphy] //============================================================ - script bg_pvp#control -1,{ OnInit: .minplayer2start = 2; // minimum players to start (ex. if 3vs3, set to 3) .eventlasting = 20*60; // event duration before auto-reset (20 minutes * seconds) setarray .rewarditem[0], // rewards for the winning team: <item>,<amount>,... 501, 10; end; OnStart: if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end; // create Battleground and teams .red = waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ ); copyarray .team1aid, [email protected], [email protected]; .team1count = .minplayer2start; .blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ ); copyarray .team2aid, [email protected], [email protected]; .team2count = .minplayer2start; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; bg_warp .red, "guild_vs3", 13,50; bg_warp .blue, "guild_vs3", 86,50; .score[1] = .score[2] = .minplayer2start; bg_updatescore "guild_vs3", .score[1], .score[2]; // match duration sleep .eventlasting * 1000; // end match, destroy Battleground, reset NPCs if ( .score[1] > .score[2] ) { mapannounce "guild_vs3", "- Red Team is victorious! -", bc_map; callsub L_Reward, 1; } else if ( .score[1] < .score[2] ) { mapannounce "guild_vs3", "- Blue Team is victorious! -", bc_map; callsub L_Reward, 2; } else mapannounce "guild_vs3", "- The match has ended in a draw! -", bc_map; bg_warp .red, "prontera",152,178; bg_warp .blue, "prontera",154,178; bg_destroy .red; bg_destroy .blue; donpcevent .rednpcname$ +"::OnStart"; donpcevent .bluenpcname$ +"::OnStart"; end; L_Reward: for ( [email protected] = 0; [email protected] < getd(".team"+ getarg(0) +"count"); [email protected]++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(0) +"aid["+ [email protected] +"]" ); return; // "OnDeath" event OnRedDead: callsub L_Dead, 1; OnBlueDead: callsub L_Dead, 2; L_Dead: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2]; while ( getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ) != getcharid(3) && [email protected] < getd(".team"+ getarg(0) +"count") ) [email protected]++; deletearray getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; bg_leave; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); sleep2 1250; percentheal 100,100; end; // "OnQuit" event OnRedQuit: callsub L_Quit, 1; OnBlueQuit: callsub L_Quit, 2; L_Quit: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2]; percentheal 100, 100; while ( getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ) != getcharid(3) && [email protected] < getd(".team"+ getarg(0) +"count") ) [email protected]++; deletearray getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); end; } gonryun,153,107,5 script Red Team#bg_pvp 733,{ end; OnInit: sleep 1; set getvariableofnpc( .rednpcname$, "bg_pvp#control" ), strnpcinfo(0); OnStart: waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" ); end; } gonryun,153,104,5 script Blue Team#bg_pvp 734,{ end; OnInit: sleep 1; set getvariableofnpc( .bluenpcname$, "bg_pvp#control" ), strnpcinfo(0); OnStart: waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" ); end; } guild_vs3 mapflag battleground 2 guild_vs3 mapflag nosave SavePoint guild_vs3 mapflag nowarp guild_vs3 mapflag nowarpto guild_vs3 mapflag noteleport guild_vs3 mapflag nomemo guild_vs3 mapflag nopenalty guild_vs3 mapflag nobranch guild_vs3 mapflag noicewall Hi all, based on this script, can someone help me to add and edit: Announcement Player A has join the blue team and Player B has join the red team in battleground in the whole server. We need another 2 player to begin the battle. #The script will detect how much player need based on waiting room. Player A join blue team, Player B join red team, but when start auto shuffle to new team instead of same entered color ?
  14. (I used 2014-02-05 client) I just started learning how to make a server lately and I've gotten some problems I have done all the steps and compiled hercules with PACKETVER 20140205 I used guide from here http://herc.ws/board/topic/8894-guide-setting-up-2013-client-for-hercules/ and here http://herc.ws/board/topic/968-guide-how-to-setup-hercules/ 1) When I tried using client provided here http://herc.ws/board/topic/10666-release-2012-04-10-ragexere-full-client/, I was able to log in successfully, with some problems: When about to start client: pic #1 (Untitled.png) when about to use skills: pic#2 (Untitled2.png) some skills are exceptions though: pic#3 even some classes (some 3rd + Adv) cause endless error too (had to end process to close) I guess the reason is that the original datas are old (2012 ?) and therefore lots of files are missing Anyway, I'm happy that I could start the client and successfully log in. 2) However, after copying the 2014-02-05bRagexe_patched to kRO folder obtained from https://www.nickyzai.com/?p=kro, it didn't work. I thought because clientinfo.xml was missing. So I downloaded files from here http://herc.ws/board/topic/398-client-translation-project/ and copied them to RO folder . Yet it didn't work. No errors were prompted in the login char window pic#4 The server couldn't even recognize the client was there. Why is that? It worked on the old client just fine but not the lastest kRO from nickyzai.com And I did config the DATA.INI for 1) and 2). The only difference between the 2 is that the 1) has YourRO.grf but the 2) does not. I'd be appreciated if anyone can help (mmo.h in pic#5)
  15. In need of help with having this script to work. I've been trying to create a template for "walking" NPCs to create more difficult quests (using sprites with walking animation, of course). The NPC exists when enabled, it just doesn't do anything. **The default location (rwc03,49,49,4) can be changed, it's an area I use to test NPCs on, especially this one, since it walks and it's a small map. rwc03,49,49,4 script Shy Eclipse ECLIPSE,{ function offset_select; function step_rand; OnInit: while(1){ offset_select; npcspeed 100; npcwalkto [email protected]_x,[email protected]_y; [email protected] = rand(3,5); // randomized idle duration sleep [email protected]*1000; // 1000 millisec = 1 sec } function offset_select{ do{ getmapxy([email protected]$,[email protected],[email protected],1); // gets npc's current location step_rand; [email protected]_x = [email protected]+rand([email protected]_a,[email protected]_; // randomized offset x-coord [email protected]_y = [email protected]+rand([email protected]_a,[email protected]_; // randomized offset y-coord }while( !checkcell([email protected]$,[email protected]_x,[email protected]_y,cell_chkpass) ); // checks if selected coords is accessible } function step_rand{ [email protected]_a = rand(1,10); // randomized offset init range [email protected]_b = rand(1,10); // randomized offset end range do{ // addresses possible rand() range error [email protected]_a = rand(1,10); [email protected]_b = rand(1,10); }while( [email protected]_a >= [email protected]_b ); } mes "[Eclipse]"; mes "!! Squik..!"; emotion e_panic; next; if( select("Pet it.:Scare it away.") == 1 ){ mes "[Eclipse]"; mes "**Squik~**"; emotion e_lv; } else { mes "[Eclipse]"; mes "SQUIK!"; emotion e_omg; } close;}
  16. new_4-4,147,190,3 script Monster Wiki 439,{while( 1 ){mes "Event Status : "+((!.WikiStatus )?"^FF0000OFF":"^0000FFON")+" ^000000";mes "^00FF00_______________________________^000000";mes "How may i assist you, ^0000FF"+strcharinfo(0)+"^000000 ?";next;switch( select( ( !.WikiStatus || !.MonsterID )?"":"Write Answer", "^00FF00Information^000000", ( getgmlevel() < 60 )?"":"^FF0000[GM]^000000 "+(( !.WikiStatus )?"Start Event":"Stop Event"), ( getgmlevel() < 80 )?"":"^FF0000[GM]^000000 Setting" )){case 1: if( getgmlevel() >= 80 ) mes "Answer : ^FF0000"+.Answer$+"^000000"; switch( .Mode ){ case 0: mes "Please Input the ^FF0000NAME^000000 of monster."; mes "^0000FFRemind^000000 : It is ^FF0000case-Sensitive^000000"; mes "Example : ^0000FFPoring^000000"; break; case 1: mes "Please Input the ^FF0000LEVEL^000000 of monster."; mes "Example. ^0000FF10 / 20 / 35 / 75^000000"; set .Hint,getmonsterinfo( .MonsterID,1 ) - rand(30); mes "^FF0000Hint^000000 : Between "+( (( .Hint ) < 1 )?"0":.Hint)+" ~ "+( getmonsterinfo( .MonsterID,1 ) + rand(30) )+" "; break; case 2: mes "Please Input the ^FF0000SIZE^000000 of monster."; mes "^0000FFRemind^000000 : It is ^FF0000case-Sensitive^000000"; mes "Example. ^0000FFSmall / Medium / Large^000000"; break; case 3: mes "Please Input the ^FF0000RACE^000000 of monster."; mes "^0000FFRemind^000000 : It is ^FF0000case-Sensitive^000000"; mes "^FF0000List of Available Answer^000000"; mes "^00FF00_______________________________^000000"; for( set [email protected],0; [email protected] < getarraysize( .Race$ ); set [email protected],[email protected] + 1 ){ mes " - ^0000FF"+.Race$[[email protected]]+"^000000"; } break; case 4: mes "Please Input the ^FF0000ELEMENT^000000 of monster."; mes "^0000FFRemind^000000 : It is ^FF0000case-Sensitive^000000"; mes "^FF0000List of Available Answer^000000"; mes "^00FF00_______________________________^000000"; for( set [email protected],0; [email protected] < getarraysize( .Element$ ); set [email protected],[email protected] + 1 ){ mes " - ^0000FF"+.Element$[[email protected]]+"^000000"; } break; } input @Guess$; if( .MonsterID == 0 || @Guess$ != .Answer$ ){ mes "Sorry, you are ^FF0000WRONG^000000 or ^FF0000Too Late^000000 for the Answer."; close; }else{ mes "^FF0000Correct^000000 !! I wonder how good are you in this."; stopnpctimer; getitem $WikiItemID,$WikiAmount; close2; setnpcdisplay( strnpcinfo(0),rand( 436,439 ) ); announce "You're Right [ "+strcharinfo(0)+" ] . The Answer is [ "+.Answer$+" ]",bc_npc,0xED1ADC; set .MonsterID,0; doevent strnpcinfo(0)+"::OnStart"; } end; case 2: mes "This is a ^FF0000Monster Wiki^000000"; mes "I will ask you everything about ^FF0000Monster^000000."; mes "^00FF00_______________________________^000000"; mes "The ^0000FFQuestions^000000 could be either in ^FF0000Name , Race , Element , Level , Size ^000000 of Monster."; next; break;case 3: if( !$WikiRound || getitemname( $WikiItemID ) == "null" ){ mes "Please Configure your ^FF0000NPC Setting^000000 before you start."; next; break; } set .WikiStatus,( .WikiStatus )?"0":"1"; mes "Event is now "+( .WikiStatus )?"^0000FFStarted":"^FF0000Stopped"+"^000000"; announce "Monster Wiki Event is now "+( .WikiStatus )?"Started":"Stopped"+"^000000",bc_blue; close2; if( .WikiStatus ){ set .Round,0; doevent strnpcinfo(0)+"::OnStart"; } end;case 4: while( 1 ){ mes "How can i assist you ^FF0000GM^000000?"; next; switch( select( "Prize [ ^0000FF"+$WikiAmount+" x "+getitemname( $WikiItemID )+"^000000 ]", "Round [ ^0000FF"+$WikiRound+"^000000 ]", "^0000FFBack^000000" )){ case 1: mes "Input the ^FF0000Item ID^000000"; do{ input $WikiItemID,501,32767; }while( getitemname( $WikiItemID ) == "null" ); mes "Input the ^FF0000Amount^000000"; input $WikiAmount,1,32767; next; break; case 2: mes "Input the ^FF0000Max. Round^000000"; input $WikiRound,1,50; next; break; case 3: mes "Redirect back to menu..."; next; } break; } break; }}OnMinute35: //Event start every 12.35, 1.35 etcfor( set [email protected],3; [email protected] > 0 ; set [email protected],[email protected] - 1 ){announce "Monster Wiki Event will take place in Event Room within "[email protected]+" Minutes",bc_blue;sleep 60000;}set .Round,0;set .WikiStatus,1;OnStart:sleep2 5000;set .Round,.Round + 1;if( .Round > $WikiRound ){mapannounce .Map$,"Monster Wiki Event has Ended. Thank for Participate in this Event.",bc_map,0x7766EE;set .WikiStatus,0;sleep2 5000;mapwarp .Map$,"prontera",155,171;setnpcdisplay( strnpcinfo(0),rand( 436,439 ) );}else{npctalk "Round [ "+.Round+" ] within 5 Seconds.";sleep2 5000; do{ set .MonsterID,rand( 1001,2380 ); }while( getmonsterinfo( .MonsterID,0 ) == "null" || getmonsterinfo( .MonsterID,0 ) == "" || getmonsterinfo( .MonsterID,1 ) == -1 ); set .Mode,rand(5); switch( .Mode ){ case 0: set .Answer$, getmonsterinfo( .MonsterID,0 ); break; // Name case 1: set .Answer$, getmonsterinfo( .MonsterID,1 ); break; // Level case 2: set .Answer$, .Size$[ getmonsterinfo( .MonsterID,18 ) ]; break; // Size case 3: set .Answer$, .Race$[ getmonsterinfo( .MonsterID,19 ) ]; break; // Race case 4: set .Answer$, .Element$[ getmonsterinfo( .MonsterID,20 ) ]; break; // Element } setnpcdisplay( strnpcinfo(0),.MonsterID ); npctalk "Click me to view the Question of this Round.."; initnpctimer;}end;OnTimer10000: npctalk "20 Seconds to go..."; end;OnTimer20000: npctalk "10 Seconds to go..."; end;OnTimer30000:mapannounce .Map$,"Time's Up. All Failed in this Round.",bc_map,0x00FF00;donpcevent strnpcinfo(0)+"::OnStart";set .MonsterID,0;stopnpctimer;end;OnInit:OnWhisperGlobal:set .Map$,"prontera";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; } Hello everyone, may I ask, how to add ad new list as a blacklist, so that this script wont load the blacklist number. I hate when many error appears on console such like this. [Error]: buildin_getmonsterinfo: Wrong Monster ID: 2203[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2203[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2203[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2228[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2228[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2228[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2267[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2267[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2267[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2314[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2314[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2314[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2180[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2180[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2180[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2195[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2195[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2195[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2297[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2297[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2297[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2333[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2333[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2333[Error]: buildin_getmonsterinfo: Wrong Monster ID: 1006[Error]: buildin_getmonsterinfo: Wrong Monster ID: 1006[Error]: buildin_getmonsterinfo: Wrong Monster ID: 1006[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2261[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2261[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2261[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2037[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2037[Error]: buildin_getmonsterinfo: Wrong Monster ID: 2037 I believe it from this line set .MonsterID,rand( 1001,2380 ); Someone can edit it ?
  17. Hi guys can someone share a basic guide on how to build server side and client side ? it would be of great help
  18. Hello, so i was testing 2010-11-24aRagexeRE in hercules, i can login just fine to ingame screen, but i can't see any NPCs, and the mobs kinda bugged too (its missing at first but it will suddenly showed up out of nowhere when its moved) I don't know if the problem is client side or server side. I've done this : but got no luck, maybe something i missed?
  19. Installation Guide for Hercules and FluxCP on Linux (Ubuntu/Debian-based installations) Hi guys, I'm putting together this manual on how to install Hercules from scratch along with FluxCP given that at present the process is quite disjointed and has quite a steep learning curve. Let me know what you think. Please note that it's still a work in progress though is starting to come together. Will update further as soon as I can. Regards, Wyrmfire HOW TO INSTALL HERCULES PRIVATE SERVER ON LINUX.pdf
  20. ------------------------------------------------------------------------------------------------------- Este será o meu primeiro tópico, então se estiver na área errada, me desculpem! ------------------------------------------------------------------------------------------------------- Galera eu to fazendo um servidor com um amigo para ser um projeto nosso de férias, ele configura a parte "server" (pois ele manja mto mais que eu) e eu configuro a parte "client". Ocorreu tudo certo nestes procedimentos: -Redefinirmos o IP no cientinfo com o IP da conexão que ele criou. -E estabelecermos uma conexão via putty. Aí quando eu inicio o patch que eu fiz usando o nemomaster, ele abre normalmente e aparece o quadrado branco com o nome do servidor a ser selecionado (no caso, o nosso). Porém quando eu dou enter para prosseguir e ir para a janela de login e senha, o client fecha. Alguém sabe o motivo disso? ------------------------------------------------------------------------------------------------------- This will be my first topic, then if I'm in the wrong area, excuse me! ------------------------------------------------------------------------------------------------------- Guys I'm doing a server with a friend to be a project of our vacation. He take care of the part "server" (because he knows much more than me) and I take care of the part "client". Was all right in these procedures: -We redefine the IP in cientinfo with the connecting IP that he created. -And then we stablished a connection via putty. Then when I start the client that I made using the nemomaster, it opens normally and appears the white square with the server name to select (in this case, our server's name). But when I press enter to continue and go to the login and password window, the client closes. Does anyone know the reason?
  21. Hello! There is my Zabbix monitoring template for *athena-based servers. It gathers data from your Linux server and MySQL database and sends it to Zabbix. It checks: - login server port check - login/char/map server perfomance - mysqld server perfomance - online players count - total zeny count - Configure Zabbix Server 1. Import the template file into Zabbix frontend (Configuration -> Templates -> Import). 2. Link the Athena template to your host to be monitored. - Configure Zabbix Agent 1. Open your zabbix_agend.conf and add two lines: UserParameter=total.zeny,mysql -uroot -ppassword -D hercules_main -s -N -e 'SELECT SUM(zeny) from `char`'UserParameter=total.online,netstat -n | grep ':5121' | wc -l Where root - is your MySQL username, password - your MySQL password and hercules_main - your emulator's database. 2. Restart your zabbix-agent (/etc/init.d/zabbix-agent restart) And you can see it in your Zabbix frontend: Please post your comments and suggestions in order to make it better. Download link
  22. Hi I am new to this Hercules world. I am trying to install Hercules latest version in my Windows 7 machine. So far I have little success. I need help from the experts of this forum. May be there are many links where such discussion has happened earlier. If someone can guide me to that link, it will also be helpful. I am depicting what I have done so far. 1. Installed WinPcap 2. Installed Telnet client 3. Installed Hercules 4. Installed TN3270 terminal application 5. Opened Hercules in command prompt 6. Started Hercules with installed .cnf file 7. Opened TN3270 and successfully connected to Hercules. But there was no DASD/Tape device type available. So I followed few internet blogs and tried below. 8. Created a seperate DASD folder in a seperate drive location of my computer 9. ran dasdinit to create DASD image files for 3330 and 3350 in that new location 9. Copied existing hercules.cnf file to hat new location and made below changes ARCMODE S/370 # .-----------------------Device number # | .-----------------Device type # | | .---------File name and parameters # | | | # V V V # ---- ---- -------------------- 0009 1052 000C 3505 D:/Mainframe/DASD/initdasd.txt eof 0130 3330 D:/Mainframe/DASD/im0130.3330 0250 3350 D:/Mainframe/DASD/im0250.3350 where the initdasd.txt file contains IBCDASDI statements for 3330 and 3350 10. Now started Hercules as: hercules -f <new cnf file> 11. Opened Telnet to localhost and port 3270 12. Now tried to ipl 00C to format DASD volume. But here the IPL failed. Do not know what to do next, please suggest. Thanking You Santanu
  23. Ok, I searched for hours and hours on this forum I tried the Wiki tutorial 7 HoWto and I came as far as creating all 3 Servers and the whole MYSQL database without Problems. But then always I just lose it. I really tried to read everything and look for all possible helps but I just need to ask and that sucks. It seems I am not able to create a proper working Hercules Ragnarok Server on my Root-DS Linux Debian 7 Wheezy Server. I am asking here kindly for someone willing to help me with it over Skype or other means of communication. I would be willing to follow a Guide on how to set it up if I find any for Linux at all. Sorry for this question I really tried to do it alone but before I break something I will ask.
  24. File Name: Helheim by Eiphes (jTynne) File Submitter: Eiphes File Submitted: 13 Jul 2014 File Category: Maps & Textures Background History: I originally created this region as a Halloween update for my players at UtopiaRO using just one map, however, it became a popular location, and they urged me to continue. It eventually became what it is today; an expansive area to explore and a leveling alternative. This package includes nine maps total, town map, fields 1 through 3, two event versions of field #3 (they are duplicates, with different names used for PK fields), and one small deadbranch arena map. You will need to figure out what you want to do with the files. Be CREATIVE. No, I'm not giving you the coding I wrote for my current server. I've done all the hard work for you, now make something out of it. If you decide to use my files for your server, ESPECIALLY if your server has donations/makes a profit, send me a donation via Paypal. This is a FREE release, but Starbucks isn't, so buy me a coffee. [email protected] -> Send me $5, thanks boo. Don't ask for support, I'll not be giving it. Everything is released "as-is". This is an OLD release. I'm simply uploading my stuff I released on rAthena over here as well (as free downloads, yassss). Click here to download this file
  25. Hello. This topic is forwarded from this Spanish Support topic, on its script section: compatibilizar invacion de Ivion User says this script won't work in Hercules because when an invasion starts, it instantly ends. I haven't been able to spot the issue on its code (couldn't test since my local MySQL engine is broken for good) and it parses OK according to Haru's script checker. Script is quite old (ancient I'd say ) and obfuscated, but to my knowledge it's allowed to be redistributed and edited without any problems. Here's a copy of the script: //// [========================================================]// [=========== The Invasor ===========]// [========================================================]// [ Version 8 ]// [========================================================]// [ Original script by: Ivion ]// [========================================================]// [ Description: ]// [--------------------------------------------------------]// [ ]// [ - Automatic invasion events. ]// [ - 24 randomly selected cities. ]// [ - 15 different types of invasion. ]// [ - Invasion events are divided into 3 difficulty stages.]// [ - GM Control Panel whispering to NPC:invasor. ]// [========================================================]// [ Changelog: (5 last updates) ]// [--------------------------------------------------------]// [ ]// [ v4: [Ivion] ]// [ - Nuevos mobs balanceados, añadidos a la db. ]// [ - 2 nuevos tipos de invasiones. ]// [ - Ahora los mobs dropean items. ]// [ - Recompensas y penalizaciones globales. ]// [ - Acceso ingame mediante OnWhisperGlobal. ]// [ - Nuevas opciones de configuración. ]// [ - Reescrito casi todo el código. ]// [ ]// [ v5: [Ivion] ]// [ - Varios bugfixes. ]// [ - Optimización del script. ]// [ - Añadido mid_camp. ]// [ - Nuevos mobs sin tanta db. ]// [ - Nuevos bosses. ]// [ - Nuevas invasiones: Ice, Nature, Dragon, Kaos y ]// [ Takeshi. ]// [ - Incremento de rates del servidor a +20%. ]// [ - Retirado el sistema de penalizaciones. ]// [ - Los spawns no disminuirán al matar los bosses. ]// [ - Sistema para Save Point alternativo. ]// [ ]// [ v5.1: [Ivion] ]// [ - Bugfix: Corregido un pequeño error en mob_db2 que ]// [ producía errores en el map-server. ]// [ ]// [ v6: [Ivion] ]// [ - Translated into english. ]// [ - Added new 13.2 episode cities. ]// [ - Global delayed announcements system. ]// [ - Rates increment won't affect other possible bonnuses ]// [ from other scripts. ]// [ - Bugfix: Mapflags used while the invasion event will ]// [ be cleared according to their inicial state. ]// [ - Some mobs has been replaced. ]// [ - Bugfix: Removed Ghoul and Angeling mobs from the 3rd ]// [ stage of the Undead invasion. ]// [ - Some bosses has been replaced. ]// [ - Some balance adjustments to the stats of the bosses. ]// [ - Bugfix: Some bosses had range2 = 0. ]// [ - The control panel won't be displayed to ]// [ multiple gms at once. ]// [ - Mobs and bosses will drop Poring Coins. ]// [ ]// [ v7: [Ivion] ]// [ - Bugfix: Incorrect map cells in Amatsu and Juno. ]// [ - Added teleport skill to the bosses. ]// [ - Updated the skills of the 13.1 monsters. ]// [ ]// [ v8: [Ivion] ]// [ - The init timer won't reset when reloading scripts. ]// [ - Added some information about the invasion progress in]// [ the GMs Control Panel. ]// [========================================================]// [ http://www.eathena.ws/board/index.php?showtopic=224056 ]// [========================================================]- script invasor -1,{OnInit:// [========================================================]// [ Configuration: ]// [--------------------------------------------------------] set .t1,2*24; // Minimum time to activate a new invasion event. (h) set .t2,4*24; // Maximum time to activate a new invasion event. (h) set .t3,24*120; // Maximum duration of the invasion event. (min) set .r1,50000; // Mob rate. (%) set .pci,8905; // Item reward dropped by mobs and bosses. (Default = Poring Coin) set .pcr1,1; // Rate of item rewards dropped by mobs. (0 = off | %) set .pcr2,10; // Rate of item rewards dropped by bosses. (0 = off | %) // After successfully completing the invasion, the experience rates will be increased for a time. set .t4,60; // Duration of the experience event. (0 = off | min) set .r2,30; // Experience rates increment. (0 = off | %) set .gm,60; // GM level required to access the Control Panel whispering to NPC:invasor. // Alternative Save Point: // If a player had saved in the map of the current invasion event, his respawn point will be changed to this one. set .s$,"prontera"; // Map. set .sx,156; // x. set .sy,161; // y. // Cities: // getarg(0): Name. // getarg(1): Map. // getarg(2): Intensity. (0 = off | Intensity) //callsub Onc0,"Alberta","alberta",11; callsub Onc0,"Al De Baran","aldebaran",14; callsub Onc0,"Amatsu","amatsu",18; callsub Onc0,"Ayothaya","ayothaya",8; callsub Onc0,"Comodo","comodo",22; callsub Onc0,"Einbech","einbech",11; callsub Onc0,"Einbroch","einbroch",22; callsub Onc0,"Geffen","geffen",10; callsub Onc0,"Gonryun","gonryun",14; callsub Onc0,"Hugel","hugel",9; callsub Onc0,"Izlude","izlude",5; callsub Onc0,"Jawaii","jawaii",0; // 7 callsub Onc0,"Juno","yuno",30; callsub Onc0,"Lighthalzen","lighthalzen",24; callsub Onc0,"Louyang","louyang",27; callsub Onc0,"Lutie","xmas",20; callsub Onc0,"Manuk","manuk",8; callsub Onc0,"Midgarts Expedition Camp","mid_camp",13; callsub Onc0,"Morroc","morocc",25; callsub Onc0,"Moscovia","moscovia",6; callsub Onc0,"Niflheim","niflheim",0; // 20 callsub Onc0,"Payon","payon",19; callsub Onc0,"Prontera","prontera",0; // 30 callsub Onc0,"Rachel","rachel",18; callsub Onc0,"Splendide","splendide",29; callsub Onc0,"Umbala","umbala",4; callsub Onc0,"Veins","veins",20; // Invasion types: // getarg(0): Name. // getarg(1 .. 9): Mobs. // getarg(10 .. 12): Bosses. callsub Onc1,"Aqua",1068,1071,1071,1069,1044,1144,1045,1065,1264,1894,2016,1112; callsub Onc1,"Demon",1146,1109,1101,1149,1632,1773,1382,1292,1208,1920,1389,1929; callsub Onc1,"Dragon",1715,1718,1155,1380,1206,1385,1717,1714,1716,1262,1720,2022; callsub Onc1,"Earth",1784,1782,1165,1517,1615,1516,1378,1386,1602,1919,1785,1916; callsub Onc1,"Fire",1836,1367,1383,1072,1384,1381,1318,1837,1366,1833,1831,1832; callsub Onc1,"Ghost",1509,1179,1186,1143,1510,1192,1506,1375,1291,1704,1921,1768; callsub Onc1,"Ice",1243,1789,1776,1778,1323,1317,1775,1515,1319,1777,1252,1779; callsub Onc1,"Insect",1054,1100,1139,1279,1099,1625,1304,1194,1305,1618,2087,1147; callsub Onc1,"Kaos",1140,1508,1163,1276,1504,1132,1698,1505,1507,1702,1268,2018; callsub Onc1,"Machina",1151,1616,1745,1682,1270,1622,1202,1678,1673,1978,1623,1685; callsub Onc1,"Nature",1162,1118,1880,1500,1497,1410,1780,1884,1314,1991,1885,1957; callsub Onc1,"Takeshi",1026,1188,1404,1584,1609,1512,1416,1405,1401,1518,1492,1418; callsub Onc1,"Undead",1403,1169,1041,1196,1197,1117,1297,1866,1098,1870,1038,1373; callsub Onc1,"Venom",1621,1256,1037,1402,1209,1216,1207,1883,1148,1987,1871,1874; callsub Onc1,"Wind",1627,1156,1253,1263,1633,1692,1412,1774,1259,1992,1918,1931; //callsub Onc1,"Aqua",1068,1071,1228,1069,1044,1144,1045,1065,1264,2503,2504,2505; //callsub Onc1,"Demon",1146,1109,1101,1149,1632,1773,1382,1292,1208,2536,2537,2538; //callsub Onc1,"Dragon",1715,1718,1155,1380,1206,1385,1717,1714,1716,2524,2525,2526; //callsub Onc1,"Earth",1784,1782,1165,1517,1615,1516,1378,1386,1602,2512,2513,2514; //callsub Onc1,"Fire",1836,1367,1383,1072,1384,1381,1318,1837,1366,2500,2501,2502; //callsub Onc1,"Ghost",1509,1179,1186,1143,1510,1192,1506,1375,1291,2527,2528,2529; //callsub Onc1,"Ice",1243,1789,1776,1778,1323,1317,1775,1515,1319,2506,2507,2508; //callsub Onc1,"Insect",1054,1100,1139,1279,1099,1625,1304,1194,1305,2518,2519,2520; //callsub Onc1,"Kaos",1140,1508,1163,1276,1504,1132,1698,1505,1507,2539,2540,2541; //callsub Onc1,"Machina",1151,1616,1745,1682,1270,1622,1202,1678,1673,2515,2516,2517; //callsub Onc1,"Nature",1162,1118,1880,1500,1497,1410,1780,1884,1314,2509,2510,2511; //callsub Onc1,"Takeshi",1026,1188,1404,1584,1609,1512,1416,1405,1401,2542,2543,2544; //callsub Onc1,"Undead",1403,1169,1041,1196,1197,1117,1297,1866,1098,2533,2534,2535; //callsub Onc1,"Venom",1621,1256,1037,1402,1209,1216,1207,1883,1148,2521,2522,2523; //callsub Onc1,"Wind",1627,1156,1253,1263,1633,1692,1412,1774,1259,2530,2531,2532;// [--------------------------------------------------------]// [ End of configuration. ]// [========================================================] set .br,getbattleflag("base_exp_rate"); set .jr,getbattleflag("job_exp_rate"); // Fix incorrect map cells: setcell "amatsu",314,267,314,314,0,0; setcell "yuno",205,219,205,218,0,0; donpcevent "invasor::On0"; end;Onc0: if(getarg(2) > 0) { set .c1$[.c],getarg(0); set .c2$[.c],getarg(1); set .i[.c],getarg(2); set .c,.c + 1; } return;Onc1: set [email protected],getarraysize(.n$); set .n$[[email protected]],getarg(0); while([email protected] < 12) { set getd(".m"+(([email protected] * 12) + [email protected]),getarg([email protected] + 1); set [email protected],[email protected] + 1; } return;On0: while(1) { set .a,0; set .b,0; set .c,0; set [email protected],gettimetick(2) / 60; if($TIt <= [email protected]) set $TIt,[email protected] + rand(.t1 * 60,.t2 * 60); sleep ($TIt - [email protected]) * 60 * 1000; set .a,1; set $TIt,0; set [email protected],0; donpcevent "invasor::OnTimer"; if(!. set .b,rand(1,getarraysize(.i)); set .b,.b - 1; if(!.c) set .c,rand(1,getarraysize(.n$)); set .c,.c - 1; set .mf1,getmapflag(.c2$[.b],1); set .mf4,getmapflag(.c2$[.b],4); setmapflag .c2$[.b],1; // noteleport setmapflag .c2$[.b],4; // nopenalty callsub Clrmsg; announce "S.O.S.!! "+.c1$[.b]+" ESTA SUFRIENDO UNA TERRIBLE INVACION!!!.",bc_all,0xffaa00; while(.a > 0) { if(!.d) { set .d,4 - .a; killmonster .c2$[.b],"invasor::onm9"; if(.a > 1) callsub Addmsg,"Los ejércitos invasores nuevamente entran en la ciudad.","ffaa00",.c2$[.b]; monster .c2$[.b],0,0,"--ja--",getd(".m"+((.c * 12) + .a + 8)),4 - .a,"invasor::onm9"; } if(mobcount(.c2$[.b],"invasor::onm"+((.a * 3) - 3)) < (.i[.b] * .r1 / 20)) monster .c2$[.b],0,0,"--ja--",getd(".m"+((.c * 12) + (.a * 3) - 3)),.i[.b],"invasor::onm"+((.a * 3) - 3); if(mobcount(.c2$[.b],"invasor::onm"+((.a * 3) - 2)) < (.i[.b] * .r1 / 20)) monster .c2$[.b],0,0,"--ja--",getd(".m"+((.c * 12) + (.a * 3) - 2)),.i[.b],"invasor::onm"+((.a * 3) - 2); if(mobcount(.c2$[.b],"invasor::onm"+((.a * 3) - 1)) < (.i[.b] * .r1 / 20)) monster .c2$[.b],0,0,"--ja--",getd(".m"+((.c * 12) + (.a * 3) - 1)),.i[.b],"invasor::onm"+((.a * 3) - 1); if(.a > 0) sleep 20000; } set .d,0; set [email protected],12; while([email protected] > 0) { set [email protected],[email protected] - 1; killmonster .c2$[.b],"invasor::onm"[email protected]; } if(!.mf1) removemapflag .c2$[.b],1; if(!.mf4) removemapflag .c2$[.b],4; set .mf1,0; set .mf4,0; if(.a == -1) { callsub Addmsg,"Recompensa: Experiencia aumento de rates a "+.r2+"%. ("+.t4+" min)","ffaa00"; setbattleflag "base_exp_rate",getbattleflag("base_exp_rate") + (.br * .r2 / 100); setbattleflag "job_exp_rate",getbattleflag("job_exp_rate") + (.jr * .r2 / 100); sleep .t4 * 60 * 1000; setbattleflag "base_exp_rate",getbattleflag("base_exp_rate") - (.br * .r2 / 100); setbattleflag "job_exp_rate",getbattleflag("job_exp_rate") - (.jr * .r2 / 100); announce "Los rates de la experiencia ha sido restaurados.",bc_all,0xffaa00; } } end;onm0:onm1:onm2: if(playerattached() && .pcr1) if(!rand(100 * 100 / .pcr1)) getitem .pci,1; end;onm3:onm4:onm5: if(playerattached() && .pcr1) if(!rand(75 * 100 / .pcr1)) getitem .pci,1; end;onm6:onm7:onm8: if(playerattached() && .pcr1) if(!rand(50 * 100 / .pcr1)) getitem .pci,1; end;onm9: if(.a < 1) end; set .d,.d - 1; if(.a != 3) { if(.a == 1) set [email protected]$,"Sbirro"; if(.a == 2) set [email protected]$,"Hero"; set [email protected]$,callsub(Grammar_a_an,.n$[.c]); if(playerattached()) { set [email protected]$,strcharinfo(0)+" ha muerto "[email protected]$+" "+.n$[.c]+" "[email protected]$+"."; if(.a == 1) getitem .pci,2 * .pcr2 / 100; if(.a == 2) getitem .pci,3 * .pcr2 / 100; } else set [email protected]$,[email protected]$+" "+.n$[.c]+" "[email protected]$+" haz sido asesinado."; callsub Addmsg,[email protected]$+" ("+(4 - .a - .d)+"/"+(4 - .a)+")","ffaa00",.c2$[.b]; if(!.d) set .a,.a + 1; } else { if(playerattached()) { set [email protected]$,strcharinfo(0)+" ha matado a la "+.n$[.c]+" Deux."; getitem .pci,1 * .pcr2 / 100; } else set [email protected]$,"El "+.n$[.c]+" Deux a sido asesinado."; callsub Addmsg,[email protected]$,"ffaa00",.c2$[.b]; callsub Addmsg,"El ejército invasor de "+.c1$[.b]+" ha sido derrotado.","ffaa00"; if(.t4 && .r2) set .a,-1; else set .a,0; awake "invasor"; } end;OnTimer: sleep .t3 * 120 * 1000; if(.a < 1) end; set .a,0; awake "invasor"; callsub Clrmsg; callsub Addmsg,"Las defensas de "+.c1$[.b]+" han sido derrotadas por los ejércitos invasores.","ffaa00"; callsub Addmsg,"Hoy será recordado como un día negro para el servidor Apolo-RO /sob.","ffaa00"; end;OnPCLoginEvent: if(.a > 0) { sleep2 3000; if(.a > 0) announce "¡¡S.O.S.!! "+.c1$[.b]+" está sufriendo de una terrible invasión.",bc_self,0xffaa00; } else if(.a == -1) { sleep2 3000; if(.a == -1) announce "La experiencia de rates ha sido aumentada a "+.r2+"%.",bc_self,0xffaa00; } end;OnPCDieEvent: if((.a > 0) && (getsavepoint(0) == .c2$[.b])) save .s$,.sx,.sy; end;OnWhisperGlobal: if(getgmlevel() < .gm) end; set [email protected]$,"^008888The Invasor^000000"; mes [email protected]$; mes "Este es el panel de control del sistema de Invasor."; if(!.a) { mes "Actualmente no hay ninguna invasión en curso."; set [email protected],$TIt - (gettimetick(2) / 60); if([email protected]) set [email protected]$,"a few seconds"; else if([email protected] < 60) set [email protected]$,[email protected]+" minutes"; else { set [email protected],[email protected] / 60; if([email protected] < 24) set [email protected]$,[email protected]+" hours"; else set [email protected]$,([email protected] / 24)+" days"; } mes "Próximo evento de la invasión automática tendrá lugar en "[email protected]$+"."; next; set [email protected],select("^880000Exit^000000","Start invasion.") - 1; mes [email protected]$; if([email protected] { mes "Select a city."; next; set [email protected],select("^880000Random^000000",.c1$[0],.c1$[1],.c1$[2],.c1$[3],.c1$[4],.c1$[5],.c1$[6],.c1$[7],.c1$[8],.c1$[9],.c1$[10],.c1$[11],.c1$[12],.c1$[13],.c1$[14],.c1$[15],.c1$[16],.c1$[17],.c1$[18],.c1$[19],.c1$[20],.c1$[21],.c1$[22],.c1$[23],.c1$[24],.c1$[25],.c1$[26],.c1$[27],.c1$[28],.c1$[29],.c1$[30],.c1$[31],.c1$[32],.c1$[33],.c1$[34],.c1$[35],.c1$[36],.c1$[37],.c1$[38],.c1$[39]); mes [email protected]$; set [email protected],[email protected] - 1; mes "Seleccione una clase para la invasión."; next; set [email protected],select("^880000Random^000000",.n$[0],.n$[1],.n$[2],.n$[3],.n$[4],.n$[5],.n$[6],.n$[7],.n$[8],.n$[9],.n$[10],.n$[11],.n$[12],.n$[13],.n$[14],.n$[15],.n$[16],.n$[17],.n$[18],.n$[19],.n$[20],.n$[21],.n$[22],.n$[23],.n$[24]); mes [email protected]$; set [email protected],[email protected] - 1; if(.a) { mes "En este momento, no se puede iniciar una nueva invasión."; mes "Regresa mas tarde."; close; } set .b,[email protected]; set .c,[email protected]; awake "invasor"; mes "Una nueva invasión se ha iniciado."; close; } } else if(.a > 0) { mes "Actualmente no existe "+callsub(Grammar_a_an,.n$[.c])+" "+.n$[.c]+" invasión que tienen lugar en "+.c1$[.b]+"."; next; set [email protected],select("^880000Exit^000000","Cancelar la actual invasión.") - 1; mes [email protected]$; if([email protected] { if(.a < 1) { mes "Actualmente no hay ninguna invasión en curso."; close; } set .a,0; announce "La invasion en "+.c1$[.b]+" ha sido cancelada.",bc_all,0xffaa00; mes "la invasion en "+.c1$[.b]+" ha sido cancelada."; awake "invasor"; close; } } else { mes "Experiencia de rates aumentada "+.r2+"% como una recompensa por la invasión anterior."; next; set [email protected],select("^880000Exit^000000","Restaurar rates.") - 1; mes [email protected]$; if([email protected] { if(.a != -1) { mes "Actualmente los rates no son modificados por el sistema de Invasor."; close; } awake "invasor"; mes "Los rates han sido restaurados."; close; } } mes "Hasta pronto."; close;// Adds a new message to the announcement list:// getarg(0): Message.// getarg(1): Color.// getarg(2): Map. (optional)Addmsg: set [email protected],getarraysize([email protected]_msg0$); if([email protected] >= 10) { deletearray [email protected]_msg0$[0],[email protected] - 9; set [email protected],9; } set [email protected]_msg0$[[email protected]],getarg(0); set [email protected]_msg1$[[email protected]],getarg(1); set [email protected]_msg2$[[email protected]],getarg(2,""); if([email protected]) donpcevent "inv_msg::On0"; return;// Clear the announcement list:Clrmsg: set [email protected],getarraysize([email protected]_msg0$); cleararray [email protected]_msg0$[0],"",[email protected]; cleararray [email protected]_msg1$[0],"",[email protected]; cleararray [email protected]_msg2$[0],"",[email protected]; awake "inv_msg"; return;Grammar_a_an: set [email protected]$,getarg(0); if( compare("_init_"[email protected]$,"_init_A") || compare("_init_"[email protected]$,"_init_E") || compare("_init_"[email protected]$,"_init_I") || compare("_init_"[email protected]$,"_init_O") || compare("_init_"[email protected]$,"_init_U") ) return "an"; else return "a";}// Delayed announcements:// Announces a message from the announcement list every 3 seconds.- script inv_msg -1,{On0: while(getarraysize([email protected]_msg0$)) { if([email protected]_msg2$[0] == "") announce [email protected]_msg0$[0],bc_all,"0x"[email protected]_msg1$[0]; else mapannounce [email protected]_msg2$[0],[email protected]_msg0$[0],bc_all,"0x"[email protected]_msg1$[0]; if(getarraysize([email protected]_msg0$)) sleep 3000; deletearray [email protected]_msg0$[0],1; deletearray [email protected]_msg1$[0],1; deletearray [email protected]_msg2$[0],1; } end;} Not sure why he uses v8 instead of the last version released in rAthena, which is v10, but it's edited by the user. Thanks a lot in advance!
×
×
  • Create New...

Important Information

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