[POMOC] Nowa klasa bystandera

Zbiór wszystkich tematów poświęconych tutorialom.

Moderatorzy: Moderatorzy, Admini

Awatar użytkownika
Pablo Abruzzi
Seryjny zabójca
Posty: 398
Rejestracja: 23 wrz 2008, 11:45
Lokalizacja: Niedaleko Katowic

01 lut 2009, 10:40

A więc chciałem od dawna stworzyc nową klasę bystandera, ale niestety nie udało mi się to: tylko masa błędów. Proszę czy mógłby ktoś tu opisać jak stworzyć nową klasę bystandera, napewno nie tylko ja na tym skorzystam :P . Plis pomóżcie.


Si vis pacem, para bellum - Jeśli chcesz pokoju, przygotuj się do wojny
Wegecjusz
Awatar użytkownika
Tiquill
V.I.P.
V.I.P.
Posty: 14479
Rejestracja: 25 sty 2007, 02:00
Lokalizacja: z naprzeciwka
Postawił piwo: 1 raz
Otrzymał  piwo: 1 raz
Kontakt:

10 lut 2009, 03:42

Najlepiej zacząć od stworzenia podklasy istniejącej już klasy. Wtedy nasz bystander przejmuje właściwości nadrzędnej klasy. Proste jak drut. Chcesz mieć swojego wojaka, ale inaczej ubranego z innymi broniami? Tworzysz podklasę, czyli pierwsza linijka skryptu to np:

class MySWAT extends SWAT

to określi, że twój bystander, czyli MySWAT, będzie dziedziczył atrybuty postalowego SWAT'iaka. Możesz jeszcze coś dopisać w kodzie, ale wystarczy już pogrzebać w defaultproperties. Czyli skopiować to, co jest w skrypcie SWAT'a (adres wypakowanego skryptu: folder BasePeople\Classes - plik SWAT.uc). Nazwy wartości są zrozumiałe. Wywal to, czego nie chcesz zmieniać, pozostaw tylke te wpisy, którym coś zmieniasz. Przykład:
zamiast
BaseEquipment(0)=(WeaponClass=Class'Inventory.MachineGunWeapon')
Cajones=0.700000
Skins(0)=Texture'ChameleonSkins.SWAT.XX__159__Big_M_LS_Pants'

dajesz:
BaseEquipment(0)=(WeaponClass=Class'NewWeapon.MyFuckingAwesomeWeapon') - dajesz nową broń w posiadanie cwanaiczka, zamiast machineguna
Cajones=0.500000 - zmniejszasz odwagę
Skins(0)=Texture'MySkis.MojeUbranko' - zmieniasz ubranie wojaka.
Reszta to efekty własnych doświadczeń. Pójdzie. Nawet stworzenie własnej klasy podległej tylko nadrzędnej klasie, choćby AuthorityFigure.

Do przeglądania klas polecam, oprócz PostEd'a, także UnCodeX, niezastąpiony program do wyszukiwania tajników skryptów, oto link: https://forum.postalsite.info/n ... .html#19964
Ostatnio zmieniony 01 sty 1970, 01:00 przez Tiquill, łącznie zmieniany 1 raz.


Zawsze jest ryzyko, że wyczerpałeś już limit dobrych dni i czeka cię już tylko samo zło...
Obrazek
Awatar użytkownika
BloodyMan
Niedorobiony bandzior
Posty: 48
Rejestracja: 03 lis 2007, 21:00
Lokalizacja: Piotków Tryb.

28 mar 2009, 04:36

A w jakim pliku mogę znaleźć te klasy?


Awatar użytkownika
Tiquill
V.I.P.
V.I.P.
Posty: 14479
Rejestracja: 25 sty 2007, 02:00
Lokalizacja: z naprzeciwka
Postawił piwo: 1 raz
Otrzymał  piwo: 1 raz
Kontakt:

28 mar 2009, 04:52

Napisałem wyżej:
folder BasePeople\Classes - plik SWAT.uc)
To znaczy, że paczka z tymi klasami jest w pliku BasePeople.u. Klas bystaderów jeszcze szukaj w pliku People.u

Jak wypakować oba pliki, żeby dostać się do postaci plików, które można edytować, czyli w powyższym przykładzie SWAT.uc? W PostEd, w jego przeglądarce elementów, klikasz na zakładkę Actor Classes. Wybierasz z menu File - Open Package. W standardowym oknie wyboru pliku masz paczki o rozszerzeniu U. Zaznacz wszystkie i otwórz, to da ci pewność, że w dalszej pracy PostEd niczego nie przeoczy. A dalsza praca to: z menu dajesz File - Export All Scripts. Potwierdzasz w nowym okienku, że chcesz to zrobić i czekasz, aż PostEd skończy robotę. W głównym folderze gry przybędzie Ci kilkanaście folderów. Ciebie interesują foldery BasePeople i People. Przeglądasz, wybierasz odpowiednią klasę, która ci pasuje za wzór i ją przerabiasz.
Ostatnio zmieniony 01 sty 1970, 01:00 przez Tiquill, łącznie zmieniany 2 razy.


Zawsze jest ryzyko, że wyczerpałeś już limit dobrych dni i czeka cię już tylko samo zło...
Obrazek
Awatar użytkownika
BloodyMan
Niedorobiony bandzior
Posty: 48
Rejestracja: 03 lis 2007, 21:00
Lokalizacja: Piotków Tryb.

28 mar 2009, 05:10

Hoho! Dzięki Tiquill! Myślę że dalej sobię poradzę, ponieważ tu jest podobnie jak w klasach SWAT 4. Jakby co to się odezwę jeszcze ;).

Dobra już wiem co w trawie piszczy. Otóż kluczem do rozwiązania moich wszystkich problemów jest problem spakowania folderów na *.U. Czy jest jakiś program do pakowania folderów do formatu *.U, albo sposób? Ja szukałem w posted'dzie ale tam jest tylko export.
Ostatnio zmieniony 29 mar 2009, 00:50 przez BloodyMan, łącznie zmieniany 3 razy.


Awatar użytkownika
Tiquill
V.I.P.
V.I.P.
Posty: 14479
Rejestracja: 25 sty 2007, 02:00
Lokalizacja: z naprzeciwka
Postawił piwo: 1 raz
Otrzymał  piwo: 1 raz
Kontakt:

30 mar 2009, 00:23

Wypakowałeś, przejrzałeś, zapoznałeś się, przyda się na przyszłość. ;) Sorki, że wcześniej nie mogłem, teraz kontynuuję.

Aby dodać swojego bystandera do własnej mapy są dwa sposoby. Skorzystanie wyłącznie z PostEd oraz za pomocą dodatkowego narzędzia.

1. Dodanie bystandera za pomocą PostEd.
Jeśli chcesz dodać swojego przechodnia do mapy, na szybko, tylko do jednej mapy, tylko dla jej potrzeb, to nie trzeba tworzyć nowej paczki *.U, wystarczy wrzucić go do tej mapy jako jej własny obiekt.
1. Otwierasz swoją mapę. W przeglądarce klas (czyli Actor Classes) wyszukujesz klasę istniejącego bystandera. Jeśli jest to SWAT to prawoklikasz na nim i z menu wybierasz New..., jak na obrazku:
Obrazek
Obrazek 1

2. W nowym okienku określasz nazwę (albo akceptujesz zaproponowaną przez edytor, tu: MySWAT). Musisz koniecznie zmienić nazwę paczki (pole Package:) na MyLevel - tylko tak PostEd doda ją do twojej mapy. Ma to wyglądać mniej więcej tak:
Obrazek
Obrazek 2

3. Teraz zaczyna się cała zabawa. Otwiera się okno PostEd'owego edytora klas. Jeśli wcześniej przygotowałeś skrypt w pliczku *.uc to kopiujesz jego zawartość, przechodzisz do PostEd'owego edytora klas, usuwasz to co tam on zaproponował i wklejasz swój skrypt. A jeśli odpowiada ci domyślna propozycja edytora, to nic tam nie zmieniasz. Teraz koniecznie musisz dodać ten skrypt, czyli musi on pojawić się w drzewie klas. Wybierasz z menu edytora klas polecenie Tools - Compile Chanded, jak na obrazku poniżej (albo klikasz w odpowiednią ikonkę na pasku menu):
Obrazek
Obrazek 3

4. Zaglądasz do drzewa klas i sprawdzasz, czy jest twój bystander. Eureka, jest! ;) Możesz go więc już dodać do swojej mapy. A następnie mapę przebudować i zapisać. To wszystko. Jeśli jednak chcesz sprawdzić jego default properties, bądź je zmienić, to wybierasz z prawoklika odpowiednią opcję. Ale pamiętaj! Zmiana default properties ludka postawionego na mapie zmieni tylko jego, sam skrypt pozostanie bez zmian. Aby zmodyfikować skrypt, czyli by każdy twój ludek miał takie właściwości, musisz wejść znowu do drzewa klas w przeglądarce klas i tam to zrobić:
Obrazek
Obrazek 4

5. Po ustaleniu lub sprawdzeniu właściwości bystandera znowu dajesz polecenie Tools - Compile Chanded, tak jak na obrazku nr 2. I to tyle, jeśli chodzi o szybkie dodawanie własnej klasy przechodnia do mapy. Jednorazowo, do jednej mapy. Oczywiście, możesz tak dodać każdą klasę, którą można postawić na mapie, czyli nie tylko bystandera.


2. Dodanie bystandera za pomocą dodatkowego narzędzia.
Są zewnętrzne narzędzia do tego, ale zupełnie wystarczy do tego zamieszczone razem z grą narzędzie UCC.exe Znajduje się w folderze System. Dzięki niemu utworzysz samodzielną paczkę *.U, którą będziesz mógł użyć zawsze i w każdej mapie. Z folderu ze swoim skryptem zrobisz swoją paczkę.
1. UCC jest jednak narzędziem uruchamianym z systemowego Wiersza poleceń i dostać się standardowo do tego narzędzia nie jest łatwo. Ale jest trik, który to bardzo upraszcza. Tworzysz plik *.BAT, który od razu naprowadzi Cię, gdzie trzeba. W Notatniku wpisujesz taką krótką treść:

Kod: Zaznacz cały

cmd
Pamiętaj o wciśnięciu [Entera] na końcu. Zapisujesz to pod swoją nazwą, koniecznie w folderze System Postala 2 lub AWP. Na przykład: Wiersz poleceń dla P2.bat (Gotowy plik jest także w ED pod nazwą Open Dos Window Here.bat). Możesz utworzyć skrót do pliku na pulpicie, dla wygody.

2. Koniec końców - dwuklikasz na niego, uruchamiając tym samym Wiersz poleceń i masz takie oto okno:
Obrazek
Obrazek 5
Oczywiście ścieżka tam będzie inna u ciebie, zależnie gdzie zainstalowana i z jaką wersją gry pracujesz.

3. Zanim zaczniesz coś tu robić, musisz zajrzeć do pliku Postal2.ini (do tego, w każdej wersji gry, bo UCC z takiego tylko korzysta) i tam w sekcji [Editor.EditorEngine] dodajesz taki wpis:

Kod: Zaznacz cały

EditPackages=MyBystnader
i zapisujesz plik Postal2.ini. Zamiast MyBystander dajesz, rzecz jasna, nazwę swojego moda, czyli nazwę folderu, w którym masz swoje skrypty. I tu uwaga, swoje skrypty nie dajemy bezpośrednio w folderze ...\Postal2STP\MyBystander ale w ...\Postal2STP\MyBystander\Classes.

4. Wracasz do okna Wiersza poleceń. Wpisujesz w nim komendę

Kod: Zaznacz cały

ucc make
UCC.exe zaczyna swoje robić. Sprawdza wszystkie pliki .U jakie ma Postal2.ini wyszczególnione w powyższej sekcji [Editor.EditorEngine]. Wszystkie standardowe są, więc nic z nimi nie robi. Na końcu zabiera się do twojego moda. Nie widzi go, więc ze skryptów w przykładowym folderze ...\Postal2STP\MyBystander\Classes zaczyna tworzyć paczkę MyBystander.u Tak:
Obrazek
Obrazek 6

5. Jeśli nie ma błędów w skryptach, robota skończona. Mod już jest! :)
Obrazek
Obrazek 7


-----------xxxxx-----------

Można też użyć zewnętrznego narzędzia UMake (opis), ale opieram się na dostępnych razem z grą programach, dlatego na razie pomijam zewnętrzne. Jeśli potrzeba rad dla UMake, załóż nowy temat o tym modzie, tam zajmiemy się jego pełną obsługą.
Ostatnio zmieniony 30 mar 2009, 01:13 przez Tiquill, łącznie zmieniany 1 raz.


Zawsze jest ryzyko, że wyczerpałeś już limit dobrych dni i czeka cię już tylko samo zło...
Obrazek
Awatar użytkownika
BloodyMan
Niedorobiony bandzior
Posty: 48
Rejestracja: 03 lis 2007, 21:00
Lokalizacja: Piotków Tryb.

30 mar 2009, 21:22

Witam! Otóż najwidoczniej to ostatni mój problem, ponieważ wszystko działa jak należy oprócz jednej rzeczy. Tekstury! Wszystko wpisałem w plikach moich nowych ludków, "ChameleonSkins="ChameleonSkins.moja_nie_działająca_tekstura", a te tekstury działają gdy je podmienie z teksturami gry. Cali są po prostu w bąblach z czego wnioskuje że gra ich nie wyczytuje. Co może być problemem. Jeśli znajdę (lub ktoś inny) odpowiedź, to wszystko już będzie gotowe na wydanie prawdopodobnie wersji finalej mojego modu pod nową nazwą NeoNaziWar. Niestety tego wielkiego modu który miał się znajdować pod tą samą nazwą nie będzie, ale dodam coś co zapewne wiele osób zadowoli.


Awatar użytkownika
Tiquill
V.I.P.
V.I.P.
Posty: 14479
Rejestracja: 25 sty 2007, 02:00
Lokalizacja: z naprzeciwka
Postawił piwo: 1 raz
Otrzymał  piwo: 1 raz
Kontakt:

31 mar 2009, 00:30

Zamiast:
ChameleonSkins(0)="ChameleonSkins.MojSkin"
ChamelHeadSkins(0)="ChamelHeadSkins.MojHeadSkin"

daj to:
Skins(0)=Texture'ChameleonSkins.MojSkin'
HeadSkin=Texture'ChamelHeadSkins.MojHeadSkin'

Zaś te ciągi

ChamelHeadSkins(0)="ChamelHeadSkins.MWA__001__AvgMale"
ChamelHeadSkins(1)="ChamelHeadSkins.MBA__013__AvgBrotha"
ChamelHeadSkins(2)="ChamelHeadSkins.MBA__014__AvgBrotha"
itd

usuń ze swego skryptu. Wypakowując skrypty PostEd skopiował do nich odwołania do domyślnych skór dla postaci. Możesz te wpisy śmiało usunąć, one i tak będą w grze, bo gra weźmie je z nadrzędnej klasy (z której zrobiłeś swoje klasy bystnaderów), w twoich klasach nie są już potrzebne, dublują się tylko.

A temat podpiąłem do poprzedniego, bo są ze sobą ściśle związane.
Ostatnio zmieniony 01 sty 1970, 01:00 przez Tiquill, łącznie zmieniany 1 raz.


Zawsze jest ryzyko, że wyczerpałeś już limit dobrych dni i czeka cię już tylko samo zło...
Obrazek
Awatar użytkownika
BloodyMan
Niedorobiony bandzior
Posty: 48
Rejestracja: 03 lis 2007, 21:00
Lokalizacja: Piotków Tryb.

31 mar 2009, 17:04

Dziękuje wam wszystkim! Szczególnie Tiquill'owi, któremu trułem tyłek na gg cały czas. Mod NeoNaziWar zostanie wydany prawdopodobnie jutro i także jutro opiszę wam jakie zadziwiające nowości w nim dodałem ;D.


Awatar użytkownika
Tiszer
Wytrenowany morderca
Wytrenowany morderca
Posty: 1144
Rejestracja: 30 lis 2008, 18:55

07 lis 2009, 20:48

przepraszam za archeologie ale muszę w tym temacie poruszyć mój problem jak to zły temat to mogę zrobić własny a wracając do tematu robiłem własny item dodający życie tak jak mad beer który przerabiałem i tu dam zdjęcie owych pliczków już przerobionych
Obrazek
i pojawia się taki błąd przy kompilowaniu ucc makem postąpiłem tak jak napisałeś o to dowód Obrazek
i w ucc make pokazuje mi się takie coś Obrazek
proszę o pomoc bo nie chcę żeby mi zamiast ikonki i dźwieku tego co chcę pokazywała mi się ikonka pączka (w display itema pączka podmieniłem static mesh na mój)


Awatar użytkownika
Lothar
Pierwsi PSI
Pierwsi PSI
Posty: 2570
Rejestracja: 30 kwie 2007, 15:10
Lokalizacja: Lublin

07 lis 2009, 21:46

Organami nie ręczę, ale klasa (a.k.a. pliki z kodem xD) powinny nazywać się tak samo, jak folder, w którym się znadują - w tym wypadku horror, a nie tymbark, czy co to tam jest (zakładam, że pozmieniałeś również w plikach nazwy klas na własne, coby nie było duplikatów) :-P

======EDIT======
Olej jednak powyższą radę :-P
Styknie pozmienianie nazw klas w pikach z CostamInv i CostamPickup na TymbarkInv i TymbarkPickup 8-)
Ostatnio zmieniony 07 lis 2009, 21:55 przez Lothar, łącznie zmieniany 2 razy.


Nobody Expects The Spanish Inquisition! :biskup:
Awatar użytkownika
Tiszer
Wytrenowany morderca
Wytrenowany morderca
Posty: 1144
Rejestracja: 30 lis 2008, 18:55

28 lis 2009, 21:37

z powodu bardzo długiego szperania przy tych skryptach udostępniam wadliwe skrypty i proszę o wskazanie błędów
Załączniki
horror.rar
(7.25 KiB) Pobrany 343 razy


Awatar użytkownika
Lothar
Pierwsi PSI
Pierwsi PSI
Posty: 2570
Rejestracja: 30 kwie 2007, 15:10
Lokalizacja: Lublin

29 lis 2009, 04:19

Jedyne co zmieniłem (poza rozmiarami literek, bo myślałem, że do nich też może się pluć), to wywalanie wszelkich odniesień do MyLevel, bo po prostu nie posiadam tego pliku :-P Bez tego kompiluje się bez problemu.
horror.rar
(za pomocą UCC w ApocalypseWeekend + AWP, żadnych innych modów) 8-)


Nobody Expects The Spanish Inquisition! :biskup:
Awatar użytkownika
Tiszer
Wytrenowany morderca
Wytrenowany morderca
Posty: 1144
Rejestracja: 30 lis 2008, 18:55

27 sty 2010, 15:25

a więc kiedy kompiluje umake wyskakuje taki błąd Compiling KatanaWeapon
General protection fault!

History: FScriptCompiler::CompileConst <- Const <- FScriptCompiler::CompileDeclaration <- FScriptCompiler::CompileStatement <- FScriptCompiler::CompileSecondPass <- (Function AW7Inventory.KatanaWeapon.GetHitLocation) <- FScriptCompiler::CompileSecondPass <- (Class AW7Inventory.KatanaWeapon) <- SecondPass <- TryCompile <- FScriptCompiler::CompileScript <- (Class AW7Inventory.KatanaWeapon, Pass 1, Line 335) <- CompileScripts <- CompileScripts <- CompileScripts <- CompileScripts <- CompileScripts <- CompileScripts <- CompileScripts <- CompileScripts <- DoScripts <- UEditorEngine::MakeScripts <- UMakeCommandlet::Main

Exiting due to error


Awatar użytkownika
Tiquill
V.I.P.
V.I.P.
Posty: 14479
Rejestracja: 25 sty 2007, 02:00
Lokalizacja: z naprzeciwka
Postawił piwo: 1 raz
Otrzymał  piwo: 1 raz
Kontakt:

28 lis 2010, 01:09

10 miesięcy minęło od posta wyżej, ale - mam to samo, właśnie teraz. I jak rada? Nie robić moda dla AWP, ale dla AW. Czyli w pliku Postal2.ini wyłączyć wszystkie paczki odnoszące się do AWP. UCC (czy też UMake) nie będzie widział plików APW i skompiluje naszą paczkę poprawnie. I zapewne będzie ona sobie dobrze radziła na AWP. Choć nie tak samo. A gdy ktoś zna rozwiązanie tego problemu - niech pisze, sam chętnie skorzystam.


Zawsze jest ryzyko, że wyczerpałeś już limit dobrych dni i czeka cię już tylko samo zło...
Obrazek
ODPOWIEDZ