Leaderboard
Popular Content
Showing content with the highest reputation on 02/07/12 in Posts
-
Time for more detailed description of changes I've done so far. General description: The whole concept of GMs and non-GMs as well as GM levels has been abondoned in favor of more role- and privilege-oriented player groups. Player groups are independent of each other, so unless you decide to do so, they don't have to share any privileges like it was with top-down GM level hierarchy. There is, however, a way to say which group is higher, and which is lower: it's group level. Each group has following atributes: ID — unique number, the same that is used in `login`.`group_id` name level — it can be interpereted as (GM) level of all group members commands settings — what commands can group members use permissions settings — what other permissions group members have inherited groups — permissions and commands from which groups are inherited [*]Groups are configured in 'conf/groups.conf' file. [*]Each account belongs to exactly one group. In `login` table, `level` column has been renamed to `group_id`. [*]In login-server configuration file 'conf/login_athena.conf' "min_level_to_connect" setting has been replaced with "group_id_to_connect" setting, which allows you to define account group id that is required to connect to server. [*]In char-server configuration file 'conf/char_athena.conf' "gm_allow_level" setting has been replaced with "gm_allow_group" setting, which allows you to define group id that is allowed to bypass the server limit of online users. [*]Atcommand configuration file no longer defines GM levels required to use the command. Permissions to use commands are defined for each player group separately in group configuration file. [*]GM configuration file (conf/battle/gm.conf) no longer defines GM levels required to get some privileges (like trading or partying). See full list: These permissions are defined for each player group separately in group configuration file. [*]Player title defined by 'conf/battle/gm.conf' settings "title_lvl1" to "title_lvl8" and 'conf/msg_athena.conf' (335~342) are replaced with group names. [*]Group level is used only: when determining if player can override trade restrictions defined in 'db/item_trade.txt' when determining if player can use @command on another player (existing rule that low-level player can not use some commands, eg @kick on high-level player has been kept) or see another player with @who commands (if they have "hide_session" privilege). as a return value for getgmlevel() script command when determining if player can use commands in a map with nocommand mapflag set [*]Modified GM whisper system to deliver messages basing on permissions, not level. [*]Remote trade request is now possible only if player is allowed to use @trade command as well. [*]Added a proper permission to use /changemaptype command. [*]clif_displaymessage is now capable of displaying multiline messages [*]all ACMD_FUNCs are static now, and the only way to invoke them is with is_atcommand(); all client commands (starting with /) are now translated into corresponding atcommands (with exception of /kick used on monster, as there is no atcommand to kill single monster). List of commands: [*]Removed nonsense "bot check" triggering when player blocked (/ex) Server. [*]Merged @monster, @monsterbig and @monstersmall. [*]Removed @adjcmdlvl command. [*]Replaced @adjgmlvl command with @adjgroup, which allows to temporarily move player to another group. [*]@help command requires "commandname" param and shows more detailed info about commands. Technical details: All occurences of GM level have been replaced either with Group ID (in login and char-server) or Group Level (in map-server). Login-server and char-server are not aware of player groups, they just know the group_id of the account. In map-server group level is used only if there is a need to compare "level" of two players (to preserve the rule that low-level GM can not use commands like @kick on high-level GM), and in script command getgmlevel(). [*]Player groups implementation Player groups are implemented in separate source file and only provide functions to: check if group can use command check if group has permission to do something get group name get group level initialize groups (for server startup) finalize groups (for server shutdown) [*]Player groups use libconfig to load configuration from config file to memory. group permissions are cached and packed in one unsigned int to faster lookup group allowed commands are looked up by name by libconfig API directly from configuration struct inheritance rules are evaluated once, at config load; there is a simple check against inheritance cycles [*]Atcommand changes atcommands use libconfig to load configuration from config file to memory atcommand aliases now use a separate DBMap that points to the same AtCommandInfo structs as original commands [*]"GM" permissions ("can trade", "can party" etc) are defined as enum now. If you're interested in even more details, just ask or wait until I post a diff, which should be ready soon. I need however an opinion on libconfig. It looks like libconfig package for Debian (dunno about other distros) has not been updated in a while, so users will have to compile it from source anyway. So maybe it's better to just link it statically in both Linux and Windows? It's LGPL, so we can include its code in rAthena and change it to GPL.2 points
-
2 points
-
roBrowser is an open source project that try to port Ragnarök Online in the browser using web technologies (javascript, HTML5, WebGL). It's goal for now is to match the official client, and in future add custom features on its core. As it use web technologies, it will allow to use it in all OS, and in future should work in all ables system that can render a web page. Get the source (Thanks to report all bugs) If you like roBrowser, you can help me improving it or even thinking about doing a donation ? Screenshots Some usefulls links : Source code Installation guide WebSite API Guide Forum Demo (Yep there is even a demo if you want to try it).1 point
-
E - Script Collection Last Update : September 10, 2013 Refine Function SQL Mission Board Monster Marching Vendor Control Advanced Stylist Coin Exchanger Doppelganger Race Of The Day Limited Items Multi Currency Shop Random News GM Online List Link Broken E-Inquiry DotA Runes Flower Counting Game Class Restriction Chain Quest Build Manager Misc Scripts : Freebies Script Card Trader Gold Room [ Pick Gold ] Gold Room [ Guild Tax ] Map Restriction [ GM Based ] Daily Reward Monthly Reward Monster Spawner Monster Summoner with Last Summoned Display Players Stats & Equipments 3rd Job Item Giver Exchanger [ Cashpoint to Coins ] Exchanger [ Poring Coin - Zeny ] Exchanger [ Points to Tickets ] Exchanger [ Item to Item ] Exchanger [ Item to Item ] Exchanger [ Multi Item to 1 Item ] Party Match Auto Ban Over Stats Users Soul Link Buff Kill Players gain Cash Points Party Members All Get Items [ Snippet ] Message Board Stalker Class Skill Reproduce NPC Multiple Selection Quest [ Template ] In-Game Item Rewarder In-Game Points Rewarder Invasion Event Custom Item Rate Status Point Seller [ Snippet ] Anti Bot Security Script Anti Bot Script [ Code / Question ] Item Combo Restriction [ LHZ Card ] Drop Item Upon Death PVP Switcher + Announcer [ Guild Master ] Rotating Waitingroom Messages +10 Refiner [ Specific Items ] Random Rate Item Exchanger MVP Invasion Premium Users [ Boost Rates ] Display Cutin Image upon Login Custom Randomed Box Items Kick GM during WOE Custom Crafting NPC Restrict Same IP [ Certain Map ] Coloured Items Exchanger Guild Master Changer Party Team PK Match Gambling Game IRC Channel Crafting NPC Guild Storage Restriction Stage Game [ Version 4 ] Monster Wiki Event [ Version 3 ] Special Thank you for my Tutor : Notes : I am a bit lazy to write all those Script Descriptions, i do believe that all of you able to get how this script works. Anyway, i will still doing my best to write the Updated Changelog or informations about the script as detail as possible. All the Scripts above are uploaded to Pastebin . Abide the Following Rule : Scripts Error / Not Working , you have to Explain it in Details. ( Add in Images / Modified Scripts ) Do not SPAM / BUMP in my Topic. Do not ask for Support stuffs for other Scripts in this Topic. Link Down , then drop [ @Emistry ] a message. I Reserved the Right for NOT Answering your Posts if you did not abide my Topic's Rules. Keep This In Your Mind : All the Scripts i distribute here are NOT FOR COMMERCIAL USES . DO NOT remove my Credits if you are using part of the scripts to modify your own. DO NOT re-release the scripts in any form / way. If you ♥ these Scripts , Click on to Vote this Topic up. Or you may also click on at above the Topic1 point
-
I'm currently working on a custom client and wanted to share some screenshots about the progress. Some of you might wonder why there is again another project like this one with the same goal as the others, and why not just join the others to speed up development? In fact, I thought about this opportunity. However, I'm still learning to work with virtual reality and I want to learn as much as possible. And that's why this projects main goal is not to be finished as fast as possible. But still, it looks like I'm at good pace. I still don't have a "good" name for this project, even though there's a proto-name. One of the other goals of this project is to provide a stable client that runs on both, unix and windows systems. It is being developed in C/C++ and Ogre3D, takes advantage of multithreading where it is appropriate, uses atlas textures to reduce batch count and some other fancy algorithms to improve performance. Even though the complete terrain is being loaded instantly, it takes some milliseconds to finish the objects. That's why I'm currently working on further algorithms, allowing caching and paging of objects. I will release a working demo in the style of RagCam as soon as the new algorithms are finished and working. Here's a list of things that are implemented so far: GND (Terrain) Lightning Shadowmaps Colormaps (with reduced colors to match the original client) Vertex diffuse color Walls Smooth Normals RSM (Objects) Smooth Normals (with smooth groups) Animations Transparency Two Sided Triangle Faces (with correct normal vectors for both sides) RSW (World) Water (with texture and wave animation) Objects Ambient and diffuse lightning Performance is always a very important part for me. A lot of things are optimized as good as possible. This project will stay closed-source providing plug-in functionality in the future. Most of the information that has been used in this project has been discovered through reverse engineering of the original client. Rendering a map is almost completely done using the same and some improved approaches done by the original client itself. The main focus after this will be the visual improvement of the maps themself, like BumpMapping, Cel Shading support, etc. blah blah. When this is done also, I will focus on implementing network functionality and a GUI. I have started in november and worked effectively 5-6 weeks on this project. I had to stop at the end of december and started to work again two days ago. Enough talked, here are some screenshots using OpenGL as renderer (the results in DirectX are the same): Vertex color mapping: Each tile can have a diffuse color. This color, however, is not being applied to all four corners of a tile, but only to the bottom left vertex and all vertices that share the same coordinate. Textures have been disabled in this image to show that diffuse colors are being applied correctly. The border of a map is also being rendered correctly when vertex diffuse colors are applied. Shadowmaps: Some devs are still wondering why their shadowmaps look a bit weird. The reason is plain simple: A lightmap consists (most of the time) of 8x8 tiles, where only the 7x7 pixels in the center are used. Nothing new. However, the tiles are combined into a large texture. If texture filtering is being applied, then the borders of the different textures interpolate into each other, fatal for colormaps when they have different colors. This is called texture bleeding. Because of this, Gravity added a padding of 1 pixel to each tile (resulting in 8x8, instead of 7x7) and filled them with colors that still look nice when they are interpolated. The image below shows the correct display of shadowmaps. Colormaps: They are the same as shadowmaps, but use RGB colors instead. When applied to the terrain, they look smooth. If you look into a dungeon, you will notice that colormaps are not smooth at all. In fact, they look like the colors were reduced. This process is also called posterization. The best result are done with 16 levels. The idea is basically to use float colors, multiply them with the amount of levels, convert the result to an integer (and so dropping the decimal part) and divide the result by the amount of levels. Done. This image displays correct colormaps. Notice the borders of the lightning. Prontera indoor: Transparency: I've used BrowEdit to compare my results and found an issue that was the same as in my project. Some models had wrong depth writing. Using the correct order, it is possible to render objects regardless of their transparency. You can try to open BrowEdit and compare dicastes01 with this image. Instancing: A lot of objects in a map reference the same model, so it makes common sense to combine them for reducing the batch count. This image shows pretty could FPS, even though all objects of yuno are rendered. Instancing in prontera: I would also like to show animations, but am too lazy to upload a video. I am not generating MipMaps yet, since this will be part 2 of this project. As you can see from the screenshots, rendering itself is almost complete. Only some minor issues that have to be done. If you want to see a screenshot of a specific map, don't hesitate to ask. I will upload one. I let you guess which of the posted screenshots are made on linux and which on windows.1 point
-
Pretty much my client crashes whenever it begins to load the custom model. I've already loaded up the model via BrowEdit romodels.txt & texturescustom. The custom textures in BrowEdit work fine. These are the steps I performed to actually getting the model in my map and being read by the client: 1. Added all custom textures NOT INCLUDING the .rsm to a data folder 2. Converted the data folder to a GRF 3. Added the GRF to BrowEdit conf so it reads from it 4. Opened the custom Town Map FROM the GRF 5. Went to RSM editor and selected the RSM on my desktop 6. Applied all of the necessary bitmaps (they are all 24bit depth) 7. I clicked save and overwritted the rsm on my desktop 8. Added the RSM to the GRF and recompiled the GRF 9. Reopened Browedit to load the RSM and added the RSM to the map (map was loaded from GRF). 10. Saved the changed map files on my desktop and replaced the maps in my GRF with the saved maps on my desktop 11. Recompiled the GRF and placed it in my main RO directory. 12. Started up my server and walked to the center of the custom map. When the client initiated its loading of the rsm module I get an instant client crash. Occurs every time. EDIT:RESOLVED. It turns out it was a polygon overflow. Had it fixed1 point
-
1 point
-
- script map_self_announce -1,{ OnPCLoadMapEvent: if (compare("prontera,geffen,payon", strcharinfo(3))) announce "You have entered the map: " + strcharinfo(3), bc_self; end; } prontera mapflag loadevent geffen mapflag loadevent payon mapflag loadevent 1. add the mapname in 'compare' in the 1st string 2. add the 'loadevent' mapflag to that map1 point
-
1 point
-
Если отсутствует фигурная скобка, тогда можете не смотреть на номер строки. Где-то не закрыт оператор или тот самый бесконечный цикл1 point
-
I've spent some time to improve resource loading. There's no caching done yet, but I'm still pretty satisfied with the current performance. Should be increased even further as soon as the caching is done. Here's a small video that shows how the rendering is actually done: The objects in this video are rendered based on the distance from characters position. I've set an initial position at the origin. Take note that I have forgotten to enable object lightning and noticed this only after I have finished rendering the video, lol...1 point
-
lol Rein of Mounts at 3CeAM 12622,Reins_Of_Mounts,Reins Of Mounts,2,500,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_ALL_RIDING,-1,1; },{},{}1 point
-
This contest wasn't made for the prize as "about the contest" states, the prize was just more of a fun thing. I guess people just aren't interested in these kind of activities.1 point
-
honestly to said that...i dont like this Anime...somehow i just feel hate it.. O.O i also dunno why ~ >.<1 point
-
1 point
-
try this prontera,155,181,4 script Portal 45,2,2,{ OnTouch: if( .Event ) warp "guild_vs5",0,0; end; OnMinute00: set .Event,1; hideoffnpc strnpcinfo(0); announce "Loot event has started. Rush to the Portal.",0; sleep ( 30 * 1000 ); // How long Portal Open ? announce "Portal will be close by now..",0; hideonnpc strnpcinfo(0); set .Event,0; monster "guild_vs5",0,0,"Name",1002,30,strnpcinfo(0)+"::OnMobKilled"; sleep ( 60 * 1000 ); // Last how long the Event ? killmonster "guild_vs5","All"; mapwarp "guild_vs5","prontera",155,181; end; OnMobKilled: monster "guild_vs5",0,0,"Name",1002,1,strnpcinfo(0)+"::OnMobKilled"; end; }1 point
-
I guess you should post it in english..even though you try to suggest for a new section for Malaysian / Indonesian / etc users .... the decide / suggest suppose to made together with other member as well.. not just users from those country ...>.<1 point
-
A bit off topic, but the easiest way to track abusers is to use some kind of shield/anti-cheat software/addon with Hardware ID recognition. Doing it by IP (or IP-range, which is essentialy how ip-geolocation works) won't be reliable anyway, so it looks like a waste of time to me.1 point
-
Σ( ° △ °|||) Quit when i didnt found any excuse / reason to stay in your server anymore......1 point