[MacroMod] Periodic Trade Messages Macro

Discussion in 'Basic Tutorials' started by 3point, Aug 9, 2015.

  1. DanieliMurphy

    DanieliMurphy Builder
    Builder ⛰️ Ex-President ⚒️⚒️

    Joined:
    Apr 30, 2014
    Messages:
    786
    Trophy Points:
    22,440
    Gender:
    Male
    EcoDollars:
    $0
    Ratings:
    +163
    I can't seem to look at the help or set messages.
     
  2. stigarose

    stigarose Eyecare Ex-EcoLegend
    Builder ⛰️ Ex-EcoLegend ⚜️⚜️⚜️⚜️ Prestige ⭐ II ⭐ Premium Upgrade

    Joined:
    Jan 7, 2016
    Messages:
    854
    Trophy Points:
    42,160
    Gender:
    Male
    Ratings:
    +852
    I'm having same problem when trying to load today
     
  3. DanieliMurphy

    DanieliMurphy Builder
    Builder ⛰️ Ex-President ⚒️⚒️

    Joined:
    Apr 30, 2014
    Messages:
    786
    Trophy Points:
    22,440
    Gender:
    Male
    EcoDollars:
    $0
    Ratings:
    +163
    #43 DanieliMurphy, Apr 16, 2017
    Last edited: Apr 16, 2017
  4. GoatsRMeLife

    GoatsRMeLife Builder
    Builder ⛰️ Ex-Tycoon ⚜️⚜️⚜️

    Joined:
    Jun 7, 2016
    Messages:
    441
    Trophy Points:
    13,690
    Gender:
    Male
    EcoDollars:
    $0
    Ratings:
    +342
    remake one of your ads and try activating it
     
  5. DanieliMurphy

    DanieliMurphy Builder
    Builder ⛰️ Ex-President ⚒️⚒️

    Joined:
    Apr 30, 2014
    Messages:
    786
    Trophy Points:
    22,440
    Gender:
    Male
    EcoDollars:
    $0
    Ratings:
    +163
    #45 DanieliMurphy, Apr 16, 2017
    Last edited: Apr 16, 2017
  6. GoatsRMeLife

    GoatsRMeLife Builder
    Builder ⛰️ Ex-Tycoon ⚜️⚜️⚜️

    Joined:
    Jun 7, 2016
    Messages:
    441
    Trophy Points:
    13,690
    Gender:
    Male
    EcoDollars:
    $0
    Ratings:
    +342
    tagging @314 since i am not sure what your issue is
     
  7. stigarose

    stigarose Eyecare Ex-EcoLegend
    Builder ⛰️ Ex-EcoLegend ⚜️⚜️⚜️⚜️ Prestige ⭐ II ⭐ Premium Upgrade

    Joined:
    Jan 7, 2016
    Messages:
    854
    Trophy Points:
    42,160
    Gender:
    Male
    Ratings:
    +852
    I'm having the same one, help me tooooo :) I'm having trouble with some other mods also, can't get a few of @priMELval 's to work either, same thing, i type /help ad (or ad help, hwatever) and it takes the command but screen is blank... if you take away the macro and type the /help ad it says "no such command see wiki" or what not, but with the macro active it just blanks the chat screen. Same thing happening to me with mels regionstp and randomtp... L:(
     
  8. 314

    314 Irratioπal President, former ServerAdmin
    President ⛰️⛰️ Ex-President ⚒️⚒️ Premium Upgrade

    Joined:
    Apr 1, 2014
    Messages:
    6,961
    Trophy Points:
    81,660
    EcoDollars:
    $20,000,000
    Ratings:
    +4,860
    I briefly mentioned this in global chat yesterday: I have a guess why it may not work, which may be related to different macro mod versions (as the current code works perfectly fine for me).

    For those who tried "/help ad" and saw absolutely nothing happen: Replace your trade.txt file with this code, use "/help ad" again and post the result (i.e., whether it works or not) here.
    Code:
    $${
    IF(@#trade_time<=180)
       SET(@#trade_time,180)
    ENDIF
    IF(%KEYNAME%=="onJoinGame")
       SET(@#trade_failsafe,0)
       UNSET(@tradead)
    ELSEIF(%KEYNAME%!="onSendChatMessage")
       IF(@tradead);
           LOG("&7[Tr] &eYou stopped advertising.")
           UNSET(@tradead)
       ELSE
           IF((%@#trade_failsafe%>=1) && (%@#trade_failsafe%<180))
               LOG("&7[Tr] &cYou have recently advertised under 3 minutes ago.")
           ELSE
               LOG("&7[Tr] &aYou started advertising.")
               SET(@tradead)
               #i=1
               DO()
                   IF(@tradead==false)
                       UNSET(@trade_breaknow)
                       DO()
                       INC(@#trade_failsafe)
                       WAIT(1000ms)
                       IF(@trade_breaknow)
                           UNSET(@trade_breaknow)
                           BREAK
                       ENDIF
                       WHILE(@#trade_failsafe<=180)
                       BREAK
                   ENDIF
                   @#trade_failsafe=#i
                   IF(#i==1)
                       IF(@&tradead1!="")
                           ECHO("/ch qm tr %@&tradead1%")
                       ENDIF
                       IF(@&tradead2!="")
                           ECHO("/ch qm tr %@&tradead2%")
                       ENDIF
                   ENDIF
                   WAIT(1000ms)
                   INC(#i)
                   IF(#i>%@#trade_time%)
                       #i=1
                   ENDIF
               LOOP
           ENDIF
       ENDIF
    ELSE
       IFMATCHES(%CHAT%, "^/help (ad|ads)")
           LOG(" &e---- &6Help: ad &e-- &6Page &c1 &6of &c1 &e----")
           LOG("&7&lAutomated Advertisements Macro v1.0")
           LOG("&7&oDeveloped by 3point14mp")
           LOG("&3/ad set 1 &bmsg &7- sets your first-line ad message")
           LOG("&3/ad set 2 &bmsg &7- sets your second-line ad message")
           LOG("&3/ad clear &7- clears your stored ad messages")
           LOG("&3/ad clear 1 &7- clears your first-line ad message")
           LOG("&3/ad clear 2 &7- clears your second-line ad message")
           LOG("&3/ad time &bseconds &7- sets time between each ad (minimum 180)")
           LOG("&3/ad info &7- displays stored ads and the status of your macro")
           FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 1$")
           FILTER
           LOG("&fSets your first of two allowable trade ads.")
           LOG("&f/ad set 1 <message>")
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 2$")
           FILTER
           LOG("&fSets your second allowable trade ad.")
           LOG("&f/ad set 2 <message>")
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 1 ")
           FILTER
           MATCH(%CHAT%, "^/ad set 1 (.+)",{&newad})
           @&tradead1=%&newad%
           LOG("&7[Tr] &b&oFirst-line Trade Ad Set To")
           LOG("&7[Tr] &f%&newad%")
           @#trade_failsafe=0
           @trade_breaknow=true
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 2 ")
           FILTER
           MATCH(%CHAT%, "^/ad set 2 (.+)",{&newad})
           @&tradead2=%&newad%
           LOG("&7[Tr] &b&oSecond-line Trade Ad Set To:")
           LOG("&7[Tr] &f%&newad%")
           @#trade_failsafe=0
           @trade_breaknow=true
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear$")
           FILTER
           @&tradead1=""
           @&tradead2=""
           LOG("&7[Tr] &dCleared First/Second-line Trade Ads")
           @#trade_failsafe=0
           @trade_breaknow=true
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear 1$")
           FILTER
           @&tradead1=""
           LOG("&7[Tr] &dCleared First-line Trade Ad")
           @#trade_failsafe=0
           @trade_breaknow=true
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear 2$")
           FILTER
           @&tradead2=""
           LOG("&7[Tr] &dCleared Second-line Trade Ad")
           @#trade_failsafe=0
           @trade_breaknow=true
       ENDIF
       IFMATCHES(%CHAT%, "^/ad time$")
           FILTER
           LOG("&fSets the time between ads. Must be at least 180 seconds.")
           LOG("&f/adtime <seconds>")
       ENDIF
       IFMATCHES(%CHAT%, "^/ad time ")
           FILTER
           MATCH(%CHAT%,"^/ad time (.+)",{&newtime})
           SET(#newtime,%&newtime%)
           IF(#newtime<180)
               LOG("&7[Tr] &cError: Must keep ads at least &e180 &cseconds apart")
           ELSE
               @#trade_time=%#newtime%
               LOG("&7[Tr] &aSet time between ads to &e%#newtime% &aseconds")
           ENDIF
       ENDIF
       IFMATCHES(%CHAT%, "^/ad info")
           FILTER
           IF((@&tradead1=="") && (@&tradead2==""))
               LOG("&7[Tr] You do not currently have any trade ad messages.")
           ELSE
               LOG("&7[Tr] Your planned ad messages are")
               IF(@&tradead1!="")
                   SPLIT(" ","%@&tradead1%",&split[])
                   FOR(#j,4,75)
                       IF(&split[%#j%]==""); BREAK; ENDIF
                       SET(&split[%#j%],"&7%&split[%#j%]%)
                   NEXT
                   JOIN(" ","&split[]",&t1)
                   LOG("&7[Tr] &fFirst-line: &7%&t1%")
               ENDIF
               IF(@&tradead2!="")
                   SPLIT(" ","%@&tradead2%",&split2[])
                   FOR(#j,4,75)
                       IF(&split2[%#j%]==""); BREAK; ENDIF
                       SET(&split2[%#j%],"&7%&split2[%#j%]%)
                   NEXT
                   JOIN(" ","&split2[]",&t2)
                   LOG("&7[Tr] &fSecond-line: &7%&t2%")
               ENDIF
               LOG("&7[Tr] &6Scheduled time between ads: &e%@#trade_time% &6seconds")
               IF((%@#trade_failsafe%>0) && (%@#trade_failsafe%<=180))
                   LOG("&7[Tr] &6Status: &cYour last automated ad was &e%@#trade_failsafe% &cseconds ago")
               ELSE
                   LOG("&7[Tr] &6Status: &aMacro ready to use")
               ENDIF
           ENDIF
       ENDIF
    ENDIF
    }$$
    
     
  9. DanieliMurphy

    DanieliMurphy Builder
    Builder ⛰️ Ex-President ⚒️⚒️

    Joined:
    Apr 30, 2014
    Messages:
    786
    Trophy Points:
    22,440
    Gender:
    Male
    EcoDollars:
    $0
    Ratings:
    +163
    Did this, when doing /help ad it spammed http://prntscr.com/ex4c3m
    After any message on the server, this message comes up
     
    #49 DanieliMurphy, Apr 16, 2017
    Last edited: Apr 16, 2017
  10. DanieliMurphy

    DanieliMurphy Builder
    Builder ⛰️ Ex-President ⚒️⚒️

    Joined:
    Apr 30, 2014
    Messages:
    786
    Trophy Points:
    22,440
    Gender:
    Male
    EcoDollars:
    $0
    Ratings:
    +163
    Any any command I do spams the chat and I get kickec :woot:
     
  11. stigarose

    stigarose Eyecare Ex-EcoLegend
    Builder ⛰️ Ex-EcoLegend ⚜️⚜️⚜️⚜️ Prestige ⭐ II ⭐ Premium Upgrade

    Joined:
    Jan 7, 2016
    Messages:
    854
    Trophy Points:
    42,160
    Gender:
    Male
    Ratings:
    +852
    Hmm, close to working, i was able to use /help ad, i set trade message, but it wouldn't advertise anything. It said "you started advertising" but nothing happened after that... I actually suspect that it's a problem setting the ad, at least it doesn't awknowledge the ad has been set when you set it. Just does the blank thing happening before with /help ad.
     
    #51 stigarose, Apr 16, 2017
    Last edited: Apr 16, 2017
  12. 314

    314 Irratioπal President, former ServerAdmin
    President ⛰️⛰️ Ex-President ⚒️⚒️ Premium Upgrade

    Joined:
    Apr 1, 2014
    Messages:
    6,961
    Trophy Points:
    81,660
    EcoDollars:
    $20,000,000
    Ratings:
    +4,860
    To confirm: The /help ad feature in my modified code works? If yes, that confirms my assumption.

    Code:
    
    $${
    IF(@#trade_time<=180)
       SET(@#trade_time,180)
    ENDIF
    IF(%KEYNAME%=="onJoinGame")
       SET(@#trade_failsafe,0)
       UNSET(@tradead)
    ELSEIF(%KEYNAME%!="onSendChatMessage")
       IF(@tradead);
          LOG("&7[Tr] &eYou stopped advertising.")
          UNSET(@tradead)
       ELSE
          IF((%@#trade_failsafe%>=1) && (%@#trade_failsafe%<180))
              LOG("&7[Tr] &cYou have recently advertised under 3 minutes ago.")
          ELSE
              LOG("&7[Tr] &aYou started advertising.")
              SET(@tradead)
              #i=1
              DO()
                  IF(@tradead==false)
                      UNSET(@trade_breaknow)
                      DO()
                      INC(@#trade_failsafe)
                      WAIT(1000ms)
                      IF(@trade_breaknow)
                          UNSET(@trade_breaknow)
                          BREAK
                      ENDIF
                      WHILE(@#trade_failsafe<=180)
                      BREAK
                  ENDIF
                  @#trade_failsafe=#i
                  IF(#i==1)                 
                      ECHO("/ch tr")
                      WAIT(1000ms)
                      IF(@&tradead1!="")
                          ECHO("%@&tradead1%")
                      ENDIF
                      WAIT(1000ms)
                      IF(@&tradead2!="")
                           ECHO("%@&tradead2%")
                      ENDIF
                      WAIT(1000ms)
                      ECHO("/ch g")
                  ENDIF
                  WAIT(1000ms)
                  INC(#i)
                  IF(#i>%@#trade_time%)
                      #i=1
                  ENDIF
              LOOP
          ENDIF
       ENDIF
    ELSE
       IFMATCHES(%CHAT%, "^/help (ad|ads)")
          LOG(" &e---- &6Help: ad &e-- &6Page &c1 &6of &c1 &e----")
          LOG("&7&lAutomated Advertisements Macro v1.0")
          LOG("&7&oDeveloped by 3point14mp")
          LOG("&3/ad set 1 &bmsg &7- sets your first-line ad message")
          LOG("&3/ad set 2 &bmsg &7- sets your second-line ad message")
          LOG("&3/ad clear &7- clears your stored ad messages")
          LOG("&3/ad clear 1 &7- clears your first-line ad message")
          LOG("&3/ad clear 2 &7- clears your second-line ad message")
          LOG("&3/ad time &bseconds &7- sets time between each ad (minimum 180)")
          LOG("&3/ad info &7- displays stored ads and the status of your macro")
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 1$")
          LOG("&fSets your first of two allowable trade ads.")
          LOG("&f/ad set 1 <message>")
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 2$")
          LOG("&fSets your second allowable trade ad.")
          LOG("&f/ad set 2 <message>")
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 1 ")
          MATCH(%CHAT%, "^/ad set 1 (.+)",{&newad})
          @&tradead1=%&newad%
          LOG("&7[Tr] &b&oFirst-line Trade Ad Set To")
          LOG("&7[Tr] &f%&newad%")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 2 ")
          MATCH(%CHAT%, "^/ad set 2 (.+)",{&newad})
          @&tradead2=%&newad%
          LOG("&7[Tr] &b&oSecond-line Trade Ad Set To:")
          LOG("&7[Tr] &f%&newad%")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear$")
          @&tradead1=""
          @&tradead2=""
          LOG("&7[Tr] &dCleared First/Second-line Trade Ads")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear 1$")
          @&tradead1=""
          LOG("&7[Tr] &dCleared First-line Trade Ad")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear 2$")
          @&tradead2=""
          LOG("&7[Tr] &dCleared Second-line Trade Ad")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad time$")
          LOG("&fSets the time between ads. Must be at least 180 seconds.")
          LOG("&f/adtime <seconds>")
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad time ")
          MATCH(%CHAT%,"^/ad time (.+)",{&newtime})
          SET(#newtime,%&newtime%)
          IF(#newtime<180)
              LOG("&7[Tr] &cError: Must keep ads at least &e180 &cseconds apart")
          ELSE
              @#trade_time=%#newtime%
              LOG("&7[Tr] &aSet time between ads to &e%#newtime% &aseconds")
          ENDIF
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad info")
          IF((@&tradead1=="") && (@&tradead2==""))
              LOG("&7[Tr] You do not currently have any trade ad messages.")
          ELSE
              LOG("&7[Tr] Your planned ad messages are")
              IF(@&tradead1!="")
                  SPLIT(" ","%@&tradead1%",&split[])
                  FOR(#j,4,75)
                      IF(&split[%#j%]==""); BREAK; ENDIF
                      SET(&split[%#j%],"&7%&split[%#j%]%)
                  NEXT
                  JOIN(" ","&split[]",&t1)
                  LOG("&7[Tr] &fFirst-line: &7%&t1%")
              ENDIF
              IF(@&tradead2!="")
                  SPLIT(" ","%@&tradead2%",&split2[])
                  FOR(#j,4,75)
                      IF(&split2[%#j%]==""); BREAK; ENDIF
                      SET(&split2[%#j%],"&7%&split2[%#j%]%)
                  NEXT
                  JOIN(" ","&split2[]",&t2)
                  LOG("&7[Tr] &fSecond-line: &7%&t2%")
              ENDIF
              LOG("&7[Tr] &6Scheduled time between ads: &e%@#trade_time% &6seconds")
              IF((%@#trade_failsafe%>0) && (%@#trade_failsafe%<=180))
                  LOG("&7[Tr] &6Status: &cYour last automated ad was &e%@#trade_failsafe% &cseconds ago")
              ELSE
                  LOG("&7[Tr] &6Status: &aMacro ready to use")
              ENDIF
          ENDIF
          FILTER
       ENDIF
    ENDIF
    }$$
    
    @stigarose, please tell me whether the problem still occurs.




    That seems to be caused by a different problem, I'll need more time to think of a possible solution.
     
    #52 314, Apr 16, 2017
    Last edited: Apr 16, 2017
  13. DanieliMurphy

    DanieliMurphy Builder
    Builder ⛰️ Ex-President ⚒️⚒️

    Joined:
    Apr 30, 2014
    Messages:
    786
    Trophy Points:
    22,440
    Gender:
    Male
    EcoDollars:
    $0
    Ratings:
    +163
    Is there a way I can get a fresh install of Macros, so I can start again?
     
  14. 314

    314 Irratioπal President, former ServerAdmin
    President ⛰️⛰️ Ex-President ⚒️⚒️ Premium Upgrade

    Joined:
    Apr 1, 2014
    Messages:
    6,961
    Trophy Points:
    81,660
    EcoDollars:
    $20,000,000
    Ratings:
    +4,860
    You can either install a completely new version of Liteloader and the macro mod, or you could clear the settings by deleting the "liteconfig" subfolder in your .minecraft folder.
     
  15. stigarose

    stigarose Eyecare Ex-EcoLegend
    Builder ⛰️ Ex-EcoLegend ⚜️⚜️⚜️⚜️ Prestige ⭐ II ⭐ Premium Upgrade

    Joined:
    Jan 7, 2016
    Messages:
    854
    Trophy Points:
    42,160
    Gender:
    Male
    Ratings:
    +852
    @314 That last version worked for me!! Thank you SO much for your effort! But do i need to alter the code to reflect 300 instaed of 180?
     
  16. 314

    314 Irratioπal President, former ServerAdmin
    President ⛰️⛰️ Ex-President ⚒️⚒️ Premium Upgrade

    Joined:
    Apr 1, 2014
    Messages:
    6,961
    Trophy Points:
    81,660
    EcoDollars:
    $20,000,000
    Ratings:
    +4,860
    That was just the original script I based my modifications on, this post contains the proper scripts.


    /ch tr for non-patrons:
    Code:
    $${
    IF(@#trade_time<=300)
       SET(@#trade_time,300)
    ENDIF
    IF(%KEYNAME%=="onJoinGame")
       SET(@#trade_failsafe,0)
       UNSET(@tradead)
    ELSEIF(%KEYNAME%!="onSendChatMessage")
       IF(@tradead);
         LOG("&7[Tr] &eYou stopped advertising.")
         UNSET(@tradead)
       ELSE
         IF((%@#trade_failsafe%>=1) && (%@#trade_failsafe%<300))
             LOG("&7[Tr] &cYou have recently advertised under 5 minutes ago.")
         ELSE
             LOG("&7[Tr] &aYou started advertising.")
             SET(@tradead)
             #i=1
             DO()
                 IF(@tradead==false)
                     UNSET(@trade_breaknow)
                     DO()
                     INC(@#trade_failsafe)
                     WAIT(1000ms)
                     IF(@trade_breaknow)
                         UNSET(@trade_breaknow)
                         BREAK
                     ENDIF
                     WHILE(@#trade_failsafe<=300)
                     BREAK
                 ENDIF
                 @#trade_failsafe=#i
                 IF(#i==1)                
                     ECHO("/ch tr")
                     WAIT(1000ms)
                     IF(@&tradead1!="")
                         ECHO("%@&tradead1%")
                     ENDIF
                     WAIT(1000ms)
                     IF(@&tradead2!="")
                          ECHO("%@&tradead2%")
                     ENDIF
                     WAIT(1000ms)
                     ECHO("/ch g")
                 ENDIF
                 WAIT(1000ms)
                 INC(#i)
                 IF(#i>%@#trade_time%)
                     #i=1
                 ENDIF
             LOOP
         ENDIF
       ENDIF
    ELSE
       IFMATCHES(%CHAT%, "^/help (ad|ads)")
         LOG(" &e---- &6Help: ad &e-- &6Page &c1 &6of &c1 &e----")
         LOG("&7&lAutomated Advertisements Macro v1.0")
         LOG("&7&oDeveloped by 3point14mp, updated by 314.")
         LOG("&3/ad set 1 &bmsg &7- sets your first-line ad message")
         LOG("&3/ad set 2 &bmsg &7- sets your second-line ad message")
         LOG("&3/ad clear &7- clears your stored ad messages")
         LOG("&3/ad clear 1 &7- clears your first-line ad message")
         LOG("&3/ad clear 2 &7- clears your second-line ad message")
         LOG("&3/ad time &bseconds &7- sets time between each ad (minimum 300)")
         LOG("&3/ad info &7- displays stored ads and the status of your macro")
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 1$")
         LOG("&fSets your first of two allowable trade ads.")
         LOG("&f/ad set 1 <message>")
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 2$")
         LOG("&fSets your second allowable trade ad.")
         LOG("&f/ad set 2 <message>")
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 1 ")
         MATCH(%CHAT%, "^/ad set 1 (.+)",{&newad})
         @&tradead1=%&newad%
         LOG("&7[Tr] &b&oFirst-line Trade Ad Set To")
         LOG("&7[Tr] &f%&newad%")
         @#trade_failsafe=0
         @trade_breaknow=true
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 2 ")
         MATCH(%CHAT%, "^/ad set 2 (.+)",{&newad})
         @&tradead2=%&newad%
         LOG("&7[Tr] &b&oSecond-line Trade Ad Set To:")
         LOG("&7[Tr] &f%&newad%")
         @#trade_failsafe=0
         @trade_breaknow=true
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear$")
         @&tradead1=""
         @&tradead2=""
         LOG("&7[Tr] &dCleared First/Second-line Trade Ads")
         @#trade_failsafe=0
         @trade_breaknow=true
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear 1$")
         @&tradead1=""
         LOG("&7[Tr] &dCleared First-line Trade Ad")
         @#trade_failsafe=0
         @trade_breaknow=true
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear 2$")
         @&tradead2=""
         LOG("&7[Tr] &dCleared Second-line Trade Ad")
         @#trade_failsafe=0
         @trade_breaknow=true
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad time$")
         LOG("&fSets the time between ads. Must be at least 300 seconds.")
         LOG("&f/adtime <seconds>")
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad time ")
         MATCH(%CHAT%,"^/ad time (.+)",{&newtime})
         SET(#newtime,%&newtime%)
         IF(#newtime<300)
             LOG("&7[Tr] &cError: Must keep ads at least &e300 &cseconds apart")
         ELSE
             @#trade_time=%#newtime%
             LOG("&7[Tr] &aSet time between ads to &e%#newtime% &aseconds")
         ENDIF
         FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad info")
         IF((@&tradead1=="") && (@&tradead2==""))
             LOG("&7[Tr] You do not currently have any trade ad messages.")
         ELSE
             LOG("&7[Tr] Your planned ad messages are")
             IF(@&tradead1!="")
                 SPLIT(" ","%@&tradead1%",&split[])
                 FOR(#j,4,75)
                     IF(&split[%#j%]==""); BREAK; ENDIF
                     SET(&split[%#j%],"&7%&split[%#j%]%)
                 NEXT
                 JOIN(" ","&split[]",&t1)
                 LOG("&7[Tr] &fFirst-line: &7%&t1%")
             ENDIF
             IF(@&tradead2!="")
                 SPLIT(" ","%@&tradead2%",&split2[])
                 FOR(#j,4,75)
                     IF(&split2[%#j%]==""); BREAK; ENDIF
                     SET(&split2[%#j%],"&7%&split2[%#j%]%)
                 NEXT
                 JOIN(" ","&split2[]",&t2)
                 LOG("&7[Tr] &fSecond-line: &7%&t2%")
             ENDIF
             LOG("&7[Tr] &6Scheduled time between ads: &e%@#trade_time% &6seconds")
             IF((%@#trade_failsafe%>0) && (%@#trade_failsafe%<=300))
                 LOG("&7[Tr] &6Status: &cYour last automated ad was &e%@#trade_failsafe% &cseconds ago")
             ELSE
                 LOG("&7[Tr] &6Status: &aMacro ready to use")
             ENDIF
         ENDIF
         FILTER
       ENDIF
    ENDIF
    }$$
    

    /Ch qm tr for patrons:
    Code:
    $${
    IF(@#trade_time<=300)
       SET(@#trade_time,300)
    ENDIF
    IF(%KEYNAME%=="onJoinGame")
       SET(@#trade_failsafe,0)
       UNSET(@tradead)
    ELSEIF(%KEYNAME%!="onSendChatMessage")
       IF(@tradead);
          LOG("&7[Tr] &eYou stopped advertising.")
          UNSET(@tradead)
       ELSE
          IF((%@#trade_failsafe%>=1) && (%@#trade_failsafe%<300))
              LOG("&7[Tr] &cYou have recently advertised under 5 minutes ago.")
          ELSE
              LOG("&7[Tr] &aYou started advertising.")
              SET(@tradead)
              #i=1
              DO()
                  IF(@tradead==false)
                      UNSET(@trade_breaknow)
                      DO()
                      INC(@#trade_failsafe)
                      WAIT(1000ms)
                      IF(@trade_breaknow)
                          UNSET(@trade_breaknow)
                          BREAK
                      ENDIF
                      WHILE(@#trade_failsafe<=300)
                      BREAK
                  ENDIF
                  @#trade_failsafe=#i
                  IF(#i==1)
                      IF(@&tradead1!="")
                          ECHO("/ch qm tr %@&tradead1%")
                      ENDIF
                      IF(@&tradead2!="")
                          ECHO("/ch qm tr %@&tradead2%")
                      ENDIF
                  ENDIF
                  WAIT(1000ms)
                  INC(#i)
                  IF(#i>%@#trade_time%)
                      #i=1
                  ENDIF
              LOOP
          ENDIF
       ENDIF
    ELSE
       IFMATCHES(%CHAT%, "^/help (ad|ads)")
          LOG(" &e---- &6Help: ad &e-- &6Page &c1 &6of &c1 &e----")
          LOG("&7&lAutomated Advertisements Macro v1.0")
          LOG("&7&oDeveloped by 3point14mp, updated by 314.")
          LOG("&3/ad set 1 &bmsg &7- sets your first-line ad message")
          LOG("&3/ad set 2 &bmsg &7- sets your second-line ad message")
          LOG("&3/ad clear &7- clears your stored ad messages")
          LOG("&3/ad clear 1 &7- clears your first-line ad message")
          LOG("&3/ad clear 2 &7- clears your second-line ad message")
          LOG("&3/ad time &bseconds &7- sets time between each ad (minimum 300)")
          LOG("&3/ad info &7- displays stored ads and the status of your macro")
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 1$")
          LOG("&fSets your first of two allowable trade ads.")
          LOG("&f/ad set 1 <message>")
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 2$")
          LOG("&fSets your second allowable trade ad.")
          LOG("&f/ad set 2 <message>")
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 1 ")
          MATCH(%CHAT%, "^/ad set 1 (.+)",{&newad})
          @&tradead1=%&newad%
          LOG("&7[Tr] &b&oFirst-line Trade Ad Set To")
          LOG("&7[Tr] &f%&newad%")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad set 2 ")
          MATCH(%CHAT%, "^/ad set 2 (.+)",{&newad})
          @&tradead2=%&newad%
          LOG("&7[Tr] &b&oSecond-line Trade Ad Set To:")
          LOG("&7[Tr] &f%&newad%")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear$")
          @&tradead1=""
          @&tradead2=""
          LOG("&7[Tr] &dCleared First/Second-line Trade Ads")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear 1$")
          @&tradead1=""
          LOG("&7[Tr] &dCleared First-line Trade Ad")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad clear 2$")
          @&tradead2=""
          LOG("&7[Tr] &dCleared Second-line Trade Ad")
          @#trade_failsafe=0
          @trade_breaknow=true
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad time$")
          LOG("&fSets the time between ads. Must be at least 300 seconds.")
          LOG("&f/adtime <seconds>")
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad time ")
          MATCH(%CHAT%,"^/ad time (.+)",{&newtime})
          SET(#newtime,%&newtime%)
          IF(#newtime<300)
              LOG("&7[Tr] &cError: Must keep ads at least &e300 &cseconds apart")
          ELSE
              @#trade_time=%#newtime%
              LOG("&7[Tr] &aSet time between ads to &e%#newtime% &aseconds")
          ENDIF
          FILTER
       ENDIF
       IFMATCHES(%CHAT%, "^/ad info")
          IF((@&tradead1=="") && (@&tradead2==""))
              LOG("&7[Tr] You do not currently have any trade ad messages.")
          ELSE
              LOG("&7[Tr] Your planned ad messages are")
              IF(@&tradead1!="")
                  SPLIT(" ","%@&tradead1%",&split[])
                  FOR(#j,4,75)
                      IF(&split[%#j%]==""); BREAK; ENDIF
                      SET(&split[%#j%],"&7%&split[%#j%]%)
                  NEXT
                  JOIN(" ","&split[]",&t1)
                  LOG("&7[Tr] &fFirst-line: &7%&t1%")
              ENDIF
              IF(@&tradead2!="")
                  SPLIT(" ","%@&tradead2%",&split2[])
                  FOR(#j,4,75)
                      IF(&split2[%#j%]==""); BREAK; ENDIF
                      SET(&split2[%#j%],"&7%&split2[%#j%]%)
                  NEXT
                  JOIN(" ","&split2[]",&t2)
                  LOG("&7[Tr] &fSecond-line: &7%&t2%")
              ENDIF
              LOG("&7[Tr] &6Scheduled time between ads: &e%@#trade_time% &6seconds")
              IF((%@#trade_failsafe%>0) && (%@#trade_failsafe%<=300))
                  LOG("&7[Tr] &6Status: &cYour last automated ad was &e%@#trade_failsafe% &cseconds ago")
              ELSE
                  LOG("&7[Tr] &6Status: &aMacro ready to use")
              ENDIF
          ENDIF
          FILTER
       ENDIF
    ENDIF
    }$$
    

    For those who are interested:

    The bug was caused by a behavior change for the FILTER command. The command reference has described it as "Indicate that this chat meesage [sic] should be filtered and terminate", but it never actually stopped the macro. Apparently one of the new updates has fixed this long-term bug. Scripts with FILTER near the beginning were basically (ab)using a mod-internal bug, which actually shouldn't happen*.



    * I, too, used that bug for convenience in my own scripts; I will need to update them at some point in the future.
     
    • Like Like x 1
    • Informative Informative x 1
    • Useful Useful x 1
    • List
    #56 314, Apr 17, 2017
    Last edited: Apr 17, 2017
  17. stigarose

    stigarose Eyecare Ex-EcoLegend
    Builder ⛰️ Ex-EcoLegend ⚜️⚜️⚜️⚜️ Prestige ⭐ II ⭐ Premium Upgrade

    Joined:
    Jan 7, 2016
    Messages:
    854
    Trophy Points:
    42,160
    Gender:
    Male
    Ratings:
    +852
    @314 lol can you fix @priMELval macros too?

    This is a VERY small macro and maybe I'd understand your "terminate" instruction better on a very small example:
    $${
    IFMATCHES(%CHAT%,"^/(randomtp|rtp)$")
    RANDOM(#xtp,-15000,15000)
    RANDOM(#ytp,-15000,15000)
    FILTER
    ECHO(/tpc %#xtp% %#ytp%)
    ENDIF
    }$$
     
  18. 314

    314 Irratioπal President, former ServerAdmin
    President ⛰️⛰️ Ex-President ⚒️⚒️ Premium Upgrade

    Joined:
    Apr 1, 2014
    Messages:
    6,961
    Trophy Points:
    81,660
    EcoDollars:
    $20,000,000
    Ratings:
    +4,860
    Code:
    $${
    IFMATCHES(%CHAT%,"^/(randomtp|rtp)$")
        RANDOM(#xtp,-15000,15000)
        RANDOM(#ytp,-15000,15000)
        ECHO(/tpc %#xtp% %#ytp%)
        FILTER
    ENDIF
    }$$
    
     
  19. 6_28

    6_28
    Builder ⛰️ Ex-President ⚒️⚒️ Premium Upgrade

    Joined:
    Jul 5, 2016
    Messages:
    413
    Trophy Points:
    29,160
    Gender:
    Male
    EcoDollars:
    $0
    Ratings:
    +1,658
    None of the commands work @314