Jump to content

loki1991

Members
  • Posts

    22
  • Joined

  • Last visited

Profile Information

  • Gender
    Male
  • Location
    Germany

Recent Profile Visitors

2679 profile views

loki1991's Achievements

Poring

Poring (1/15)

13

Reputation

  1. I'm sorry guys, but I can't anyone on problems any more. I quit the scripting with athena and making some ragnarok server. This tool can be optimized really much, but I didn't see a athena script for over then 1 year. I'm happy to anyone where this script work fine. Mostly, this should be a approach that you can accomplish many things without touching any kind of sources. Greetings, Loki1991
  2. Heyho, I stopped my work on any ragnarok server. So this is a small farewell gift. This small scripts can be used as Cronjob (http://en.wikipedia.org/wiki/Cronjob) to decrease you administrative work. You normaly just have to change the config variables. Script 1: Auto RO server restart when crashed (should be started via cronjob every 5 minutes or less) #!/bin/bash ###CONFIG START### SERVER_USER="foo" PATH_TO_RO="/home/bar/rathena/" ###CONFIG END### ERROR=0 if [ "$(ps auxf | grep 'login-server' | grep -v 'grep')" == "" ]; then ERROR=1 fi if [ "$(ps auxf | grep 'char-server' | grep -v 'grep')" == "" ]; then ERROR=1 fi if [ "$(ps auxf | grep 'map-server' | grep -v 'grep')" == "" ]; then ERROR=1 fi if [ $ERROR == 1 ]; then su $SERVER_USER | $PATH_TO_RO/athena-start restart fi Script 2: SQL Backup (should be started every day) #!/bin/bash ###CONFIG START### PATH_TO_BACKUPS="/home/foo/backups" DB_HOST="localhost" DB_USER="foo" DB_PASSWORD="secretpw" WHICH_DATABASES="ragnarok" USER_NAME="foo" USER_GROUP="bar" ###CONFIG END### find -P $PATH_TO_BACKUPS -maxdepth 1 -type f \( -name '*.sql' \) -ctime +15 -exec rm {} \; mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASSWORD --databases $WHICH_DATABASES > $PATH_TO_BACKUPS/$(date +%Y-%m-%d).sql chown $USER_NAME:$USER_GROUP $PATH_TO_BACKUPS/$(date +%Y-%m-%d).sql Script 3: Logs -> History DB If you have the logs and ragnarok tables in the same database, you can may think of archive some of old logs to another database. (should be started 2 times a month) #!/bin/bash ###CONFIG START### PATH_TO_RO="/home/bar/rathena" DB_HOST="localhost" DB_USER="bar" DB_PASSWORD="secretpw" DB_RAGNAROK_DATABASE="ragnarok" DB_LOG_DATABASE="ragnarok-log" ###CONFIG END### mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASSWORD --compact --no-create-info $DB_RAGNAROK_DATABASE atcommandlog branchlog charlog chatlog npclog picklog zenylog > $PATH_TO_RO/temp.sql mysql -h$DB_HOST -u$DB_USER -p$DB_PASSWORD -D$DB_RAGNAROK_DATABASE -e"DELETE FROM atcommandlog WHERE 1=1; DELETE FROM branchlog WHERE 1=1; DELETE FROM charlog WHERE 1=1; DELETE FROM chatlog WHERE 1=1; DELETE FROM npclog WHERE 1=1; DELETE FROM picklog WHERE 1=1; DELETE FROM zenylog WHERE 1=1;" mysql -h$DB_HOST -u$DB_USER -p$DB_PASSWORD -D$DB_LOG_DATABASE < $PATH_TO_RO/temp.sql rm $PATH_TO_RO/temp.sql (before you start this script, you should insert a structure only dump into your history database) I hope this may help you and the config is understandable. Greetings, Loki1991(before you start this script, you should insert a structure only dump into your history database)
  3. Well this bug should be fixed in version 1.0.1. It should be the same bug like above: Kill 15 MvPS [2/0] insteed of [2/15]. Talk to Sam and check the requirements of the achievement.
  4. Hey, currently on my server is possible (low rate) to cast a new storm guest within an active storm guest. That means there is just a to low after cast delay. I disabled renewal on my server. trunk/conf/battle/skill.conf // The rate of time it takes to cast a spell (Note 2, 0 = No casting time) casting_rate: 100 // Delay time after casting (Note 2) delay_rate: 100 // Does the delay time depend on the caster's DEX and/or AGI? (Note 1) // Note: On Official servers, neither Dex nor Agi affect delay time delay_dependon_dex: yes delay_dependon_agi: no // Minimum allowed delay for ANY skills after casting (in miliseconds) (Note 1) // Note: Setting this to anything above 0 can stop speedhacks. min_skill_delay_limit: 95 //Completely disable skill delay of the following types (Note 3) //NOTE: By default mobs don't have the skill delay as specified in the skill // database, but follow their own 'reuse' skill delay which is specified on // the mob skill db. When set, the delay for all skills become // min_skill_delay_limit. no_skill_delay: 2 // At what dex does the cast time become zero (instacast)? castrate_dex_scale: 150 I saw that nothing has changed in the delay of tihs skill in the file : trunk/db/pre-re/skill_cast_db.txt Has renewal may changed something in the skill? Is there maybe a bug in delay_dependon_dex: yes ? Increasing the delay_rate my cause only frustating, am I right? Greetings, Loki1991
  5. Hey, it's really strange, but some people on my server can't type the "@". Where can I find the list of the blocked charackters? In any Lua File? EDIT: exe fault. Greetings, Loki
  6. item_drop_card_min: 1 item_drop_card_max: 1 ?
  7. Hey, I want to make something like this: Normal Mob Card rate: 0,1% MvP Card Rate: 0,05% // The rate at which cards are dropped item_rate_card: 10 item_rate_card_boss: 5 item_drop_card_min: 10 item_drop_card_max: 10 This should normaly work. Poring Drops: 0,1% Thanatos Drops: 0,1% Strange.. // The rate at which cards are dropped item_rate_card: 10 item_rate_card_boss: 5 item_drop_card_min: 5 item_drop_card_max: 10 Poring Drops: 0,05% Thanatos Drops: 0,05% This doesn't make any sense. Is there a way to fix this, or must I execute a "UPDATE mob_db SET DropCardper=2;" Greetings, Loki
  8. Version 1.0.1 released. It is not needed to update this script when you haven't got any error in version 1.0! Sometimes if you have an older rathena or eathena system, there was an error by the s_val field. For Example the MvP Hunter Silver Medial. Kill 15 MvPS [2/0] insteed of [2/15]. But now it should work on all systems fine. Greetings, Loki1991
  9. Hey, I have a simple question, but I didn't find any answers yet. How to set the indoor flag? I need the special camera view which can be found in any inn (prt_in). I just set it in the viewpointtable.txt , but if you leave the inn, the camera position won't return to the normal. ja_in.rsw# 570# 400# 500# 0# 30# 0# -30# -60# -30# If I use "@mapflag" on the map prt_in, I didn't see any special mapflag for inns. I'm a bit confused. Thank you in advance for help. [EDIT]. Client: data/indoorrswtable.txt Loki1991
  10. Loki's Achievement System with no source edit This system contains many possible kinds of achievements, getting achievement points, announcing your achievement and displaying a cutin. And all that without any source edit. Only with trigger and a cache sytem, that your sql server won't be spamed with querys! I was really frustrated that most of the source edit versions haven't worked on my server. I hope you will enjoy it I will explain it's functions below. Downloads: lokis_achivement_system_1.0.1.zip loki_achivement_demodata_1.0.zip Supported Achievements: Mode 0 = Your custom achievements, see point Custom Achivemetns below. Mode 1 = Items in your inventar. It will be checked after every login and after every time when you are killing a mob. 9 different items at once are possible. Mode 2 = Kill Mobs. Will be checked after every mob kill. 9 different mobs at once are possible. Mode 3 = Mvp kills. Will be checked after every mob kill. Only 1 value is possible (ex. Kill 15 MvPs, Kill 30 Mvps. This mode is not like Kill 10 Phreeonis, for this use Mode 2!) Mode 4 = Pvp Kills. Will be checked after every pvp kill. Only 1 value is possible (ex. Kill 1 other Player, Kill 666 other Player etc.) Mode 5 = Reach Baselevel X. Will be checked on every BaseLevel up (@commands won't effect this trigger!). Only 1 value is possible Mode 6 = Reach Joblevel X. Will be checked on every JobLevel up (@commands won't effect this trigger!). Only 1 value is possible Creating a Achievement: All achievements are in your SQL database, so we just need to insert something in the table "achievement". name = name of your achievement desc = Your description for the achievement and will only be used by Bob (see below). Can be used for your website etc. mode = Your mode (see category above this one) deleted = should ever be "n"! Due to the cache system, you should never delete a Entry by "DELETE FROM achievement WHERE id=X". NEVER! Just set deleted="y" cutin = your cutin image. If you leave this NULL or empty, no cutin will be displayed. points = how many points do the user get for this achievement? singleval = will be used for mode 3,4,5,6. It would confuse everybody, if I would save the data in val1 or anywhere else. val1 - val9 = Will be used for Mode 1 and 2. Here you will write the itemID or the monsterID. val1amount - val9amount = The amount, the user have of itemID in his inventar or how many monster the user have to kill. If you want that the player have to kill 10 porings and 20 drops, you would save the follow: val1: 1002 val1amount: 10 val2: 1113 val2amount: 20 Every received achievement will be saved in the table achievement_log. Due to that here are no @commands, the table achievement_force is made to force player to get a achievement or to reset/remove a achievement. You don't have to create any insert. Just talk to Bob (see below). Configurate your achievement system: There isn't much to configure set $a_cache_expire,120; set $a_effect_id,908; set $a_cutin_delay,8000; $a_cache_expire = in how many seconds the global cache will be expire? $a_effect_id = which effect will be displayed on the user when he received an achivement (@effect 908) $a_cutin_delay = for how many milliseconds the cutin should be displayed in the bottom of your screen? Create a custom Achievement (mode 0): You can call the achievement you want to give in any of your scripts with just writing: callfunc "achieve",<<achievementId>>; Here is an example, which I placed in my custom instance. If the user is joining there the first time, he would get the achievement 18! warp "hellfire",264,129; if(a_done_18 != 1 && $a_del_18$ == "n") { sleep2 5000; callfunc "achieve",18; } a_done_X = have user already got the achievement? 1=yes, 0=no $a_del_X$ = is achievement active and not deleted? y=yes, n=no. This both flags should be placed everywhere where you use this function. sleep2 5000; is just for skipping the delay of warping to the map. Just ignore this If you want to use custom script with trigger, you can build them like that. This script checks if your zeny is higher than the "singel_val" value in the database ($a_sval_17). You could also just write if(Zeny >= 1000000) callfunc "achieve",17; - script ach_17 -1,{ OnPCLoginEvent: OnNPCKillEvent: if(a_done_17 == 1 || $a_del_17$ == "y") end; if(Zeny >= $a_sval_17) callfunc "achieve",17; end; } This script can be found in the demodata pack with 16 other achievement If you want to make an item_use Achievement, just place the important line above in the item script. Achievement Bob (including in lokis_achievement_system_X.X): This script is made for GM's and Player. The player can get information about all achievements, which they have or have to get and how many achievement points they have. The GM Menu have many more functions: Force Player Achievement This function will save entries into the table achievement_force. It can be used to give a player an achievement or to reset an achievement. The user just have to talk to Bob after you clicked through the form. There isn't any validation. So be careful, that the user won't get a achievement 2 or more times. Enable/Disable Achievements This function just set the deleted=y or deleted=n flag. If you change something, you should clear the cache (or wait until it expires). Clear cache Set Flag to clear cache. It will be renewed when a player is login into your server. Compare log with achievement points Compares the achievement_log table with the score of achievements of the player. If there is a difference, the real value will be saved. WARNING: If you have something like a cashshop with this points, this function will destroy your database :/ Points should only be used in viewing only or for a ranking. Else you should change the core of this function. Error Handing: Due to a lot of trigger events, your server may cause some phantom errors like "players event queue is full". To fix this, just edit the src/map/map.h and increase the #define MAX_EVENTQUEUE 2 value to 20. I hope this guide helped you in this complex system Have fun with it Loki1991 lokis_achivement_system_1.0.zip
  11. Just created the same patch with the same content as gpf and it works... Strange.
  12. Hey, I have a small Problem with my neoncube patcher. Everything I want to patch are packend into the folder neoncube... The patchfile is structured like the follow "12-13-03__tt_mobs.rar\data\lua files\datainfo\". I dunno where he get the neoncube folder... neoncube.ini: [server] server_name = XXX notice_url = XXX/patcher/ patch_site =XXX.org patch_port = 80 patch_list = /patcher/patchlist.txt patch_folder = /patcher/patches/ executable = ./XXX.exe registration_link = XXX skin = XXX grf_file = XXX.grf Backup_GRF = 0 startup_option = 3 [general] debug_mode = 0 archive_passphrase = 0 Thank you for your help!
  13. What exactly have you changed? Your exe? Your AI File? Your Lua File? All? xD I just figured out that this is not a Client bug. I use the same client. On Localhost it works, on my live server it doesn't work. Could there be a compile error or stuff like that? Server shows error when clicking "Feed Homunculus": [Error]: merc_menu : unknown menu choice : 45 [EDIT] Fixed it. This is just for information for anyone who has this problem in the future. Check db/packet_db.txt Search for: //2005-04-25aSakexe 0x022d,5,hommenu,4 0x0232,9,hommoveto,6 0x0233,11,homattack,0 0x0234,6,hommovetomaster,0 And Replace with: //2005-04-25aSakexe 0x022d,5,hommenu,2:4 0x0232,9,hommoveto,2:6 0x0233,11,homattack,2:6:10 0x0234,6,hommovetomaster,2
×
×
  • Create New...