Posts: 8
Threads: 0
Joined: Jun 2013
I'm sorry if this counts as necroposting!
I'm fiddling about on the demo to test out some of the features, but I've run into a bit of trouble. For some reason, no matter how high an enemy's overriding move frequency (in the comments) is set to, they always move at one tile at a time, as if the frequency is set at one of the lowest settings. I want these enemies to just walk constantly without stopping - is that not possible with Lycan?
Thanks, I hope somebody can help me out with this, because it's staining what would otherwise be the perfect battle system for my game!
Posts: 11,244
Threads: 650
Joined: May 2009
Dear zephrael,
I do not consider this necroposting given (1) I'm still here and active and (2) it is a valid question. Both of these conditions have been met and I have a reply. Please note that I may re-upload the ABS and include your query into the Q&A section of the help file. I consider your inquiry quite worthy.
Just as the default movement system allows you to set the frequency reaction of events within a set range, so too does the Lycan ABS. Given that you are dealing with enemies, it assumes you don't have enemies with a near comotose reaction so its frequency range is from 1 to 5 (rather than 0 to 5 that events normally use. Lycan ensures that frequency speeds you set are within this range, or set to a default if left out.
ABS systems, including this one, uses a basic 'move-to-player' action that immediately refreshes and resets after being performed. Couple that with the locked frequency range, and this usually gives the appearance of a single-step action.
That's not an excuse. That's just how it appears. But there is a simple bypass.
You can go beyond the 1-5 frequency range by performing an edit to line 219. Replace this line:
Code: @enemies[event.id].frequency = minmax(freq.to_i, 1, 5)
with
Code: @enemies[event.id].frequency = minmax(freq.to_i, 1, 9)
And you can now set the enemy's frequency to 9. That would give you a much faster movement refresh rate.
This can also be done to the Speed value to allow you to make the enemies run at a lightning speed. Something that can scare the player indeed.
But I wouldn't recommend editing the aggressiveness range (or any other range) in this manner.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Above are clickable links
Posts: 422
Threads: 23
Joined: Aug 2011
How hard would it be to make the enemies move or attack only after the player has moved or attacked? Kind of like a Mystery Dungeon "simultaneous turn" system.
Posts: 11,244
Threads: 650
Joined: May 2009
If you're talking about a system where: - player steps forward once (activates trigger)
- .... (enemy triggered reaction) steps forward once
- player fires a bow (activates trigger)
- .... (enemy triggered reaction) enemy steps forward
- player takes a step forward (activates trigger)
- .... (enemy triggered reaction) enemy casts fireball at player
No, it's not designed for that.
The player and enemy action systems uses a multi cycling system, allowing a delay where an action is decided (stab, cast spell, use potion) and the character's animation starts.... and then a later action where the actual attack effect (hit enemy, shoots fireball, potion HP regen effect) takes place. That delay between the action selection (button press) and the attack effect (fireball being shot) is set by the weapon,skill,item's DELAY value. Though, you could make the action instantaneous by setting the delay to 0.
BUT.......
If you're wanting it so the enemy actions do not start until the player starts moving OR activates a trigger (like a pressure plate..... tile... just fell into the map from an upper floor), yes. You can see from the demo how I used a View Range script to activate Skeletons when Bill ... (SPOILER!!!!!!) ... er, can't say. But you can make it so a switch can activate enemies. Just make a character event with your characterset of choice, and then make a 2nd page that can be activated and has the ABS Comments.
No, you can't make it exit the enemy event (turning the switch off) and return to the ABS event page for the event (turning the switch back on). That would reset the enemy and his HP would be restored and etc.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Above are clickable links
Posts: 8
Threads: 0
Joined: Jun 2013
(06-02-2013, 03:13 AM)DerVVulfman Wrote: Dear zephrael... Ah, thanks very much for your help! It worked a charm. I've run into another problem though... When an enemy notices my character and runs over to attack, the player character can no longer walk into the spot the enemy is running to. If that doesn't make sense... Well, think of it this way. I have a part where you enter a small room on a larger map; this room is accessed via a short one-tile-wide corridor. The enemy notices the player when the player walks up this corridor and immediately runs towards them, but because the enemy has, I suppose 'reserved' that tile while pathfinding, the player can't move up into it anymore, making them effectively stuck. Is there any way around this? If you still don't quite understand, I can send you a demo of that part so you can take a look!
Also, when I try to use the script call to activate the HUD (It's set to disabled at the start), it doesn't turn back on... Any idea at all why this might be? Any incompatibilities with other scripts that might cause this?
Posts: 11,244
Threads: 650
Joined: May 2009
Enemies don't use their own pathfinding system per-say. Well... if you're talking about taking just one step into that space at the same time. Companions do, but not enemies. The space would not be reserved in that manner, but it could be that the tile may be occupied by an event (whether hidden or not). OR.. it was designed with a parallel process or auto-event (not actually a part of the ABS) whereby you set certain events (like the monsters) to react and move... until the event is done... then the player can respond. But this would be something intentionally coded.
Yes, the HUD can run into conflicts with other scripts. Besides the script call, it also uses an RMXP switch value to turn it on/off. If you configured another script to use the same RMXP Switch, both this and the other script would activate at the same time. FINE if it's a MiniMap that you want to show the same time as your hud, but bad if it's a Day/Night script that turns on a switch when it reaches midnight.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Above are clickable links
Posts: 8
Threads: 0
Joined: Jun 2013
What game switch is used by default to toggle the HUD? And where in which script can I change the switch used? I looked through the HUD script itself but I could only find one used for the map...
Also, i thought it might be an autorun going on or something, but I tried for test purposes just making a long, one-tile-wide area of passables tiles, put an enemy at one end and the player start point at the other. When I play through this test, as soon as the player gets within the enemy's detection range, they can't move any further forward while the enemy is running towards them. I'll try it on a blank game with no other scripts and see if I can work out what's being incompatible...
Posts: 11,244
Threads: 650
Joined: May 2009
Whoops. My bad as far as the HUD. An older version had a switch. I took that vulnerability out.
You can make the hud appear and turn on with the script call of $scene.hud_show. And you can hide it with $scene.hud_hide. This is for the game developer to ensure that the hud is on the screen, or removed from the screen for cutscenes and the like.
By default, you're correct that the configurable HUD toggle is disabled at the start. But you can use a script call that enables hud toggling with this:
Code: $script: $game_system.
: : lycan_hud_toggle_bool = true
Once you run this, you can use the 'E' key (or whatever you have the HUD key set, to turn the hud on and off. And this script call....
Code: $script: $game_system.
: : lycan_hud_toggle_bool = false
Will again, turn the hud toggling off.
Now about the player freezing.
Sorry, dude. Apparently, there IS a limit to how fast the enemy can refresh with the frequency rate. Enemy Frequency rates can only go up to 6. BUT, you may find that frequency 6 is plenty fast. Not even Frequency 7.
Yep, that means...
Code: @enemies[event.id].frequency = minmax(freq.to_i, 1, 6)
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
Above are clickable links
Posts: 8
Threads: 0
Joined: Jun 2013
Yeah, those are the script commands I was trying to use before, to show and hide it, but for some reason they just don't seem to do anything.
EDIT: Aha! Fixed it. I just moved the HUD script below the main ABS scripts and it works just fine now. Thanks!
Oh, I changed the max frequency to 6 and it runs fine now. It was probably some other error that was making them walk at such a slow rate before. Thank you very much for being so helpful!
Posts: 8
Threads: 0
Joined: Jun 2013
Hmm, I've got another question, sorry! Is there any way to set up different melee weapons to have different ranges? I mean, for example, could you have a sword that 'sweeps' to get the enemies straight ahead and diagonally, but then a spear that goes straight forwards, for example?
|