Jump to content

Brian

Members
  • Posts

    2223
  • Joined

  • Last visited

  • Days Won

    24

Community Answers

  1. Brian's post in Healer to heal Homunculus was marked as the answer   
    Add a custom hompercentheal script command.
    http://trac.assembla.com/raijero/changeset/1142/
  2. Brian's post in Restarting X Window system in Centos 5 was marked as the answer   
    If Ctrl+Alt+Backspace closes the X Window System and doesn't restart it, type this at the command prompt:

    startx
    You could also reboot the server, and that will restart the X Window System.

    reboot or
    shutdown -r now
  3. Brian's post in Where to locate 3rd Class Quest? was marked as the answer   
    trunk/npc/re/merchants/renters.txt
  4. Brian's post in Disable Assumptio during woe was marked as the answer   
    That only blocks Assumptio on GvG maps (they can still cast it in town, then enter the WoE castle).
    Instead, you could use a script to remove SC_ASSUMPTIO when they enter guild castles:

    - script remove_assumptio -1,{ OnPCLoadMapEvent: if (getmapflag(strcharinfo(3),mf_gvg)) sc_end SC_ASSUMPTIO; end; } aldeg_cas01 mapflag loadevent aldeg_cas02 mapflag loadevent aldeg_cas03 mapflag loadevent aldeg_cas04 mapflag loadevent aldeg_cas05 mapflag loadevent gefg_cas01 mapflag loadevent gefg_cas02 mapflag loadevent gefg_cas03 mapflag loadevent gefg_cas04 mapflag loadevent gefg_cas05 mapflag loadevent payg_cas01 mapflag loadevent payg_cas02 mapflag loadevent payg_cas03 mapflag loadevent payg_cas04 mapflag loadevent payg_cas05 mapflag loadevent prtg_cas01 mapflag loadevent prtg_cas02 mapflag loadevent prtg_cas03 mapflag loadevent prtg_cas04 mapflag loadevent prtg_cas05 mapflag loadevent nguild_alde mapflag loadevent nguild_gef mapflag loadevent nguild_pay mapflag loadevent nguild_prt mapflag loadevent schg_cas01 mapflag loadevent schg_cas02 mapflag loadevent schg_cas03 mapflag loadevent schg_cas04 mapflag loadevent schg_cas05 mapflag loadevent arug_cas01 mapflag loadevent arug_cas02 mapflag loadevent arug_cas03 mapflag loadevent arug_cas04 mapflag loadevent arug_cas05 mapflag loadevent
  5. Brian's post in emperium the monster can not be created was marked as the answer   
    There is a check in @monster that prevents you from spawning an Emperium:
    trunk/src/map/atcommand.c

    if (mob_id == MOBID_EMPERIUM) { clif_displaymessage(fd, msg_txt(83)); // Monster 'Emperium' cannot be spawned. return -1; }
    To allow @monster 1288, delete those lines and recompile.
  6. Brian's post in Spawn custom nightmare mobs at night with event labels? was marked as the answer   
    I had left this topic in my open tabs (todo)!
    I'll post the version I was working on soon.
    1. make sure your settings in trunk/conf/battle/misc.conf are like this:

    night_at_start: no day_duration: 0 night_duration: 0
    2. then add this script (see adding a Script)

    - script night_mobs -1,{ OnInit: // Spawn nightmare mobs on which maps? setarray .maps[0], "prontera","morocc","payon"; OnMinute00: if (gettime(3)%2 == 0) { // hours: 00, 02, 04, ... (even hours) if (isnight()) { day; announce "The sun is rising.", bc_all; for (set .@i,0; .@i<getarraysize(.maps); set .@i,.@i+1) killmonster .maps[.@i], strnpcinfo(3)+"::OnZombieDead"; } } else if (gettime(3)%2 == 1) { // hours: 01, 03, 05, ... (odd hours) if (isday()) { night; announce "Night has fallen... beware of the undead!", bc_all|bc_blue; for (set .@i,0; .@i<getarraysize(.maps); set .@i,.@i+1) monster .maps[.@i],0,0, "Nightmare",1427,30, strnpcinfo(3)+"::OnZombieDead"; } } end; OnZombieDead: // open 1 Old Purple Box getrandgroupitem IG_VioletBox,1; // 2% chance to get Ygg Berry if (rand(100) < 2) getitem 607,1; // Yggdrasil Berry // spawn a new mob each time one is killed? // Delete the next line to have mobs stay dead until the next night cycle. monster "this",0,0, "Nightmare",1427,1, strnpcinfo(3)+"::OnZombieDead"; end; }
  7. Brian's post in BACK UP! was marked as the answer   
    The file is in the same directory you ran the command from.
    To specify a different directory, you can use the full file path like:

    mysqldump -u USERNAME --password=PASSWORD DATABASE_NAME > /home/rathena411/backups-sql/FILE_NAME.sql
    Here is one example: backup_ragnarok.sh
  8. Brian's post in mapserver error log was marked as the answer   
    Edit this setting in trunk/conf/map_athena.conf

    //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
    You can also start the map-server_sql in screen, then you can reconnect later and see the output window.
  9. Brian's post in Update, Compilation then run the server was marked as the answer   
    When you compile on Windows, the executable server files will only run on Windows platforms.
    When you compile on Linux (ex: CentOS), the executable files will only run on Linux.
    Compiled exe's will usually work on different versions of the same OS (ex: compile on Windows XP will probably work on Windows 7), but it's best to compile on the same machine you will be running the server on.
    What you can do is edit/update your files on Windows, then upload (or zip and upload) the files to your CentOS server. Then compile on CentOS (see: Compiling#Unix).
  10. Brian's post in Can i host my patcher at free hosting site? was marked as the answer   
    Here is a longer explanation of the original post:

    create a SourceForge account https://sourceforge....er/registration
    create a new project: https://sourceforge.net/p/add_project
    * make sure you check the SVN tool, to enable SVN
    install TortoiseSVN on your computer http://tortoisesvn.net/downloads.html
    checkout a working copy of the SVN of your new project. The SVN url will be something like:
    https://svn.code.sf.net/p/PROJECTNAME/code/
    * make sure your URL has https so you have read+write access

    In your new working copy, create folders for your patcher stuff. For example:
    /
    /patcher/
    /patcher/data/
    SVN Commit your changes.
    Now you should be able to browse your SVN and see the folders you just created
    http://svn.code.sf.net/p/PROJECTNAME/code/patcher/

    Configure your patcher (see Category:Patchers)
    Your "patcher website" URL is the SVN url:
    http://svn.code.sf.net/p/PROJECTNAME/code/patcher/
    * http for anonymous read-only access

    Here's an example of some of the Thor_Patcher urls you would configure:
    RootURL='http://svn.code.sf.net/p/PROJECTNAME/code/patcher/'
    file_url=http://svn.code.sf.net/p/PROJECTNAME/code/patcher/data/
    Now in your working copy, add the patcher website files.
    Thor patcher for example, would have:
    /patcher/main.ini
    /patcher/plist.txt
    /patcher/data/this_is_a_patch.thor
    set appropriate SVN Properties for each file type "patchlist" and other text files should have svn:eol-style=native
    "patch files" (ex: .grf .gpf, .rar .thor) and any other binary files should have svn:mime-type=application/octet-stream
    "html files" - should have svn:mime-type=text/html (if you forget this property, the html file will display as plain-text. example)
    images - should have their corresponding image type (for example .png should have svn:mime-type=image/png) [*]SVN Commit
    [*]Each time you have a new patch, add the patch to your working copy, then SVN Commit the changes.

  11. Brian's post in variable tied to MAC address (I am using Harmony) was marked as the answer   
    Here you go : set_MAC_variable.txt
    These script functions + SQL table allow you to store variables tied to MAC addresses.
    execute the SQL query at the top to create the `mac_reg_value` table
    replace all 3 occurrences of getmacaddress() with the Harmony script command that returns a player's MAC address (I was not sure what the Harmony script command was named.)
    the example script that gives an item once-per-MAC is lines 17-32

    $#variable - permanent MAC variable
    prefix "$#" means permanent MAC variable
    name identifier consists of underscore and alphanumeric characters (just like other script variables)
    postfix "$" means string variable
    variable names are NOT case sensitive (just like other script variables)
    variable name is limited to 255 characters
    value is limited to 255 characters (for strings) or 32-bit signed integer (-2,147,483,648 to 2,147,483,647), just like other permanent script variables

  12. Brian's post in Make items drop identified? was marked as the answer   
    You could also change how "mob-dropped items" are created, so they are created as identified items.
    trunk/src/map/itemdb.c

    /*========================================== * Specifies if item-type should drop unidentified. *------------------------------------------*/ int itemdb_isidentified(int nameid) { int type=itemdb_type(nameid); switch (type) { case IT_WEAPON: case IT_ARMOR: case IT_PETARMOR: return 0; default: return 1; } }
    Change that function to always return 1, meaning all item types will drop identified:

    /*========================================== * Specifies if item-type should drop unidentified. *------------------------------------------*/ int itemdb_isidentified(int nameid) { return 1; }
  13. Brian's post in Pub message moving... was marked as the answer   
    It should be possible with a script:
    display message using waitingroom (ex: "Hello World ... ")
    sleep a short time (250 ms?)
    rotate the string 1 character left ("ello World ... H")
    delwaitingroom and display the new message, goto #2 and repeat


    prontera,155,188,0 script test 910,{ end; OnInit: set .message$, "Hello World! "; while (1) { set .message$, delchar(.message$+charat(.message$,0),0); delwaitingroom; waitingroom .message$, 0; sleep 200; } }
  14. Brian's post in War Of Emperium coordinate announcer was marked as the answer   
    For a complicated WoE schedule like this, you might want to use Toasty's WoE Controller. The NPC can also warp players to WoE castles.
  15. Brian's post in Less Annoying Refiner was marked as the answer   
    Have you tried enabling this in trunk/npc/merchants/refine.txt ?

    //============================================================ //= Main Refiner Function //============================================================ //= To allow auto safe refining/multiple refining set the //= second argument to '1' in the function call. //============================================================
    Example:

    prt_in,63,60,0 script Hollgrehenn 85,{ callfunc "refinemain","Hollgrehenn",1; end; }
    Was that what you're looking for?
  16. Brian's post in Multiple @alootid? was marked as the answer   
    rAthena already supports multiple @alootid, since r15489.
    Usage:
    Add an item: @alootid +<item name or ID>
    Remove an item: @alootid -<item name or ID>
    Clear your list: @alootid reset

    The default max is 10 items; you can increase in /src/map/config/core.h

    /** * Max number of items on @autolootid list **/ #define AUTOLOOTITEM_SIZE 10
    Edit: ah I see, you want to change the syntax of the @alootid command.
    *moved to Source Requests*
  17. Brian's post in Disabled Dual Client in a Certain map was marked as the answer   
    If you only want to allow 1 char per IP in a certain map, you could do something like this:

    prontera,155,188,0 script TestNPC 910,{ if (callfunc("has_char_from_same_ip", "guild_vs2")) { mes "There is already a char from your IP on guild_vs2."; } else { warp "guild_vs2",0,0; } close; } function script has_char_from_same_ip { set .@my_map$, getarg(0); // get array of char names who are online from the same IP query_sql "SELECT `char`.`name` FROM `char` LEFT JOIN login ON `char`.account_id=login.account_id " + "WHERE last_ip=(SELECT last_ip FROM login WHERE account_id="+playerattached()+") AND online AND `char`.account_id!=" + playerattached(), .@name$; // check each char, and see if they are on the map for (set .@i,0; .@i < getarraysize(.@name$); set .@i,.@i+1) { getmapxy .@map$, .@x, .@y, 0, .@name$[.@i]; if (.@map$ == .@my_map$) return 1; // another char from this IP is already on map } return 0; // no other chars from this IP are on that map }
  18. Brian's post in Multiple server in 1 was marked as the answer   
    The setup you want is 1 login, and 3 char/map servers.
    This wiki page is a good place to start: Multiple_Servers, also this guide.
    If you get stuck, post here.
  19. Brian's post in How To Reset Server? was marked as the answer   
    drop your Ragnarok database
    re-create the Ragnarok database
    re-import main.sql (in the /trunk/sql-files folder)

  20. Brian's post in how can i change my server time on linux? was marked as the answer   
    date MMDDhhmmYYYY
    MM = month
    DD = date
    hh = hour (24-hour format)
    mm = minute
    YYYY = year
    Example: this will set the date to March 20, 2012 @ 11:37

    date 032011372012
  21. Brian's post in req, check gm in the castle was marked as the answer   
    - script no_gm_in_woe -1,{ OnPCLoadMapEvent: if (getmapflag(strcharinfo(3), mf_gvg_castle)) { if (getgmlevel()>0 && (agitcheck() || agitcheck2())) { announce "GMs are not allowed in the castles during WoE.", bc_self; warp "SavePoint",0,0; } } end; } aldeg_cas01 mapflag loadevent aldeg_cas02 mapflag loadevent aldeg_cas03 mapflag loadevent aldeg_cas04 mapflag loadevent aldeg_cas05 mapflag loadevent gefg_cas01 mapflag loadevent gefg_cas02 mapflag loadevent gefg_cas03 mapflag loadevent gefg_cas04 mapflag loadevent gefg_cas05 mapflag loadevent payg_cas01 mapflag loadevent payg_cas02 mapflag loadevent payg_cas03 mapflag loadevent payg_cas04 mapflag loadevent payg_cas05 mapflag loadevent prtg_cas01 mapflag loadevent prtg_cas02 mapflag loadevent prtg_cas03 mapflag loadevent prtg_cas04 mapflag loadevent prtg_cas05 mapflag loadevent schg_cas01 mapflag loadevent schg_cas02 mapflag loadevent schg_cas03 mapflag loadevent schg_cas04 mapflag loadevent schg_cas05 mapflag loadevent arug_cas01 mapflag loadevent arug_cas02 mapflag loadevent arug_cas03 mapflag loadevent arug_cas04 mapflag loadevent arug_cas05 mapflag loadevent
  22. Brian's post in remove @duel delay? was marked as the answer   
    Edit the file ../conf/battle/misc.conf

    // Delay between using @duel in minutes duel_time_interval: 60
    Change to 0 for no delay.
  23. Brian's post in [Solved]is there any script work like this? was marked as the answer   
    "When a player logs in, if they are not on their save map, then warp them to save point."

    - script nosave_if_not_town -1,{ OnPCLoginEvent: if (strcharinfo(3) != getsavepoint(0)) { warp "SavePoint",0,0; } end; }
    "When a player logs in, if they are not a map with the town mapflag, warp them to their save point."

    - script nosave_if_not_town -1,{ OnPCLoginEvent: if (getmapflag(strcharinfo(3),mf_town) == 0) { warp "SavePoint",0,0; } end; }
    --> "When a char logs out, put them back at their save point (so they will be there next time they login."
    Edit your /trunk/conf/mapflag/nosave.txt and replace it with this:
    (this includes all the maps except those in town.txt)
  24. Brian's post in Prontera - novending nochat was marked as the answer   
    GMXeon posted one here.

    // Script whipped up by [GM]Xeon ;D // No street chatrooms + vends - Prontera edition // http://www.eathena.ws/board/index.php?showtopic=186170 - script NoChatVendPront -1,{ OnWhisperGlobal: if (!getgmlevel()) end; OnInit: setcell "prontera",1,1,312,392,cell_nochat,0; setcell "prontera",1,1,312,392,cell_novending,0; setcell "prontera",134,190,177,217,cell_nochat,1; setcell "prontera",82,200,124,207,cell_nochat,1; setcell "prontera",125,199,125,208,cell_nochat,1; setcell "prontera",126,198,126,209,cell_nochat,1; setcell "prontera",127,197,127,210,cell_nochat,1; setcell "prontera",128,196,128,211,cell_nochat,1; setcell "prontera",129,195,129,212,cell_nochat,1; setcell "prontera",130,194,130,213,cell_nochat,1; setcell "prontera",131,193,131,214,cell_nochat,1; setcell "prontera",132,192,132,215,cell_nochat,1; setcell "prontera",133,191,133,216,cell_nochat,1; setcell "prontera",148,231,163,268,cell_nochat,1; setcell "prontera",147,230,164,230,cell_nochat,1; setcell "prontera",146,229,165,229,cell_nochat,1; setcell "prontera",145,228,166,228,cell_nochat,1; setcell "prontera",144,227,167,227,cell_nochat,1; setcell "prontera",143,226,168,226,cell_nochat,1; setcell "prontera",142,225,169,225,cell_nochat,1; setcell "prontera",141,224,170,224,cell_nochat,1; setcell "prontera",140,223,171,223,cell_nochat,1; setcell "prontera",139,222,172,222,cell_nochat,1; setcell "prontera",138,221,173,221,cell_nochat,1; setcell "prontera",137,220,174,220,cell_nochat,1; setcell "prontera",136,219,175,219,cell_nochat,1; setcell "prontera",135,218,176,218,cell_nochat,1; setcell "prontera",187,200,229,207,cell_nochat,1; setcell "prontera",186,199,186,208,cell_nochat,1; setcell "prontera",185,198,185,209,cell_nochat,1; setcell "prontera",184,197,184,210,cell_nochat,1; setcell "prontera",183,196,183,211,cell_nochat,1; setcell "prontera",182,195,182,212,cell_nochat,1; setcell "prontera",181,194,181,213,cell_nochat,1; setcell "prontera",180,193,180,214,cell_nochat,1; setcell "prontera",179,192,179,215,cell_nochat,1; setcell "prontera",178,191,178,216,cell_nochat,1; setcell "prontera",148,130,163,176,cell_nochat,1; setcell "prontera",147,177,164,177,cell_nochat,1; setcell "prontera",146,178,165,178,cell_nochat,1; setcell "prontera",145,179,166,179,cell_nochat,1; setcell "prontera",144,180,167,180,cell_nochat,1; setcell "prontera",143,181,168,181,cell_nochat,1; setcell "prontera",142,182,169,182,cell_nochat,1; setcell "prontera",141,183,170,183,cell_nochat,1; setcell "prontera",140,184,171,184,cell_nochat,1; setcell "prontera",139,185,172,185,cell_nochat,1; setcell "prontera",138,186,173,186,cell_nochat,1; setcell "prontera",137,187,174,187,cell_nochat,1; setcell "prontera",136,188,175,188,cell_nochat,1; setcell "prontera",135,189,176,189,cell_nochat,1; setcell "prontera",134,190,177,217,cell_novending,1; setcell "prontera",82,200,124,207,cell_novending,1; setcell "prontera",125,199,125,208,cell_novending,1; setcell "prontera",126,198,126,209,cell_novending,1; setcell "prontera",127,197,127,210,cell_novending,1; setcell "prontera",128,196,128,211,cell_novending,1; setcell "prontera",129,195,129,212,cell_novending,1; setcell "prontera",130,194,130,213,cell_novending,1; setcell "prontera",131,193,131,214,cell_novending,1; setcell "prontera",132,192,132,215,cell_novending,1; setcell "prontera",133,191,133,216,cell_novending,1; setcell "prontera",148,231,163,268,cell_novending,1; setcell "prontera",147,230,164,230,cell_novending,1; setcell "prontera",146,229,165,229,cell_novending,1; setcell "prontera",145,228,166,228,cell_novending,1; setcell "prontera",144,227,167,227,cell_novending,1; setcell "prontera",143,226,168,226,cell_novending,1; setcell "prontera",142,225,169,225,cell_novending,1; setcell "prontera",141,224,170,224,cell_novending,1; setcell "prontera",140,223,171,223,cell_novending,1; setcell "prontera",139,222,172,222,cell_novending,1; setcell "prontera",138,221,173,221,cell_novending,1; setcell "prontera",137,220,174,220,cell_novending,1; setcell "prontera",136,219,175,219,cell_novending,1; setcell "prontera",135,218,176,218,cell_novending,1; setcell "prontera",187,200,229,207,cell_novending,1; setcell "prontera",186,199,186,208,cell_novending,1; setcell "prontera",185,198,185,209,cell_novending,1; setcell "prontera",184,197,184,210,cell_novending,1; setcell "prontera",183,196,183,211,cell_novending,1; setcell "prontera",182,195,182,212,cell_novending,1; setcell "prontera",181,194,181,213,cell_novending,1; setcell "prontera",180,193,180,214,cell_novending,1; setcell "prontera",179,192,179,215,cell_novending,1; setcell "prontera",178,191,178,216,cell_novending,1; setcell "prontera",148,130,163,176,cell_novending,1; setcell "prontera",147,177,164,177,cell_novending,1; setcell "prontera",146,178,165,178,cell_novending,1; setcell "prontera",145,179,166,179,cell_novending,1; setcell "prontera",144,180,167,180,cell_novending,1; setcell "prontera",143,181,168,181,cell_novending,1; setcell "prontera",142,182,169,182,cell_novending,1; setcell "prontera",141,183,170,183,cell_novending,1; setcell "prontera",140,184,171,184,cell_novending,1; setcell "prontera",139,185,172,185,cell_novending,1; setcell "prontera",138,186,173,186,cell_novending,1; setcell "prontera",137,187,174,187,cell_novending,1; setcell "prontera",136,188,175,188,cell_novending,1; setcell "prontera",135,189,176,189,cell_novending,1; end; }
  25. Brian's post in save point was marked as the answer   
    Maybe a better way would be OnPCDieEvent --> randomize their savepoint (if they save on the map "prontera").

    OnPCDieEvent: setarray .x[0], 50,60,70,80,90; setarray .y[0], 50,60,70,80,90; if (getsavepoint(0) == "prontera") { set .@i, rand(getarraysize(.x)); savepoint "prontera", .x[.@i], .y[.@i]; } end;
    With the script llchrisll posted, that will warp them instantly when they die.
×
×
  • Create New...