Skocz do zawartości

Featured Replies

Napisano

Witam wszystkich. Mam dziwny problem a dokladnie to zaczolem pisac swoj pierwszy script :D. i narazie wszystko wmiare idzie gdyby nie to ze niewiem co sie dzieje oto co narazie napisalem :

rollout ob_roll \"Obiekt\" width:160 height:184

(

radiobuttons rdo2 pos:[35,20] width:49 height:46 labels:#(\"Poly\", \"Mesh\") default:1

label lb2 \"Create Box, convert to Edit Tablet: \" pos:[10,45]

button b1 \"Do It\" pos:[70,70]

 

on b1 pressed do

(

pot = box length:l.value width:w.value height:h.value

pot.name = \"Box01\"

)

)

rollout rozm_roll \"Dlugosc, Szerokosc, Wysokosc\" width:160 height:184

(

Spinner l \"Length: \"range[0,999,30] type:#float

Spinner w \"Width: \"range[0,999,30] type:#float

Spinner h \"Height: \"range[0,999,30] type:#float

)

rollout opcje_roll \"Opcje\" width:160 height:184

(

)

rollout info_roll \"Info\" width:160 height:64

(

label lbl2 \"Autor: CoRnS\" pos16,32] width:136 height:16

)

mainfloater = newRolloutFloater \"Creator\" 201 240

addrollout ob_roll mainfloater

addrollout rozm_roll mainfloater

addrollout opcje_roll mainfloater

addrollout info_roll mainfloater

 

i problem jest taki, ze jak dam Ctrl+E [Evaluate All] to podswietla mi taka linijke : Spinner l \"Length: \"range[0,999,30] type:#float

[z tego co wiem to oznacza blad]

Dla jasnosci uzywam 3ds max 6.

Pozdrawiam i z gory dzieki za pomoc.:)

  • Odpowiedzi 8
  • Wyświetleń 2,1k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

To tylko literowki.

W definicji spinerow brakuje dwukropkow po range, powinno byc: Spinner l \"Length: \"range:[0,999,30] type:#float

I dalej jeszcze w labelu lbl2, gdzie powinno byc pos:[16,32] zamiast pos16,32]

Napisano
  • Autor

Dzieki joz poprawilem. Ale znowu cos nie tak bo gdy chce utwozyć boxa [klikam na bbuttona] to wyskakuje mi okienko \"--Unknow property:\"value\" in undefined\" :)

Napisano

Problem leży w zasięgu działania zmiennych.. coś czego nigdy nie lubiłem bo czasem można się przez to dłuugo wpatrywać w monitor ;) po prostu w rollout\'cie z buttonem ta zmienna jest niewidoczna

 

Jeżeli te 3 linie:

Spinner l \"Length: \"range[0,999,30] type:#float

Spinner w \"Width: \"range[0,999,30] type:#float

Spinner h \"Height: \"range[0,999,30] type:#float

 

umieściłbyś w tym samym rollout\'cie co button, wszystko było by ok.

 

Ja rozwiązałbym to tak, że wartości te przenosiłbym poprzez zmienne.

Całość po moich poprawkach wyglądałaby tak:

global wid = 30
global len = 30
global hei = 30
rollout ob_roll \"Obiekt\" width:160 height:184 
( 
radiobuttons rdo2 pos:[35,20] width:49 height:46 labels:#(\"Poly\", \"Mesh\") default:1 
label lb2 \"Create Box, convert to Edit Tablet: \" pos:[10,45] 
button b1 \"Do It\" pos:[70,70] 

on b1 pressed do 
( 
pot = box length:len width:wid height:hei 
pot.name = \"Box01\" 
) 
) 
rollout rozm_roll \"Dlugosc, Szerokosc, Wysokosc\" width:160 height:184 
( 
Spinner l \"Length: \"range:[0,999,30] type:#float 
on l changed val do len = l.value
Spinner w \"Width: \"range:[0,999,30] type:#float 
on w changed val do wid = w.value
Spinner h \"Height: \"range:[0,999,30] type:#float 
on h changed val do hei = h.value
) 
rollout opcje_roll \"Opcje\" width:160 height:184 
( 
) 
rollout info_roll \"Info\" width:160 height:64 
( 
label lbl2 \"Autor: CoRnS\" pos:[16,32] width:136 height:16 
) 
mainfloater = newRolloutFloater \"Creator\" 201 240 
addrollout ob_roll mainfloater 
addrollout rozm_roll mainfloater 
addrollout opcje_roll mainfloater 
addrollout info_roll mainfloater

 

a teraz krótki opis

-zaraz na poczatku zadeklarowalem zmienne przypisujac im wartosci poczatkowe spinnerow

-w pot = box.... odwoluje sie do wartosci zmiennych a nie spinnerów

-dodatkowe linie: on (nazwa) changed do ... sprawia ze przy kazdej zmianie spinnera nowa wartosc od razu ląduje także w zmiennej.

 

Ogólnie rozwiązanie to pewnie prowizorka, ale tyle mogę pomóc :)

 

w odpowiedzi na poniższe rozwiązanie lechoo:

heh, ja przy tym pół godziny dłubałem a to o tyle prostsze było :) no ale człowiek uczy się całe życie

 

Napisano

Mozna to zrobic jeszcze inaczej. Wystarczy odwolac sie do spinera przez nazwe rolloutu czyli np. rozm_roll.l.value. Wtedy wartosc ta powinna byc widoczna w innych rolloutach.

Napisano
  • Autor

Dzieki wielkie nareszcie dziala :). Mam jeszcze pytanie do lechoo: probowalem zrobic tak jak ty pisales ale wyskakuje mi msg \"--Unknow property:\"l\" in undefined\"

Mozesz mi wyjasniec czemu tak sie dzieje [i co to jest to l pomiedzy tymi kropkami ?? :) Jeszcze raz dzieki wielkie :)

Napisano

ja podpowiem, że \"l\" to nazwa twojego spinnera :)

 

a komunikat pojawia się takjakby wciąż ta wartość nie była osiągalna :| ja jeszcze tego nie mialem okazji przetestować, więc bedzie musiał tu lechoo zajrzeć :)

Napisano

Musisz zamienic miejscami rozm_roll i ob_roll. Najpierw ten w ktorym zdefiniowane sa spinnery a potem ten w ktorym sie do nich odwolujesz. Nie wiem czemu tak, max script ma takie rozne fanaberie :)

 

Przerobiony skrypt wyglada tak:

 

rollout rozm_roll \"Dlugosc, Szerokosc, Wysokosc\" width:160 height:184

(

Spinner l \"Length: \"range:[0,999,30] type:#float

Spinner w \"Width: \"range:[0,999,30] type:#float

Spinner h \"Height: \"range:[0,999,30] type:#float

)

 

rollout ob_roll \"Obiekt\" width:160 height:184

(

radiobuttons rdo2 pos:[35,20] width:49 height:46 labels:#(\"Poly\", \"Mesh\") default:1

label lb2 \"Create Box, convert to Edit Tablet: \" pos:[10,45]

button b1 \"Do It\" pos:[70,70]

 

on b1 pressed do

(

pot = box length:rozm_roll.l.value width:rozm_roll.w.value height:rozm_roll.h.value

pot.name = \"Box01\"

)

)

 

rollout opcje_roll \"Opcje\" width:160 height:184

(

)

rollout info_roll \"Info\" width:160 height:64

(

label lbl2 \"Autor: CoRnS\" pos:[16,32] width:136 height:16

)

mainfloater = newRolloutFloater \"Creator\" 201 240

addrollout ob_roll mainfloater

addrollout rozm_roll mainfloater

addrollout opcje_roll mainfloater

addrollout info_roll mainfloater

Napisano
  • Autor

Dzieki za pomoc :) Jest joz ok. Jak skoncze lub bede mial problemy [znowu] to dam znac. Jeszcze raz dzieki.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności