Problem using <cmdarg:index> in <relativeloc:arg1:arg2> #94


  • New
  • Defect
Open
Assigned to _ForgeUser8773666
  • _ForgeUser11852397 created this issue Sep 21, 2013

    What steps will reproduce the problem? 1.Create a Command Trigger

    igate:
        Override: true
        Script:
        - ' @IF s <cmdarg:1> = open'
        - '     @PAUSE 0.10'
        - '     @SETBLOCK 0 <relativeloc:<cmdarg:2>:0,0,0>'
        - '     @SETBLOCK 0 <relativeloc:<cmdarg:2>:0,1,0>'
        - '     @SETBLOCK 0 <relativeloc:<cmdarg:2>:0,2,0>'
        - '     @SETBLOCK 0 <relativeloc:<cmdarg:2>:0,0,1>'
        - '     @SETBLOCK 0 <relativeloc:<cmdarg:2>:0,1,1>'
        - '     @SETBLOCK 0 <relativeloc:<cmdarg:2>:0,2,1>'
        - '     @SETBLOCK 0 <relativeloc:<cmdarg:2>:0,0,-1>'
        - '     @SETBLOCK 0 <relativeloc:<cmdarg:2>:0,1,-1>'
        - '     @SETBLOCK 0 <relativeloc:<cmdarg:2>:0,2,-1>'
        - '     @SOUND ZOMBIE_DESTROY_DOOR <relativeloc:<cmdarg:2>:0,0,0>'
        - ' @ENDIF'
        - ' @IF s <cmdarg:1> = close'
        - '     @PAUSE 0.10'
        - '     @SETBLOCK 101 <relativeloc:<cmdarg:2>:0,0,0>'
        - '     @SETBLOCK 101 <relativeloc:<cmdarg:2>:0,1,0>'
        - '     @SETBLOCK 101 <relativeloc:<cmdarg:2>:0,2,0>'
        - '     @SETBLOCK 101 <relativeloc:<cmdarg:2>:0,0,1>'
        - '     @SETBLOCK 101 <relativeloc:<cmdarg:2>:0,1,1>'
        - '     @SETBLOCK 101 <relativeloc:<cmdarg:2>:0,2,1>'
        - '     @SETBLOCK 101 <relativeloc:<cmdarg:2>:0,0,-1>'
        - '     @SETBLOCK 101 <relativeloc:<cmdarg:2>:0,1,-1>'
        - '     @SETBLOCK 101 <relativeloc:<cmdarg:2>:0,2,-1>'
        - '     @SOUND ZOMBIE_DESTROY_DOOR <relativeloc:<cmdarg:2>:0,0,0>'
        - ' @ENDIF'
    

    2. /igate close -753,65,850

    What is the expected output? What do you see instead? The command should take an argument of open or close and take a second argument of the location i.e -753,65,850 to base the relative location on to preform the rest of the function.

    What version of the product are you using? Spigot 1.6.2 #1056 VariableTriggers v1.2.6

    Do you have an error log of what happened? http://pastebin.com/f0yAsDW4

    Please provide any additional information below.

    <relativeloc:arg1:arg2> Replace arg1 with a location, replace arg2 with a relative location This will be replaced with a new location relative to arg1 by arg2. As an example: <relativeloc:122,67,-218:5,-2,15> This would be replaced with 127,65,203 <relativeloc:$obj.var:20,0,3> or <relativeloc:<triggerloc>:5,-2,15>

    Can This not use <cmdarg:index>?

    I understand i could create a object and variable and then remove the variable with @DELVAR as soon as it has finished but that seems a bit redundant seeing as the <relativeloc:arg1:arg2> should be able to accept <cmdarg:index> just as well as <triggerloc>.

  • _ForgeUser11852397 added the tags New Defect Sep 21, 2013
  • _ForgeUser8773666 posted a comment Oct 16, 2013

    This is the first paragraph you see on the http://dev.bukkit.org/bukkit-plugins/variabletriggers/pages/docs/functional-place-holders/ page. I have underlined the important part.

    Quote:

    Functional Place Holders are similar to Place Holders except they are replaced at the time they are executed in the script and most of them take one or more arguments. $object.Variable and <placeholders> may be used as arguments. You may not use a Functional Place holder inside another Functional Place Holder.

    Store it in a variable and use the variable

    @SETSTR $temp.pos <cmdarg:2>
    @SETBLOCK 0 <relativeloc:$temp.pos:0,0,0>

    although it would a good idea to name your variables to be protected from another player using the same script at the same time and contaminating the variable something like

    $<this>.<playername>pos

    this way this variable is script and player specific.


    Edited Oct 16, 2013

To post a comment, please login or register a new account.