Jump to content

Cheshire

Super Contributor
  • Posts

    935
  • Joined

  • Last visited

  • Days Won

    72

Everything posted by Cheshire

  1. Hmm, that would work in theory. But would also make Defense/Magic Resist completely irrelevant as a stat to put points into.
  2. I've noticed that as well, and thought it was rather funny. I'm not sure how to fix that with the way damage is done now. In actual code I'd just set it to 0 if it were going onto the negatives, but I can't do that here. Not entirely sure why the system allows for negative numbers in the first place though. There's probably a better way to get a similar result without the whole negative values thing. Not really a math wizard, just a little rough sketch for calculating damage.
  3. I'm not entirely sure how well the Magic Damage scaling works on this, as Magic Defense isn't a pure stat whereas Defense is. (could always swap V_MagicResist out for V_Defense!) Scratch that, it is. Nor am I 100% certain about the True Damage scaling (If your target's defense doesn't raise equally to your own attack a physical/magical strike might deal more damage than a true strike in some cases). But stats have a more noticable impact like this. This excel sheet has the equivalent calculations in it: http://www.ascensiongamedev.com/resources/filehost/b6847fa90ae288d94c9aa7f054b76e74.xlsx <?xml version="1.0" encoding="utf-8"?> <!--formulas.xml generated automatically by Intersect Server. Here you can modify formulas used in the Intersect Engine. The three main formulas are for calculating Physical, Magical, and True Damage. The following functions can be used: Random(min,max): Returns an integer value between min and max. The following variables can be used: BaseDamage: Base damage of weapon or spell used. ScalingStat: Value of stat that was selected in the item/spell editor to scale with the attack. ScaleFactor: Value set in editors for how spell/weapon should scale off of the scaling stat. CritFactor: Value to multiply potential damage by if the attack is a critical strike. (Server provides 0 is not a crit, and 2 if it is a crit) A_Attack: Attackers attack stat. A_Defense: Attackers defense stat. A_Speed: Attackers speed stat. A_AbilityPwr Attackers ability power stat. A_MagicResist: Attackers magic resist stat. V_Attack: Victims attack stat. V_Defense: Victims defense stat. V_Speed: Victims speed stat. V_AbilityPwr Victims ability power stat. V_MagicResist: Victims magic resist stat. --> <Formulas> <PhysicalDamage>Random((BaseDamage * (ScalingStat * ScaleFactor)) * CritFactor - (V_Defense * 2), (BaseDamage * (ScalingStat * ScaleFactor)) * CritFactor - (V_Defense * 1.25))</PhysicalDamage> <MagicDamage>Random((BaseDamage * (ScalingStat * ScaleFactor)) * CritFactor - (V_MagicResist * 2), (BaseDamage * (ScalingStat * ScaleFactor)) * CritFactor - (V_MagicResist * 1.25))</MagicDamage> <TrueDamage>Random(BaseDamage * ((ScalingStat * ScaleFactor) / 1.02) * CritFactor, (BaseDamage * (ScalingStat * ScaleFactor) * CritFactor)</TrueDamage> </Formulas>
  4. I think the easiest way to SEE your changes directly would be to make an excel sheet and just try out different values. In the end you'll likely want an excel sheet for calculating item progression/stat budgets anyway or you'd just get a royal mess with itemization. It's probably boring and hard work making a damage formula you're happy with. But probably worth it in the end.
  5. There should be a file called formulas.xml alongside your server configuration files which has the damage formulas in it for all three types of damage. <?xml version="1.0" encoding="utf-8"?> <!--formulas.xml generated automatically by Intersect Server. Here you can modify formulas used in the Intersect Engine. The three main formulas are for calculating Physical, Magical, and True Damage. The following functions can be used: Random(min,max): Returns an integer value between min and max. The following variables can be used: BaseDamage: Base damage of weapon or spell used. ScalingStat: Value of stat that was selected in the item/spell editor to scale with the attack. ScaleFactor: Value set in editors for how spell/weapon should scale off of the scaling stat. CritFactor: Value to multiply potential damage by if the attack is a critical strike. (Server provides 0 is not a crit, and 2 if it is a crit) A_Attack: Attackers attack stat. A_Defense: Attackers defense stat. A_Speed: Attackers speed stat. A_AbilityPwr Attackers ability power stat. A_MagicResist: Attackers magic resist stat. V_Attack: Victims attack stat. V_Defense: Victims defense stat. V_Speed: Victims speed stat. V_AbilityPwr Victims ability power stat. V_MagicResist: Victims magic resist stat. --> <Formulas> <PhysicalDamage>Random(((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * .975, ((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * 1.025) * (100 / (100 + V_Defense))</PhysicalDamage> <MagicDamage>Random(((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * .975, ((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * 1.025) * (100 / (100 + V_MagicResist))</MagicDamage> <TrueDamage>Random(((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * .975, ((BaseDamage + (ScalingStat * ScaleFactor))) * CritFactor * 1.025)</TrueDamage> </Formulas>
  6. I mean, your suggestion/question was actually quite good until it devolved into "OMG people are stupid and it's unfair they haven't done this!". Yes, that would be a decent suggestion, though considering the engine as it is right now doesn't support even half those sprite frames.. You'd probably still be unhappy if it did contain such a thing. It's a free engine that you don't have to pay for, either take it or leave it really. (And in 2133 when the source comes out edit it to your liking. )
  7. Not sure if it's .Net, or if whatever your language of choice is.. But wouldn't collections work? You can sort of ''subscribe'' a method into that through packet IDs, and they're relatively easy to deal with. (ie Dictionaries in the .Net Framework) They're not too gross to look at and should you expose them to other code it might be fairly extensible allowing people to add their own packet IDs. e.g.: (taken from something I wrote up ages ago) private static Dictionary<Packets.Client, Action<NetIncomingMessage>> handler = new Dictionary<Packets.Client, Action<NetIncomingMessage>>() { { Packets.Client.AuthenticateClient, HandleAuthenticateClient } }; private static void HandleData(NetIncomingMessage msg) { // Retrieve our data and pass it on to the designated handler. Action<NetIncomingMessage> exec; if (handler.TryGetValue((Packets.Client)msg.ReadInt32(), out exec)) exec(msg); }
  8. How are you closing the server? With the exit command or just pressing the X button?
  9. Parallax what, Scrolling or Mapping? There's an option for a Parallax Scrolling image in the editor per map, I believe. Mapping would work as well since all you do is cut up tiles into a giant image map and then cut the image up in tiles again if I recall.
  10. To clarify; not at this moment. The base engine as it's provided does not allow for this sort of thing, however once the source code has been released you'll be able to modify it as you see fit (or perhaps someone else will do it, and you can ask them to do it for you as well?). You can use spells/projectiles/animations and some trickery to at least show ''slashes'' when the player attacks though, I know it's not exactly the same thing but it's a reasonable alternative for the time being.
  11. It's not that he's adding it in, it's already a thing in Intersect. He's trying to make it work with external passwords.
  12. I'm basing this off of an assumption, but I dn't think Common Events have the power to do this at the time. If the logic is anything like it was in older engines, it's all very linear and you just die. THEN things start processing, your event can't interrupt your death.. Gaining health after you've died won't save you. Not sure if events can pause the player, but it would be nice if you can actually affect the flow of a player's death through events yes.
  13. Pretty sure you posted about this in Discord, and you got very close: But you're not using SHA256, you're using BCRYPT which you wrapped in a method called SHA256. You already found this: And we've explained the basics of how it works (which you've understood, given your example above but using the wrong hashing algorithm and not generating and saving the salt) Basically, you're really close and despite me constantly telling you that and telling you to stop using BCRYPT you want us to just do it for you?
  14. Mmm, got to love that sweet sweet permission escalation.
  15. I will never be able to get that out of my mind.
  16. Any particular reason why it uses mysql instead of sqlite? That would drastically cut down on how hard it is to set up.
  17. I thought it looked oddly familiar.
  18. I don't think saturating the forum with more vague boards is going to do is any good in the long run. How will people know which questions are relevant to which board? How are people going to find questions any easier in two boards rather then one "answered questions" section? I honestly feel they adding more boards without thinking about organizing things in the long run will just cause a bunch of trouble later on. (I always thought eclipse had a messy board structure that was hard to navigate and they kept adding small boards they deemed necessary.. Until the end of time.)
  19. Basically what @Miharukun said. The source is not yet release, it'll be available to us all once we go into Beta if I understood things correctly, which was thought to be happening fairly soon.
  20. You -could- do daily quests with some fairly simple trigger-y nonsense of player and global variables.. (Quest available if player variable < global variable, at end of quest raise player variable to global variable, at midnight raise global variable by one). Not very neat if you have to do it for every single daily quest.. But it works if you're not up for editing the source.
  21. Well, there's always optimizations and slight changes between platforms.. or just flatout things you can not do on certain platforms. Which is why I'm saying that it might need some work. Considering they're not using WinForms and (as far as I can tell) only cross-platform libraries it shouldn't be a big deal to get it to work.. Although I've also seen a few libraries that I can't quite put my finger on, they only seem to be used in the editor however.
  22. I believe that you'll need an event to trigger the completion status of that particular task, how you handle this is completely up to you and your creativity with events.. So for example you could have it trigger upon discovering an area, talking to an NPC, solving a complex puzzle or just from standing around a certain spot at a certain time. Heck, you could probably make people watch a cutscene played out entirely by events before triggering the completion state if you want to go all-out. Whatever you make your event do, just slap the "Complete Quest Task" command in your event at the end and you'll have completed the objective for that quest.
  23. I would imagine it'd take some rewriting to get certain things to work (seeing how the client seems to be primarily written for Windows environments at the moment) but I'm not going to say it'd be impossible. Heck, I believe you could likely port it to Unity and make use of their cross-platform capabilities as well.
  24. Not sure why you'd want to waste server resources for something as basic as a campfire, but to each their own. A simple 10 second copy/paste job could get you an animation file to use. Remember: Events are all handled by the server, and not having made it global you made it run for every single player that can see the fire as well. So 10 players = 10 fires the server has to worry about. So yes, it works. No it's not very efficient. (Basing this on how it worked in the VB6 version, assuming it's not much different now.)
  25. Why are you using the event system for this when you could also use the Animation attribute?
×
×
  • Create New...