Frontpage Forums MAPPING HANGOUT MAPPING NICE-TO-KNOWS PLOOP – correct syntax to keep lag to a minimum
This topic contains 1 reply, has 2 voices, and was last updated by Avatar Captain 1 year, 4 months ago.
Viewing 2 posts - 1 through 2 (of 2 total)
    • Shemihazah Participant
      February 23, 2018 at 13:35 #2480

      I see a lot of very bad use of PLOOP. I will give an example from ‘SG Rainbow in Vegas 3’ to show how you should and should not use PLOOP.

      PLOOP (PlayerLOOP) will CYCLE through ALL players EVERY second to check if the conditions for the trigger IN the PLOOP are met.

       

      Proper syntax for PLOOP:

      if TRIGGER and (optional) CONDITIONS then

      PLOOP

      if trigger and (optional) conditions then

      actions

      endif

      END

      endif

       

      Bad use of PLOOP:

      SG RAINBOW IN VEGAS 3 has close to 50 PLOOPS – all without triggers!!! As an inevitable result it generates a lot of lag despite low VB and texture memory.

      Example from RAINBOW IN VEGAS 3:

      PLOOP
      if never() and ssnlosssn(1738,player,8) then inc(v2)
      endif
      END

      PLOOP
      if never() and ssnlosssn(1739,player,8) then inc(v2)
      endif
      END

      PLOOP
      if never() and ssnlosssn(1740,player,8) then inc(v2)
      endif
      END

      PLOOP
      if never() and ssnlosssn(1741,player,8) then inc(v2)
      endif
      END

      Worst part is when you check what variable 2 does in the script. It only triggers the following and the incremental (v2) is total B.S.:

      if never() and gt(v2,0) then
      ssnwave(1743,”gdtv002d.wav”,100)
      endif
      if chain(5) then
      ssnatt(1738,50)
      ssnatt(1739,50)
      ssnatt(1740,50)
      ssnatt(1741,50)
      endif

       

      Proper use of PLOOP:

      if eq(v2,0) then

      PLOOP
      if ssnlosssn(1738,player,8) or ssnlosssn(1739,player,8) or ssnlosssn(1740,player,8) or ssnlosssn(1741,player,8) and NEVER then

      SET(v2,1)

      endif
      END

      endif

      if eq(v2,1) ENTER
      ssnwave(1743,”gdtv002d.wav”,100)
      endif
      if chain(5) then
      ssnatt(1738,50)
      ssnatt(1739,50)
      ssnatt(1740,50)
      ssnatt(1741,50)
      endif

      This way the PLOOP (reduced to ONE command instead of four separate ones) in the script will only fire as long as var2 is false. As soon as it equates to true, the PLOOP triggered by var2 will stop firing because it’s no longer needed.

    • Captain Keymaster
      March 1, 2018 at 19:16 #2486

      Thanks for sharing.
      I’ve also noticed a bit of lag on one of the halflife maps  – I thought it might had to do with my machine but it could very well be that as well.
      Great info to know for map makers 🙂

      ________________________
      Captain
      - Website Administrator

Viewing 2 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic.

Latest 10 Maps

AW2 – Opencast Mining

AW2 – BRUTAL ENEMY

AW2 – SPACE RACE

AW2 – SAVE THE PRESIDENT

AW2 – POW BREAKOUT

AW2 – THE HUNT FOR BIN LADEN

AW2 – Op Quång Çhi

AW2 – RESIDENT EVIL – PART 3

AW2 – RESIDENT EVIL – PART 2

AW2 – RESIDENT EVIL – PART 1

Recently Active Members

Avatar
Profile picture of Wolfseye
Profile picture of hawk1
Avatar
Profile picture of Eagle613UK
Profile picture of Captain
Avatar
Avatar
Avatar
Avatar
Avatar
Avatar
Avatar
Profile picture of Shemihazah
Profile picture of Ennio PG

Log In

Username:

Password:


Lost password? | Register