Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/15/11 in all areas

  1. Regarding the recent added "Download Forum" I think, it is too big... it consists of 11 Forums That is just too much. My suggestion is to add subforums to it, I mean, I don't know if you did it fast... but the entire forum of rAthena is sooo well organizated, but, the Download Forum it isnt. For example: Graphics tools should be part of the Graphics Downloads, to gain space. Web resources & Control Panel Downloads should be in the same forum Modification Downloads and Tool Downloads should be in the same forum? maybe. Server Manager and Server Resources should be in the same What I'm saying its that, the whole Download section is covering allmost all the forum index. As also I think, the sections I mentioned, will not be that -active- or with a high quantity of topics, to remain them as a separated categories. Please consider to do it, since the other categories in the forum, are important also, and they remain a well organized and most of all --- as a well simplified forum structure, that I'm sure all of us here appreciate that.
    2 points
  2. Hi All, Having recently completed my new RagRAY replacement installation client, I have set up a small website to host the .torrent file and tracker statistics. I'm an awful web designer, as I lack creativity. If someone wishes to whip something up in photoshop that looks a bit less hack and slash, it'd be appreciated. I can code it up without worry- I just need graphics to work with. The name of the "RagRAY" replacement is "Miruku". It means Milk in japanese. Ironic considering my name... I LIKE MILK K? You can see the current site here: http://miruku.rathena.org It just needs a simple one page design with a section for a download link, description, and changelog. Thanks for any help!
    2 points
  3. There is no full protection against hack. Game Guard is just for the game (client and server), not for your web pages. To protect you a maximum you have to know a big part of hacking way (be a hacker yourself ?) : xss, sql injection, include, directory traversal, ... don't use a panel like flux cp or ceres (create your own if you have the knowledge), verify logs (apache, rathena), remove some (dangerous) PHP commands, don't display PHP errors. And I recommend to use another encryption method for storing player password (lol md5 lol). AND be up to date with latest hack method
    2 points
  4. This is the discussion topic for the implementation and maintenance of a 'status database'. Information The concept behind this change would be to remove the entirely hard-coded current 'status table' system, and move the flags into a database file. This database file would be editable and customisable by any server owner, and would allow much more flexible implementations of things. Example Currently the source stores status related information in tables in status.c: static sc_type SkillStatusChangeTable[MAX_SKILL]; // skill -> status static int StatusIconChangeTable[sC_MAX]; // status -> icon unsigned long StatusChangeFlagTable[sC_MAX]; // status -> flags static int StatusSkillChangeTable[sC_MAX]; // status -> skill The first step in reforming this system would be to allow a status database (ie, status_db.txt) to define the characteristics of the statuses. This would mean the status icon displayed and the status change flag (which determines which statuses should be recalculated once it starts). However these are not the only areas left to be defined. The source dictates which statuses can: Be retained when the Sage skill Dispel is used Be retained when a character logs out Be retained when a character dies Override or cancel previous statuses Override the previous status active on the user To tackle these hard-coded solutions, it would then be plausible to implement a 'flag' column (for defining features such as 'buff' status, 'debuff' status, 'un-dispellable') and have an additional column to list statuses which are cancelled when the status is activated. Of course some areas of the status system will be kept in the source, mainly the actual bonuses (such as in the status_calc_* functions) and status specific checks (some statuses cannot be activated when another is active etc.) Proposition The idea would be to have a database in the format: <status id>,<status icon>,<recalculate flag>,<status flags>,{ <override status 1>, <override status 2> ... } The purpose of this topic is to collect additional ideas for this implementation, and thoughts on using a database like this.
    1 point
  5. http://supportmii.com/ro1/JudasBible.pdf scroll down to the section about adding npcs simply put, its almost the same as adding a custom mob
    1 point
  6. http://pastebin.com/raw.php?i=EG1KPcq2
    1 point
  7. On some servers, it's possible to reduce after-cast delay enough to the point where it's practically 0. There are some skills which actually don't have a cool-down period but are maintained entirely by amotion. For instance, AC_DOUBLE (Double Strafe) has no cool-down period but relies on ASPD (subsequently amotion) to perform the skill fast enough. By editing the .act files to remove the sprite delay when casting, it becomes possible for the player to spam the skill endlessly at a stupid speed. I suppose the idea of this is to store the amotion values for each particular sprite (at a particular level of ASPD) to prevent this hack being usable. Edit After writing up a quick ACT parser to read the delay frames from ACT files, I have come to the conclusion that practically every job .act file has a 'delay' rate for attacking, skill attack 1 and skill attack 2 of '4.0' which is the standard default. What this means is that we just need to try and replicate the algorithm used by Gravity for calculating how long an animation plays for using amotion. If the algorithm in the source is the official formula then we should be able to manipulate that to add an amotion delay when using skills. To download the parser I used when determining the values: http://www.epoque.ws/parser.zip Just paste a list of <sprite id>_³².act files into the same directory that you run the script.
    1 point
  8. From the picture you have to change getitename to getitemname in line 10;
    1 point
  9. I'll be releasing this once the downloads section is working again, but, yesterday morning I decided I'd take a jab at making a sprite from scratch. I'd never done it before, or even attempted it, so I was pretty nervous at how it'd turn out. After seeing a few tips from DevilEvil on a forum he linked me to, I got started. NekoV got me started with the .act files, which were a paaaaain to edit, but glad that they're finished. XD So.. thoughts? ;_; You can see the sprite's evolution in the screenshots below: http://www.jtynne.co...cs/rucksack.png http://www.jtynne.co...s/rucksack2.png http://www.jtynne.co...s/rucksack3.png http://www.jtynne.co...s/rucksack4.png I'll also be releasing a Poring/Drops/Marin/Poporing version of the rucksacks (sans wings/halo) as well. These'll all be for free of course. -nodnod-
    1 point
  10. setarray .@slots[0], 1, 9, 10; // put here your slots. for ( set .@a, 0; .@a < 3 && ! .@c ; set .@a, .@a + 1 ) { if ( set ( .@e, getequipid ( .@slots[.@a] ) ) < 0 ) continue ; set .@id, 0; set .@w, 1; while ( set ( .@id, .@id + 1 ) <= .w2[.@w - 1] && ! .@c ) { if ( .@id > .w2[.@w - 1] ) { set .@id, 1; set .@w, .@w + 1; } if ( .@e == getd ( ".a1"+ .@w +"_"+ .@id ) ) { set .@c, ( getd ( ".a4"+ .@w +"_"+ .@id ) > 0 ) * ( killedrid == getd ( ".a3"+ .@w +"_"+ .@id ) || getd ( ".a3"+ .@w +"_"+ .@id ) < 1001 ); if ( .@c ) break ; } } } -> setarray .@slots[0], 1, 9, 10; // put here your slots. for ( set .@a, 0; .@a < 3 && ! .@c ; set .@a, .@a + 1 ) { if ( set ( .@e, getequipid ( .@slots[.@a] ) ) < 0 ) continue ; set .@id, 0; set .@w, 1; while ( set ( .@id, .@id + 1 ) <= .w2[.@w - 1] && ! .@c ) { if ( .@e == getd ( ".a1"+ .@w +"_"+ .@id ) ) { set .@c, ( getd ( ".a4"+ .@w +"_"+ .@id ) > 0 ) * ( killedrid == getd ( ".a3"+ .@w +"_"+ .@id ) || getd ( ".a3"+ .@w +"_"+ .@id ) < 1001 ); if ( .@c ) break ; } if ( .@id >= .w2[.@w - 1] ) { set .@id, 0; set .@w, .@w + 1; } } } I answered it other day, but the forum became off.
    1 point
×
×
  • Create New...