Jump to content

Brian

Members
  • Posts

    2223
  • Joined

  • Last visited

  • Days Won

    24

Community Answers

  1. Brian's post in Char names appear above head was marked as the answer   
    The client command is /font to switch between showing names above/below characters.
    /showname also changes the way names are displayed (bolder, with guild title above name; guild and part names are hidden).
  2. Brian's post in Nginx was marked as the answer   
    They have a wiki with Install and Configuration instructions.
    http://wiki.nginx.org/Install
    http://wiki.nginx.org/Configuration
  3. Brian's post in Map checks using array variables was marked as the answer   
    Yes, every single map needs the loadevent mapflag in order to trigger OnPCLoadMapEvent ... unless you did one of these source edits
    1) when maps are loaded, loadevent mapflag is added to every map
    2) change OnPCLoadMapEvent to trigger on all maps, even if they don't have the loadevent mapflag
    It looks like (almost) all your maps in .@mapname$[] are already listed in trunk/conf/mapflag/town.txt right? Then you could just check mapflag#town.
    - script undisguise_me -1,{ OnPCLoadMapEvent: if (!getmapflag(strcharinfo(3), mf_town)) { undisguise; } end; }
  4. Brian's post in input error was marked as the answer   
    input .@freeset$;You're storing the input as a string, but then you're doing numeric comparisons. if ( .@freeset$ == 0 || .@freeset$ >= 3 )
    Instead, you should store the input variable in an integer:
    input .@freeset;
  5. Brian's post in Scripting with a little bit of SQL was marked as the answer   
    The script command query_sql() returns the number of rows your SQL query returned.
    So if(query_sql() == 0) will be true when the SQL query returned no rows, in this case meaning the code they entered was not found.
  6. Brian's post in MVP Spawn Time was marked as the answer   
    trunk/doc/script_commands.txt
      So to make it 1 - 2 hours:
    delay1 = 3600000
    delay2 = 3600000
  7. Brian's post in How to run Server on EASY VPN!? was marked as the answer   
    Yes, you put your IP Address that EasyVPN assigns your computer.
    That's also the IP you will put in clientinfo.xml so your players can connect.
  8. Brian's post in VIP System was marked as the answer   
    Since the script checks their VIP time every time they login (and adjusts their GM level to 1 if they still have VIP time left), it's not necessary to edit their `group_id` in SQL. But if you really want the script to do that, find these lines (line 32 and 40)
    atcommand "@adjgroup 1 "+strcharinfo(0); atcommand "@adjgroup 0 "+strcharinfo(0);and right after each of those lines, you can add query_sql to change their group_id in SQL.
  9. Brian's post in Delete NPC was marked as the answer   
    [Employee Ahee] is in trunk/npc/merchants/inn.txt (line 79)
    //======================= Payon ====================================== payon_in01,132,62,5 script Inn Employee#Ahee 53,{
    callfunc "F_InnMaid","[Employee Ahee]","Payon Inn","payon_in01",136,61;
    warp "payon_in01",132,11; end;
    }

  10. Brian's post in Whats happend to the charlog_db ? was marked as the answer   
    The `charlog` table is part of the "ragnarok" database.
    (reasoning was: so the char server does not have to make a 2nd MySQL connection to the "logs" database)
    The `charlog` table will be created when you import trunk/sql-files/main.sql
    -- -- Table structure for table `charlog` -- CREATE TABLE IF NOT EXISTS `charlog` ( `time` datetime NOT NULL default '0000-00-00 00:00:00', `char_msg` varchar(255) NOT NULL default 'char select', `account_id` int(11) NOT NULL default '0', `char_num` tinyint(4) NOT NULL default '0', `name` varchar(23) NOT NULL default '', `str` int(11) unsigned NOT NULL default '0', `agi` int(11) unsigned NOT NULL default '0', `vit` int(11) unsigned NOT NULL default '0', `int` int(11) unsigned NOT NULL default '0', `dex` int(11) unsigned NOT NULL default '0', `luk` int(11) unsigned NOT NULL default '0', `hair` tinyint(4) NOT NULL default '0', `hair_color` int(11) NOT NULL default '0' ) ENGINE=MyISAM;
  11. Brian's post in You are running eAthena as the root superuser. was marked as the answer   
    Yea, that message was removed/changed in rAthena r15121.
     
    Were there any other errors after this warning? If you're running the servers through SSH, the output should still show in the SSH window.
    If you're running the servers in a GUI and the windows close, open a terminal (Ctrl+Alt+T), cd to your *Athena folder, and start each server. Then the window should stay open so you can see all output, even after it crashes.
     
     
    *create a non-root Linux user to run Athena
  12. Brian's post in Error 10061 was marked as the answer   
    Are you setting up rAthena on your computer? Windows?
    Are the login, char, and map servers all running on the same computer?
    In char_athena.conf, what did you set login_ip to?
  13. Brian's post in ? @Command was marked as the answer   
  14. Brian's post in can I request security storage like this? was marked as the answer   
    Here is the diff, updated for the latest rAthena (r17160):
    storagepass-r17160.diff
    stop your login,char,map servers apply the diff recompile your map-server start your servers
  15. Brian's post in Backpack ( SQL ) was marked as the answer   
    From search: http://www.google.com/search?q=eathena+backpack
    (v3)Backpack Function by goddameit2
  16. Brian's post in Item Kicker Script was marked as the answer   
    Set the item_id(s) in the array on line 3.
    http://rathena.kpaste.net/eb47?raw
    - script kick_if_have_item -1,{ OnInit: setarray .item_id[0], 55555; // check non-character places for (set .@i,0; .@i<getarraysize(.item_id); set .@i,.@i+1) { set .@count, query_sql("SELECT nameid FROM `auction` WHERE nameid="+.item_id[.@i], .@nameid); if (.@count > 0) debugmes "item_id "+.item_id[.@i]+" found in `auction` table. Count: " + .@count; set .@count, query_sql("SELECT nameid FROM `guild_storage` WHERE nameid="+.item_id[.@i], .@nameid); if (.@count > 0) debugmes "item_id "+.item_id[.@i]+" found in `guild_storage` table. Count: " + .@count; set .@count, query_sql("SELECT nameid FROM `mail` WHERE nameid="+.item_id[.@i], .@nameid); if (.@count > 0) debugmes "item_id "+.item_id[.@i]+" found in `mail` table. Count: " + .@count; } end; OnPCLoginEvent: for (set .@i,0; .@i<getarraysize(.item_id); set .@i,.@i+1) { if (countitem(.item_id[.@i]) > 0) { set .@where$, "inventory"; goto S_KickChar; } else if (query_sql("SELECT nameid FROM `cart_inventory` WHERE nameid="+.item_id[.@i], .@nameid) > 0) { set .@where$, "cart_inventory"; goto S_KickChar; } else if (query_sql("SELECT nameid FROM `storage` WHERE nameid="+.item_id[.@i], .@nameid) > 0) { set .@where$, "storage"; goto S_KickChar; } } end; S_KickChar: debugmes "item_id "+.item_id[.@i]+" found in "+strcharinfo(0)+"'s "+.@where$+". Kicking..."; sleep2 100; atcommand "@kick "+strcharinfo(0); end; }
  17. Brian's post in ERROR on MVP ROOM SCRIPT I FOUND HELP PLEASE was marked as the answer   
    getmapmobs was removed from rAthena in r15530/.
    You can use mobcount instead.
    if ( mobcount("this","all") > 0 ) {
  18. Brian's post in Agit points was marked as the answer   
    Here you go: http://rathena.kpaste.net/01a815b8cf?raw
    point values for each castle are set in the OnInit section when the script loads, it will attempt to add the `agit_points` column to the `guild` table. (If you see a MySQL error in the map-server, it means your MySQL user doesn't have the ALTER privilege. You will have to connect to your MySQL server as root and manually execute the ALTER TABLE query.)
  19. Brian's post in Guild Pack Information Giver was marked as the answer   
    Done, now the script will only allow a Guild Package once-per-account.
    Make sure you delete the 2 SQL table and re-run the SQL queries lines 4-21, because I added a SQL column.
    guild_pack_info.txt
    NOTE: this script reads guild info from SQL (since there are no script commands to get guild member info). Guild info is only saved to SQL every 60 seconds (autosave_time in trunk/conf/char_athena.conf). This means if a member was just added to guild, the guild master will have to wait 60 seconds before it's saved to SQL and the NPC can see that information.
  20. Brian's post in Ragnarok Installation on Offdladed MySQL Hosting? was marked as the answer   
    Setup rAthena like you normally would, except these steps: Installation_(CentOS)#Create_SQL_database_for_rAthena and Installation_(CentOS)#Import_MySQL_Tables you would execute on your remote MySQL Server.
    Then when you edit trunk/conf/inter_athena.conf, you would put the MySQL host, user, pass for your remote MySQL server.
  21. Brian's post in Duplicate Castle was marked as the answer   
    Define the map as a castle in trunk/db/castle_db.txt
    You will also need to edit trunk/npc/guild/agit_main.txt
    Search for these sections: // Add custom Guild Castles here
    and add the appropriate info for your map (emp coordinates, monster spawns, donpcevent, guild town warp coordinates, guardian coordinates, guild dungeon warp coordinates, treasure mob_id/coordinates, etc.)
  22. Brian's post in How to properly do a wipe out was marked as the answer   
    Do you only want to keep login accounts?
    Then execute these queries to delete all other information:
    TRUNCATE TABLE `auction`; TRUNCATE TABLE `cart_inventory`; TRUNCATE TABLE `charlog`; TRUNCATE TABLE `char`; TRUNCATE TABLE `elemental`; TRUNCATE TABLE `friends`; TRUNCATE TABLE `global_reg_value`; TRUNCATE TABLE `guild_alliance`; TRUNCATE TABLE `guild_castle`; TRUNCATE TABLE `guild_expulsion`; TRUNCATE TABLE `guild_member`; TRUNCATE TABLE `guild_position`; TRUNCATE TABLE `guild_skill`; TRUNCATE TABLE `guild_storage`; TRUNCATE TABLE `guild`; TRUNCATE TABLE `homunculus`; TRUNCATE TABLE `hotkey`; TRUNCATE TABLE `interlog`; TRUNCATE TABLE `interreg`; TRUNCATE TABLE `inventory`; TRUNCATE TABLE `ipbanlist`; TRUNCATE TABLE `mail`; TRUNCATE TABLE `mapreg`; TRUNCATE TABLE `memo`; TRUNCATE TABLE `mercenary_owner`; TRUNCATE TABLE `mercenary`; TRUNCATE TABLE `party`; TRUNCATE TABLE `pet`; TRUNCATE TABLE `quest`; TRUNCATE TABLE `ragsrvinfo`; TRUNCATE TABLE `sc_data`; TRUNCATE TABLE `skill_homunculus`; TRUNCATE TABLE `skill`; TRUNCATE TABLE `sstatus`; TRUNCATE TABLE `storage`;
  23. Brian's post in How to delete file at my GRF using Thor Patcher? was marked as the answer   
    You specify the file path and filename like this:

    http://www.eathena.ws/board/index.php?act=findpost&pid=1216681
  24. Brian's post in Breaker Rankings NPC was marked as the answer   
    1. edit these 2 guild files like so:
    Index: npc/guild2/agit_main_se.txt ===================================================================
    --- npc/guild2/agit_main_se.txt (revision 17127)
    +++ npc/guild2/agit_main_se.txt (working copy)
    @@ -601,6 +601,7 @@
    end;
    OnStartArena:
    + set breaker_points, breaker_points +1;
    set .@GID,getcharid(2);
    set .@region$, (compare(strnpcinfo(4),"arug"))?"Valfreyja":"Nithafjoll";
    // Lower castle Economy
    Index: npc/guild/agit_main.txt
    ===================================================================
    --- npc/guild/agit_main.txt (revision 17127)
    +++ npc/guild/agit_main.txt (working copy)
    @@ -99,6 +99,7 @@
    // The Emperium has been broken.
    OnAgitBreak:
    + set breaker_points, breaker_points +1;
    set .@GID,getcharid(2);
    // Show and log error if an unguilded player breaks the Emperium. (Should NEVER happen)
    if (.@GID <= 0) {

    2. load this script: http://rathena.kpaste.net/934c?rawprontera,155,188,0 script Emp Break Ladder 910,{ switch(select("View Emp Break Ladder:Redeem points for TCG:More Info")) {
    case 1:
    query_sql "SELECT `char`.`name`, guild.`name`, CAST(`value` AS UNSIGNED) " +
    "FROM global_reg_value " +
    "LEFT JOIN `char` ON global_reg_value.char_id=`char`.char_id " +
    "LEFT JOIN `guild` ON `char`.guild_id=guild.guild_id " +
    "WHERE global_reg_value.`str`='breaker_points' " +
    "ORDER BY CAST(`value` AS UNSIGNED) DESC LIMIT 10",
    .@name$, .@guild$, .@points;
    mes "[Top 10 Emp Breakers]";
    for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) {
    mes (.@i+1) +". ^0000FF"+ .@name$[.@i] +"^000000, "+ .@guild$[.@i] +" ("+ .@points[.@i] +((.@points[.@i]==1)?" pt":" pts")+")";
    }
    break;
    case 2:
    mes "[Emp Break Ladder]";
    mes "Total Emp Breaks: " + breaker_points;
    mes "Available Points: " + (breaker_points - breaker_tcg);
    if (breaker_points == 0) {
    mes "You have not broke the emp yet!";
    } else if (breaker_points <= breaker_tcg) {
    mes "You've already exchanged all your points for TCG.";
    mes "Come back after you break the emp again!";
    } else {
    set .@reward, breaker_points - breaker_tcg;
    if (select("Redeem points for "+.@reward+" TCG:Cancel") == 2) {
    mes "Come back if you change your mind.";
    } else if (checkweight(7227, .@reward) == 0) {
    mes "You are overweight or carrying too many items.";
    } else {
    getitem 7227, .@reward;
    set breaker_tcg, breaker_tcg + .@reward
    mes "Here are your "+.@reward+" TCG!";
    }
    }
    break;
    case 3:
    mes "[Emp Break Ladder]";
    mes "Each time you break the emp, you earn 1 point.";
    mes "Then, talk to me to redeem your point(s) for TCG.";
    break;
    }
    close;
    }

  25. Brian's post in How to set no killing steal on map? was marked as the answer   
    Yes, 3600000 means after playerA damages the monster, no other player can damage that monster (kill steal) for 1 hour.
×
×
  • Create New...