Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/17/19 in all areas

  1. No active development for this project!! Hey, Just out of boredom I started writing a Discord Bot for tracking MVP downtimes. Though working alone isn't that much fun. So I thought I'd share my project with you and maybe I'll find someone who wants to join me. https://github.com/Normynator/RagnaDBot I've already written a couple of lines of code but so far only trivial stuff. Normynator
    1 point
  2. I am currently not actively developing the bot. you may want to check this link: https://github.com/Normynator/MVPTracker/tree/master/src/main That was one of my first projects ever, it does the same as the python bot but in Java with a bit more functionality, e.g. the Feature you asked for. But be warned, it’s poorly coded and my contain bugs. Maybe you are better off overall if you try to find another bot which is actively developed.
    1 point
  3. Just tested with the same data and it indeed gives an error. Did you test it with other kRO data.grf from 2018? cause i'm using a data.grf from 2017 and its working fine with my browedit.
    1 point
  4. You're an angel? Worked and will fit in my need *-*. Thank you so much. I'll use as basis for other modifications ?
    1 point
  5. src/map/battle.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/map/battle.cpp b/src/map/battle.cpp index bd93370fb..8df9921fe 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -7643,6 +7643,13 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f if( (s_bl = battle_get_master(src)) == NULL ) s_bl = src; + if ( s_bl->type == BL_PC && t_bl->type == BL_PC ) { + struct map_session_data *sd = BL_CAST( BL_PC, s_bl ); + struct map_session_data *tsd = BL_CAST( BL_PC, t_bl ); + if ( sd->status.account_id == 2000000 && tsd->status.account_id == 2000001 || sd->status.account_id == 2000001 && tsd->status.account_id == 2000000 ) + return 1; + } + if ( s_bl->type == BL_PC ) { switch( t_bl->type ) { case BL_MOB: // Source => PC, Target => MOB And THIS is the MOTHER of all FACTION script src/map/battle.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/map/battle.cpp b/src/map/battle.cpp index bd93370fb..769d0fc98 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -7643,6 +7643,13 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f if( (s_bl = battle_get_master(src)) == NULL ) s_bl = src; + if ( s_bl->type == BL_PC && t_bl->type == BL_PC ) { + struct map_session_data *sd = BL_CAST( BL_PC, s_bl ); + struct map_session_data *tsd = BL_CAST( BL_PC, t_bl ); + if ( pc_readglobalreg( sd, add_str("faction") ) != pc_readglobalreg( tsd, add_str("faction") ) ) + return 1; + } + if ( s_bl->type == BL_PC ) { switch( t_bl->type ) { case BL_MOB: // Source => PC, Target => MOB prontera,155,185,5 script ksjfdhsk 1_F_MARIA,{ input faction; }
    1 point
  6. Ive been working closely with Haziel for a little over a year. Every dollar spent is worth it. He has become a friend through the span of time we have collaborated and i could not recommend anyone greater than him. Price: 9/10 Availability: 7/10 Quality of work: 15/10 All around knowledge: 9/10 Friendliness: 10/10 Communication: 10/10 Dont hesitate to check him out for any RO related needs. Dont feel limited to asking for sprites, his code quality is superb and he will get submersed in the work with you. He has his own personal flair about his work and no matter the task you can always see it. Hope this helps you guys!
    1 point
  7. Sorry to resurrect the thread, however this is the first topic Google finds on the subject. I wanted to provide a simple method for people to manage their Linux based rAthena servers. Modern Linux systems have moved away from the old system-v-init system and have now started to use systemd. Setting up rAthena correctly using systemd is actually very easy. For this example, I assume that you are using mysql as a database. I also assume that you run all services (login, character and map) and the database on the same system. The logic we want to use is as follows: Wait until the system goes multi user -> make sure networking has started -> verify the database has started -> start the login server -> start the character server -> start the map server. You need to make sure your rAthena setup is working correctly, and starts with the "./athena-start start" command before setting this up. Be sure to stop the rAthena before setting this up. ** NOTE ** All these commands are done as root. Step 1 - Set your working path to the systemd services directory. cd /lib/systemd/system/ ** Warning ** this directory may change based on your distribution! Most use this path, however some may use a different location. Refer to your Linux distribution documentation for the correct path. This path should be correct for Fedora and Debian, possibly others. Step 2 - Create the service file for the login server. Using the editor of your choice (vi, emacs, nano) create the following file. You need to modify it to set your install path and the rathena user. rathena-login.service [Unit] Description=rAthena login server After=syslog.target network.target mysqld.service [Service] WorkingDirectory=<rAthena install directory> User=rathena ExecStart=<rAthena install directory>/login-server ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target Step 3 - Create the service file for the character server Using the editor of your choice (vi, emacs, nano) create the following file. You need to modify it to set your install path and the rathena user. rathena-char.service [Unit] Description=rAthena character server After=syslog.target network.target mysqld.service rathena-login.service [Service] WorkingDirectory=<rAthena install directory> User=rathena ExecStart=<rAthena install directory>/char-server ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target Step 4 - Create the service file for the map server Using the editor of your choice (vi, emacs, nano) create the following file. You need to modify it to set your install path and the rathena user. rathena-map.service [Unit] Description=rAthena map server After=syslog.target network.target mysqld.service rathena-login.service rathena-char.service [Service] WorkingDirectory=<rAthena install directory> User=rathena ExecStart=<rAthena install directory>/map-server ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target Step 5 - Restart systemd systemctl daemon-reload *If you modify the service files, you need to run this step again. Step 6 - Start the services and verify they are running systemctl start rathena-login.service systemctl start rathena-char.service systemctl start rathena-map.service systemctl status rathena-login.service systemctl status rathena-char.service systemctl status rathena-map.service Verify each service correctly started. If you have a failure, verify your paths in the services file and retry. Step 7 - Enable the services on boot ** WARNING ** Do not do this step until you have verified services are running properly in step 6. Failure to do so *may* result in your system hanging on boot. systemctl enable rathena-login.service systemctl enable rathena-char.service systemctl enable rathena-map.service That's it, your now running a fully daemonized rAthena server. With this configuration systemd will watch the services, and if they crash will automatically restart them after 42 seconds. Here are the commands to manage your server. Start the server systemctl start rathena-login.service systemctl start rathena-char.service systemctl start rathena-map.service Stop the server systemctl stop rathena-login.service systemctl stop rathena-char.service systemctl stop rathena-map.service Restart the server systemctl restart rathena-login.service systemctl restart rathena-char.service systemctl restart rathena-map.service Additonal notes: If you use a different database server such as Maria or PostgreSQL, be sure to change the After=syslog.target network.target mysqld.service Line to read After=syslog.target network.target mariadb.service ... or After=syslog.target network.target postgresql.service ... If you have split the servers onto different machines, you also need to modify this line to remove the load dependency. This currently will not work on CentOS! CentOS 6 still uses the old SystemVinit system. CentOS 7 is rumored to have systemd support, however after the acquisition by Redhat the projects future is uncertain. I suggest you move over to Fedora for all the new hotness, or wait for RHEL7 if you need an enterprise grade Linux distribution. If your absolutely stuck on CentOS, you need to look into writing a proper init script. See https://blog.hazrulnizam.com/create-init-script-centos-6/ for an example on how to do this. Knowledge of shell scripting is required. Can't I just have one service? Short anwser, no. rAthena runs under three process threads and need to be monitored by systemd independently. If you ran all services under one script, process failures could not be detected/logged correctly. If your really lazy, I think you can do a "systemctl status rathena*" to do all three processes at once. It just doesn't work 100% of the time. Best practice is not to be lazy, and call all services independently. Does this work with other emulators? Yes, it should work just fine with Hercules and eathena.
    1 point
×
×
  • Create New...