Announcement

Collapse
No announcement yet.

Help with Enemy AI

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Help with Enemy AI

    I'm currently working on a single enemy trait that will control the intelligence of my enemy monsters, but i've hit a snag and can't figure it out. Was hoping someone could help.

    The problem is when i use a script call the system seems to ignore the conditions i set up - and why i can't understand. Here is my problem in more detail:

    Battle: Substitute Target Attribute for Variable
    Data: Variable: [MP 25%] = [Max Magic Point] / 4
    Battle: Substitute Target Attribute for Variable
    Script Branch: Condition: Variable [Magic Points] >= [MP 25%]
    Script: Call: (Enemy Check)
    Data: Variable: [Temp Variable0] = 0?1
    Battle: Check Who Goes First
    Script Branch: Repeat: Flag: [Member Check] = Off
    Script Branch: Condition: Flag: [Instigator Side] = Off
    Target Data: Action Status: Confirm: [Death]
    Script Branch: Condition: Flag: [Indirect Effect] = Off
    Script Branch: Condition: Variable [Temp Variable0] = 0
    Data: Variable: [Member Number] = 0
    Data: Member Info: Load
    Script: Call: [Random Offense1]
    Script: Condition End
    Script Branch: Condition: Variable: [Temp Variable0] = 1
    Data: Variable: [Member Number] = 1
    Data: Member Info: Load
    Script: Call: [Random Offense1]
    Script; Condition End
    Script: Condition End
    Script Branch: To End
    Script: Condition End
    Battle: Check Who Goes Next
    Script: Branch End
    Script: Condition End
    Battle: Change Back Active Character

    This script is put into my enemy trait event. I wrote it to make my enemies target randomly between members 0 and 1. The script itself seems to work fine - the problem is in my script call (Random Offense1). So i'll explain what's in my script calls.

    Script: Call: (Enemy Check) - basically just a script i use to apply the proper number to the variable [Enemy Number] i made, which pretty much just coincides with the value of Battle Variable9, which i set differently on each enemy depending on its database number. For example: Enemy 2 has a Battle Variable9 of 2...Enemy 4 has a Battle Variable9 of 4. The script looks like this:

    Script Branch: Condition: Variable [Battle Variable9] = 1
    Data: Variable: [Enemy Number] = 1
    Script: Condition End
    Script Branch: Condition: Variable [Battle Variable9] = 2
    Data: Variable: [Enemy Number] = 2
    Script: Condition End
    Script Branch: Condition: Variable [Battle Variable9] = 3
    Data: Variable: [Enemy Number] = 3
    Script: Condition End
    Script Branch: Condition: Variable [Battle Variable9] = 4
    Data: Variable: [Enemy Number] = 4
    Script: Condition End

    This script works fine, i've tested it a lot and it does change the value of [Enemy Number] to coincide with the value of Battle Variable9 of the current enemy taking action.

    Here is where the problem is -

    When i call script Random Offense1

    Script Branch: Condition: Variable [Enemy Number] = 2 <--- is ignored
    Data: Variable: [Temp Variable1 = 0 ? 9]
    Script Branch: Condition: Variable: [Temp Variable1] = 0
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Set Battle Action (Attack)
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Script Branch: Condition: Variable: [Temp Variable1] >= 1
    Script Branch: Condition: Variable: [Temp Variable1] <= 3
    Target Data: Condition Status: Confirm [Poison]
    Script Branch: Conditon: Flag: [Indirect Effect] = Off
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Target Data: Condition Status: Confirm [Poison]
    Script Branch: Condition: Flag: [Indirect Effect] = On
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Script: Conditon End
    Script: Condition End
    Script Branch: Condition: Variable: [Temp Variable1] >= 4
    Script Branch: Condition: Variable: [Temp Variable1] <= 6
    Target Data: Condition Status: Confirm [Blind]
    Script Branch: Conditon: Flag: [Indirect Effect] = Off
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Target Data: Condition Status: Confirm [Blind]
    Script Branch: Condition: Flag: [Indirect Effect] = On
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Script: Conditon End
    Script: Condition End
    Script Branch: Condition: Variable: [Temp Variable1] >= 7
    Script Branch: Condition: Variable: [Temp Variable1] <= 9
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Conditon End
    Script: Condition End
    Script: Condition End
    Script Branch: Condition: Variable [Enemy Number] = 4 <---- is ignored
    Data: Variable: [Temp Variable1 = 0 ? 9]
    Script Branch: Condition: Variable: [Temp Variable1] = 0
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Set Battle Action (Attack)
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Script Branch: Condition: Variable: [Temp Variable1] >= 1
    Script Branch: Condition: Variable: [Temp Variable1] <= 2
    Target Data: Condition Status: Confirm [Mowt]
    Script Branch: Conditon: Flag: [Indirect Effect] = Off
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Target Data: Condition Status: Confirm [Mowt]
    Script Branch: Condition: Flag: [Indirect Effect] = On
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Script: Conditon End
    Script: Condition End
    Script Branch: Condition: Variable: [Temp Variable1] >= 3
    Script Branch: Condition: Variable: [Temp Variable1] <= 4
    Target Data: Condition Status: Confirm [Zuwb]
    Script Branch: Conditon: Flag: [Indirect Effect] = Off
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Target Data: Condition Status: Confirm [Zuwb]
    Script Branch: Condition: Flag: [Indirect Effect] = On
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Script: Conditon End
    Script: Condition End
    Script Branch: Condition: Variable: [Temp Variable1] >= 5
    Script Branch: Condition: Variable: [Temp Variable1] <= 6
    Target Data: Condition Status: Confirm [Guwd]
    Script Branch: Conditon: Flag: [Indirect Effect] = Off
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Target Data: Condition Status: Confirm [Guwd]
    Script Branch: Condition: Flag: [Indirect Effect] = On
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Condition End
    Script: Conditon End
    Script: Condition End
    Script Branch: Condition: Variable: [Temp Variable1] >= 7
    Script Branch: Condition: Variable: [Temp Variable1] <= 9
    Data: Set Battle Action (Magic)
    Data: Variable: [Action: Enemy] = [Member Number]
    Data: Substitute Database Number for Variable [Action: Itm/Abty]
    Script: Conditon End
    Script: Condition End
    Script: Condition End

    All my conditions seem to work fine except for the two Enemy Number Conditions. For some reason the script continues to read down the list even if the value of variable [Enemy Number] doesn't equal the number in my condition.
    Last edited by Jeremy; 04-05-2007, 05:45 PM.
Working...
X