lechoo Napisano 22 Grudzień 2003 Napisano 22 Grudzień 2003 Po pierwsze: tylko jedna osoba! Wstydzcie sie :( Jeszcze 4 tematy do konca to moze jakos dociagniemy.
lechoo Napisano 22 Grudzień 2003 Autor Napisano 22 Grudzień 2003 A teraz moja wersja: utility copy_mod \"Copy modifiers\" ( local mod_list_arr = #() label lab1 \"Copy from:\" align:#left pickbutton source \"Pick object\" width:140 label lab2 \"Copy to:\" align:#left pickbutton targetP \"Pick object\" width:140 multiListBox mods_list \"Modifiers\" button copy_mods \"Copy selected modifiers\" width:140 on source picked obj do ( source.text = obj.name for i in 1 to obj.modifiers.count do ( append mod_list_arr ((classOf obj.modifiers) as string) ) mods_list.items = mod_list_arr ) on targetP picked obj do ( targetP.text = obj.name ) on copy_mods pressed do ( for i in mods_list.selection.count to 1 by -1 do ( if (mods_list.selection) then ( addModifier targetP.object source.object.modifiers ) ) ) ) W tym temacie tak naprawde chodzilo o nauczenie sie \"obslugi\" modyfikatorów przez max script wiec nie ma tu specjalnych fajerwerkow. Krotko opisze kilka ciekawszych fragmentow: classOf obj.modifiers W ten sposob sprawdzam klase modyfikatora (w tym wypadku jest ona jednoznaczna z nazwa) by pozniej wrzucic ja do tablicy. mods_list.items = mod_list_arr Parametr items listboxa i multilistboxa przechowuje tablicę wszystkich pozycji wyswietlanych w tym elemencie listy. Aby zmienic wszystkie wyswietlane elementy przypisuje mu tablice z nazwami modyfikatorow. for i in mods_list.selection.count to 1 by -1 do \"by -1\" oznacza ze przebiegam tablice od tylu a robie tak zeby zachowac wlasciwa kolejnosc modyfikatorow. Gdyby nie to pierwszy modyfikator po skopiowaniu bylby ostatni, drugi przedostatni itd. Na koniec ten sam skrypt w jednej linijce, bez interfejsu, wyboru modyfikatorow, samo kopiowanie. for i in $Box01.modifiers.count to 1 by -1 do addModifier $Box02 $Box01.modifiers
lechoo Napisano 22 Grudzień 2003 Autor Napisano 22 Grudzień 2003 Autor: VGTsXVII macroscript copy_modifiers category:\"kurs maxscript\" tooltip:\"kopiowanie modyfikacji\" icon:#(\"MergeAnim\",4) ( --ustalenie obiektu zrodlowego zazn = getcurrentselection() obiekt = zazn[1] --przygotowanie tablic tab_mod = #() tab_zazn = #() --wstawienie danych do tablic for i = 1 to obiekt.modifiers.count do ( append tab_mod (obiekt.modifiers.name) append tab_zazn i ) rollout roll \"copy modifiers\" ( --wyswietlenie listy modyfikacji multilistbox lista_mod items:tab_mod selection:tab_zazn --wybor drugiego obiektu --###po wyborze automatycznie nastepuje skopiowanie wybranych modyfikacji pickbutton drugi \"pick\" width:75 height:30 on drugi picked obiekt2 do undo on ( for i = 1 to obiekt.modifiers.count do if lista_mod.selection[obiekt.modifiers.count-i+1] == true then if validmodifier obiekt2 obiekt.modifiers[obiekt.modifiers.count-i+1] then addmodifier obiekt2 obiekt.modifiers[obiekt.modifiers.count-i+1] destroydialog roll completeredraw() ) ) createdialog roll width:200 height:200 ) Tym razem wersja macroscriptowa. Sa tu dwa bardzo ciekawe elementy. on drugi picked obiekt2 do undo on ( --tu cos robimy ) Dzieki \"undo on\" wszystkie operacje pomiedzy nawiasami bedzie mozna cofnac przy pomocy maxowego undo. Defaultowo operacje wykonywane przez max script nie sa dopisywane do listy undo. Jesli zapis nie jest dla was do konca jasny mozna to przepisac tak: on drugi picked obiekt2 do ( undo on ( --tu cos robimy ) ) if validmodifier obiekt2 obiekt.modifiers[obiekt.modifiers.count-i+1] then addmodifier obiekt2 obiekt.modifiers[obiekt.modifiers.count-i+1] \"validmodifier\" sprawdza czy dany modyfikator mozna nalozyc na zadany obiekt. Na wszelki wypadek zawsze powinno sie to sprawdzac (o czym w swoim skrypcie zapomnialem :) ).
lechoo Napisano 22 Grudzień 2003 Autor Napisano 22 Grudzień 2003 I jeszcze plik ze skryptami: tematy06.zip Nastepny temat po nowym roku. Wesolych Swiat
adek Napisano 23 Grudzień 2003 Napisano 23 Grudzień 2003 OJ ... oj oj ... tylko jedna osoba ... nieładnie ... może to przez okres przedświąteczny ...
lechoo Napisano 23 Grudzień 2003 Autor Napisano 23 Grudzień 2003 Tez mam taka nadzieje, zobaczymy w styczniu.
Sypo Napisano 23 Grudzień 2003 Napisano 23 Grudzień 2003 Wesołych Świąt! Mi jest głupio...:( Pozdrawiam!
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się