"Grim Reaper" said:
(how to move x pixels)
Push Creature effect should work fine, more or less. I hope it will work for you. You'd have to adjust push force for each creature, or make them have same weight. Push in absolute direction for player. Use some items for that with hotkeys. Pushing creatures this way can be tricky ! The best I can come up with would be making them have fake ranged weapon with negative knockback, just like reaper's weapon. And use it from long range. So if a monster would see player, it would try to attack, resuting in being pulled to player. To make monster escape, you'd need to change it to one with positive knockback, or use some kind of timed block to make it fire positve knockback weapon in direction of player AND prevent negative weapon from being used. It should work to a degree.
"Grim Reaper" said:
Is it possible to have multible attributes, skills etc. that the player can choose from, like in Nethack and ADOM?
Skill/atribute is what you believe it to be. Some attributes are possible, for example changing walking speed (effect 0).
In my opinion a skill would simply be an item/script which you gain at certain point. For choosing skills you may check Werivar mod, I believe it has some choosing implemented. Otherwise here goes my suggestion: at "level up" you give player 10 or so "skill items". Best done in separate inventory so they're not confused with items. When you use one of the "skill choice tems", all of them are removed and player gains another item corresponding to one chosen. And probably certain script is enabled when it detect the item in your inventory. And yes, it is possible to implement skills which have 100 or more levels like in ADOM. You'd have to use few bars for that, and make sure they're updated once in a while. What kind of skill do you need ? Weapon damage increase ? Resistance to certain weapons only ?
Let's say you are going to make a skill which, initially, increases damge dealt with certain weapon by 20%. You don't need separate weapon/script for each such boost ! You can do it as follows: player should have a "base weapon damage" bar. Next make sure that when player wields the weapon, that bar is first set to 0 and then to value same as damage dealt by your weapon. Then you need to multiply this bar "base weapon damage" by "damage mutliplier" bar. For 20% increase you need "damage multiplier" to be 0.2. So now "base weapon damage" bar is actually set at 20% of base damage for currently wielded weapon. Now you need to increase weapon damage by this value. Use new fancy effect "add player's bar to creature's bar" - in player weapon's hit effect block. You want to add "base weapon damage" (now 20% base damage) to creature's health bar. There's one missing thing, hower - you'd like to substract more health, right ? So you should somehow change sign of "base weapon damage" bar value to negative and then add it. Or you can simply make player start with say... "damage multiplier" bar at 0.5 and as player increases in skill, reduce the multiplier. (to compensate).
Sorry I have little time recently so I can't code it right now, but the concept should work. If I didn' make myself clear, I can try explain better. Just let me know.
For ADOM-like skills which need to be activated and have about 100 or so levels possible, try creating one bar to hold skill value. Then make a copy of it (temporary), and use a script on it: if bar is > 0, reduce bar by 1 and if random integer between 0 and 100 (1% chance per each point of skill) use the skill AND make the script run itself again. Literally itself, with 29 effect (I think). But it shouldn't run without calling. So for bar value of 80 you would get (I simplify calculations a bit) 80 chances (1%) of succesfully using skill. You should somehow make sure that the skill can't be used more than once in one "FOR loop for Notrium"
Is it possible to make the creatures be still while player isn't moving?
The most foolproof solution would be to insert speed reduction effect into creature's timed block, and make it last as long as player has certain item/bar value.
To check if player is moving or not, this could be tricky but it can be done. I do not guarantee that results will be very precise. Make player spawn invisible Distance Mark plot_objects at very short intervals. Make them self-destruct after short time. The idea is that if player is standing still, he is always close to last spawned Distance Mark. If he's walking, he probably will be far away from Distance Mark at least for short time. You should then check distance from last distance mark and set some kind of bar accordingly. Then if that bar is at certain value, creatures are slowed down by timed block.
WAIT ! These ideas can go well together, but not if you're going to create a roguelike. To freeze monsters and everything else, try using Time Distortion effect. Like in alien rage. And if player presses a key, he is pushed and for an instant time is unfrozen.
Is it possible to randomize a tile where an event occurs, and keep randomizing it in game? Is it possible to make pop-up windows other than journal?
The suggestion you received before from someone else (plot_object) is quite good, and, what's important, foolproof because plot_objects work even when player is on another map. You could also use creatures with specialty 3, but they're placed by plot objects anyway. And they dont't work if player is on another map. Same can be done with plot_objects, basically, and condition "player is in area", I think.
|