Jump to content

Gepard

Community Contributors
  • Content Count

    91
  • Joined

  • Days Won

    5

Everything posted by Gepard

  1. @bgamez23 You probably need to look into addons/content_management/themes/, copy default and rename it to emphaino. @JulioCF You forgot to uncomment the 2 lines that define top-level menu 'Main Menu' (the one that will have forums link in it).
  2. Well then, if pros and cons have to be studied, then go study first, and only then come here and share your wisdom. Cause right now you're talking some totally general stuff about how cool would it be to do this and that, but you are not willing to discuss any specific issues related to FluxCP, which this topic happens to be about. I'm not discrediting anything you say, I'm just pointing that what you're saying isn't really useful for further FluxCP development, so in fact irreleveant. I don't see the point in discussing "why FluxCP isn't so awesome as I'd like it to be" or similarly abstract stuff, but unfortunately that's exactly what you're trying to "discuss" here. It's you who started the bashing without giving any reasonable points and it's you who first came to weird conclusions ("this topic is fluxcp ad"). If you claim that some app has "conception fails and critical exploits" you must have something to back up your words. That's what I expect from a serious discussion. That being said, I'm waiting for a PM with details about the exploit you mentioned. Last but not least, I'm sorry for being so straightforward. This is just how I am, and I'm not really hostile towards you or anything like that.
  3. Not every new technology or design pattern is worth following or being used. Software doesn't need to be state-of-the-art to be a good piece of software. You seem to be focused too much on internal aspects of the control panel, and forgetting that first and foremost it is a tool, an utility. It has to work and work properly most of the time - that is what is expected from a program. Then, it should be easy to maintain and develop. (BTW, using latest technologies is great way to create a steep learning curve for anyone who'd like to contribute to the project, so it can have exactly opposite effect) And only then it should be beautiful (code-wise, internal design-wise, not talking about appearance here). If you have too much free time nobody is holding you from using all kind of latest technology and writing your own state-of-the-art control panel for ragnarok server. Also, if you realized there are some real exploits in current code of FluxCP, you should just fix it or at least report it, instead of complaining. Otherwise, I can't take what you're saying seriously. I respect you having great deal of knowledge about webcoding, but sometimes you need get off your high horse and help less experienced people or you just start to sound like a prick. Now I have the feeling that it's you advertising yourself in this topic, trying to make an impression how good you are at things, and how cool would be the control panel you could write. Please refrain from it, showcase/bragging topics belong to other sections. Once again, point to any bug/exploit in current fluxcp, or at least justify using any of the stuff you mention with real use-case examples, instead of making general remarks about webcoding. All input is appreciated, but it has to be more specific. "FluxCP is not using latest technologies" is NOT a useful suggestion. Useful one would be: in file foo.php, we could use new feature from foolib ver. 1234 so that we can simplify the code in file bar.php and make it easier to create new foobars for baz module.
  4. If we followed that logic, the very first piece of software that should be thrown into the trash bin and rewritten from scratch is athena/hercules. FluxCP has actually a well structured and documented code, quite easy to understand, follow and maintain. Did you even take a look at its source? You're talking about using latest technologies.... which one do you exactly think could be used in a new, better control panel, that isn't present in flux? Just asking, cause all your arguments are valid but you haven't show us yet how they apply to fluxcp.
  5. I don't really see problems with piece of software being few years old. If there are issues with it, they can be fixed, code can be improved etc. Writing new application from scratch doesn't guarantee it would be better. More likely there will be some new bugs in it, and it will take time to find and fix them all. FluxCP is matured enough, and as far as I know, there haven't been any major problems with it, despite it being used in hundreds of servers.
  6. In each of your addon's folder there is `themes` folder which contains views for all themes. Just make a copy of `default` folder and rename it to `emphaino`. You should be able to use your addons with new theme then. If it doesn't look good you'll have to make some edits (but it should be good enough).
  7. In fact, Hercules is moving to store passwords hashed with bcrypt. You can see progress on this feature here: https://github.com/HerculesWS/Hercules/issues/74 and here: https://github.com/HerculesWS/Hercules/compare/bcrypt
  8. `item_db2` table has the same name in pre-RE and RE setups, but different layout. If your Hercules server is using pre-RE configuration, you need to import `item_db.sql` and `item_db2.sql` from `sql-files`. If it's Renewal server, import `item_db_re.sql` and `item_db2_re.sql`. If you modified `config/servers.php` and changed from 'Renewal' => true to false, you need to re-import `item_db2.sql` script, so table `item_db2` has the pre-RE layout. Currently it's impossible to have both pre-RE and RE item tables in the same database.
  9. It's already been fixed. Thank you for your report. The only pre-existing theme that was supplied with previous versions of FluxCP was 'default' theme. And it of course is also included in Hercules FluxCP and works as usual. If you want to use a custom-made theme, it should work without major problems. Compared to most recent revision of fluxcp-ra, the only updated module is item database, so you might need to make appropriate changes in this part of your theme. Other than that, it will be also missing theme selector (only relevant if you want to use other themes as well). You can copy appropriate snippets of code from default theme. I will also post detailed explanation how to do this soon. If you have any custom modules (like for example, additional ranking) and want to make them available with new emphaino theme, they should work without problems as well, since most pages are 99% identical with default theme, it's all css magic. So just copy missing views into themes/emphaino (or addons/youraddon/themes/emphaino) and they should become visible in new theme as well.
  10. Flux Control Panel for Hercules Flux CP is now officialy available for Hercules! It is fully working with both pre-Renewal and Renewal Hercules servers. We will continue developing it, so it is always up-to-date and compatible with latest Hercules. New theme Hercules' Flux CP comes with a brand new theme. It's a grey-ish modern and clean HTML5 theme, called Emphaino. It has a nice dropdown menu located on top of the screen, and a customizable footer area, where you can put some stuff that should be visible all the time (like links to social media, forums etc.). A picture is worth a thousand words: It's a HTML5 theme, so it requires a decent browser, or IE9+ (if you insist on using that). Theme selection Having two themes is great, but until now it was impossible to make use of them both. That's why theme selector has been added to both themes, so your users can pick whichever theme they like more. Again, preview: Extra credits Authors of original FluxCP & FluxCP-rA. Authors of Emphaino theme (originally for Wordpress). Download Hercules' FluxCP Github repository: https://github.com/HerculesWS/FluxCP Issues Bug reports, questions and suggestions are all welcome directly on GitHub: https://github.com/HerculesWS/FluxCP/issues Enjoy~
  11. Increase MAX_MOB_DB. Or lower ID of your custom monster.
  12. //this is the item choicessetarray .@beadID[1],4739,4709,4749,4729,4759,4719,4790,4794,4763,4799,4802,4825,4831,4841,4844,4849,4848,4852,4868;for( set .@n,1; .@n <= 3; set .@n, .@n+1 ) {set .@BeadMenu$,"";//loop for menufor( set .@i,1; .@i < getarraysize( .@beadID ); set .@i,.@i + 1 ){ if ( .@beadID[.@i] != 0 ) { set .@BeadMenu$,.@BeadMenu$ + getitemname( .@beadID[.@i] )+":"; } else { set .@BeadMenu$,.@BeadMenu$ + ":"; }}//makes a selection of what item you wantset .@s, select( .@BeadMenu$ );set .@BeadChoices[.@n], .@beadID[.@s];set .@beadID[.@s], 0;}
  13. Currently there is no stable branch. If you're not satisfied with stablility of recent revisions, consider using slightly older checkout of Hercules.
  14. Gepard

    checkemblem()

    Suggestion: Make the command return opaqueness level of the emblem, for example if 30% of pixels in the image is magenta (transparent), return 70 (70% is opaque). If it's all transparent return 0, and also return 0 if there is no emblem. This way you can set your own threshold in scripts, and allow some transparency.
  15. That's exactly my point. You want to make @reloadnpc save some part of what it reloads, because you don't want it to reload everything, but there's no other way. The correct solution in such case is to provide extra commands to unload just right things. As for things you mentioned, you can refresh a custom function just by loading an updated version of it with @loadnpc. You can also call OnInit label from another temporarily loaded script. Or you can use an NPC tthat would take your input (via inputbox) and call that event, like this one: // NPC to trigger other NPC events manually// To "click" this NPC, whisper to NPC::donpcevent as you would// to any other player.- script donpcevent -1,{ end;OnWhisperGlobal: if (getgmlevel() >= 99) { while (1) { mes "Please enter eventname in"; mes "^0000FFNPCName::Event^000000 format."; mes "Enter ^FF00000^000000 to cancel."; next; input .@event$; if (.@event$ != "" && compare(.@event$, "::")) break; if (.@event$ == "0") close; } mes "Triggered event:"; mes "^0000FF" + .@event$ + "^000000."; donpcevent .@event$; close; } end;}
  16. @reloadscript should not be used in production servers, at least not too often. The real problem lies elsewhere. It's currently not possible to not use this command at all, because there is no way to unload mob spawns. If this was fixed, you could easily unload anything you want: mob spawnsets (with new command), scripts (NPCs, warps) and user functions (with @unloadnpc). I think it covers all that we have in /npc/ folder.
  17. From my experience, whole trade is logged as two consecutive rows (ids) in picklog, so if you found one part, you only need to check previous/next row in table. Also, every item put into the trade is logged separately. Zeny trades are logged to zenylog table. Basically there is an algorithm on what to query to get the whole image of trades. It should be quite easy to translate it into PHP for example. However, querying picklog is a performance killer. If you intend to do it on regular basis, I strongly recommend putting picklog on a seperate physical drive (I/O lag) and adding some indexes to the table (full table scans).
  18. Unfeature. The way I see this done: Create a atcommand to "attach" yourself or another character to console output, so that everything that goes to console is additionaly sent to that player's chatbox. Simple, effective and not limited to any particular action like reloading scripts. Possible improvement could involve desired log level, so that for example only Error or Warning messages are being shown in chat. KISS: if you want to see errors in console without checking console, make them appear in-game.
  19. Gepard

    SQL Structure

    1. Is there any particular reason for not using C reserved words in SQL? I agree on more descriptive column names, but this should be done carefully, because many tools, like control panels, will break. 2. Branch log is used, see pc.c:pc_isUseitem, very end of function //Dead Branch & Bloody Branch & Porings Box // FIXME: outdated, use constants or database if( nameid == 604 || nameid == 12103 || nameid == 12109 ) logs->branch(sd); 3. I agree on that. Picklog doesn't seem to be very useful either, because usually one row is just half of the "action", for example trades consists of two rows. I'd suggest to rework picklog so it has about double the number of columns it has now and tracks both ends of the action involved. There should be "from" part and "to" part. Each part should include: type (monster, player, npc etc), id (char_id, npc_id, mob_id), location, datetime. And there should be "item" part with all relevant item data, (zeny amount if merged with zenylog) and action type (trade, pickup, monster drop, etc). Items dropped on the floor should be logged when they disappear or are picked up, and "from" data could be saved in server's memory until it's added to sql log, or inserted immediately with just row_id to update stored in memory. 4. Agree, even if it's just for consistency sake. Log tables should be in log database.
  20. These are game client limitations, and have nothing to do with server. You have 2 options: add more transparent background to the sides of images so they are not placed in usual spot; you will have to check how it works in different resolutions though modify client (involves disassembling/hexing) - most likely not even worth it
  21. Groups, I suppose. For maps, there are already mapflags like noexp, noskill etc
  22. It's working as intended. Item entries with high chance are put into struct item_groupdb[group_id] multiple times. See itemdb_read_itemgroup_sub k = atoi(str[2]); if (itemgroup_db[groupid].qty+k >= MAX_RANDITEM) { ShowWarning("itemdb_read_itemgroup: Group %d is full (%d entries) in %s:%dn", groupid, MAX_RANDITEM, filename, ln); continue; } for(j=0;j<k;j++) itemgroup_db[groupid].nameid[itemgroup_db[groupid].qty++] = nameid;
  23. Someone please add some documentation to this file format. I know it's pretty straightforward, but at the moment it has no documentation whatsoever.
  24. It should be *name == '!' "!" denotes a string, which is a char array ended with '0' (null) character.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.