Jump to content

Jonne

Members
  • Posts

    149
  • Joined

  • Last visited

Posts posted by Jonne

  1. First of all, great job, although i got a few errors, not while compiling but after, first i tried out @reloadachievement and it didnt work, its like it doesnt exist, and also i got this

    [Error]: delete_timer error : function mismatch 0062BF20(pc_invincible_timer) !=00545DA0(achievement_delete_cutin_timer)[Error]: cutin duration timer: 23 != 27[Warning]: Unknown setting 'achievement_cutin_duration' in file conf/battle/misc.conf [Warning]: Unknown setting 'achievement_cutin_duration' in file conf/battle/misc.conf

    And yes i have the achievement_cutin_duration in my misc.conf in the battle folder.

    If you can help me out i'll really be grateful

    The problem was I didn't reset the timer on relog. I will provide a fix any moment. If you want to do it manually, go to pc.c pc_authok() function and where they assign all INVALID_TIMER add:

    sd->achievement_cutin_timer = INVALID_TIMER

    And it is fixxed!

  2. /me also thinks it would be nice to be able to add GM Commands to Guilds and characters; so it does not have to be account-specific giving you more control/freedom *-*

    This topic never intended to do this, but I think we are all in for this suggestion if anybody can provide a way to do this because at the momemt the GM levels are saved in login db which is account specific.

  3. Well, I agree with Arcenciel. The owners are responsible for themselves when it comes to servers. The developers responsibility is only to build it and (optimize it) and don't build bugs into it. If the system he build is abuseable then he either did it wrong or Gravity did it wrong. That, then, is the developers problems. But in the current state I am not sure if it up to the developers or the owners.

  4. Proposal:

    config file to define groups

    <group_id>:<group_name>{:<inherit_from_another_group_id>}
    

    atcommand_conf - use group names instead of levels

    gm_conf - use group names instead of levels

    login table - `group_id` instead of `level`

    About that, yes. Also inherit what they inherit and multi inheritance.

    <group_id>:<group_name>{;<inherit_from_group_id>,<inherit_from_group_id>,...}

  5. I once looked into that system and it misses a call to a command from clif when something from this column is unequipped. I don't have the fix anymore, sorry, and I don't have an eAthena to patch it into. Hope somebody else can help you. Or you go to eAthena board for support...

  6. To make things a bit clearer.

    Reason for removing TXT support of player database:

    • There is individual char_server and char_server_sql, we needed double work for char server edits
    • Each time a new system appears like mercenaries, we would need to implement both sql and txt saving/loading, increasing our workload
    • The compiled code is actially different of a SQL and a TXT compiled servers, we need to maintain more project files, people asking for support need to provide additional information etc.
    • Using SQL is far more flexible because of CP and web services, and should perform better, and be safer ( less likely to loose data ).
    • They are frequently modified at the runtime.
    • Maintenance of SQL databases are easier ( deleting old/unused logins, purging invalid data, and etc).
    • There are TXT related bugs, and unimplemented TXT features such as mercenaries.

    Now lets look at the db folder:

    • db folder does not need maintenance from the server owners.
    • Supporting db folder in txt format does not increase our workload much, the format is rarely changes, we do not need more project files for that etc.
    • It is fairly easy to convert some of the dbs to SQL in case of somebody feel more confortable with that
    • They are not modified on the fly, moreover the server does not modifies it at all.
    • Does not have bugs or unimplemented features.
    • Aegis also use flat text files for the same thing.

    All in all, if somebody fond of SQL db's, he can use it. But dropping TXT support for db folder provides us (developers) only little (or almost none) decrease in our workload, but degrades eA compatibility, makes people harder to switch from eA, and causes additional workload for server owners too ( They now just need to update item_db.txt and they are done. But with SQL dbs, they need to update item_db.sql and import it afterwards, +1 step) . Moreover it makes it harder for those who used to the txt format, to do db work.

    One of your reason was, it is easier to edit some dbs in SQL. Well.. if you use a GUI maybe. BUT:

    • There are tools available to easily edit TXT format too ( database editors )
    • If you feel more confortable to edit something in SQL, you are free to do it that way and export afterwards ( i.e. mass edit ).

    Maybe you feel that db developers would have double work if we maintain 2 dbs. Well, no. They only need to maintain sql, or txt. The one they prefer. And if we provide conversion tools, they can keep updated the other one. ( I think there are some pearl script available to convert dbs, however it would be maybe better to provide binaries, it would be easier to use for all ).

    That is my opinion.

    Seems quite reasonable. I'd still like seeing the frequently-changing DBs, like item_db, going to SQL. But well, it is everybodies own opinion, since you can change it yourself. Well, either Option 1 or 3, I find Option 2 too much.

  7. Well, grouping command would not be that hard however.. There are configs like from which level can a gm trade etc.

    We also need those configs to be set on each group. I think it would increase the complexity of the GM system greatly, unless you have a good idea how to handle this.

    I don't have quite a good solution. It's a complex topic. Maybe having one root GM group which can be inherited and which says that this group can't trade. If somebody were to want changes, they could just copy&paste the group and alter it or just alter the original. Not sure if it is possible to add this system with all our GM configs without adding this much complexity.

    Edit: Or just forbidding it by default and having a "root" GM group which allows GMs to do it if they are in. I also think we need to discuss the GM titles, if they can be in more than one group.

  8. +1 for a new GM system, but please don't use that snippet xD

    That was one of the first things i coded in C and it is really ugly code.

    And I would prefer something without bitflags, as they aren't beginner friendly at all...

    I wouldn't recommend it either, I just thought it would be good to understand the system for those with knowledge in C.

    And for the thing whether to use bitflags or not:

    That's what this discussion is for, isn't it? :P

    I think we could use a system like Bukkit(the minecraft server emulator) where they create groups and they can inherit rights of others groups and you can assigm rights to every group and so on.

    P.S. If we don't use bitflags, then it will get pretty messy. You would need one file for each group that coups any command or at least every command they have access to. But that might be more user-friendly in the end.

  9. I have another question xD

    What happens if there are two achievements with the same monster for example, will it count for both when you kill the monster?

    Yes. Even if the system finds a monster for one achievement, it won't stop but still go through every achievement.

  10. Apply this patch in where? which file? if i apply will disable whole or not? i just want for pvp no chat only @@" right click use tortoise svn apply?

    ./conf/mapflag/nomsg.txt < i dun have this txt. i have to create myself?

    SVN patches will create files that are missing. Apply it with svn or Tortoise SVN.

  11. Yea, i actually want to use those points, thats why i want to know where they are kept xD

    Like a way to count how many achievements the player has already done :D

    SQL Command:

    SELECT COUNT(*) FROM `achievement_tracker` WHERE `char_id` = 'X' AND `finished` = '1'

    This will get the amount.

    And in NPC script you can go through every achievement and check with GetAchievementInfo(<ID>, 5) if it is achieved and then count it.

  12. Well, I would find it to be time to change the atcommand or GM system. So you actually group Users and not give them levels and like this you can better handle giving out atcommands and create a hierarchie which is not just drop-down. So the admin for example has all rights. He then creates a group called EventGM. Those have certain commands. Then he created a group called SupportGM. They have completly different commands, but they are not considered 'lower'. Also, EventGMs don't automatically have the commands of SupportGMs and so on.

    This system was once introduced on eAthena as MOD and I think if someone could provide a fully working system for rAthena it should replace the old system officially.

    Who's in?

    • Upvote 7
  13. I see, glad to see its working now xD

    Small question, where do the points that are set in the achievement_db go?

    And you also forgot to post the sql file in the attachment

    The points are just kept and can be called via script. Never actually used them since I didn't find it to be of any use, but my old admin wanted to have them in.

    Thanks for mentioning the missing SQL file

  14. Edit:

    Ok, i think i got it now, part of it was my fault, i had 2 entries in the acheivement_db but only one of them was in the other db's (explore,mob etc) and that was making my map-server crash, i deleted the other one and i worked, any other bugs i'll report here. Very great mod Jonne!

    It was not your fault, it was mine. If you have forgotten the entries in the other DBs, it just prints a warning in the map-server and leaves out those entries. It was fully my fault with setting up the timer to delete the cutin. Sorry for the circumstances.

  15. Try this:

    Tested and working on my Windows(rathena-10.sln),

    not sure about Linux thought..

    Looking over your patch it does what I described. But I would refrain from using this method but much rather suggest sv_parse. It parses a string with delimiters. It is also used by the npc_parsesrcfile() function, which loads all scripts. I think your code might have problems for example when I use the warp command after a tab or similiar.

    Also I have a question, how does this behave:

    strtok(NULL, " ");

    You use this three times and I don't get it. I appreciate you share you knowledge

  16. I'd like to request an edit to the command @unloadnpc to unload the whole text file by directory.

    Like @loadnpc <directory>/file.txt

    Unloadnpc would do the same thing but unload: @unloadnpc <directory>/file.txt

    This way @loadnpc <directory>/file.txt doesn't create duplicates.

    Thanks for your time.

    Only hardly possible. When loading NPCs, they are parsed and then saved, but not by their source but by their unique name. That's why there is @unloadnpc <name> but @loadnpc <file>. To do this you would have to keep track of any NPC in any file or go through the whole file looking for NPCs and check whether they exist and then remove them. I suggest just using @unloadnpc <name> to unload NPCs...

  17. Filters

    Monsterkill Achievements(0):

    Well, name says it mostly, but there is a bit more to it. You can define different types per achievement. The types are counting by ID(0), by size(1), by race(2), by element(3) or for all MvPs(4). And if player A has killed X monsters that meet the requirement, then he gets the achievement.

    Itemfind Achievements(1):

    Again, name says what it does. If you find certain items, you get the achievement. Make sure you only use it on non tradeable etc. items or it will be abused. It can also be filtered into types. They are the following: ID(0), Equip(1)[see item_db->equip), Type(2)[see item_db->type]. It will count if you drop it and pick it up again, so really, only use it on items not storageable, tradeable and dropable!

    Why would your server crash? Please post your script. Also, you achieve and then the sever crashes. I think I know the source. Give me a bit of time and I'll fix it. I'll edit this post or BUMP when I'm done.

    Did the edit, should now work properly with cutins!

  18. Thanks alot, are the changes already updated? and if not asking too much, were do i change so i dont have to do everything all over ( i manually patch)

    It's already uploaded. I did changes in pc.c: pc_authok. and battle.c, adding the missing underline

  19. No problem, i dont think you saw my last edit so i'll just leave it here

    And last but not least xD
    "See description of Mobkill Achievements. There are numbers in brackets for each filtering type"

    Im sorry but no where did i find this and without it i cant set up item or monster achievments :D

    And like i said, everytime i relog, without even using the @achieve i complete the achievment, i only use it once and keep completing it everytime i relog on the explore map

    Once again great job on this, and have a happy new year :D

    Okay, I forgot to load the achievements already done out of the SQL. I added the function but forgot to call for it. Also the problem with the timer in misc.conf: It was called achievement_cutinduration, with one less underline '_'. I now changed it to achievement_cutin_duration in the new version. But I didn't get the other timer error you got. Please try again and report if it still messes up. I will upload the new diff any moment

×
×
  • Create New...