Jump to content

Rizan

Members
  • Posts

    30
  • Joined

  • Last visited

Posts posted by Rizan

  1. On 4/22/2018 at 7:28 AM, xepowe said:

    ok hi, first of all i'm totally new here and with the servers thing so... my question may be completly noobish but i can't seriously figure out a solution by my self, so here is the thing

    i used this guide:

     to try and set the server only on my computer since i have no need to set it online yet, just want to test it on my own first, but when i try the runserv.bat this happens:

    serv.thumb.jpg.b341d49e29fa00d92ab597b6144dea52.jpg

    it just gets there and nothing enlse happens it seems like the charserv can't connect to the logserv but the connection between char and map seems fine... and i really don't know what couls've happened, and after a while this error happens in charserv.bat : "[Error]: make_connection: connection failed (socket #2, timeout after 10s)!"

     

    so if anyone could help i would apreciate it greatly. thanks alot.

    i have problem to... this problem come if server running more 24hour

    50005839_1196484383845037_4755046194202279936_n.png

  2. how to fix this problem..

    this problem occurs when server running in more 24 hours...

    //--------------------------------------------------------------
    //rAthena Map-Server Configuration File
    //--------------------------------------------------------------

    // Note: "Comments" are all text on the right side of a double slash "//"
    // Whatever text is commented will not be parsed by the servers, and serves
    // only as information/reference.

    //--------------------------------------------------------------
    //                     Configuration Info
    //--------------------------------------------------------------
    // Interserver communication passwords, set in account.txt (or equiv.)
    userid: myro
    passwd: myro

    // Character Server IP
    // The map server connects to the character server using this IP address.
    // NOTE: This is useful when you are running behind a firewall or are on
    // a machine with multiple interfaces.
    char_ip: xxx.xxx.xxx.xxx

    // The map server listens on the interface with this IP address.
    // NOTE: This allows you to run multiple servers on multiple interfaces
    // while using the same ports for each server.
    // bind_ip: xxx.xxx.xxx.xxx

    // Character Server Port
    char_port: 6121

    // Map Server IP
    // The IP address which clients will use to connect.
    // Set this to what your server's public IP address is.
    map_ip: xxx.xxx.xxx.xxx

    // Map Server Port
    map_port: 5121

    //Time-stamp format which will be printed before all messages.
    //Can at most be 20 characters long.
    //Common formats:
    // %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
    // %H:%M:%S (hour:minute:second, 24 hour format)
    // %d/%b/%Y (day/Month/year)
    //For full format information, consult the strftime() manual.
    //timestamp_format: [%d/%b %H:%M]

    //If redirected output contains escape sequences (color codes)
    stdout_with_ansisequence: no

    //Makes server log selected message types to a file in the /log/ folder
    //1: Log Warning Messages
    //2: Log Error and SQL Error messages.
    //4: Log Debug Messages
    //Example: "console_msg_log: 7" logs all 3 kinds
    //Messages logged by this overrides console_silent setting
    console_msg_log: 0

    // File path to store the console messages above
    console_log_filepath: ./log/map-msg_log.log

    //Makes server output more silent by omitting certain types of messages:
    //1: Hide Information messages
    //2: Hide Status messages
    //4: Hide Notice Messages
    //8: Hide Warning Messages
    //16: Hide Error and SQL Error messages.
    //32: Hide Debug Messages
    //Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
    console_silent: 0

    //Where should all database data be read from?
    db_path: db

    // Enable the @guildspy and @partyspy at commands?
    // Note that enabling them decreases packet sending performance.
    enable_spy: no

    // Read map data from GATs and RSWs in GRF files or a data directory
    // as referenced by grf-files.txt rather than from the mapcache?
    use_grf: no

    // Console Commands
    // Allow for console commands to be used on/off
    // This prevents usage of >& log.file
    console: off

    // Database autosave time
    // All characters are saved on this time in seconds (example:
    // autosave of 60 secs with 60 characters online -> one char is saved every
    // second)
    autosave_time: 300

    // Min database save intervals (in ms)
    // Prevent saving characters faster than at this rate (prevents char-server
    // save-load getting too high as character-count increases)
    minsave_time: 10000

    // Apart from the autosave_time, players will also get saved when involved
    // in the following (add as needed):
    // 1: after every successful trade
    // 2: after opening vending/every vending transaction
    // 4: after closing storage/guild storage.
    // 8: After hatching/returning to egg a pet.
    // 16: After successfully sending a mail with attachment
    // 32: After successfully submitting an item for auction
    // 64: After successfully get/delete/complete a quest
    // 128: After every bank transaction (deposit/withdraw)
    // NOTE: These settings decrease the chance of dupes/lost items when there's a
    // server crash at the expense of increasing the map/char server lag. If your
    // server rarely crashes, but experiences interserver lag, you may want to set
    // these off.
    save_settings: 255

    // Message of the day file, when a character logs on, this message is displayed.
    motd_txt: conf/motd.txt

    // When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands.
    help_txt: conf/help.txt
    help2_txt: conf/help2.txt
    charhelp_txt: conf/charhelp.txt

    // Load channel config from
    channel_conf: conf/channels.conf

    // Maps:
    import: conf/maps_athena.conf

    import: conf/import/map_conf.txt
     

     
     
     

    // Athena Character configuration file.

    // Note: "Comments" are all text on the right side of a double slash "//"
    // Whatever text is commented will not be parsed by the servers, and serves
    // only as information/reference.

    // Server Communication username and password.
    userid: myro
    passwd: myro

    // Server name, use alternative character such as ASCII 160 for spaces.
    // NOTE: Do not use spaces or any of these characters which are not allowed in
    //       Windows filenames \/:*?"<>|
    //       ... or else guild emblems won't work client-side!
    server_name: Spirit Ragnarok

    // Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
    wisp_server_name: Welcome To Spirit Ragnarok

    // Login Server IP
    // The character server connects to the login server using this IP address.
    // NOTE: This is useful when you are running behind a firewall or are on
    // a machine with multiple interfaces.
    login_ip:  xxx.xxx.xxx.xxx

    // The character server listens on the interface with this IP address.
    // NOTE: This allows you to run multiple servers on multiple interfaces
    // while using the same ports for each server.
    // bind_ip:  xxx.xxx.xxx.xxx

    // Login Server Port
    login_port: 6900

    // Character Server IP
    // The IP address which clients will use to connect.
    // Set this to what your server's public IP address is.
    char_ip:  xxx.xxx.xxx.xxx

    // Character Server Port
    char_port: 6121

    //Time-stamp format which will be printed before all messages.
    //Can at most be 20 characters long.
    //Common formats:
    // %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
    // %H:%M:%S (hour:minute:second, 24 hour format)
    // %d/%b/%Y (day/Month/year)
    //For full format information, consult the strftime() manual.
    //timestamp_format: [%d/%b %H:%M]

    //If redirected output contains escape sequences (color codes)
    stdout_with_ansisequence: no

    //Makes server log selected message types to a file in the /log/ folder
    //1: Log Warning Messages
    //2: Log Error and SQL Error messages.
    //4: Log Debug Messages
    //Example: "console_msg_log: 7" logs all 3 kinds
    //Messages logged by this overrides console_silent setting
    console_msg_log: 0

    // File path to store the console messages above
    console_log_filepath: ./log/char-msg_log.log

    //Makes server output more silent by ommitting certain types of messages:
    //1: Hide Information messages
    //2: Hide Status messages
    //4: Hide Notice Messages
    //8: Hide Warning Messages
    //16: Hide Error and SQL Error messages.
    //32: Hide Debug Messages
    //Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
    console_silent: 0

    // Console Commands
    // Allow for console commands to be used on/off
    // This prevents usage of >& log.file
    console: off

    // Type of server.
    // No functional side effects at the moment.
    // Displayed next to the server name in the client.
    // 0=normal, 1=maintenance, 2=over 18, 3=paying, 4=P2P
    char_maintenance: 0

    // Enable or disable creation of new characters.
    // Now it is actually supported [Kevin]
    char_new: 1

    // Display (New) in the server list.
    char_new_display: 0

    // Maximum users able to connect to the server.
    // Set to 0 to disable users to log-in. (-1 means unlimited)
    max_connect_user: -1

    // Group ID that is allowed to bypass the server limit of users.
    // Or to connect when the char is in maintenance mode (groupid >= allow)
    // Default: -1 = nobody (there are no groups with ID < 0)
    // See: conf/groups.conf
    gm_allow_group: 99

    // How often should the server save guild infos? (In seconds)
    // (character save interval is defined on the map config (autosave_time))
    autosave_time: 60

    // Display information on the console whenever characters/guilds/parties/pets are loaded/saved?
    save_log: yes

    // Starting point for new characters
    // Format: <map_name>,<x>,<y>{:<map_name>,<x>,<y>...}
    // Max number of start points is MAX_STARTPOINT in char.h (default 5)
    // Location is randomly picked on character creation.
    // NOTE: For Doram, this requires client 20151001 or newer.
    start_point: iz_int,18,26:iz_int01,18,26:iz_int02,18,26:iz_int03,18,26:iz_int04,18,26
    start_point_pre: new_1-1,53,111
    start_point_doram: lasa_fild01,48,297

    // Starting items for new characters
    // Max number of items is MAX_STARTITEM in char.c (default 32)
    // Format: <id>,<amount>,<position>{:<id>,<amount>,<position>...}
    // To auto-equip an item, include the position where it will be equipped; otherwise, use zero.
    // NOTE: For Doram, this requires client 20151001 or newer.
    start_items: 1201,1,2:2301,1,16
    start_items_doram: 1681,1,2:2301,1,16

    // Starting zeny for new characters
    start_zeny: 30000

    // Size for the fame-lists
    fame_list_alchemist: 10
    fame_list_blacksmith: 10
    fame_list_taekwon: 10

    // Guild earned exp modifier.
    // Adjusts taxed exp before adding it to the guild's exp. For example, if set
    // to 200, the guild receives double the player's taxed exp.
    guild_exp_rate: 100

    // Name used for unknown characters
    unknown_char_name: Unknown

    // To log the character server?
    log_char: 1

    // Allow or not identical name for characters but with a different case (upper/lower):
    // example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed
    name_ignoring_case: no

    // Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are:
    // NOTE: Applies to character, party and guild names.
    // 0: no restriction (default)
    // 1: only letters/symbols in 'char_name_letters' option.
    // 2: Letters/symbols in 'char_name_letters' option are forbidden. All others are possibles.
    char_name_option: 1

    // Set the letters/symbols that you want use with the 'char_name_option' option.
    // Note: Don't add spaces unless you mean to add 'space' to the list.
    char_name_letters: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890

    // Restrict character deletion by BaseLevel
    // 0: no restriction (players can delete characters of any level)
    // -X: you can't delete chars with BaseLevel <= X
    // Y: you can't delete chars with BaseLevel >= Y
    // e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel)
    char_del_level: 0

    // Amount of time in seconds by which the character deletion is delayed.
    // Default: 86400 (24 hours)
    // NOTE: Requires client 2010-08-03aragexeRE or newer.
    char_del_delay: 0

    // Restrict character deletion by email address or birthdate.
    // This restricts players from changing the langtype and deleting characters.
    // Defaults based on client date.
    // 1: Email address
    // 2: Birthdate
    // 3: Email address or Birthdate
    // IMPORTANT!
    // - This config only works for clients that send 0x0068 or 0x01fb for delete request.
    // - Use langtype 1 for newer clients (2013+), to use 0x01fb.
    // - Clients that are not using 0x0068 or 0x01fb, only use birthdate (YYMMDD) as default.
    char_del_option: 2

    // Restrict character deletion as long as he is still in a party or guild
    // 0: No restriction is applied
    // 1: Character cannot be deleted as long as he remains in a party
    // 2: Character cannot be deleted as long as he remains in a guild
    // 3: Character cannot be deleted as long as he remains in a party or guild(default)
    char_del_restriction: 3

    // Restrict certain class from being created. (Only functional on 20151001aRagexe or later)
    // 0: No character creation is allowed
    // 1: Only novice is allowed to be created    (pre-renewal default)
    // 2: Only summoner is allowed to be created
    // 3: Both novice and summoner can be created (renewal default)
    // Uncomment to customize the restriction
    //allowed_job_flag: 3

    // What folder the DB files are in (item_db.txt, etc.)
    db_path: db

    //===================================
    // Pincode system
    //===================================
    // NOTE: Requires client 2011-03-09aragexeRE or newer.
    // A window is opened before you can select your character and you will have to enter a pincode by using only your mouse.
    // Default: yes
    pincode_enabled: yes

    // How often does a user have to change his pincode?
    // 0: never (default)
    // X: every X days
    pincode_changetime: 0

    // How often can a user enter the wrong pincode?
    // Default: 3 (client maximum)
    pincode_maxtry: 3

    // Are users forced to use a pincode when the system is enabled?
    // Default: yes
    pincode_force: yes

    // Are repeated numbers allowed?
    // Default: no
    pincode_allow_repeated: no

    // Are sequential numbers allowed?
    // Default: no
    pincode_allow_sequential: no

    //===================================
    // Addon system
    //===================================
    // Character moving
    // NOTE: Requires client 2011-09-28aragexeRE or newer.
    // Allows users to move their characters between slots.
    // Default: yes
    char_move_enabled: yes

    // Allow users to move a character to a used slot?
    // If enabled the characters are exchanged.
    // Default: yes
    char_movetoused: yes

    // Allow users to move characters as often as they like?
    char_moves_unlimited: no

    // Character renaming
    // Allow users to rename a character while being in a party?
    // Default: no
    char_rename_party: no

    // Allow users to rename a character while being in a guild?
    // Default: no
    char_rename_guild: no

    // Should we check if sql-tables are correct on server startup ?
    char_checkdb: yes

    // Default map if character is in not-existing map when loaded.
    default_map: prontera
    default_map_x: 156
    default_map_y: 191

    // After how many days should inactive clan members be removed from their clan?
    // 0: never remove them
    // X: remove clan members if they did not log in for X days
    // Default: 14
    clan_remove_inactive_days: 14

    //===================================
    // RODEX
    //===================================
    // After how many days should mails be returned to their sender?
    // 0: never return them
    // X: return them after X days
    // Default: 15
    mail_return_days: 15

    // How many days after a mail was returned to it's sender should it be deleted completely?
    // 0: never delete them
    // X: delete them X days after they were returned
    // Default: 15
    mail_delete_days: 15

    import: conf/import/char_conf.txt
     

     
     
     

    // Athena Login Server configuration file.
    // Translated by Peter Kieser <[email protected]>

    // Note: "Comments" are all text on the right side of a double slash "//"
    // Whatever text is commented will not be parsed by the servers, and serves
    // only as information/reference.

    // The login server listens on the interface with this IP address.
    // NOTE: This allows you to run multiple servers on multiple interfaces
    // while using the same ports for each server.
    // bind_ip: xxx.xxx.xxx.xxx

    // Login Server Port
    login_port: 6900

    //Time-stamp format which will be printed before all messages.
    //Can at most be 20 characters long.
    //Common formats:
    // %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
    // %H:%M:%S (hour:minute:second, 24 hour format)
    // %d/%b/%Y (day/Month/year)
    //For full format information, consult the strftime() manual.
    //timestamp_format: [%d/%b %H:%M]

    //If redirected output contains escape sequences (color codes)
    stdout_with_ansisequence: no

    //Makes server log selected message types to a file in the /log/ folder
    //1: Log Warning Messages
    //2: Log Error and SQL Error messages.
    //4: Log Debug Messages
    //Example: "console_msg_log: 7" logs all 3 kinds
    //Messages logged by this overrides console_silent setting
    console_msg_log: 0

    // File path to store the console messages above
    console_log_filepath: ./log/login-msg_log.log

    //Makes server output more silent by omitting certain types of messages:
    //1: Hide Information messages
    //2: Hide Status messages
    //4: Hide Notice Messages
    //8: Hide Warning Messages
    //16: Hide Error and SQL Error messages.
    //32: Hide Debug Messages
    //Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
    console_silent: 0

    // Console Commands
    // Allow for console commands to be used on/off
    // This prevents usage of >& log.file
    console: off

    // Can you use _M/_F to make new accounts on the server?
    new_account: no

    //If new_account is enabled, minimum length to userid and passwords should be 4?
    //Must be 'Yes' unless your client uses both 'Disable 4 LetterUserID/Password' Diffs
    new_acc_length_limit: yes

    // Account registration flood protection system
    // allowed_regs is the number of registrations allowed in time_allowed (in seconds)
    allowed_regs: 1
    time_allowed: 10

    // Log Filename. All operations received by the server are logged in this file. 
    login_log_filename: log/login.log

    // To log the login server?
    // NOTE: The login server needs the login logs to enable dynamic pass failure bans.
    log_login: yes

    // Indicate how to display date in logs, to players, etc.
    date_format: %Y-%m-%d %H:%M:%S

    // Required account group id to connect to server.
    // -1: disabled
    // 0 or more: group id
    group_id_to_connect: -1

    // Minimum account group id required to connect to server.
    // Will not function if group_id_to_connect config is enabled.
    // -1: disabled
    // 0 or more: group id
    min_group_id_to_connect: -1

    // Which group (ID) will be denoted as the VIP group?
    // Default: 5
    vip_group: 5

    // How many characters are allowed per account?
    // You cannot exceed the limit of MAX_CHARS slots, defined in mmo.h, or chars_per_account
    // will default to MAX_CHARS.
    // 0 will default to the value of MIN_CHARS. (default)
    chars_per_account: 6

    // Max character limit increase for VIP accounts (0 to disable)
    // Increase the value of MAX_CHARS if you want to increase vip_char_increase.
    // Note: The amount of VIP characters = MAX_CHARS - chars_per_account.
    // Note 2: This setting must be set after chars_per_account.
    // -1 will default to MAX_CHAR_VIP (src/config/core.hpp)
    vip_char_increase: -1

    // Create accounts with limited time?
    // -1: new accounts are created with unlimited time (default)
    // 0 or more: new accounts automatically expire after the given value, in seconds
    start_limited_time: -1

    // Store passwords as MD5 hashes instead of plain text?
    // NOTE: Will not work with clients that use <passwordencrypt>
    use_MD5_passwords: no

    // Ipban features
    ipban_enable: yes
    // Dynamic password failure ipban system
    // Ban user after a number of failed attempts?
    ipban_dynamic_pass_failure_ban: yes
    // Interval (in minutes) to calculate how many failed attempts.
    ipban_dynamic_pass_failure_ban_interval: 5
    // Maximum amount of failed attempts before banning.
    ipban_dynamic_pass_failure_ban_limit: 7
    // Time (in minutes) for ban duration.
    ipban_dynamic_pass_failure_ban_duration: 5
    // Interval (in seconds) to clean up expired IP bans. 0 = disabled. default = 60.
    // NOTE: Even if this is disabled, expired IP bans will be cleaned up on login server start/stop.
    // Players will still be able to login if an ipban entry exists but the expiration time has already passed.
    ipban_cleanup_interval: 60

    // Interval (in minutes) to execute a DNS/IP update. Disabled by default.
    // Enable it if your server uses a dynamic IP which changes with time.
    //ip_sync_interval: 10

    // DNS Blacklist Blocking
    // If enabled, each incoming connection will be tested against the blacklists 
    // on the specified dnsbl_servers (comma-separated list)
    use_dnsbl: no
    dnsbl_servers: bl.blocklist.de, socks.dnsbl.sorbs.net
    // Here are some free DNS Blacklist Services: http://en.wikipedia.org/wiki/Comparison_of_DNS_blacklists
    //==============================================================================
    //   dnsbl_servers                 Description
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    // bl.blocklist.de                 IP-Addresses who attack other servers/honeypots over SSH, FTP, IMAP, etc.
    // ircbl.ahbl.org                  AHBL (open proxies, compromised machines, comment spammers)
    // safe.dnsbl.sorbs.net            All zones in dnsbl.sorbs.net except "recent" and "escalations"
    // sbl-xbl.spamhaus.org            Spamhaus blacklist (spammers, open proxies)
    // socks.dnsbl.sorbs.net           Open SOCKS proxy servers
    // tor.ahbl.org                    Current tor relay and exit nodes

    // Client MD5 hash check
    // If turned on, the login server will check if the client's hash matches
    // the value below, and will not connect tampered clients.
    // Note: see 'doc/md5_hashcheck.txt' for more details.
    client_hash_check: off

    // Client MD5 hashes
    // The client with the specified hash can be used to log in by players with
    // a group_id equal to or greater than the given value.
    // If you specify 'disabled' as hash, players with a group_id greater than or
    // equal to the given value will be able to log in regardless of hash (and even
    // if their client does not send a hash at all.)
    // Format: group_id, hash
    // Note: see 'doc/md5_hashcheck.txt' for more details.
    //client_hash: 0, 113e195e6c051bb1cfb12a644bb084c5
    //client_hash: 10, cb1ea78023d337c38e8ba5124e2338ae
    //client_hash: 99, disabled

    import: conf/inter_athena.conf
    import: conf/import/login_conf.txt
     

     
     
     

    // Athena InterServer configuration.
    // Contains settings shared/used by more than 1 server.

    // Options for both versions

    // Log Inter Connections, etc.?
    log_inter: 1

    // Inter Log Filename
    inter_log_filename: log/inter.log

    // Level range for sharing within a party
    party_share_level: 15

    // You can specify the codepage to use in your MySQL tables here.
    // (Note that this feature requires MySQL 4.1+)
    //default_codepage:

    // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1
    // Under windows, you want to use 127.0.0.1.  If you see a message like
    // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
    // and you have localhost, switch it to 127.0.0.1

    // Global SQL settings
    // overridden by local settings when the hostname is defined there
    // (currently only the login-server reads/obeys these settings)

    // MySQL Login server
    login_server_ip:xxx.xxx.xxx.xxx
    login_server_port: 3306
    login_server_id: Ragnarok
    login_server_pw: Ragnarok
    login_server_db: Ragnarok
    login_codepage:
    login_case_sensitive: no

    ipban_db_ip: xxx.xxx.xxx.xxx
    ipban_db_port: 3306
    ipban_db_id: Ragnarok
    ipban_db_pw: Ragnarok
    ipban_db_db: Ragnarok
    ipban_codepage:

    // MySQL Character server
    char_server_ip: xxx.xxx.xxx.xxx
    char_server_port: 3306
    char_server_id: Ragnarok
    char_server_pw: Ragnarok
    char_server_db: Ragnarok

    // MySQL Map Server
    map_server_ip: xxx.xxx.xxx.xxx
    map_server_port: 3306
    map_server_id: Ragnarok
    map_server_pw: Ragnarok
    map_server_db: Ragnarok

    // MySQL Log Database
    log_db_ip: xxx.xxx.xxx.xxx
    log_db_port: 3306
    log_db_id: ragnarok_log
    log_db_pw: ragnarok_log
    log_db_db: ragnarok_log
    log_codepage:
    log_login_db: loginlog

    // MySQL Reconnect Settings
    // - mysql_reconnect_type:
    //   1: When MySQL disconnects during runtime, the server tries to reconnect
    //      mysql_reconnect_count times and shuts down if unsuccessful.
    //   2: When mysql disconnects during runtime, it tries to reconnect indefinitely.
    mysql_reconnect_type: 2
    mysql_reconnect_count: 1

    // DO NOT CHANGE ANYTHING BEYOND THIS LINE UNLESS YOU KNOW YOUR DATABASE DAMN WELL
    // this is meant for people who KNOW their stuff, and for some reason want to change their
    // database layout. [CLOWNISIUS]

    // ALL MySQL Database Table names

    // Login Database Tables
    login_server_account_db: login
    ipban_table: ipbanlist

    // Shared
    global_acc_reg_num_table: global_acc_reg_num
    global_acc_reg_str_table: global_acc_reg_str

    // Char Database Tables
    char_db: char
    hotkey_db: hotkey
    scdata_db: sc_data
    cart_db: cart_inventory
    inventory_db: inventory
    charlog_db: charlog
    skill_db: skill
    interlog_db: interlog
    memo_db: memo
    guild_db: guild
    guild_alliance_db: guild_alliance
    guild_castle_db: guild_castle
    guild_expulsion_db: guild_expulsion
    guild_member_db: guild_member
    guild_skill_db: guild_skill
    guild_position_db: guild_position
    guild_storage_db: guild_storage
    party_db: party
    pet_db: pet
    friend_db: friends
    mail_db: mail
    mail_attachment_db: mail_attachments
    auction_db: auction
    quest_db: quest
    homunculus_db: homunculus
    skill_homunculus_db: skill_homunculus
    mercenary_db: mercenary
    mercenary_owner_db: mercenary_owner
    elemental_db: elemental
    ragsrvinfo_db: ragsrvinfo
    skillcooldown_db: skillcooldown
    bonus_script_db: bonus_script
    acc_reg_num_table: acc_reg_num
    acc_reg_str_table: acc_reg_str
    char_reg_str_table: char_reg_str
    char_reg_num_table: char_reg_num
    clan_table: clan
    clan_alliance_table: clan_alliance

    // Map Database Tables
    buyingstore_table: buyingstores
    buyingstore_items_table: buyingstore_items
    item_table: item_db
    renewal-item_table: item_db_re
    item2_table: item_db2
    renewal-item2_table: item_db2_re
    item_cash_table: item_cash_db
    item_cash2_table: item_cash_db2
    mob_table: mob_db
    renewal-mob_table: mob_db_re
    mob2_table: mob_db2
    renewal-mob2_table: mob_db2_re
    mob_skill_table: mob_skill_db
    renewal-mob_skill_table: mob_skill_db_re
    mob_skill2_table: mob_skill_db2
    renewal-mob_skill2_table: mob_skill_db2_re
    mapreg_table: mapreg
    sales_table: sales
    vending_table: vendings
    vending_items_table: vending_items
    market_table: market
    roulette_table: db_roulette

    // Use SQL item_db, mob_db and mob_skill_db for the map server? (yes/no)
    use_sql_db: no

    inter_server_conf: inter_server.yml

    import: conf/import/inter_conf.txt
     

     
     
     

    // Athena sockets Configuration file
    // translated (davidsiaw)


    // Display debug reports (When something goes wrong during the report, the report is saved.)
    debug: no

    // How long can a socket stall before closing the connection (in seconds)
    stall_time: 60

    //----- IP Rules Settings -----

    // If IP's are checked when connecting.
    // This also enables DDoS protection.
    enable_ip_rules: yes

    // Order of the checks
    //   deny,allow     : Checks deny rules, then allow rules. Allows if no rules match.
    //   allow,deny     : Checks allow rules, then deny rules. Allows if no rules match.
    //   mutual-failure : Allows only if an allow rule matches and no deny rules match.
    // (default is deny,allow)

    order: deny,allow
    // order: allow,deny
    // order: mutual-failture

    // IP rules
    //   allow : Accepts connections from the ip range (even if flagged as DDoS)
    //   deny  : Rejects connections from the ip range
    // The rules are processed in order, the first matching rule of each list (allow and deny) is used

    // allow: 127.0.0.1
    // allow: 192.168.0.0/16
    // allow: 10.0.0.0/255.0.0.0
    // allow: all

    // deny: 127.0.0.1


    //---- DDoS Protection Settings ----
    // If ddos_count connection request are made within ddos_interval msec, it assumes it's a DDoS attack

    // Consecutive attempts interval (msec)
    // (default is 3000 msecs, 3 seconds)
    ddos_interval: 3000

    // Consecutive attempts trigger
    // (default is 5 attemps)
    ddos_count: 5

    // The time interval after which the threat of DDoS is assumed to be gone. (msec)
    // After this amount of time, the DDoS restrictions are lifted.
    // (default is 600000 msecs, 10 minutes)
    ddos_autoreset: 600000


    import: conf/import/packet_conf.txt

     
     

    // Subnet support file
    // Format is:
    // subnet: net-submask:char_ip:map_ip
    // you can add more than one subnet (max 16)
    // check is if((net-submask & char_ip ) == (net-submask & servip)) => ok

    subnet: 255.255.255.128:xxx.xxx.xxx.xxx:xxx.xxx.xxx.xxx
    subnet: 255.255.255.128:xxx.xxx.xxx.xxx:xxx.xxx.xxx.xxx

    hare.png

  3. how to change this lang?

    Ninja = ´ÑÀÚ
    
    Mechanic_Mado = ¸¶µµ±â¾î
    
    Magician = ¸¶¹ý»ç
    
    Monk = ¸ùÅ©
    
    Monk_ = ¸ùÅ©_h
    
    Monk_Llama = ¸ùÅ©¾ËÆÄÄ«
    
    Summer = ¿©¸§
    
    Magician_Fox = ¿©¿ì¸¶¹ý»ç
    
    Warlock_Fox = ¿©¿ì¿ö·Ï
    
    Sage_Fox = ¿©¿ì¼¼ÀÌÁö
    
    Sorcerer_Fox = ¿©¿ì¼Ò¼­·¯
    
    Wizard_Fox = ¿©¿ìÀ§Àúµå
    
    Professor_Fox = ¿©¿ìÇÁ·ÎÆä¼­
    
    High_Wizard_Fox = ¿©¿ìÇÏÀÌÀ§Àúµå
    
    Alchemist = ¿¬±Ý¼ú»ç
    
    Alchemist_ = ¿¬±Ý¼ú»ç_h
    
    Alchemist_Pig = ¿¬±Ý¼ú»ç¸äµÅÁö
    
    GM = ¿î¿µÀÚ
    
    Baby_Robot_GM = ¿î¿µÀÚ2
    
    Wanderer = ¿ø´õ·¯
    
    Warlock = ¿ö·Ï
    
    Crusader_Peco = ±¸ÆäÄÚÅ©·ç¼¼ÀÌ´õ
    
    Royal_Guard_Gryphon = ±×¸®Æù°¡µå
    
    Knight = 񃯇
    
    Knight_ = 񃯇_h
    
    Archer = ±Ã¼ö
    
    Guillotine_Cross = ±æ·Îƾũ·Î½º
    
    Star_Gladiator_ = 񀬧
    
    Star_Gladiator = ±Ç¼ºÀ¶ÇÕ
    
    Star_Gladiator_Poring = ±Ç¼ºÆ÷¸µ
    
    Knight_Lion = »çÀÚ±â»ç
    
    Rune_Knight_Lion = »çÀڷ鳪ÀÌÆ®
    
    Lord_Knight_Lion = »çÀڷε峪ÀÌÆ®
    
    Royal_Guard_Lion = »çÀڷξⰡµå
    
    Crusader_Lion = »çÀÚÅ©·ç¼¼ÀÌ´õ
    
    Paladin_Lion = »çÀÚÆȶóµò
    
    Xmas = »êŸ
    
    Merchant = »óÀÎ
    
    Merchant_Pig = »óÀθäµÅÁö
    
    Royal_Guard = °¡µå
    
    Tuxedo = °áÈ¥
    
    Gunslinger = °Ç³Ê
    
    Mercenary_Swordsman = °Ë¿ëº´
    
    Swordsman = °Ë»ç
    
    Thief = µµµÏ
    
    Ninja_Frog = µÎ²¨ºñ´ÑÀÚ
    
    Soul_Linker_Frog = µÎ²¨ºñ¼Ò¿ï¸µÄ¿
    
    Ranger = ·¹ÀÎÁ®
    
    Ranger_Warg = ·¹ÀÎÁ®´Á´ë
    
    Rune_Knight = ·é³ªÀÌÆ®
    
    Rune_Knight_Dragon = ·é³ªÀÌÆ®»Ú¶ì
    
    Rune_Knight_Dragon2 = ·é³ªÀÌÆ®»Ú¶ì2
    
    Rune_Knight_Dragon3 = ·é³ªÀÌÆ®»Ú¶ì3
    
    Rune_Knight_Dragon4 = ·é³ªÀÌÆ®»Ú¶ì4
    
    Rune_Knight_Dragon5 = ·é³ªÀÌÆ®»Ú¶ì5
    
    Rogue = ·Î±×
    
    Rogue_ = ·Î±×_h
    
    Lord_Knight = ·Îµå³ªÀÌÆ®
    
    Lord_Knight_Peco = ·ÎµåÆäÄÚ
    
    Sage = ¼¼ÀÌÁö
    
    Sage_ = ¼¼ÀÌÁö_h
    
    Soul_Linker = ¼Ò¿ï¸µÄ¿
    
    Sorcerer = ¼Ò¼­·¯
    
    Acolyte = ¼ºÁ÷ÀÚ
    
    Acolyte_ = ¼ºÁ÷ÀÚ_h
    
    Shadow_Chaser = ½¦µµ¿ìüÀ̼­
    
    Shura = ½´¶ó
    
    Shura_Llama = ½´¶ó¾ËÆÄÄ«
    
    Super_Novice = ½´ÆÛ³ëºñ½º
    
    Super_Novice_Poring = ½´ÆÛ³ëºñ½ºÆ÷¸µ
    
    Crusader_Armored_Peco = ½ÅÆäÄÚÅ©·ç¼¼ÀÌ´õ
    
    Crusader_Armored_Peco_ = ½ÅÆäÄÚÅ©·ç¼¼ÀÌ´õ_h
    
    Sniper = ½º³ªÀÌÆÛ
    
    Stalker = ½ºÅäÄ¿
    
    Arch_Bishop = ¾ÆÅ©ºñ¼ó
    
    Arch_Bishop_Llama = ¾ÆÅ©ºñ¼ó¾ËÆÄÄ«
    
    Assassin = ¾î¼¼½Å
    
    Assassin_ = ¾î¼¼½Å_h
    
    Assassin_Cross = ¾î½Ø½ÅÅ©·Î½º
    
    Minstrel = ¹Î½ºÆ®·²
    
    Mechanic = ¹ÌÄÉ´Ð
    
    Mechanic_Pig = ¹ÌÄɴиäµÅÁö
    
    Bard = ¹Ùµå
    
    Bard_ = ¹Ùµå_h
    
    Novice_Poring = ³ëºñ½ºÆ÷¸µ
    
    Genetic = Á¦³×¸¯
    
    Genetic_Pig = Á¦³×¸¯¸äµÅÁö
    
    Dancer_Ostrich = Á¦³×¸¯¸äµÅÁö
    
    Blacksmith = Á¦Ã¶°ø
    
    Blacksmith_ = Á¦Ã¶°ø_h
    
    Blacksmith_Pig = Á¦Ã¶°ø¸äµÅÁö
    
    Champion = èÇÇ¿Â
    
    Champion_Llama = èÇǿ¾ËÆÄÄ«
    
    Wanderer_Ostrich = ŸÁ¶¿ø´õ·¯
    
    Archer_Ostrich = ŸÁ¶±Ã¼ö
    
    Ranger_Ostrich = ŸÁ¶·¹ÀÎÁ®
    
    Sniper_Ostrich = ŸÁ¶½º³ªÀÌÆÛ
    
    Minstrel_Ostrich = ŸÁ¶¹Î½ºÆ®·²
    
    Bard_Ostrich = ŸÁ¶¹Ùµå
    
    Gypsy_Ostrich = ŸÁ¶Â¤½Ã
    
    Clown_Ostrich = ŸÁ¶Å©¶ó¿î
    
    Hunter_Ostrich = ŸÁ¶ÇåÅÍ
    
    Mercenary_Spearman = â¿ëº´
    
    Wizard = À§Àúµå
    
    Wizard_ = À§Àúµå_h
    
    Creator = Å©¸®¿¡ÀÌÅÍ
    
    Creator_Pig = Å©¸®¿¡ÀÌÅ͸äµÅÁö
    
    Crusader = Å©·ç¼¼ÀÌ´õ
    
    Crusader_ = Å©·ç¼¼ÀÌ´õ_h
    
    Clown = Ŭ¶ó¿î
    
    Taekwon = űǼҳâ
    
    Taekwon_Poring = űǼҳâÆ÷¸µ
    
    Gunslinger_Peco = ÆäÄڰdzÊ
    
    Swordsman_Peco = ÆäÄÚ°Ë»ç
    
    Knight_Peco = ÆäÄÚÆäÄÚ_±â»ç
    
    Knight_Peco_ = ÆäÄÚÆäÄÚ_±â»ç_h
    
    Lord_Knight_Peco = ÆäÄÚÆȶóµò
    
    Lord_Knight = Æȶóµò
    
    Novice = Ãʺ¸ÀÚ
    
    Tuxedo = Åνõµ
    
    Guillotine_Cross_Hyena = Ä̺£·Î½º±æ·Îƾũ·Î½º
    
    Thief_Hyena = Ä̺£·Î½ºµµµÏ
    
    Rogue_Hyena = Ä̺£·Î½º·Î±×
    
    Shadow_Chaser_Hyena = Ä̺£·Î½º½¦µµ¿ìüÀ̼­
    
    Stalker_Hyena = Ä̺£·Î½º½ºÅäÄ¿
    
    Assassin_Hyena = Ä̺£·Î½º¾î½ê½Å
    
    Assassin_Cross_Hyena = Ä̺£·Î½º¾î½ê½ÅÅ©·Î½º
    
    Priest = ÇÁ¸®½ºÆ®
    
    Priest_ = ÇÁ¸®½ºÆ®_h
    
    Priest_Llama = ÇÁ¸®½ºÆ®¾ËÆÄÄ«
    
    Professor = ÇÁ·ÎÆä¼­
    
    Hunter = ÇåÅÍ
    
    Hunter_ = ÇåÅÍ_h
    
    High_Wizard = ÇÏÀÌÀ§Àúµå
    
    High_Priest = ÇÏÀÌÇÁ¸®
    
    High_Priest_Llama = ÇÏÀÌÇÁ¸®½ºÆ®¾ËÆÄÄ«
    
    Whitesmith = È­ÀÌÆ®½º¹Ì½º
    
    Whitesmith_Pig = È­ÀÌÆ®½º¹Ì½º¸äµÅÁö
    
    Kagerou_Frog = frog_kagerou
    
    Oboro_Frog = frog_oboro
    
    Kagerou = kagerou
    
    Acolyte_Llama = º¹»ç¾ËÆÄÄ«
    
    Oboro = oboro

     

  4. any solution?

    On 5/10/2013 at 2:04 PM, Marks said:

    hi, i have a problem with char and map...

     

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

    [status]: Connecting to 127.0.0.1:6121
    [status]: Logging in to char server...
    [Warning]: Connection to Char Server lost.

     

    x100  10/seg

    any solution?

  5. //===== rAthena Script =======================================
    //= Job Master
    //===== Description: =========================================
    //= A fully functional job changer.
    //===== Additional Comments: =================================
    //= 1.0 Initial script. [Euphy]
    //= 1.1 Fixed reset on Baby job change.
    //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support.
    //= 1.3 Kagerou/Oboro added.
    //= 1.4 Rebellion added.
    //= 1.5 Added option to disable RebirthClass. [mazvi]
    //= 1.6 Added option to get job related equipment on change. [Braniff]
    //= 1.7 Readability changes. Also added BabyExpanded and BabySummoner classes. [Jey]
    //= 1.8 Added option to disable Baby Novice Only but Baby Class can be Enabled [mazvi]
    //= 1.9 Migrate/Integrate to Global Functions Platinum Skills. [mazvi]
    //============================================================
    
    prontera,172,182,1    script    Job Master    588,{
    function Get_Job_Equip;
    // Checks if the Player has the required level.
    // closes if not, returns if yes
    function    Require_Level    {
        if (BaseLevel < getarg(0) || JobLevel < getarg(1)) {
            .@blvl = getarg(0) - BaseLevel;
            .@jlvl = getarg(1) - JobLevel;
            mes "Level requirement:";
            mes ((getarg(0)>1)? 
                "^bb0000"+getarg(0)+"^000000 (^bb0000Base^000000) / ":"")+"^00bb00"+
                getarg(1)+"^000000 (^00bb00Job^000000)";
            mes "You need " +
                ((.@blvl > 0) ? "^bb0000"+.@blvl+"^000000 more base levels " + 
                    ((.@jlvl > 0) ? "and " : "") : "") +
                ((.@jlvl > 0) ? "^00bb00"+.@jlvl+"^000000 more job levels " : "") +
                "to continue.";
            close;
        }
        return;
    }
    
    // Checks if the given eac is a baby class
    function Is_Baby    {
        return ((getarg(0, eaclass())&EAJL_BABY)>0);
    }
    
    // Checks if the player can change to third class.
    // Note: This does not include the level checks.
    function    Can_Change_Third    {
        // To change to third class you either need to be:
        // * Second Class
        // * Transcendent Second Class
        // * Baby Second Class
        if( !.ThirdClass )
            return false; // Third job change disabled
        if( !(eaclass()&EAJL_2) )
            return false; // Not second Class
        if( eaclass()&EAJL_THIRD )
            return false; // Already Third Class
        if( roclass(eaclass()|EAJL_THIRD) < 0 )
            return false; // Job has no third Class
        if( (eaclass()&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE )
            return false; // Exp. Super Novice equals 3rd Cls, but has it's own case
        if( Is_Baby() && (!.BabyClass || !.BabyThird) )
            return false; // No Baby (Third) change allowed
        return true;
    }
    
    function    Can_Rebirth    {
        // To rebirth, you need to be:
        // * Second Class
        if( !.RebirthClass )
            return false; // Rebirth disabled
        if( !(eaclass()&EAJL_2) )
            return false; // Not second Class
        if( eaclass()&EAJL_UPPER )
            return false; // Already Rebirthed
        if( roclass(eaclass()|EAJL_UPPER) < 0 )
            return false; // Job has no transcended class
        if( Is_Baby() && !.BabyClass )
            return false; // No Baby changes allowed
        return true;
    }
    
    // Checks if the given eac is a first class
    function    Is_First_Cls    {
        return (getarg(0) <= EAJ_TAEKWON);
    }
    
    function    Check_Riding    {
        // Note: Why we should always check for Riding:
        // Mounts are considered as another class, which
        // would make this NPC bigger just to handle with
        // those special cases.
        if (checkfalcon() || checkcart() || checkriding() || ismounting()) {
            mes "Please remove your " +
                ((checkfalcon()) ? "falcon" : "") +
                ((checkcart()) ? "cart" : "") +
                ((checkriding()) ? "Peco" : "") +
                ((ismounting()) ? "mount" : "") +
                " before proceeding.";
            close;
        }
        return;
    }
    function    Check_SkillPoints    {
        if (.SkillPointCheck && SkillPoint) {
            mes "Please use all your skill points before proceeding.";
            close;
        }
        return;
    }
    
    // addJobOptions is essentially the same like
    // setarray .@array[getarraysize(.@array)],opt1,opt2,...;
    // It's just easier to read, since we're using it very often
    function    Job_Options    {
        .@argcount = getargcount();
        .@arr_size = getarraysize(getarg(0));
        for( .@i = 1; .@i < .@argcount; .@i++) {
            setarray getelementofarray(getarg(0), .@arr_size++),getarg(.@i);
        }
    }
    
    // Begin of the NPC
        mes .NPCName$;
        Check_Riding();
        Check_SkillPoints();
    
        // initialisation
        deletearray .@job_opt[0],getarraysize(.@job_opt);
        .@eac = eaclass();
        .@third_possible = Can_Change_Third();
        .@rebirth_possible = Can_Rebirth();
        .@first_eac = .@eac&EAJ_BASEMASK;
        .@second_eac = .@eac&EAJ_UPPERMASK;
        // Note: These are already set in pc.c
        // BaseClass = roclass(.@eac&EAJ_BASEMASK) which is the players First Class
        // BaseJob = roclass(.@eac&EAJ_UPPERMASK) which is the players Second Class
        //dispbottom "Debug: eac ("+.@eac+"), third ("+.@third_possible+"), rebirth("+.@rebirth_possible+"), BaseClass ("+BaseClass+"), BaseJob ("+BaseJob+")";
            
        // From here on the jobmaster checks the current class
        // and fills the the array `.@job_opt` with possible
        // job options for the player.
        
        if( .@rebirth_possible ) {
            // Rebirth option (displayed on the top of the menu)
            Require_Level(.Req_Rebirth[0], .Req_Rebirth[1]);
            Job_Options(.@job_opt, Job_Novice_High);
        }
        if( .@third_possible ) {
            // Third Job change (displayed below rebirth)
            Require_Level(.Req_Third[0], .Req_Third[1]);
            Job_Options(.@job_opt, roclass(.@eac|EAJL_THIRD));
        }
         
        if (.SecondExpanded && 
           (.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE && // is Super Novice
           !(eaclass()&EAJL_THIRD) ) {                     // not already Expanded SN
            // (Baby) Super Novice to Expanded (Baby) Super Novice
               if( !Is_Baby(.@eac) || (.BabyClass && .BabyExpanded) ) {
                // .BabyClass & .BabyExpanded must be enabled if the is a baby
                Require_Level(.Req_Exp_SNOVI[0], .Req_Exp_SNOVI[1]);
                Job_Options(.@job_opt,roclass(.@eac|EAJL_THIRD)); // Expanded SN is "third" cls
            }
        }
        
        if (.SecondExpanded && 
            ((.@eac&(~EAJL_BABY)) == EAJ_NINJA ||         // is (Baby) Ninja
            (.@eac&(~EAJL_BABY)) == EAJ_GUNSLINGER)) {    // is (Baby) Gunslinger
            // (Baby) Ninja to (Baby) Kagerou / Oboro
            // (Baby) Gunslinger to (Baby) Rebellion
            if( !Is_Baby(.@eac) || (.BabyClass && .BabyExpanded) ) {
                // .BabyClass & .BabyExpanded must be enabled if the is a baby
                Require_Level(.Req_Exp_NJ_GS[0], .Req_Exp_NJ_GS[1]);
                // Kagerou, Oboro, Rebellion are considered as a 2-1 class
                Job_Options(.@job_opt, roclass(.@eac|EAJL_2_1));
            }
        }
        
        // Player is Job_Novice, Job_Novice_High or Job_Baby
        if (.@first_eac == EAJ_NOVICE && .@second_eac != EAJ_SUPER_NOVICE) {
            // MAPID_NOVICE, MAPID_SUPER_NOVICE, MAPID_NOVICE_HIGH, MAPID_BABY
            Require_Level(.Req_First[0], .Req_First[1]);
            switch(Class) {
                case Job_Novice:
                    // First job change
                    Job_Options(.@job_opt,Job_Swordman,
                        Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief,
                        Job_Super_Novice, Job_Taekwon, Job_Gunslinger, Job_Ninja);
                    if( .BabyNovice )
                        Job_Options(.@job_opt, Job_Baby);
                    break;
                case Job_Novice_High:
                    // Job change after rebirth
                    if( .LastJob && lastJob )
                        Job_Options(.@job_opt,
                            roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
                    else
                        Job_Options(.@job_opt, 
                            Job_Swordman_High, Job_Mage_High, Job_Archer_High,
                            Job_Acolyte_High, Job_Merchant_High, Job_Thief_High);
                    break;
                case Job_Baby:
                    if( !.BabyClass )
                        break;
                    // First job change as a baby
                    Job_Options(.@job_opt, Job_Baby_Swordman, Job_Baby_Mage,
                        Job_Baby_Archer,Job_Baby_Acolyte, Job_Baby_Merchant,
                        Job_Baby_Thief);
                    if( .BabyExpanded )
                        Job_Options(.@job_opt, Job_Super_Baby, Job_Baby_Taekwon,
                            Job_Baby_Gunslinger, Job_Baby_Ninja);
                    if( .BabySummoner )
                        Job_Options(.@job_opt, Job_Baby_Summoner);
                    break;
                default:
                    mes "An error has occurred.";
                    close;
            }
        } else if( Is_First_Cls(.@eac) ||                 // First Class
                   Is_First_Cls(.@eac&(~EAJL_UPPER)) ||    // Trans. First Cls
                   (.BabyClass && Is_First_Cls(.@eac&(~EAJL_BABY))) ) {    // Baby First Cls
            // Player is First Class (not Novice)
            // most jobs should have two options here  (2-1 and 2-2)
            .@class1 = roclass(.@eac|EAJL_2_1); // 2-1
            .@class2 = roclass(.@eac|EAJL_2_2); // 2-2
            // dispbottom "Debug: Classes: class1 ("+.@class1+"), class2 ("+.@class2+")";
            if(.LastJob && lastJob && (.@eac&EAJL_UPPER)) {
                // Player is rebirth Cls and linear class changes are enforced
                Require_Level(.Req_Second[0], .Req_Second[1]);
                Job_Options(.@job_opt, lastJob + Job_Novice_High);
            } else {
                // Class is not enforced, player can decide.
                if( .@class1 > 0 ) { // 2-1
                    Require_Level(.Req_Second[0], .Req_Second[1]);
                    Job_Options(.@job_opt, .@class1);
                }
                if( .@class2 > 0 ) { // 2-2
                    Require_Level(.Req_Second[0], .Req_Second[1]);
                    Job_Options(.@job_opt, .@class2);
                }
            }
        }
        
        // Displaying the Job Menu defined by .@job_opt.
        // .@job_opt should not be changed below this line.
        function Job_Menu;
        Job_Menu(.@job_opt);
        close;
    
    // Displays the job menu
    function    Job_Menu    {
        // getarg(0) is the .@job_opt array holding all available job changes.
        function Confirm_Change;
        while(true) {
            .@opt_cnt =  getarraysize(getarg(0));
            if( .@opt_cnt <= 0 ) {
                mes "No more jobs are available.";
                close;
            }
    
            .@selected = 0; // Just a single job class given, no select needed
            if (.@opt_cnt > 1) {
                // Multiple job classes given. Select one and save it to .@class
                // After that confirm .@class
                mes "Select a job.";
                .@menu$ = "";
                for (.@i = 0; .@i < .@opt_cnt; .@i++) {
                    if( getelementofarray(getarg(0), .@i) == Job_Novice_High)
                        .@jobname$ = "^0055FFRebirth^000000";
                    else
                        .@jobname$ = jobname(getelementofarray(getarg(0), .@i));
                    .@menu$ = .@menu$ + " ~ " + .@jobname$ + ":";
                }
                .@menu$ = .@menu$+" ~ ^777777Cancel^000000";
                .@selected = select(.@menu$) - 1;
                if( .@selected < 0 || .@selected >= .@opt_cnt )
                    close;
                next;
                mes .NPCName$;
            }
            .@class = getelementofarray(getarg(0), .@selected);
            if ((.@class == Job_Super_Novice || .@class == Job_Super_Baby) &&
                    BaseLevel < .SNovice) {
                // Special Level Requirement because Super Novice and
                // Super Baby can both be selected in one of the first class
                // changes. That's why the Level Requirement is after and not before
                // the selection.
                mes "A base level of " + .SNovice +
                    " is required to turn into a " + jobname(.@class) + ".";
                return;
            }
            // Confirm the Class
            Confirm_Change(.@class, .@opt_cnt > 1);
            next;
            mes .NPCName$;
        }
        return;
    }
    
    
    // Executes the actual jobchange and closes.
    function    Job_Change    {
        .@to_cls = getarg(0);
        next;
        mes .NPCName$;
        mes "You are now " + callfunc("F_InsertArticle", jobname(.@to_cls)) + "!";
        if (.@to_cls == Job_Novice_High && .LastJob)
            lastJob = Class; // Saves the lastJob for rebirth
        jobchange .@to_cls;
        if (.@to_cls == Job_Novice_High)
            resetlvl(1);
        else if (.@to_cls == Job_Baby) {
            resetstatus;
            resetskill;
            set SkillPoint,0;
        }
        specialeffect2 EF_ANGEL2;
        specialeffect2 EF_ELECTRIC;
        if (.Platinum)
            callfunc "F_GetPlatinumSkills";
        if (.GetJobEquip)
            Get_Job_Equip();
        close; // Always closes after the change
    }
    
    function    Confirm_Change    {
        // Player confirms he want to change into .@class
        .@class = getarg(0, -1);
        .@back = getarg(1, false);
        if( .@class < 0 ) {
            mes "Unknown Class Error.";
            close;
        }
        mes "Do you want to change into ^0055FF"+jobname(.@class)+"^000000 class?";
        .@job_option$ = " ~ Change into ^0055FF"+jobname(.@class)+"^000000 class";
        if( .@class == Job_Novice_High)
            .@job_option$ = " ~ ^0055FFRebirth^000000";
        
        if (select(.@job_option$+": ~ ^777777" + 
                ((.@back) ?"Go back" : "Cancel") + "^000000") == 1) {
            Job_Change(.@class);
        }
        if (!.@back)
            close; // "Cancel" pressed
        return;
    }
    
    // Function which gives a job related item to the player
    // the items are the rewards from the original job change quests
    function    Get_Job_Equip    {
        // Note: The item is dropping, when the player can't hold it.
        // But that's better than not giving the item at all.
        .@eac = eaclass();
        if( .@eac&EAJL_THIRD ) {
            // Third Class Items
            getitem 2795,1;    //    Green Apple Ring for every 3rd Class
            switch(BaseJob) {
                // BaseJob of Third Cls
                // For Normal Third, Baby Third and Transcended Third Cls
                case Job_Knight:
                    getitem 5746,1;    break;    //    Rune Circlet [1]
                case Job_Wizard:
                    getitem 5753,1;    break;    //    Magic Stone Hat [1]
                case Job_Hunter:
                    getitem 5748,1;    break;    //    Sniper Goggle [1]
                case Job_Priest:
                    getitem 5747,1;    break;    //    Mitra [1]
                case Job_Blacksmith:
                    getitem 5749,1;    break;    //    Driver Band [1]
                case Job_Assassin:
                    getitem 5755,1;    break;    //    Silent Executor [1]
                case Job_Crusader:
                    getitem 5757,1;    break;    //    Dip Schmidt Helm [1]
                case Job_Sage:
                    getitem 5756,1;    break;    //    Wind Whisper [1]
                case Job_Bard:
                    getitem 5751,1;    break;    //    Maestro Song's Hat [1]
                case Job_Dancer:
                    getitem 5758,1;    break;    //    Dying Swan [1]
                case Job_Monk:
                    getitem 5754,1;    break;    //    Blazing Soul [1]
                case Job_Alchemist:
                    getitem 5752,1;    break;    //    Midas Whisper[1]
                case Job_Rogue:
                    getitem 5750,1;         //    Shadow Handicraft [1]
                    getitem 6121,1;            //    Makeover Brush
                    getitem 6122,1;    break;    //    Paint Brush
            }
        } else if (.@eac&EAJL_2) {
            // Second Class (And not Third Class)
            switch(BaseJob) {
                // Second Class
                case Job_Knight:
                    getitem 1163,1;    break;    //    Claymore [0]
                case Job_Priest:
                    getitem 1522,1;    break;    //    Stunner [0]
                case Job_Wizard:
                    getitem 1617,1;    break;    //    Survivor's Rod [0]
                case Job_Blacksmith:
                    getitem 1360,1;    break;    //    Two-Handed-Axe [1]
                case Job_Hunter:
                    getitem 1718,1;    break;    //    Hunter Bow [0]
                case Job_Assassin:
                    getitem 1254,1;    break;    //    Jamadhar [0]
                case Job_Crusader:
                    getitem 1410,1;    break;    //    Lance [0]
                case Job_Monk:
                    getitem 1807,1;    break;    //    Fist [0]
                case Job_Sage:
                    getitem 1550,1;    break;    //    Book [3]
                case Job_Rogue:
                    getitem 1222,1;    break;    //    Damascus [1]
                case Job_Alchemist:
                    getitem 1126,1;    break;    //    Saber [2]
                case Job_Bard:
                    getitem 1907,1;    break;    //    Guitar [0]
                case Job_Dancer:
                    getitem 1960,1;    break;    //    Whip [1]
                case Job_Super_Novice:
                    getitem 1208,1;    break;    //    Main Gauche [4]
                case Job_Gunslinger:
                    getitem 13101,1; break;    //    Six Shooter [2]
                case Job_Ninja:
                    getitem 13010,1; break;    //    Asura [2]
                case Job_Star_Gladiator:
                    getitem 1550,1;    break;    //    Book [3]
                case Job_Soul_Linker:
                    getitem 1617,1;    break;    //    Survivor's Rod [0]
            }
        } else {
            // Neither Second or Third Cls
            // => First Cls or not covered by the switch
            switch(BaseClass) {
                // First Class
                case Job_Swordman:
                    getitem 1108,1;    break;    //    Blade [4]
                case Job_Mage:
                    getitem 1602,1;    break;    //    Rod [4]
                case Job_Archer:
                    getitem 1705,1;    break;    //    Composite Bow [4]
                case Job_Acolyte:
                    getitem 1505,1;    break;    //    Mace [4]
                case Job_Merchant:
                    getitem 1302,1;    break;    //    Axe [4]
                case Job_Thief:
                    getitem 1208,1;    break;    //    Main Gauche [4]
            }
        }
        return;
    }
    
    OnInit:
        // Initialisation, do not edit these
        .NPCName$ = "[Job Master]";
        
        // Settings
        .ThirdClass = true;            // Enable third classes?
        .RebirthClass = true;            // Enable rebirth classes?
        .SecondExpanded = true;        // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion?
        .BabyNovice = true;    // Enable Baby novice classes? Disable it if you like player must have parent to get job baby.
        .BabyClass = true;                // Enable Baby classes?
        .BabyThird = true;                // Enable Baby third classes?
        .BabyExpanded = true;            // Enable Baby Expanded classes: Ex. Baby Ninja, Baby Taekwon, etc.
        .BabySummoner = false;            // Enable Baby Summoner?
        .LastJob = true;                // Enforce linear class changes?
        .SkillPointCheck = true;        // Force player to use up all skill points?
        .Platinum = false;                // Get platinum skills automatically?
        .GetJobEquip = false;            // Get job equipment (mostly weapons) on job change?
    
        // Level Requirements
        setarray .Req_First[0],1,10;         // Minimum base level, job level to turn into 1st class
        setarray .Req_Second[0],1,40;         // Minimum base level, job level to turn into 2nd class
        setarray .Req_Rebirth[0],99,50;        // Minimum base level, job level to rebirth
        setarray .Req_Third[0],99,50;        // Minimum base level, job level to change to third class
        setarray .Req_Exp_NJ_GS[0],99,70;     // Minimum base level, job level to turn into Expanded Ninja and Gunslinger
        setarray .Req_Exp_SNOVI[0],99,99;     // Minimum base level, job level to turn into Expanded Super Novice
        .SNovice = 45;                        // Minimum base level to turn into Super Novice
        
        // Setting adjustments by PACKETVER
        if( PACKETVER < 20161207 ) {
            if( .BabyExpanded )
                debugmes "jobmaster: BabyExpanded is disabled due to outdated PACKETVER.";
            if( .BabySummoner )
                debugmes "jobmaster: BabySummoner is disabled due to outdated PACKETVER.";
            .BabyExpanded = false;
            .BabySummoner = false;
        }
        end;
    }

     

  6. On 12/10/2013 at 7:07 AM, Patskie said:

    I believe i have answered your request many times with this content. Want this color, Want that and so on. Please refer to Announce. The color part there is in format ( 0xRRGGBB ). You can choose colors here. Choose a color and disregard the # in the first part and replace it by 0x. Easy as that :P

    
    - announce strcharinfo(0)+ " has entered PVP ARENA",0;
    + announce strcharinfo(0)+ " has entered PVP ARENA",0,0xFF3399;

    + and - meaning?

×
×
  • Create New...