Макросы для СС2
Название | Лестницы |
Aвтoр | Morgan Olden |
Кoмaнда | Stairs |
Описание | Изображает лестницу как обыкновенную полосу. Три стиля: деревянная, камeнная или простая.
|
Инструкции | Измените следующие настройки: Ширина лестницы (стандарт 5) Глубина ступеней (стандарт 1) Стиль лестницы: деревянная, каменная или обычная (стандарт "деревянная") В дополнение к макросу включен и скрипт с кодом (смотри вложение ниже) Для запуска скрипта, cкoпиpyйте его на свой компьютер, наберите в командной строке СС2 команду "script", и выберите сохраненный файл.
|
Кoд
gl mcoCredits ---Macro design by Morgan Olden
(C)2002---
ecoff
rdoff
point 10001,10001;
golayer
MacroConstruction
scriptm #vars-Stairs.scr
ifdef mcoVarsOK
mcoDoneVarCheck
:mcoDefineVars
gv mcoW 5
gv mcoSD 1
gv mcoStyle
1
gv mcoW ^DStaircase width? (5)
gv mcoSD ^DStep depth? (1)
gv mcoStyle
^DStyle? (1=Wood,default 2=Stone 3=Plain)
gv mcoCol1 39
gv mcoCol2
36
ifz mcoStyle-1 mcoDoneStyleSelect
gv mcoCol1 253
gv mcoCol2
248
ifz mcoStyle-2 mcoDoneStyleSelect
gv mcoCol1 15
gv mcoCol2
15
:mcoDoneStyleSelect
gw mcoVarsOK OK
savevars vars-Stairs
go
mcoStart
:mcoDoneVarCheck
gv mcoUseDefault 1
gv mcoUseDefault ^DUse
saved settings? (1=yes - default - click) (0=no)
ifz mcoUseDefault
mcoDefineVars
:mcoStart
fstyle Solid;lwidth 0
gp mcoP1
^DPoint:
iferr mcoAbort
gp mcoP1a mcoP1
DBLN mcoW mcoP1 ^DNext
point:;
|gp mcoP2 @0,0
gdist mcoD12 mcoP1 mcoP2
ifz mcoD12
mcoAbort
selbyp;erase
GBRNG mcoB12 mcoP1 mcoP2
gp mcoP1R ref mcoP1
<mcoB12-90,mcoW/2
gp mcoP1L ref mcoP1 <mcoB12+90,mcoW/2
gp mcoP1aR
mcoP1R
gp mcoP1aL mcoP1L
:mcoLoop
DBLN mcoW mcoP1a mcoP2 ^DNext
point:;
|gp mcoP3 @0,0
selbyp;erase
gdist mcoD23 mcoP2 mcoP3
ifz
mcoD23 mcoClose
selbyp;erase
GBRNG mcoB12 mcoP1 mcoP2
GBRNG mcoB23
mcoP2 mcoP3
gcos mcowcs 90-((mcoB12-mcoB23-180)/2)
gtan mcowtn
90-((mcoB12-mcoB23-180)/2)
gv mcoaw (mcoW/2)/mcowcs
gv mcoaw2
(mcoW/2)*mcowtn
gp mcoP2R ref mcoP2 <(mcoB12+mcoB23)/2+90,mcoaw
gp
mcoP2L ref mcoP2 <(mcoB12+mcoB23)/2-90,mcoaw
gp mcoP2inner mcoP2L
gv
mcoX -1
ifp mcoaw2 mcoControl1
gv mcoaw2 mcoaw2*-1
gp mcoP2inner
mcoP2R
gv mcoX 1
:mcoControl1
gp mcoP2a ref mcoP2
<(mcoB12-180),mcoaw2
gp mcoP2aR ref mcoP2a <mcoB12-90,mcoW/2
gp
mcoP2aL ref mcoP2a <mcoB12+90,mcoW/2
gp mcoP2b ref mcoP2
<(mcoB23),mcoaw2
gp mcoP2bR ref mcoP2b <mcoB23-90,mcoW/2
gp mcoP2bL
ref mcoP2b <mcoB23+90,mcoW/2
gl rem ----------------------------Draw
straight length entities
color mcoCol1
poly mcoP2aR mcoP1aR mcoP1aL
mcoP2aL;
gdist mcoDP1aP2a mcoP1a mcoP2a
gn mcoSteps
mcoDP1aP2a/mcoSD
ifp mcoSteps mcoDoneCalcSteps
gn mcoSteps
1
:mcoDoneCalcSteps
gv mcoCount 0
:mcoStepLoop
gv mcoCount
mcoCount+1
gp mcoStepP ref mcoP1a
<mcoB12,(mcoDP1aP2a/mcoSteps)*mcoCount
gp mcoStepPa ref mcoP1a
<mcoB12,((mcoDP1aP2a/mcoSteps)*mcoCount)-((mcoDP1aP2a/mcoSteps)/4)
ifp
mcoStyle-2 mcoSkipStepShadow
color mcoCol2
poly ref mcoStepP
<mcoB12+90,mcoW/2
ref mcoStepPa <mcoB12+90,mcoW/2
ref mcoStepPa
<mcoB12-90,mcoW/2
ref mcoStepP
<mcoB12-90,mcoW/2;
:mcoSkipStepShadow
color 0
line ref mcoStepP
<mcoB12+90,mcoW/2 ref mcoStepP <mcoB12-90,mcoW/2;
ifp mcoSteps-mcoCount
mcoStepLoop
line mcoP2aR mcoP1aR mcoP1aL mcoP2aL;
gl rem
----------------------------Draw corner entities
gv mcoA1
mcoB12-mcoB23
ifp mcoA1 mcoSkipAngleAdjust1
gv mcoA1
mcoA1*-1
:mcoSkipAngleAdjust1
ifn mcoA1-180 mcoSkipAngleAdjust2
gv
mcoA1 360-mcoA1
:mcoSkipAngleAdjust2
ifz mcoA1 mcoSkipCorner
gn
mcoSteps ((3.1416*mcoW)/360*mcoA1)/mcoSD
ifp mcoSteps mcoDoneCalcSteps2
gv
mcoSteps 1
:mcoDoneCalcSteps2
gv mcoCount 0
gp mcoSP1 ref mcoP2inner
<mcoB12+(90*mcoX),mcoW
:mcoCornerLoop
gv mcoCount mcoCount+1
gp
mcoSP2 ref mcoP2inner
<mcoB12-(mcoA1/mcoSteps*mcoCount*mcoX)+(90*mcoX),mcoW
gdist mcoDSP12
mcoSP1 mcoSP2
gbrng mcoBSP12 mcoSP1 mcoSP2
color mcoCol1
poly
mcoP2inner mcoSP1 mcoSP2;
ifp mcoStyle-2 mcoSkipCornerShadow
color
mcoCol2
poly mcoP2inner ref mcoSP1 <mcoBSP12,mcoDSP12*.75
mcoSP2;
:mcoSkipCornerShadow
color 0
line mcoP2inner mcoSP1
mcoSP2;
gp mcoSP1 mcoSP2
ifp mcoSteps-mcoCount
mcoCornerLoop
:mcoSkipCorner
gl rem ----------------------------Get ready
for next segment
gp mcoP1 mcoP2
gp mcoP1R mcoP2R
gp mcoP1L mcoP2L
gp
mcoP1aR mcoP2bR
gp mcoP1aL mcoP2bL
gp mcoP2 mcoP3
gp mcoP1a
mcoP2b
go mcoLoop
:mcoClose
GBRNG mcoB12 mcoP1 mcoP2
gp mcoP2R ref
mcoP2 <mcoB12-90,mcoW/2
gp mcoP2L ref mcoP2 <mcoB12+90,mcoW/2
gp
mcoP2a mcoP2
gp mcoP2aR mcoP2R
gp mcoP2aL mcoP2L
gl rem
----------------------------Draw last straight length entities
color
mcoCol1
poly mcoP2aR mcoP1aR mcoP1aL mcoP2aL;
gdist mcoDP1aP2a mcoP1a
mcoP2a
gn mcoSteps mcoDP1aP2a/mcoSD
ifp mcoSteps mcoDoneCalcSteps3
gn
mcoSteps 1
:mcoDoneCalcSteps3
gv mcoCount 0
:mcoStepLoop2
gv
mcoCount mcoCount+1
gp mcoStepP ref mcoP1a
<mcoB12,(mcoDP1aP2a/mcoSteps)*mcoCount
gp mcoStepPa ref mcoP1a
<mcoB12,((mcoDP1aP2a/mcoSteps)*mcoCount)-((mcoDP1aP2a/mcoSteps)/4)
ifp
mcoStyle-2 mcoSkipStepShadow2
color mcoCol2
poly ref mcoStepP
<mcoB12+90,mcoW/2
ref mcoStepPa <mcoB12+90,mcoW/2
ref mcoStepPa
<mcoB12-90,mcoW/2
ref mcoStepP
<mcoB12-90,mcoW/2;
:mcoSkipStepShadow2
color 0
line ref mcoStepP
<mcoB12+90,mcoW/2 ref mcoStepP <mcoB12-90,mcoW/2;
ifp mcoSteps-mcoCount
mcoStepLoop2
line mcoP2aR mcoP1aR mcoP1aL mcoP2aL;
selby1
keep
10001,10001
selbyl
changel
MacroConstruction
like
10001,10001
selbyp
group
:mcoabort
selby1
keep
10001,10001
erase 10001,10001
selrest
rdon
econ
Copyright © AD&Den`s Lair Все права защищены.