Q009

Untitled

Feb 26th, 2014
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. ptRate = 32
  2. ptSpacing = 8
  3.  
  4. //Partnum 4
  5. //Partshape 277
  6.  
  7. ptCur = "ptla"
  8. ptCurID = -1
  9. ptOldPosX = 0
  10. ptOldPosZ = 0
  11. ptOriginX = 0
  12. ptOriginZ = 0
  13. ptMarginL = 0
  14. ptWid = 0
  15. ptText = ""
  16. ptLen = 0
  17.  
  18. ptRecordLetter = [
  19. ptCur = [ptl@arg1]
  20. ptMarginL = [ptlm@arg1]
  21. ptWid = [ptlw@arg1]
  22. $ptCur = []
  23. $ptMarginL = 0
  24. $ptWid = 0
  25. ptCurID = (entindex)
  26. ptOldPosX = (at (entgetpos $ptCurID) 0)
  27. ptOldPosZ = (at (entgetpos $ptCurID) 2)
  28. ptOriginX = $ptOldPosX
  29. echo Now recording letter $arg1 ! 'ptRecord' to finish
  30. ptRecord
  31. ]
  32.  
  33. ptMoved = [
  34. result (? (&& (= (at (entgetpos $ptCurID) 0) $ptOldPosX) (= (at (entgetpos $ptCurID) 2) $ptOldPosZ)) 0 1)
  35. ]
  36.  
  37. ptDrawLetter = [
  38. ptMove = (at $$ptCur $arg1)
  39. entmove (at $ptMove 0) 0 (at $ptMove 1) $ptCurID
  40. if (< $arg1 (listlen $$ptCur)) [ sleep $ptRate [ ptDrawLetter (+ @@arg1 1) ] ]
  41. ]
  42.  
  43. ptDrawTextProc = [
  44. ptLetter = (substr $ptText $arg1 1)
  45. ptNext = (substr $ptText (+ $arg1 1) 1)
  46. ptNextMarg = 0
  47. if (! (strcmp $ptNext " ")) [ ptNextMarg = $[ptlm@@ptNext] ]
  48. if (! (strcmp $ptLetter " ")) [
  49. ptCur = [ptl@@ptLetter]
  50. ptCurWid = $[ptlw@@ptLetter]
  51. ptCurX = (at (entgetpos $ptCurID) 0)
  52. ptCurZ = (at (entgetpos $ptCurID) 2)
  53. ptCurSteps = (listlen $$ptCur)
  54. += ptCurSteps 10
  55.  
  56. if $arg1 [ entmove (- $ptOriginX $ptCurX) 0 (- $ptOriginZ $ptCurZ) @@ptCurID ]
  57. ptDrawLetter
  58. += ptOriginX $ptCurWid
  59. ] [ += ptOriginX 10 ]
  60. if $ptNextMarg [ += ptOriginX $ptNextMarg ]
  61. += ptOriginX 4
  62.  
  63. if (< $arg1 $ptLen) [ sleep (* $ptCurSteps $ptRate) [ ptDrawTextProc (+ @@arg1 1) ] ]
  64. ]
  65.  
  66. ptDrawText = [
  67. ptCurID = (entindex)
  68. ptText = $arg1
  69. ptLen = (strlen $ptText)
  70. -- ptLen
  71. ptOriginX = (at (entgetpos $ptCurID) 0)
  72. ptOriginZ = (at (entgetpos $ptCurID) 2)
  73. echo ptDrawText $ptText $ptLen
  74. ptDrawTextProc
  75. ]
  76.  
  77. se_togglealias ptRecord 16 [
  78. if (ptMoved) [
  79. ptNewPosX = (at (entgetpos $ptCurID) 0)
  80. ptNewPosZ = (at (entgetpos $ptCurID) 2)
  81. if (> (- $ptOriginX $ptNewPosX) $$ptMarginL) [ @ptMarginL = (- $ptOriginX $ptNewPosX); echo margin $@ptMarginL ]
  82. if (> (- $ptNewPosX $ptOriginX) $$ptWid) [ @ptWid = (- $ptNewPosX $ptOriginX); echo wid $@ptWid ]
  83. ptDiffX = (- $ptNewPosX $ptOldPosX)
  84. ptDiffZ = (- $ptNewPosZ $ptOldPosZ)
  85. ptOldPosX = $ptNewPosX
  86. ptOldPosZ = $ptNewPosZ
  87. $ptCur = (concat $$ptCur [[@@ptDiffX @@ptDiffZ]])
  88. ]
  89. ] [
  90. if (! $ptRecord_toggle) [
  91. echo Recording finished! Saved (listlen $$ptCur) steps!
  92. ]
  93. ]
Advertisement
Add Comment
Please, Sign In to add comment