• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Test my SRPG Systems

Status
Not open for further replies.

Deleted member 177737

D

Deleted member 177737

Hey,

I've been working on some systems that I might upload here when I get them working perfectly and that, but ATM I need to get more people to test out the systems to see if there are any bugs or ways to fix them up.

So if your bored and have around 10-20 min to spare check out these systems.

*If you see anything in my triggers that can be made better just tell me how and I'll fix it up*

Not all of the systems are on the above videos. Some extra information can bee seen in the quest tab.

EDIT: YOU HAVE NO PERMISSION UNDER ANY CIRCUMSTANCES TO USE THESE SYSTEMS UNTIL I UPLOAD THEM TO THE HIVE (sorry for caps, but its an important message)
 

Attachments

  • RPG Test.w3x
    117.8 KB · Views: 65
Last edited by a moderator:
Level 28
Joined
Jan 26, 2007
Messages
4,789
Most of the systems here can be used in an RPG, so that's good.
The problem still is that it's not user-friendly (of course, YOU can use it in your map, but uploading at the hive is not recommended until newbs can do everything easily).

In the trigger "Movement", there are massive amount of leaks. And you don't need the "Skip remaining actions" when using else-ifs.
In "Left/Right Pressed", you can remove the waits.
Well, as said before: the arrow key movement can be done much better.

"Are you here for a quest?"
-> Yes
-> No
-> Nevermind
What, why? No and Nevermind? Remove the "Nevermind", please.

The shop is very slow. Shops like that just don't work well. I can't see that working practically in any RPG, sorry.
(And when giving an item, make sure you GIVE it - instead of dropping at the hero's feet).

While searching the "Evil Guard", the system said I found a book of the dead, but no book dropped.

It's weird that there's a command "/changename", and another command "-showname". Either use "/" or "-", but don't mix them up ;)

Sorry, I can't say much more. Gotta go now, I might respond later.
In general:
  • Improve user friendliness (might show examples of this later on).
  • Remove the leaks (gotta remove them to make it run as smooth as possible).
  • Don't mix up command prefixes.
  • Fix the "Search evil guard" bug.
 

Deleted member 177737

D

Deleted member 177737

Most of the systems here can be used in an RPG, so that's good.
The problem still is that it's not user-friendly (of course, YOU can use it in your map, but uploading at the hive is not recommended until newbs can do everything easily).

In the trigger "Movement", there are massive amount of leaks. And you don't need the "Skip remaining actions" when using else-ifs.
In "Left/Right Pressed", you can remove the waits.
Well, as said before: the arrow key movement can be done much better.

"Are you here for a quest?"
-> Yes
-> No
-> Nevermind
What, why? No and Nevermind? Remove the "Nevermind", please.

The shop is very slow. Shops like that just don't work well. I can't see that working practically in any RPG, sorry.
(And when giving an item, make sure you GIVE it - instead of dropping at the hero's feet).

While searching the "Evil Guard", the system said I found a book of the dead, but no book dropped.

It's weird that there's a command "/changename", and another command "-showname". Either use "/" or "-", but don't mix them up ;)

Sorry, I can't say much more. Gotta go now, I might respond later.
In general:
  • Improve user friendliness (might show examples of this later on).
  • Remove the leaks (gotta remove them to make it run as smooth as possible).
  • Don't mix up command prefixes.
  • Fix the "Search evil guard" bug.


Yeah I started to realize that after I even got confused while triggering the profession system. I'll try to make it easier to add to and that eventually.

I've fixed up the triggers according to what you suggested. (I need to go back and delete the waits in a sec, forgot them :ogre_hurrhurr:)
I deleted the shopping system, it was a bit slow and clunky. But I'm going to try a few different shop systems to see if I can make a decent one.
The "nevermind" was removed, the "/changename" has been changed to "-setname".

About the Book bugging out... I tried around 5 times to repeat what you say happened and I even took a quick peek at the triggers, but as far as I can conclude you clicked a bit to far north and hit the book shelf or somehow hit the guard in some weird spot where it also hit the bookshelf and bugged out.

Anyways I fixed up the items dropping, I had to get through a major brain-fart to figure out how but the items now go straight to the hero's inventory.

Finally.... As for the leaks I'm trying to learn how to spot and fix them, its a bit confusing atm :vw_death:
 
Level 28
Joined
Jan 26, 2007
Messages
4,789
Yeah, experimenting with some shopping systems might be interesting :)

About the bug: I first searched the bookcase a few times (spammed the ability) and then clicked the guard.
I just re-created the bug, so I'm sure that it is indeed a bug and not a fault of mine.
After checking the triggers, I noticed that in "Search Creep Body 01", the message shows after the if/then/else (this means that just casting "search" is enough to show a message, even though no items pop up).

About leaks:

  • For each (Integer A) from 1 to 12, do (Actions)
    • Loop - Actions
      • Set tempLoc1 = (Position of MovingUnit[(Integer A)])
      • -------- Walk+Turn Right --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • And - All (Conditions) are true
            • Conditions
              • ZZ_RIGHT_Pressed[(Integer A)] Equal to True
              • ZZ_UP_Pressed[(Integer A)] Equal to True
              • ZZ_LEFT_Pressed[(Integer A)] Equal to False
              • ZZ_DOWN_Pressed[(Integer A)] Equal to False
        • Then - Actions
          • Set tempLoc2 = (tempLoc1 offset by ((Current movement speed of MovingUnit[(Integer A)]) + 100.00) towards (Facing of MovingUnit[(Integer A)]) degrees)
          • Unit - Order MovingUnit[(Integer A)] to Move To tempLoc2
          • Wait 0.01 seconds
          • Trigger - Run (This trigger) (checking conditions)
        • Else - Actions
          • -------- Walk+Turn Left --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • And - All (Conditions) are true
                • Conditions
                  • ZZ_RIGHT_Pressed[(Integer A)] Equal to False
                  • ZZ_UP_Pressed[(Integer A)] Equal to True
                  • ZZ_LEFT_Pressed[(Integer A)] Equal to True
                  • ZZ_DOWN_Pressed[(Integer A)] Equal to False
            • Then - Actions
              • Set tempLoc2 = (tempLoc1 offset by ((Current movement speed of MovingUnit[(Integer A)]) + 100.00) towards ((Facing of MovingUnit[(Integer A)]) + TurningSpeed[(Integer A)]) degrees)
              • Unit - Order MovingUnit[(Integer A)] to Move To tempLoc2
              • Wait 0.01 seconds
              • Trigger - Run (This trigger) (checking conditions)
            • Else - Actions
              • -------- More actions --------
    • Custom script: call RemoveLocation(udg_tempLoc1)
    • Custom script: call RemoveLocation(udg_tempLoc2)
Fix them like that.
tempLoc1 and tempLoc2 are point variables. Since tempLoc1 doesn't change for each if/then/else, it is set at the start of the loop. tempLoc2 is where the unit actually needs to go, so that has to be different for each if/then/else.
Both variables can only be set once every time the trigger runs, so we only need to remove them at the end.


Keep practicing, you'll get there :D
 

Deleted member 177737

D

Deleted member 177737

Yeah, experimenting with some shopping systems might be interesting :)

About the bug: I first searched the bookcase a few times (spammed the ability) and then clicked the guard.
I just re-created the bug, so I'm sure that it is indeed a bug and not a fault of mine.
After checking the triggers, I noticed that in "Search Creep Body 01", the message shows after the if/then/else (this means that just casting "search" is enough to show a message, even though no items pop up).

About leaks:

  • For each (Integer A) from 1 to 12, do (Actions)
    • Loop - Actions
      • Set tempLoc1 = (Position of MovingUnit[(Integer A)])
      • -------- Walk+Turn Right --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • And - All (Conditions) are true
            • Conditions
              • ZZ_RIGHT_Pressed[(Integer A)] Equal to True
              • ZZ_UP_Pressed[(Integer A)] Equal to True
              • ZZ_LEFT_Pressed[(Integer A)] Equal to False
              • ZZ_DOWN_Pressed[(Integer A)] Equal to False
        • Then - Actions
          • Set tempLoc2 = (tempLoc1 offset by ((Current movement speed of MovingUnit[(Integer A)]) + 100.00) towards (Facing of MovingUnit[(Integer A)]) degrees)
          • Unit - Order MovingUnit[(Integer A)] to Move To tempLoc2
          • Wait 0.01 seconds
          • Trigger - Run (This trigger) (checking conditions)
        • Else - Actions
          • -------- Walk+Turn Left --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • And - All (Conditions) are true
                • Conditions
                  • ZZ_RIGHT_Pressed[(Integer A)] Equal to False
                  • ZZ_UP_Pressed[(Integer A)] Equal to True
                  • ZZ_LEFT_Pressed[(Integer A)] Equal to True
                  • ZZ_DOWN_Pressed[(Integer A)] Equal to False
            • Then - Actions
              • Set tempLoc2 = (tempLoc1 offset by ((Current movement speed of MovingUnit[(Integer A)]) + 100.00) towards ((Facing of MovingUnit[(Integer A)]) + TurningSpeed[(Integer A)]) degrees)
              • Unit - Order MovingUnit[(Integer A)] to Move To tempLoc2
              • Wait 0.01 seconds
              • Trigger - Run (This trigger) (checking conditions)
            • Else - Actions
              • -------- More actions --------
    • Custom script: call RemoveLocation(udg_tempLoc1)
    • Custom script: call RemoveLocation(udg_tempLoc2)
Fix them like that.
tempLoc1 and tempLoc2 are point variables. Since tempLoc1 doesn't change for each if/then/else, it is set at the start of the loop. tempLoc2 is where the unit actually needs to go, so that has to be different for each if/then/else.
Both variables can only be set once every time the trigger runs, so we only need to remove them at the end.


Keep practicing, you'll get there :D


I think you are still using the original map I uploaded to this thread, if I say anything about updating the map from this post on just take it as if I've uploaded the new map with the updates in the OP.

I got rid of the extra action that was sending a "ghost message" of the item that didn't exist as you said.

Also about the triggers above:

-I deleted the ZZ_DIRECTION triggers that checked for false, the system still works the same.
-I'm getting a bit lost on the very large (compared to my usual triggers) triggers.
  • Set tempLoc2 = (tempLoc1 offset by ((Current movement speed of MovingUnit[(Integer A)]) + 100.00) towards (Facing of MovingUnit[(Integer A)]) degrees)
  • Set tempLoc2 = (tempLoc1 offset by ((Current movement speed of MovingUnit[(Integer A)]) + 100.00) towards ((Facing of MovingUnit[(Integer A)]) + TurningSpeed[(Integer A)]) degrees)
What I don't understand is why the bottom one is different from the top one, I don't understand this because both of the parts of the edited trigger that you show are [walking+turning L/R] shouldn't they both be the same since they are both turning and walking triggers?

*Big triggers are more confusing for me to figure out then the small ones I'm used to :ogre_haosis:*

The OP has the map with the "ghost message" removed and the "ZZ_DIRECTION = false" triggers.



EDIT: From messing around yet again I've discovered that my suspicions about the different "set tempLoc2" actions. The one with the turning speed is for turning+walking and the other one as far as I can tell atm is for walking forward.

EDIT2: I messed around some more and discovered this:
  • -----Moving Forward-----
  • Set tempLoc2 = (tempLoc1 offset by ((Current movement speed of MovingUnit[(Integer A)]) + 100.00) towards (Facing of MovingUnit[(Integer A)]) degrees)
  • -----Walking Forward+Turning Left-----
  • Set tempLoc2 = (tempLoc1 offset by ((Current movement speed of MovingUnit[(Integer A)]) + 100.00) towards ((Facing of MovingUnit[(Integer A)]) + TurningSpeed[(Integer A)]) degrees)
  • -----Walking Forward+Turning Right-----
  • Set tempLoc2 = (tempLoc1 offset by ((Current movement speed of MovingUnit[(Integer A)]) + 100.00) towards ((Facing of MovingUnit[(Integer A)]) - TurningSpeed[(Integer A)]) degrees)
For turning right it didn't work until I turned the 2nd + to a -


FINAL EDIT: I think I managed to fix all the leaks, and I deleted a ton of useless actions from the "Movement" trigger. The updated map is in the OP.
 
Last edited by a moderator:
Status
Not open for further replies.

Similar threads

Top