Entropy Report post Posted October 21, 2005 After careful consideration, I have decided to change the way our spells work. The current way is unintuitive and cumbersome, and anything but user friendly. How the new system will work: There will be a spell menu (instead of the sigil window) with a matrix of squares, something like 20x5 Each spell square will be either empty, or have an icon representing the spell. Sometimes, the icons will be greyed out, if some prerequisites are not met. There will be an XML file on the lient that will store the requirements for the spells, like this: Filename: ./spells_defs.cfg File format: The file will use XML (or EML?) and will have the following fields: I. Header. In the header we specify: The VERSION of the file, in a number. This is so that we can autoupdate the spells without a client update. (more about it later) Some text explaining what that file is and telling the morons that want to cheat not to mess with it because not only they will get banned, but they won't accomplish anything. II. Body The budy will contain the bulk of the info, as expected. We will have the following tags: <spell></spell> Inside the <spell> tag, we will have the following tags: <name></name> The name of the spell, will apear on mouse over (over the spell icon) <desc></desc> The description of the spell. Will appear in a special place on the spells window, designed especially for that. <target></target> This is the target of the spell. The target can be: None, Actor, Location, Inventory, Object The target meaning is as follows: None means there is no target for the spell. Examples include spells cast on self that can not be cast on others. Actor means a spell that can be cast on an actor (player or animal), such as the harm spell. Location means a map location, such as the teleport to range spell. Inventory means the target is an inventory object. Object means the target is a map object (3d object) <color></color> The color, using 1 rgb pair (such as 255, 0, 150 for some purple like color) of the cursor for when we cast the spell. This is mainly so we can have green and red cursors, to denote if a spell should be cast on friends or enemies. <icon></icon> A number, from 0 to 255, which will be the ID of the icon of the spell in the spell texture file. <distance></distance> The distance, in meters, relative to us we can cast the spell. <resource></resource> There will be between 0 and 4 such tags, and the data will be like: item_image_id:, quantity: The purpose of this tag is to see if the player has the required ingredients to cast the spell or not. <mana></mana> The required quantity of mana (ethereal points) to cast the spell <magic></magic> Required magic level to cast the spell <spell_id></spell_id> The ID to be sent to the server when casting this spell. Will be 1 octet. All the spells that fail the mana, magic skill or resource requirements should be grayed out. All the spells the player can cast will be sent at log in time as an array of octets, their bits being 0 or 1 (duh) representing if the player knows that spell or not. If the bit is 0, the player doesn't know the spell, and the space in the spells window for that spell should be empty (possibly showing a no spell icon) If the player learns a spell, that spell will be sent as an octet, which means that the index represented by that octet is a learned spell and cna be displayed. How the spells will be sent to the server: When the player clicks on a spell that can be cast, unless the spell has the "none" target, the client will change the cursor into a target, of the color mentioned in the color tag, and when placed over a valid target (such as a player if the target is actor, or a map location if the target is location) it should change it's shape to something else, to confirm that the target is valid. If the player left cliks, it means that the spell is aborted. If the player right clicks, then the spell and it's target info is sent to the server. Other details such as the exact protocol name and format will be dicussed later. Any questions? Suggestions? Is there someone who would like starting to implement it? Share this post Link to post Share on other sites
ttlanhil Report post Posted October 21, 2005 (edited) how will we learn spells? will it be similar to sigils now, purchase the info from certain mage shops (with more advanced spells costing more and coming from harder to reach places, perhaps)? if so, will there be a chance for some mystery, like we currently have: "experiment with the sigils, you might find a new spell!"... maybe finding where/how to learn the spell will be more than just cash at a shop? will we be having the same spells(with new ones added whenever, sure), or will the current ones be scrapped in favour of a new set? a suggestion: is it worth defining the graphic effects of the spell in this file (like particles, or a colour change of the target or something)? granted, for stuff like colour change you need to work on other parts of code as well, but it can be re-used (like actors glowing red when you click-to-attack, similar to the green you-walk-here thingies) edit: with both a 'success' and 'failed' option of graphics. 'failed' might mean some coloured particles spinning around you instead of your target I'll volunteer to write the XML for now; I can probably also make the spell window, but I'd have to look into the reading-XML issues to know if I'd be able to do all of it in a reasonable time-frame just the XML won't take long to do; if it's the same list of spells I'll base it on the encyclopedia/etc, if there are any changes or additional spells, I can do that, or whoever else on the team can make changes (for example, if there's new spells coming, and you don't want to give it away till they come out) Edited October 21, 2005 by ttlanhil Share this post Link to post Share on other sites
Wytter Report post Posted October 21, 2005 It should use XML and not EML. No need to add EML support to the client for this. Share this post Link to post Share on other sites
GarfieldClowntje Report post Posted October 21, 2005 (edited) If the player left cliks, it means that the spell is aborted. If the player right clicks, then the spell and it's target info is sent to the server. I should say left-click is the 'do'-button and right-click is the 'abort'-button, since left is always 'do' Other suggestion: if you have cast a spell in this new settings, will the last casted spell still be active, so you can easy click the target again? or will you click the right-spell-button time and time again if you want to do it repeatetly Other thing to think about: the 2-second-interval, will it be changed? because, if magicians will get their long awaited for new spells and interface (Yea power to the mages ) the 2-second-interval still makes them 'vulnerable' -don't know if that's correct english- for counterattacks. If magicians can cast spells faster (maybe faster casting when you have done that spell more or faster casting when your magic lvl increases or something like that) than they can become a true opponent against the strong warriors and strong summoners. Yippie, can't wait -I was planning to search through the forums today to collect all the different spell suggestions and other possible implements into magic, and combine them all in 1 post, for suggestions section, shall I still do that? since this post might make it obsolete- Greetz the Clown Edited October 21, 2005 by GarfieldClowntje Share this post Link to post Share on other sites
Entropy Report post Posted October 21, 2005 No, there won't be a 2 seconds delay anymore. There will be a REAL delay like in other game,s of at least 5 seconds, and up to maybe 100 seconds or so. Which reminds me that we need another field for the cooldown too... Share this post Link to post Share on other sites
Placid Report post Posted October 21, 2005 No, there won't be a 2 seconds delay anymore. There will be a REAL delay like in other game,s of at least 5 seconds, and up to maybe 100 seconds or so.Which reminds me that we need another field for the cooldown too... 212179[/snapback] Could you push spell effects under this too? Would be really cool to see some particles when harming someone or healing yourself Share this post Link to post Share on other sites
Atreyu Report post Posted October 22, 2005 (edited) One step closer to making the game better for combat. I like it alot. Now you just need more combat spells. I also like the right click to cast. I dont know how many times I've misclicked remote heal. Edited October 22, 2005 by Atreyu Share this post Link to post Share on other sites
Entropy Report post Posted October 22, 2005 Yes, the idea is to also get spell effects.. Share this post Link to post Share on other sites
the_antiroot Report post Posted October 22, 2005 Perhaps with cooldown implemented, magic level could also be taken into account for cooldown. ie the moe experienced you are with magic the faster you can cast recover from casting. Share this post Link to post Share on other sites
Vegar Report post Posted October 22, 2005 <color></color> The color, using 1 rgb pair (such as 255, 0, 150 for some purple like color) of the cursor for when we cast the spell.This is mainly so we can have green and red cursors, to denote if a spell should be cast on friends or enemies. 211966[/snapback] AFAIK, the SDL cursor (which we are currently using) can only have the colors black and white. http://manuals.thexdershome.com/SDL-1.2.5/...eatecursor.html Share this post Link to post Share on other sites
Entropy Report post Posted October 22, 2005 Yes, but we can draw our own target like cursor under the real cursor, no? Share this post Link to post Share on other sites
Vegar Report post Posted October 22, 2005 Yes, but it could get a bit laggy on slow computers. Isn't that why we're using the SDL cursor in the first place? Share this post Link to post Share on other sites
Drakos7 Report post Posted October 22, 2005 It is easy to implement the add_highlight function to casting spells. I have a patch (not submitted yet) that places blue triangles under a cast magic target and red ones under an attack target, similar to the green triangles during a force-walk. Works pretty well on test server. Only problem is that the triangles sometimes (usually) do not draw exactly under the target. Share this post Link to post Share on other sites
Entropy Report post Posted October 22, 2005 Yeah, that would be a good patch as well. Screenshots? Share this post Link to post Share on other sites
ttlanhil Report post Posted October 22, 2005 how will we learn spells? will it be similar to sigils now, purchase the info from certain mage shops (with more advanced spells costing more and coming from harder to reach places, perhaps)?if so, will there be a chance for some mystery, like we currently have: "experiment with the sigils, you might find a new spell!"... maybe finding where/how to learn the spell will be more than just cash at a shop? will we be having the same spells(with new ones added whenever, sure), or will the current ones be scrapped in favour of a new set? a suggestion: is it worth defining the graphic effects of the spell in this file (like particles, or a colour change of the target or something)? granted, for stuff like colour change you need to work on other parts of code as well, but it can be re-used (like actors glowing red when you click-to-attack, similar to the green you-walk-here thingies) edit: with both a 'success' and 'failed' option of graphics. 'failed' might mean some coloured particles spinning around you instead of your target I'll volunteer to write the XML for now; I can probably also make the spell window, but I'd have to look into the reading-XML issues to know if I'd be able to do all of it in a reasonable time-frame just the XML won't take long to do; if it's the same list of spells I'll base it on the encyclopedia/etc, if there are any changes or additional spells, I can do that, or whoever else on the team can make changes (for example, if there's new spells coming, and you don't want to give it away till they come out) 211969[/snapback] bump. I'll write the XML file once I have the spell list Share this post Link to post Share on other sites
Entropy Report post Posted October 22, 2005 Well, the XML file will be written by us. We need someone to implement the current design... Share this post Link to post Share on other sites
Drakos7 Report post Posted October 23, 2005 Here is a screen shot of the attack functionality: It looks the same for the targeted spell, just blue. Want me to send the relevant patch? If so, I'll need to look up how to make a patch diff again... Share this post Link to post Share on other sites
Entropy Report post Posted October 23, 2005 Not in the current form. We need to integrate it with the specs for the new spells.. Share this post Link to post Share on other sites
Lachesis Report post Posted October 24, 2005 <name> and <desc> should not go into that file. They are already in a file under languages/. The icon ID might be used as an identifier to find the correct strings for translation. Share this post Link to post Share on other sites
Entropy Report post Posted October 25, 2005 <name> and <desc> should not go into that file. They are already in a file under languages/. The icon ID might be used as an identifier to find the correct strings for translation. 213166[/snapback] No, the name and description SHOULD go into that file, otherwise it would make the update (for that file) unresonably difficult. Share this post Link to post Share on other sites
Wytter Report post Posted October 25, 2005 Could just put it in languages/ - if it's not found in the $LANG it will just use the english... Share this post Link to post Share on other sites
Lachesis Report post Posted October 25, 2005 You should keep it separate as only a small part of the information is language dependant. Updating two (or multiple) files is no more complex than updating one file. Share this post Link to post Share on other sites
Roja Report post Posted October 25, 2005 I believe he wants it in one file so that you can actually look at the spell and know what it is instantly, instead of looking up numbers or whatever else to be able to read the file...iow, make it more clear and organized(so you don't waste a lot of time and frustration) Share this post Link to post Share on other sites
Wytter Report post Posted October 25, 2005 Actually we can do both... Just have the ID in the spell file and we can easily put up an array with replacable strings and still have it written in the spell file (but as a note to what it is rather than the exact name as it will be seen ingame) Share this post Link to post Share on other sites
Roja Report post Posted October 25, 2005 you mean, instead of seeing: Fire spell this spell gives you fire magic you'd see: 34 ? Share this post Link to post Share on other sites