![]() |
OK, new builds which no longer have the zombie unique issue are up.
|
Quote:
|
Quote:
|
Randart bug is found and fixed, fix will be in the next build. It is possible to change from randarts to standarts with the following character in the current build; you just need to make a character (with standarts), suicide immediately, then make a new one.
|
Quote:
Btw, I'm finding the revised Ranger to be much better and not overpowered. I seem to be having issues in the late-mid game (latest fail from didn't have poison protection on and ran into an 8-headed hydra). But much better than it was. :) |
Found a bug. No idea how to report it
Noticed there are no places in town to buy priestly weapons. The temple only has books and in multiple games the weapons shop does not have these either. Pretty hard to arm a priest from the start.
|
Quote:
|
OK. Sorry then
|
I'm hungry, I eat food => Fed 80%. I am not satisfied so I cast the (ranger) Satisfy Hunger spell too => Fed 49%. With the current naming of the spell this is very unintuitive. Sure it brings < 49% fed to 49% which is fine. Also, a glutton at 99% fed is much helped by using the spell to get to 49%, but again the naming is not telling what the spell does.
|
Maybe call it "Remove Hunger"? Doesn't really help with taking your satiation down but it's more clearly less filling than "Satisfy".
|
Quote:
Please, someone suggest something. |
Spell of Nicely Half-full Stomach :)
Make Belly Comfy Satisfy Stomach Alleviate digestion nuisances. (But "alleviate" would suggest you go up or down to some reasonable value, not that you get to a set middle state) Reinitialize/reinstate/rejuvenate/revitalize Stomach/Digestion I find "Rejuvenate Stomach" suggestive :p or maybe just have a spell of Fill Stomach/Magical Food (adds some constant food), then have a way to vomit at monsters when your stomach is above some value (cone attack dealing acidic damage + makes player stunned) ("Slow Digestion" isn't great either: it looks like regen will be slowed too, while it's not the case AFAIK. Low Food Wastage? Sustainable Metabolism? Just plain Save Food?) |
Good digestion.
|
Restore metabolism
|
Scroll of Tasty Victuals
Scroll of Sustenance Scroll of Bilbo's Larder |
Normalize Nutrition
Moderate Gluttony Frodo's Second Breakfast :) |
I've just tried to patch the game to extend the @[cmd][key] syntax so that "key" can also be a-zA-Z, and it's really great. Try it and you'll wonder how you could play without it!
Engrave default food with @EE, the most useful rod with @aa, wand with @zz, arrow with @tt etc. (roguelike keyset examples) Then other things with whatever is easy to type, and probably use an upper-case key for things you don't want to mistype and launch by mistake. If I have a potion engraved with @qe then another potion at slot e does get hidden but I don't think it's a problem. I didn't allow for the general @[key] syntax to get extended of course, since this would conflit with the @[cmd][key] syntax. (The engraving check code doesn't use an efficient algorithm so it's slowed by a factor 6.2 (each @ was checked 10 times, now it's 10+26+26)) ui-object.c Code:
/* old code in 4.1.3 Code:
/* Old code */ Code:
/* Get inscriptions */ Code:
/* Old code: we don't touch the first if but we need to swap the ifs Well above all I hope it doesn't break things. I made a beginner warrior and whatever I tought I'd try worked... |
Quote:
|
Also thanks for all the helpful suggestions on a new name for Satisfy Hunger. My current thinking is to go with Derakon's idea of Remove Hunger, and change it to not reset food downward. This means it will not be a cure for fullness, which seems more in keeping with the philosophy of the changes. Also makes ,Purging and !Salt Water more useful :)
|
Quote:
|
Quote:
|
@tak--
Agree. That stuff belongs under a function pointer, or outside the menu code entirely. It is really mysterious as a menu side effect. |
Thanks all for the feedback, will look into following takkaria's advice.
|
Quote:
My quick patch doesn't update the menu keys, which is indeed pretty confusing. I'll look into that as soon as I'm done with trying to get stacking limits to work :rolleyes: EDIT Ah, so many posts while I was thinking. Er, do I still need to look into it or are knowledgeable people going to do it? :D Never mind , looks like the big boss is on it... |
I guess it's OK to double-post for unrelated matters?
I'm playing around with inscriptions for stacking limits and auto_pickup. So {!L25} would only stack up to 25 when walking over a stackable stack of objects. The get command happily ignores this so far. I think it should prompt for a quantity when picking the most it can would overshoot the limit. It's not thoroughly tested at all but I thought I'd ask for an opinion. I don't exactly get how the code is organized (lots of similar code in several places) so I'm afraid I'm adding to the mess. It's just a bit annoying when the game keeps stacking things, espacially when it uses a new slot, but no major problem there. I think it's sane to ignore !Lxx when xx>40. Do people really want to have 60 or 80 of something? It would take more coding to check this out, since as it is, only the first stackable slot is checked out, so if it says !L42, then it will pickup until "it's at 42" which means 2 will go to the next stack each time. I guess I could just check what happens with the next inventory slot... There's potential for confusion if you manually overshoot the limit, then drop some of them, then change your mind about the limit, then manually pickup items with the previous inscription etc., you end up with several stacks with different inscriptions. Only the first stack is taken into account so if you have 8 items {!L08} then 2 items {!L05}, you won't pickup anything when walking over uninscribed items. Not sure what to make of that. What if there was 7 items !L08, would I have to add 1 item to this stack then again several items to the next? Huh... --- So the patch I'm trying is in cmd-pickup.c There's something weird with player_pickup_aux. There are 3 calls to this function. Parameter auto_max is unused 2 times (=0), and is set to inven_carry_num(obj,true) in the 3d, in the do_autopickup function. Now in obj-gear.c we can see that, for the inven_carry_num function, stack=true only serves to return 0 when obj can't be stacked to an existing inventory item. So either auto_max=0, or the first thing player_pickup_aux does, calling inven_carry_num(obj,false), is to recompute its value. So auto_max should perhaps be a bool then. But I don't really get in what situation we get to that part of the code with the call to get_quantity so meh. I need to set a pickup limit somewhere though, so I just added a new parameter : Code:
static void player_pickup_aux(struct player *p, struct object *obj, On a side note, I probably won't have much time until next month :( |
Code:
if (check_for_inscrip(gear_obj, "!L")) { Code:
const char *inscription = quark_str(gear_obj->note); |
Quote:
The fundamental difference between the Frog/Pos code and V is that in Frog every item only has one corresponding key in a given menu (the inscriptions only change what that key is), while V has (so far) tried to make both the original letter and the inscribed key apply within the same menu. I think the latter approach is ultimately unworkable with @[letter][letter] inscriptions allowed, though it didn't cause any conflicts as long as the inscribed keys were always numbers. (I'd also say removing that is a very cheap price to pay for making @[letter][letter] inscriptions work :) But that might be because I'm already used to it.) |
@takkaria If you mean the accesses to s[2] and s[3] they can't be out of bounds (null-terminated string so these expressions are in bound when evaluated) -- I copied this from elsewhere in the code.
Now your code is much cleaner, and faster too. Er, I think you could have a look at some elsewheres in the code :D I just quickly tested it with Code:
if (s && sscanf(s, "!L%d", &stack_limit) > 0 && 0<stack_limit && I haven't coded in C for like 20 years so I also tested !L0x20 but it seems %d doesn't accept hexa format :D Another quick note (I realize I wasn't clear): I think the player_pickup_aux code would work the same without the 4th parameter and Code:
if (!pickup_limit) num = get_quantity(NULL, max); ------------ About @<cmd><letter>, my plan would be to have the menu scan the keys, check if they're hidden by an entry in the inscriptions array, in which case the inscriptions array would be scanned for an entry that points to the item: this key would be displayed in the menu if there's one, if not, the first free slot would be assigned first. Degenerate case: the player engraved multiple @ commands to objects so there's no free slot available, we display a space in the menu and the object is not reachable. @Sideways So @<cmd><letter> could actually be made to work with multiple ways to select an item. Use a key displayed in the menu -> select the corresponding item, use some other key -> select the first engraved item if any. Now I don't know if that's a desirable feature, the code could be messy, perhaps I can't get back to it before the 1st of 08, and above all other people have said there's a more desirable way to have @<cmd><letter> work so I'll leave it at that for now :D |
Yeah, I think not being able to use an item because something else has its letter in an engraving does seem like it would be a problem at times. There needs to be some way to tell the system to 'ignore engravings for this command'.
Maybe <cmd>'<letter>? So "qq" would quaff the potion engraved with @qq, and "q'q" would quaff the potion in inventory slot q. And of course, if there is no @qq engraving, "qq" would just quaff the potion in slot q. |
Quote:
|
Quote:
(I hate C) |
Yeah, uppercase sounds good, too.
|
Quote:
---- About @<cmd><letter> I just realized my plan would essentially make the inscriptions array a keymap (input letter-or-digit -> equipment slot), since we'd first assign working normal letters to the array (after inscriptions are processed) to guarantee nobody claims that letter. So we could rename this array keymap if we go that route. About the UI, we have several possibilities: 1. Don't use uppercase letters inscribed by the user. This guarantees 26 free slots for pathological cases. 2. Let the user use uppercase inscriptions and .2a. just do nothing if the user has somehow messed with all letters (an item is unreachable) .2b. provide a few non-letter keys for those cases. It's just that I don't see in what practical situation there'd be a 2a pathological case. "Assign the first free uppercase letter" should always work (going for an uppercase letter first to emphasize in the menu that a lowercase inventory slot was temporarily reassigned), unless the user inscribed all uppercase letters somewhere on purpose right? EDIT in fact @Ee might be safer than @EE in case I'd release the shift key between the Es and end up eating something at slot e. It could be lowercase inscriptions are safer. Or I'd engrave both @EE and @Ee. |
It seems to me that this entire thread has been sidelined into what should be in the "Development" portion for talk about coding specifics rather than the "Vanilla" portion, but maybe that's just me.
|
Quote:
What if it set your percentage to MIN(90, current+50)? Or current+25 or whatever you think a reasonable number is. |
Quote:
Here are my reasons for going ahead with this anyway:
While I'm aware that there are some people who wish hunger would just go away as a mechanic, I'm in general not in favor of extreme optimisation of aspects of the game to facilitate the equivalent of speedrunning; I think that's the player's job, not the maintainer's. There was a choice between actually removing hunger or making it more integrated within the game, and overall we came down on the side of integration. So I don't want to then do things that run counter to that, in the same way as I'm not going to introduce this Code:
##### |
You forgot the little courtyard for the townspeople and Farmer Maggot to spawn in, which is of course separated from the rest of the town by a pile of rubble. :)
But anyway, fair enough. I'm not personally trying to persuade you to go one way or another, just making sure you're making as informed of decisions as possible. Which you are, as best I can tell. |
Quote:
|
Quote:
But sure, there's plenty of other neat ways to penalize powerful races in the lategame. You could give one race a time limit of 1 million game turns (~= 100k normal-speed turns, plenty to win with), for example. There might also be some way to tweak the experience-received-per-enemy formula such that as a particular race dives deeper they have to get more and more of their experience from "novel" kills (where the monster type hasn't been killed before). |
Quote:
|
Quote:
Admittedly, I do tend to restart to get a favorable town layout (i.e., home relatively close to the stairs) except in comps, if I were really worried about keystrokes, I'd just play ironman! :D |
Bug in the code -all uniques resurrected
Hi all,
Just playing the latest build, I had killed a whole bunch of uniques and exited the game for a while. Restarted the game, opened my character, and found myaself fighting someone I already killed (one of the stone trolls), Did ` so I could see a list of all the uniques my character knew of and all uniques are alive. |
Interestingly my player history shows all the unique kills.
Quote:
|
Quote:
|
Quote:
|
You're right. I downloaded it on the 14th but somehow didn't get the latest and greatest
|
New builds up on the nightlies page and angband.live with the following changes:
Please let me know how all these things go. |
Just got an odd error on Angband.live while trying to load my current game for Angband nightly build:
At the top of the splash screen: "Error reading known item Savefile corrupted -- Couldn't load block stores" and at the bottom of the splash screen: A list of 4 lines of items dropped (stuff @ dropped in his home last time I played), followed by this line: "No object: 25:255 (scroll)" |
Quote:
|
Angband 4.1.3
Birth options:
Lose Artifacts when leaving level = yes Show level feelings = yes Program behavior: Seeing in the character history that i missed out more than a dozens of artifacts just being CL20, DL around 20. Watched the shown level feelings and noticed that i miss artifacts because they are not shown right away. I consider that a bug. I define the expected program behavior as: If birth option lose artifacts = yes, then the level feeling has to be shown at once entering the level, IF there is an artifact generated on level creation |
I wouldn't mind a change, but then also I don't have a problem with the normal delay before displaying the "$" indication of one or more artifacts.
|
Quote:
|
Quote:
|
Quote:
|
Quote:
|
Quote:
Originally, spending too little time on one level resulted in the message "Looks like any other level" when you arrived on the next one. This was seen to be a problem because it was hard to tell how much time you were meant to have spent. The solution, then, was to delay announcement of level feelings; this way, you were told when you'd spent "enough" time on the level, because you got a feeling. And all this deliberation was completely independent of playing with artifact preservation on or off. |
Ironman hobbit ranger feedback (short)
My ironman ranger testing is progressing nicely now. Will write a full summary once complete. For now I can say this is the most enjoyable version in a long time for a kobold/gnome/hobbit (i.e. non-high elf) ranger with ironman settings. The initial game quickly becomes difficult until you find a decent shooter. Then it gets difficult again when you start running out of ammo. It gets easier once you get the create ammo spell, but the the prereqs for this spell are nicely tuned - many attempts failed just short of the right player level or having >= 20 mana points or just finding the book before being totally out of ammo and soon dead. [twice dead wielding a powerful x3-5 (+x,+20)ish bow after running out of ammo with pitiful melee as last resort that just didn't cut it. This is good, otherwise an early find of such a bow would be too big]
Also I really like having staves as material for ammo. It's brilliant because they are plentiful enough but also heavy, and they stack. So my ironman ranger can finally go 100% archery with just one shooter which I find very satisfying. The cost of collecting staves is burden and inventory slots. It has quite some impact but that feels right since I no longer need to bring swap-shooters and multiple stacks of ammo. Also I can clear nearly any vault or huge monster pit with just arrows after level 30(ish), no need to switch to melee. Also, the very important (for this build) ?phase door is now very easy to stock up on. Blue p's and even blue p pits are common, but more interesting than large packs of hounds so no complaints there. Teleport scrolls are more scarce but after thinking about it, I feel their commonness is also well tuned. |
What is the difference between pFear and Fear in the character sheet?
[edit] Nm, I guess one is constant fear from e.g. =escaping] |
Something has gone odd with the rune.id system. Even with the "know runes" birth option on, Boots of Wormtongue have a {??} in its title indicating unknown runes.
|
Quote:
|
Quote:
EDIT: Actually, savefile would be handy if you can. |
Quote:
|
1 Attachment(s)
Quote:
|
Quote:
|
Quote:
I had the same ghost identification with a Ring of the Dog. Fear resistance showed gray + in the ring slot but the sustenance amulet's pFear status was showing a question mark. |
Quote:
Is this deliberate? It isn't declared when playing with known runes. |
Quote:
Quote:
|
1 Attachment(s)
Quote:
On a different note, theft works much better now - thank you, Nick! Mushrooms of Shadow seem a bit too rare (only found 1 in an entire run, and none seem to appear in mushroom rooms). |
Quote:
|
Thought I was imagining it at first, but it's repeated enough times that it's for sure. Getting a lot of "run past" problems, where @ runs over $ but they aren't picked up. Also happens occasionally with objects such as ammo, etc.
|
Quote:
|
Quote:
|
Quote:
|
Angband 4.1.3-515-gbe48a3a47. http://angband.oook.cz/ladder-show.php?id=22674
Hobbit Ranger "Revansch" started her quest with Str 18, Dex 15 and Con 13. Int & wis 10. Starting gear: *) 4 Rations of Food *) 7 Potions of Cure Light Wounds *) 8 Scrolls of Phase Door *) 4 Wooden Torches (5000 turns) *) a Sling (x2) (+0,+0) *) 74 Arrows (1d4) (+0,+0) *) 80 Iron Shots (1d4) (+0,+0) First levels in the dungeon went smoothly, the sling was enough to kill what had to be killed but mostly I was helped by Stealth starting out already as "Excellent". The first nice find (at 1250') was a holy avenger throwing axe, courtesy of Shagrat, which provided 4 points of Wisdom and See invisible. More than decent melee too but I had decided to only use shooters, so that didn't really help. The second thing advancing my situation was two =Escaping. I always wonder why only the first ring gives a -15 (iirc) penalty to to-hit for shooters. Why not another -15 for the second? Anyway, with two of those and some ammo, you can take care of most stuff. Notably Mim who dropped a nice artifact Longbow x5 (+10,+21) with resist confusion. That's an end-game weapon, so already at level 29, and 1550', all I needed to win was to find the second book or find truckloads of arrows. And gain HP of course. As you know, arrows aren't that frequent but I found the book before being overwhelmed and from then it was a totally different game. My stealth improved over time and once at "Legendary" level I even managed to sneak by nasty 's' drujs with confidence. Not a common happening. This was great when clearing out vaults. The end-game kit was unusual in that all resistances and protections were covered plus fire immunity. Not a single hole although I didn't have regen, so there was a tiny room for improvement. Native Speed 24 not counting the 4 points lost to burden. Sauron went the usual way but the Morgoth fight was a bit odd. I lobbed seeker arrows of wounding but didn't take much damage. Only a single mana storm which coincided with a darkness attack from a summon (took me down to 150hp) so the many unique's summoned were a bigger problem. Having a truckload of ammo was nice. First time as ranger not having to loop back and collect arrows mid-fight. Reflections (1) The create ammo spell does not make a huge difference if you use a powerful staff or something like _light or _see invis. I was worried that it would be too good at higher levels but it wasn't. Not a single holy might arrow in the entire game and creating frost and fire brand as well as slay evil were sufficiently rare to be balanced. (2) A ranger, now with unlimited ammo even for ironman, no longer need melee. If the old "we've got to nerf rangers" thread wakes up again, my first suggestion would be to nerf ranger melee , like max 2 or 3 blows if you carry a longbow or crossbow. (3) Picking up arrows (with =option "show damage" on) says "You have 22 arrows (+1,+1) (0)" etc. The final (0) does not make sense. Sometimes it gives a larger number. It could be that it says how many it picked up but gets the number 1 too short. Not sure. (4) Randarts were balanced this game. With the exception of the early drop of the x5 artifact bow, I am quite happy with the progression of drops from somewhat useful to great to really great. No single item were awesome enough to be a gamechanger. The bow itself was not overpowered as such, it just came very early. The first and only Lotlorien bow I found was better for damage output. (5) Rods/wands of Teleport Other makes the game more fun. However, I suggest waking monsters up when they are teleported. I once managed to teleport six unique's into the same tiny room, all still asleep http://angband.oook.cz/screen-show.php?id=4637 (6) Using two =Escaping with no penalty for the second ring (as far as I can tell) is just too good for archers. I'd either reduce the speed bonus for =Escaping to +2 or double the to-hit penalty when using two. |
Thanks for the report.
Quote:
Quote:
Quote:
|
What if Escaping had no stat modifiers, and the "terrified" flag automatically conveyed +X speed? That would effectively mean that the two rings would not stack.
It's always bugged me that those rings are as powerful as they are. Early permanent speed is ridiculously hard to balance, and as it stands it seems like they're more or less a no-brainer for any character that relies primarily on ranged damage. |
Continuing to port the "struct loc" refactoring to PWMAngband, I just tested some changes and suddenly monsters were not removed from screen when they died. I tracked the problem and found out the following:
Code:
void delete_monster_idx(int m_idx) |
Well, 0,0 will sure be blank.
|
I see sometimes that monsters first drop their objetcs and then are wiped from screen. Perhaps this odd behavior is related to this code.
|
Quote:
|
When clicking with a mouse or using look->g, @ will only successfully travel to a square if there's an unimpeded direct path; if there are any obstacles in the way, @ travels as far as possible (as the crow flies), then halts as soon as it hits an obstacle.
Is this intentional? |
Minor bug, perhaps -- I drank an unknown potion, which turned out to be Surprise! "Your body starts to scramble..."
... only, nothing scrambled. As far as I can tell it didn't do anything, unless there's a hidden effect I haven't noticed. This is in the latest nightly. |
Another minor bug -- someone dropped some blue dragon scale mail, which I had not identified yet. The description says "provides resistance to cold" along with "you do not know the full extent ..".
After I identified it, now it says resistance to lightning as expected, and it no longer says resistance to cold. |
Sorry I didn't realize the development section was also about Vanilla. I'll post code there next time. (Are diffs against 4.1.3 ok?)
About autopickup limits: is it okay to have limits that only work in the range of one stack (i.e. 1..40), or should the code be able to deal with limits over several stacks (e.g. the player wants two stacks of !CCW so {!L80} should work) before the code can be considered user-ready? |
Wow, that "only 11 bugs left" thing really went to hell in a hurry. Thanks for all the reports, have confirmed at least two, will follow up.
|
Quote:
Sauron's shapes declare they give 0 exp. Also, unlike other uniques, Nan the Giant can carry scrolls and not just equipment (flag missing?). |
Quote:
|
Quote:
Quote:
|
Quote:
|
Quote:
(Also, please let me know if I did anything wrong in the process; I'm new to contributing to projects.) |
Quote:
|
New builds now up on the nightlies page and angband.live with the following changes:
|
I like the new character expanded screen.
I picked up a wicker shield on Angband.Live with "makes you slow to recover hit points". I would expect a + in the ImpHP but nothing was there. |
Quote:
What *should* happen is that when you learn the curse you learn the property. Could you check the knowledge menu ('~') for runes and se whether you have both? The curse is under "Curses", the property under "Other". |
Quote:
Thanks! I didn't know about the Runes knowledge menu. Cool. They're both there. |
I thought I'd post this here. It's a little function that I added while porting the struct loc refactoring to PWMAngband to make some code clearer. Here it is:
Code:
bool loc_iterator(struct loc *iter, struct loc *grid1, struct loc *grid2, bool strict) Code:
for (y = y1; y < y2; y++) { Code:
loc_copy(&iter, &grid1); |
Quote:
|
Quote:
|
It's nice but I think something like this is nicer because you can keep using for loop, though bit wordy.
Code:
struct loc_iterator { Code:
for (y = y1; y < y2; y++) { Code:
for (struct loc_iterator iter = loc_iterator(loc(x1, y1), loc(x2, y2)); Code:
for (y = y1 - 1; y < y2 + 1; y++) { Code:
for (struct loc_iterator iter = loc_iterator(loc(x1 - 1, y1 - 1), loc(x2 + 1, y2 + 1)); |
Too bad C doesnt have anonymous functions. Then you could package up the loop contents in a function, and execute the whole thing with a single subroutine call.
|
All times are GMT +1. The time now is 13:27. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.