Giter VIP home page Giter VIP logo

Comments (9)

TioAkima avatar TioAkima commented on July 17, 2024

I liked your proposal.
Bringing the skillratio to the skill data base is a great idea, it makes the entire structure more organized.
My server has many customized skills, so having this facility in manipulating the skillratio through skill_db is interesting, very intuitive indeed.

Simple formulas (that do not require a special formula) simply vary the % by the skill level.
For those who want to change the default balancing, it seems very practical to me.

It wouldn't be possible to include formulas with attributes, right? In this case we would use CustomSkillRatio for more elaborate calculations.

(BaseRatio and RatioPerLevel is also excellent*)

from hercules.

guilherme-gm avatar guilherme-gm commented on July 17, 2024

Thanks for the feedback.

About attributes (I believe you meant stats like STR/AGI/etc), you are right, it would need the use of custom formula.

Since we are not doing formula evaluation in db, I think moving stats as having their own fields would bring too much clutter to the skill db, and usually they are not very straightforward in formulas. Some gives % to ratios, some needs like 10 points for 1% and so on. Doing that via db seems like too much. We would need to make too many names and conditionals that would make it hard to maintain.

In the other hand, one could make a custom ratio formula that uses skill data somehow for that. For example, a custom ratio that does SkillRatio + STR * SkillData1. I made an example in the main post (check the repo link) where I did something like that for ninja charms instead of str.

Edit: link to charms example - guilherme-gm@265fe57#diff-759fea9dcd40522e86217dd352aadd687488dff49c67aa880610d4aeaaeb89c0R955

from hercules.

TioAkima avatar TioAkima commented on July 17, 2024

oh yes, the idea already includes being able to create personalized formulas (using str, agi, among other conditions), so it's great.

well... ease of manipulating the skillratio with improved organization and customization support.
I can't think of an example where it wouldn't work.
great job.

from hercules.

csnv avatar csnv commented on July 17, 2024

I also think is a nice idea and a first step towards having a one skill-one function structure. It also helps removing skill related stuff from battle.c.

The second alternative for the conf structure seems a bit alien. The first one goes better with what we already have, even if it's a little bit more verbose.

On another note, skill.c is already 25k lines long. Maybe it's better to add another file for this purpose? Something like skillratio.c, as it would also host quite a few custom functions. Maybe we should also split skill_db.conf into separate files.

from hercules.

guilherme-gm avatar guilherme-gm commented on July 17, 2024

Yeah, I like your points. Totally agree with new files too.

I am not sure about how we could split skill_db.conf, the cleaner way seems to be by category like jobs/npc/homun/etc. but there are gaps in the middle, which may make it harder to find gaps where skill ids are empty.

For example, after DC_SERVICEFORYOU, there are 3 NPC skills, followed by 3 marriage skills, 1 item skill, and back to a few NPC skills.

If we wanted to keep the ID order, we would need 4 files here (Npc1, Marriage1, Item1, Npc2).

Another option would be to split by ID range, but in this case we would have every file with a mix of types of skills

Yet another option would be to simply group by NPC / Jobs / Marriage / etc, but in this case we would have something like that: (All ids are made up)
Job.conf : IDs 1 .. 100 , 150 .. 200, 1000 .. 1100
Npc.conf : IDs 101..110 , 400 .. 600, 1300 .. 1500

And it would be harder to, for example, tell that there is a gap between 110 and 150. One could still go to source and check the enum, though (which seem easier than reading the db anyway)

from hercules.

csnv avatar csnv commented on July 17, 2024

I may have spoken too fast about splitting skill_db.conf. Seems like, contrary to source files, configuration files that share the same settings/properties, have no problem being too large. It's plain text after all.

It does break the blame tool of github though, that's the only disadvantage I see.

from hercules.

guilherme-gm avatar guilherme-gm commented on July 17, 2024

I do like the idea of splitting if we have a good approach xD although it works in a single file, too big text files is still hard to deal with

from hercules.

SombraRO avatar SombraRO commented on July 17, 2024

I remember that they once posted something similar on the Hercules forum but it had other settings besides the skillratio, I think it would be very interesting if this were applied and not just limited to the skillratio. It would greatly avoid using the compiler to make changes to skills

Here is the link, the person who wrote about it was Beret

https://board.herc.ws/topic/15716-new-fields-in-skill-db/?tab=comments#comment-86650

from hercules.

guilherme-gm avatar guilherme-gm commented on July 17, 2024

I remember that they once posted something similar on the Hercules forum but it had other settings besides the skillratio, I think it would be very interesting if this were applied and not just limited to the skillratio. It would greatly avoid using the compiler to make changes to skills

Here is the link, the person who wrote about it was Beret

https://board.herc.ws/topic/15716-new-fields-in-skill-db/?tab=comments#comment-86650

I lke this and agree. But I would rather take one step at time than do everything at once

from hercules.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.