Action RPG Framework

by Forum_account
Action RPG Framework
A framework for developing action RPGs.
I believe I am missing a procedure. demo\abilities.dm:115:error: user.distance_to: undefined proc
it worked for me, so try downloading again
I did, several times.
In response to FIREking
FIREking wrote:
If a hud container is empty, allow space button to close container. Also, the arrow shooting doesn't show anything visually. And the wandering NPC is hard to catch with the space button sometimes. Maybe you could have the hit box / radius be larger than he actually is.

Ok, I can make those changes.

May I suggest switching the inventory key to E with WASD movement, and make the ability key Q.

I'd rather the keys be obvious ("A" for abilities, "I" for inventory, etc.) and let the developers change the controls to fit their game. You can easily change what keys are used in _constants.dm.
In response to Darker Legends
Darker Legends wrote:
I believe I am missing a procedure. demo\abilities.dm:115:error: user.distance_to: undefined proc

Make sure you have the latest version of the Pixel Movement library. It should be downloaded automatically if you don't have it. If it's not being downloaded, try updating that library directly or delete it (the PM library) and download it again.
great job in making and updating this library. its just what i was looking for. i also, have a few suggestions.

open monsters inventory from view(1) not view(0). it just makes it easyer to see what it is the monsters loot window unstead of walking to the corpse then pressing the space bar.

delete the corpse after a set time has expired

may i suggest opening up an empty loot window. instead of wondering if they are standing near enought for the loot window to open

how about a title for the monsters loot window that opens. maybe the monsters name.

am i missing something because there seems no way to delete an item from inventory, but i see the delete item proc. how about an example for newbees.

most importantly of my suggestions is the way monsters follow a player. i would suggest to stop a monster from following a player when a monster touches a wall. otherwise, it gives the impression that monsters can see the direction of a player that is behind a wall.
Kalster wrote:
may i suggest opening up an empty loot window. instead of wondering if they are standing near enought for the loot window to open
open monsters inventory from view(1) not view(0). it just makes it easyer to see what it is the monsters loot window unstead of walking to the corpse then pressing the space bar.

I think I'll add a graphical indication that the mob dropped loot. If you could open an empty loot window, if two mobs died on top of each other you may have a hard time opening one of their loot windows. This graphical indication would also let you know that the mob dropped loot and you're just not in range to get it.

am i missing something because there seems no way to delete an item from inventory, but i see the delete item proc. how about an example for newbees.

Currently there is no way to drop an item. I'm not sure what should happen with the item when you drop it - delete it? place it on the map? If so, how do you pick it back up?

most importantly of my suggestions is the way monsters follow a player. i would suggest to stop a monster from following a player when a monster touches a wall. otherwise, it gives the impression that monsters can see the direction of a player that is behind a wall.

I'm more concerned with things that are part of the framework and enemy AI is something that's part of the sample game. Still, I would like to improve the example's AI. I'm going to be busy for a while and probably won't post an update for a while, but the next update will probably include better enemy AI.
well, if the item was dropped on the map, it could be a way for two players to trade with each other, until a better trade option is available in game. you could right click the dropped item to add it back to the inventory.

as with the corpse, i suggest that the dropped item disappears after a while
A lot of that is up to the game. The framework won't automatically delete dropped items or corpses because some games might not want that to happen.
I noticed that your front proc doesn't support diagnols or is it not sensitive enough when its being used. I only said sensitive enough because when I tested it in your demo it worked a few times at most.
In response to Tobirachi
Tobirachi wrote:
I noticed that your front proc doesn't support diagnols or is it not sensitive enough when its being used. I only said sensitive enough because when I tested it in your demo it worked a few times at most.

Hmm, that is true. I'm not sure what front() would even return for diagonals.
In response to Forum_account
Forum_account wrote:
Tobirachi wrote:
I noticed that your front proc doesn't support diagnols or is it not sensitive enough when its being used. I only said sensitive enough because when I tested it in your demo it worked a few times at most.

Hmm, that is true. I'm not sure what front() would even return for diagonals.

southwest <-> northeast ??
In response to FIREking
Here's the problem. When you're facing a cardinal direction, the front() proc returns everything inside a bounding box that extends out in front of your mob:

+---+xxxxxxxx
|mob|xxxxxxxx
|-->|xxxxxxxx
+---+xxxxxxxx

If you're facing a diagonal, to be consistent, the bounding box would look like this:

      xxxxx
xxxxxx
xxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
+---+xxx
|mob|xx
| |x
+---+

But there's no easy way to find all objects in that bounding shape. If it returned objects in this kind of range:

  xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
+---+xxxxx
|mob|xxxxx
| |
+---+

Then you'd need the cardinal directions to look something like this:
      xx
xxx
xxxx
+---+xxx
|mob|xxx
| |xxx
+---+xxx
xxxx
xxx
xx

For small ranges this would be fine:

           xxxx
+---+x +---+x
| |x | |x
| |x | |
+---+x +---+
east northeast

But when the range is greater, the difference will become apparent.

Edit: In most cases direction should be irrelevant. You can check for mobs in obounds(8). But, if you have a situation where there are two NPCs near each other it'd be nice if the player could control which one they interact with by the direction they're facing.
If you can draw it, you can write an algo for it.
In response to FIREking
FIREking wrote:
If you can draw it, you can write an algo for it.

But not one that uses obounds() in an efficient way =)
In response to Forum_account
Forum_account wrote:
FIREking wrote:
If you can draw it, you can write an algo for it.

But not one that uses obounds() in an efficient way =)

Ask Lummox either for the mathematical genius he possesses or do a feature request stating the problem :D
Btw, has anyone determined if switch is faster than if else in DM? Some languages it makes a difference by double or half
I don't know what the feature request would be. Anything short of getting a list of atoms inside an arbitrary polygon seems too specific to what I need. I don't know how easily this could be added to BYOND, so it's probably easier to implement in DM.

For now I'll change it to use obounds() instead of front(). If this causes problems I can give players a way to target objects they can interact with.
In response to FIREking
FIREking wrote:
Btw, has anyone determined if switch is faster than if else in DM? Some languages it makes a difference by double or half

http://www.byond.com/forum/?post=352576
In response to Forum_account
Forum_account wrote:
I don't know what the feature request would be. Anything short of getting a list of atoms inside an arbitrary polygon seems too specific to what I need. I don't know how easily this could be added to BYOND, so it's probably easier to implement in DM.

For now I'll change it to use obounds() instead of front(). If this causes problems I can give players a way to target objects they can interact with.

what about some sort of invisible missile that can be shot in a direction and return a list of atoms collided with? just an idea O_o
Page: 1 2 3 4 5