Jump to content

Cookie

Members
  • Posts

    213
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Cookie

  1. Hello J Man, I just wanted to pass this your way. Happy birthday man!
  2. Well, a database that size is going to stall a bit. Hmmm, been awhile since I've worked with replication (application I developed for IRL work we used replication for multiple sites; basically master schema and a bunch of slaves). I'll test it out myself... I've got a large server, as well. You can also think about doing incremental backups. Either way, I'm going to test myself.
  3. File Name: Main Chat Modification File Submitter: Cookie File Submitted: 29 Jun 2012 File Category: Source Modifications Content Author: Cookie This modification will allow the user to set a main chat delay (in seconds) for flood protection and a main chat color (in hexadecimal color format). The user will apply the patch and re-compile. Then, in /rAthenaroot/conf/battle/client.conf refer to the main_chat_delay and main_chat_color sections. Click here to download this file
  4. Version v3

    401 downloads

    This modification will allow the user to set a main chat delay (in seconds) for flood protection and a main chat color (in hexadecimal color format). The user will apply the patch and re-compile. Then, in /rAthenaroot/conf/battle/client.conf refer to the main_chat_delay and main_chat_color sections.
    Free
  5. info = get_atcommandinfo_byname(atcommand_checkalias(command + 1)); if (info == NULL) { if( pc_get_group_level(sd) ) {// Show player unknown command sprintf(output, msg_txt(153), command); // "%s is Unknown Command." clif_displaymessage(fd, output); atcommand_get_suggestions(sd, command + 1, *message == atcommand_symbol); return false; } else return false; } Ah, well the atcommand.c code above does just that (by default). The unknown command is only shown to people with a group ID above 0 (notice the code if (pc_get_group_level(sd) which means execute the code in the bracket if the data is true/set). You can change in the msg_athena.conf in your /conf/: 153: %s cannot be used. If it's a player, the player won't see anything and just chat the command because the script return's false with displaying any message. In other words, just change your msg_athena.conf 153: message.
  6. This means you're exceeding the max event queue on a NPC. Example: NPC executing consecutive doevents. If you're wanting to raise the limit, /src/map/map.h: #define MAX_EVENTQUEUE n Where n is a number; default is 2. Afterwards, re-compile.
  7. This is likely because at that point you haven't created a database named 'rathena'. That is the login to MySQL. If this is, I'm assuming, your first time logging in there will not be a schema/database created. Run this in the query execution area after you've logged in: CREATE SCHEMA `rathena`; Side-note, on permissions, you won't need to set permissions if using root as your login. On the other hand, I highly suggest only using a root login for testing purposes (i.e. test server) and do not on a production server; it's not best practices.
  8. In atcommand.c find this block of code: //Grab the command information and check for the proper GM level required to use it or if the command exists info = get_atcommandinfo_byname(atcommand_checkalias(command + 1)); if (info == NULL) { if( pc_get_group_level(sd) ) { // TODO: remove or replace with proper permission sprintf(output, msg_txt(153), command); // "%s is Unknown Command." clif_displaymessage(fd, output); atcommand_get_suggestions(sd, command + 1, *message == atcommand_symbol); return false; } else return false; } Then, replace with: //Grab the command information and check for the proper GM level required to use it or if the command exists info = get_atcommandinfo_byname(atcommand_checkalias(command + 1)); if (info == NULL) { if( pc_get_group_level(sd) ) { // TODO: remove or replace with proper permission return false; } else return false; } Lastly, re-compile the server. If you have any other questions, feel free to let me know.
  9. <?xml version="1.0" encoding="euc-kr" ?> <clientinfo> <desc>Ragnarok Client Information</desc> <servicetype>korea</servicetype> <servertype>sakray</servertype> <connection> <display>Server Name</display> <desc>Ragnarok Online</desc> <balloon>If using service select screen, this will display when hovering</balloon> <address>WAN IP of the Game Server</address> <port>login port specified in the login_athena.conf</port> <version>25</version> <langtype>1</langtype> <registrationweb></registrationweb> </connection> </clientinfo> You'll want to read up on clientinfo.xml. This will either reside in your /data/ folder (client-side) or a GRF specified in the client's GRF .INI file. Ensure when you choose the packet <version></version> you reflect that in the rAthenaroot/db/packet_db.txt (packet_db_ver:) and also the client version (date of client; for example 20100707) in the /rAthenaroot/src/common/mmo.h (#define PACKETVER). As a side note and to clarify, the bind_ip actually allows you to specify WAN IPs that the server will specifically listen on. In an instance, for example, running multiple servers on one server this will come in handy if you're using multiple WAN IP addresses.
  10. Here's a modification that includes color and delay. Ensure you change the main_chat_color from default 0xFFFFFF (white) to the hexadecimal color of interest. Hope this helps! Cookie rAthena Main Chat Mod v3.patch
  11. Hello Vendetta, I've created a source modification you can apply to your rAthena SVN. Few things to note: In rAthenaRoot/conf/battle/client.conf you will set, in seconds, the delay you wish to have. The default is 0. The modification works for both @main and PMing main. I've tested all ways to use main. If you need anything else or experience any issues, please feel free to reach out. -Cookie Cookie rAthena Main Chat Delay v2.patch
  12. Refer to your clientinfo.xml file. The <version></version> should match the version specified in /db/packet_db.txt packet_db_ver: Also, have you defined the correct PACKETVER in the mmo.h. If not, do so, then re-compile.
  13. Use at your own risk: # Delete cart storage DELETE FROM `cart_inventory` WHERE EXISTS ( SELECT `char`.`char_id` FROM `char` RIGHT JOIN `login` ON `login`.`account_id` = `char`.`account_id` WHERE `cart_inventory`.`char_id` = `char`.`char_id` AND `login`.`lastlogin` < DATE_ADD(CURDATE(), INTERVAL -1 YEAR)); # Delete storage DELETE FROM `storage` WHERE EXISTS ( SELECT `login`.`account_id` FROM `login` WHERE `storage`.`account_id` = `login`.`account_id` AND `login`.`lastlogin` < DATE_ADD(CURDATE(), INTERVAL -1 YEAR)); # Delete inventories DELETE FROM `inventory` WHERE EXISTS ( SELECT `char`.`char_id` FROM `char` RIGHT JOIN `login` ON `login`.`account_id` = `char`.`account_id` WHERE `inventory`.char_id = `char`.`account_id` AND `login`.`lastlogin` < DATE_ADD(CURDATE(), INTERVAL -1 YEAR)); # Delete characters DELETE FROM `char` WHERE EXISTS ( SELECT `login`.`account_id` FROM `login` WHERE `login`.account_id = `char`.`account_id` AND `login`.`lastlogin` < DATE_ADD(CURDATE(), INTERVAL -1 YEAR)); # Delete accounts DELETE FROM `login` WHERE `lastlogin` < DATE_ADD(CURDATE(), INTERVAL -1 YEAR); I wrote these queries up. Use at your own risk. Probably could do skills, variables and other junk, too. Let me know. Edit: Set-up a cronjob if using linux daily. Have it execute queries via mysql. Being admin that has hundreds of players online, I wouldn't suggest this at all unless the server is completely offline. That's just me - this could cause serious latency and issues. Let's say, for example, the player logs in while it's running... Yikes, lol.
  14. /config/servers.php Edit in your server information. Additionally, If you're remotely accessing the game server ensure you allow the site WAN ip on the game server's firewall and if your host has a router firewall/ACLs that you have them create an ACL to allow the site WAN IP or the site WAN IP on port TCP 3306. For example, if you're using CSF (Linux) on the game server: csf -a 00.00.00.00 "Website IP address" Let me know if you run into any more troubles.
  15. The reason it works after @reloadscript is because the variables beneath the OnInit are thus reset to the defaults. donpcevent "wow_domi#controller::OnInit"; Add the code above, below this label: Onreset: Test it out and see if it works. However, I believe that is what you're referring to "not working" without testing it.
  16. I have a script I use on DivinityRO. Basically, it's stored in the SQL side. Using @eventpanel, Event GM makes an event (names it), then manages it and it logs every movement/IP address/item/quanity and they issue prizes. At that point, Event GM Manager gets it in their audit list and audits it/closes it out. The Event GM Manager adds prizes that are allowed and at what quantity in the manager panel for their staff to follow. I need to clean it up a bit and de-DivinityRO it as I cross-reference variables outside of the script. I'll let you know when I get a chance to release it.
  17. Cookie

    Array?

    Would you like this to be character specific, account specific or globally specific? In this scenario, an array will suffice because the indexes won't get near the maximum (at least we'd hope, that'd be a long favorites). If I get some time later, I'll throw something together. It won't require a table in the database.
  18. Cookie

    MVP Rank

    I didn't receive that error on the console and I was testing it in-game. Ensure you didn't re-arrange the script. The functions should be in the first part of the script as I set it up. Reason being the functions need to load before they're referenced. Did you alter anything? Also, are you using the latest revision of rA or at least a revision of rA that incorporates the updated Script Engine released by Epoque? If not, change lines: set $mvp_rank_date$, mvp_rank_date(); To: set $mvp_rank_date$, callfunc("mvp_rank_date");
  19. Cookie

    MVP Rank

    Fixed. See attached file. Briefly tested, tell me if anything else bugs out. CookieMVP_Rank_v2.0.txt
  20. How many character slots were you using? (prior to rAthena, on eAthena). Also, do me a favor and run this query on your DB for the account you're logging in with. Post the results after. USE (databasename); SELECT * FROM `char` WHERE `account_id` = (the account id you're trying to login with); Fill in the query () (removing the parenthesis. In your mmo.h in the [rArootfolder]/src/common/, search for the following line without the // in front of it: #define PACKETVER Based on your client version date, you'll need to set the #define PACKETVER. For example, if my client is 20100707 you'd reflect to the following: #define PACKETVER 20100707 Also, in your packet_db.txt in the [rArootfolder]/db/, what packet_db_ver are you using? This will not have // in front of it. In the clientinfo.xml either in your client's GRF or /data/ folder, what <version>xx</version> are you using? Reflect the packet_db.txt and the client <version></version> for me please. Then, update your PACKETVER in mmo.h and make clean/clean build then recompile. Thanks, -Cookie
  21. Cookie

    MVP Rank

    Hello, I had a few minutes and I re-coded the NPC to clean it up a bit. I added your menu as well. Please refer to the OnInits to set configuration of the NPC such as gm permissions. I hope this is what you needed! Cheers! -Cookie MVPRank.txt
×
×
  • Create New...