Dezaktywowanie skryptu [Hard Coding]

Uczymy się edytowania P2 i rozwiązujemy nasze problemy. Nowi adepci mile widziani!

Moderatorzy: Moderatorzy, Admini

Awatar użytkownika
seebeek17
Modder
Modder
Posty: 8399
Rejestracja: 10 cze 2013, 13:25
Lokalizacja: Z Zewnątrz
Kontakt:

09 lip 2014, 19:47

yoyo. cześć.
kolejny problemik. ._.

Jest możliwość, by "zdezaktywować" jakiś skrypt?
Jak tak to jak to zrobić?

Mam np. coś takiego:

Kod: Zaznacz cały

// oryginalny MachineGun z P2

class MachineGunWeapon extends P2Weapon;

// caly kod broni
i teraz chcę, by zamiast tego MachineGunWeapon z paczki Inventory, wczytywało mój skrypt MachineGunWeapon z mojej paczki MyMachineGun. Tylko ten jeden skrypt, reszta np. Attachment czy MuzzleFlash było bez zmian.
Jak takie cuś zrobić?
Dodam, że nie można modyfikować oryginalnej paczki.
Chodzi o to, by to wszystko znalazło się w jednej nowej, mojej paczce .u .


I jeszcze jedna sprawa.
Gdy zrobię swoją paczkę i dam np. w skrypcie to:

Kod: Zaznacz cały

class MachineGunWeapon extends P2Weapon;

defaultproperties
{
     AttachmentClass=Class'MyAttach.MachinegunAttachment'
}
to jak uznać "wyższość" mojego skryptu MachineGunWeapon.uc nad tym oryginalnym, i żeby MachineGunWeapon używał AttachmentClass z mojej paczki?

oo, i jeszcze jedno przy okazji :p , co zrobić, by moja paczka .u była automatycznie ładowana, jak np. Inventory.u itp.?


Awatar użytkownika
Rycho3D
Modder
Modder
Posty: 11978
Rejestracja: 24 kwie 2011, 15:47
Lokalizacja: SinCity
Postawił piwo: 8 razy
Otrzymał  piwo: 1 raz
Kontakt:

10 lip 2014, 06:22

seebeek17 pisze:oo, i jeszcze jedno przy okazji :p , co zrobić, by moja paczka .u była automatycznie ładowana, jak np. Inventory.u itp.?
Dopisz paczkę w pliku INI


8=======D
Awatar użytkownika
seebeek17
Modder
Modder
Posty: 8399
Rejestracja: 10 cze 2013, 13:25
Lokalizacja: Z Zewnątrz
Kontakt:

10 lip 2014, 18:00

Rycho3D pisze:Dopisz paczkę w pliku INI
Dobra, spróbujmy.. ;d

A czym się różni User.ini od Postal2.ini?


Wie ktoś coś na pozostałe pytania?


Awatar użytkownika
Rycho3D
Modder
Modder
Posty: 11978
Rejestracja: 24 kwie 2011, 15:47
Lokalizacja: SinCity
Postawił piwo: 8 razy
Otrzymał  piwo: 1 raz
Kontakt:

10 lip 2014, 19:28

seebeek17 pisze:A czym się różni User.ini od Postal2.ini?
Jak usuniesz Postal2.ini to na podstawie user.ini utworzy się nowy nowy plik.
Poza tym w user ini masz "default proporties" kontrolsy itp.
seebeek17 pisze:Wie ktoś coś na pozostałe pytania?
Musisz pisać jaśniej, co masz na myśli.


8=======D
Awatar użytkownika
seebeek17
Modder
Modder
Posty: 8399
Rejestracja: 10 cze 2013, 13:25
Lokalizacja: Z Zewnątrz
Kontakt:

11 lip 2014, 00:42

aha. :ok:
Rycho3D pisze:Musisz pisać jaśniej, co masz na myśli.
No właśnie nie wiedziałem jak by to wytłumaczyć.. ;d

Spróbujmy jeszcze raz... :zdziw:

Załóżmy, że chcę pozmieniać parametry w MachineGunWeapon.
Normalnie, to trzeba by było rozpakować paczkę Inventory.u, zmienić co się chce, i spakować z powrotem.
A ja np. nie chcę niczego w rdzeniu gry zmieniać, tylko chcę zmienić parametry MachineGunWeapon za pomocą innego skryptu, by nie ruszać paczki Inventory.
Teraz jak, i czy w ogóle się da takie coś zrobić, że piszę nowy skrypt (np. do nowego moda) i karzę
grze używać skryptu MachineGunWeapon z mojej paczki a nie tego z Inventory.
Cały kod MachineGunWeapon był by taki sam, poza kilkoma parametrami w defaultproperties.

Da radę takie coś?


Awatar użytkownika
Zaver
Wytrenowany morderca
Wytrenowany morderca
Posty: 1743
Rejestracja: 14 lip 2012, 23:09

11 lip 2014, 01:44

seebeek17 pisze:Załóżmy, że chcę pozmieniać parametry w MachineGunWeapon.
Normalnie, to trzeba by było rozpakować paczkę Inventory.u, zmienić co się chce, i spakować z powrotem.
A ja np. nie chcę niczego w rdzeniu gry zmieniać, tylko chcę zmienić parametry MachineGunWeapon za pomocą innego skryptu, by nie ruszać paczki Inventory.
Teraz jak, i czy w ogóle się da takie coś zrobić, że piszę nowy skrypt (np. do nowego moda) i karzę grze używać skryptu MachineGunWeapon z mojej paczki a nie tego z Inventory.
Cały kod MachineGunWeapon był by taki sam, poza kilkoma parametrami w defaultproperties.

Da radę takie coś?
da radę, trzeba napisać skrypt z innymi parametrami podchodzący pod machinegunweapon :ok:


Awatar użytkownika
Rycho3D
Modder
Modder
Posty: 11978
Rejestracja: 24 kwie 2011, 15:47
Lokalizacja: SinCity
Postawił piwo: 8 razy
Otrzymał  piwo: 1 raz
Kontakt:

11 lip 2014, 06:10

Inaczej mówiąc, podklasę ze zmienionymi defaultproperties. :)


8=======D
Awatar użytkownika
seebeek17
Modder
Modder
Posty: 8399
Rejestracja: 10 cze 2013, 13:25
Lokalizacja: Z Zewnątrz
Kontakt:

11 lip 2014, 17:14

Czyli np.:

Kod: Zaznacz cały

class MachineGunWeapon extends P2Weapon;
//
defaultproperties
{
// inne parametry...
AttachmentClass= // moja klasa attachment
}
czy bardziej takie coś:

Kod: Zaznacz cały

class MyMachineGunWeapon extends MachineGunWeapon;
//
defaultproperties
{
// inne parametry...
AttachmentClass= // moja klasa attachment
}
?


Awatar użytkownika
Zaver
Wytrenowany morderca
Wytrenowany morderca
Posty: 1743
Rejestracja: 14 lip 2012, 23:09

11 lip 2014, 17:47

Kod: Zaznacz cały

class MyMachineGunWeapon extends MachineGunWeapon;
//
defaultproperties
{
// inne parametry...
AttachmentClass= // moja klasa attachment
}
takie bardziej coś


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:

12 lip 2014, 14:32

Rycho3D pisze:Jak usuniesz Postal2.ini to na podstawie user.ini utworzy się nowy nowy plik.
Nie. Nowy Postal2.ini tworzy się z Default.ini a nowy User.ini tworzy się z DefUser.ini Oba ini (Postal2.ini i User.ini) to zupełnie co innego i na pewno jeden drugiego nie zastąpi.
seebeek17 pisze:Załóżmy, że chcę pozmieniać parametry w MachineGunWeapon.
Normalnie, to trzeba by było rozpakować paczkę Inventory.u, zmienić co się chce, i spakować z powrotem.
A ja np. nie chcę niczego w rdzeniu gry zmieniać, tylko chcę zmienić parametry MachineGunWeapon za pomocą innego skryptu, by nie ruszać paczki Inventory.
Nie wystarczy samą klasę *Weapon zmienić. Musisz też dodać swoją klasę *Pickup w której wpiszesz w defprop jakiej klasy Weapon ona dotyczy. Czyli MyWeapon musi mieć określone MyPickup a MyPickup określone MyWeapon. Zresztą, robiąc to sam przekonasz się, że to nie koniec. ;) No i oczywiście, podklasa modyfikowanej to najlepsza opcja dla tego typu zabiegów.
seebeek17 pisze:Teraz jak, i czy w ogóle się da takie coś zrobić, że piszę nowy skrypt (np. do nowego moda) i karzę
grze używać skryptu MachineGunWeapon z mojej paczki a nie tego z Inventory.
Musisz zaaplikować grze replacer, który każdy standardowy *Weapon w ręku gracza zamieni na twoją przeróbkę i każdy standardowy *Pickup leżący na mapie zmieni na twój. To minimum. Jeśli chcesz więcej, to podobny zabieg dla *Weapon wymuszający dla każdego pawna, który go ma oraz każdego *Pickup, który dopiero się pojawi na mapie (spawnowany lub wyrzucony). AWPMod używa SMBatchReplaceMutator, replacera by Steven, nie taka łatwa sprawa.

Jest prostszy sposób. Tworzysz własny mutator w którym dodasz graczowi swoją broń od startu gry. Jednak aby on ruszył, trzeba edytować pliki gry, chyba że po odpaleniu mapy on się z tej mapy zainicjuje. Coś takiego:

Kod: Zaznacz cały

function ModifyPlayer(Pawn Other)
{
	if (P2Pawn(Other) != None && PlayerController(Other.Controller) != None)
	{
		P2Pawn(Other).CreateInventoryByClass(class'MyPack.MyWeapon');

		//	log(self$" FUNCTION: ModifyPlayer");
	}
}
Ale to tylko doda graczowi. Usuwanie starych i podmiana na twoje na mapie i pawnom - nie jest to łatwe.


Zawsze jest ryzyko, że wyczerpałeś już limit dobrych dni i czeka cię już tylko samo zło...
Obrazek
Awatar użytkownika
seebeek17
Modder
Modder
Posty: 8399
Rejestracja: 10 cze 2013, 13:25
Lokalizacja: Z Zewnątrz
Kontakt:

12 lip 2014, 16:09

No właśnie chodzi mi o to, że chcę tylko "podmienić w locie" skrypt MachineGunWeapon na tą moją wersję skryptu z mojej paczki.
Nie chcę tworzyć nowej broni, robiąc własne podklasy wszystkiego od MachineGun'a typu własny pickup, własny *weapon itp.
Chcę by ta oryginalna broń MachineGun używała mojego skryptu, nie chcę niczego robić nowego ani nic podmieniać.
...ale jak by tak chwilę pomyśleć.... to i tak by było trzeba robić nowe wszystko, i chyba nie da się tego zrobić tak jak myślę, że się da... >.<

Dobra, zamiast pitolenia się ze zmuszeniem gry do używania moich skryptów do oryginalnych broni, łatwiej by było już zrobić całkiem nowe bronie na ich podstawie. xd ;/

Czyli temat można już chyba zamknąć.


Awatar użytkownika
Rycho3D
Modder
Modder
Posty: 11978
Rejestracja: 24 kwie 2011, 15:47
Lokalizacja: SinCity
Postawił piwo: 8 razy
Otrzymał  piwo: 1 raz
Kontakt:

12 lip 2014, 17:10

Tiquill pisze:Rycho3D napisał/a:
Jak usuniesz Postal2.ini to na podstawie user.ini utworzy się nowy nowy plik.
Nie. Nowy Postal2.ini tworzy się z Default.ini a nowy User.ini tworzy się z DefUser.ini Oba ini (Postal2.ini i User.ini) to zupełnie co innego i na pewno jeden drugiego nie zastąpi.
Masz rację, Pomyliłem się :P


8=======D
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:

13 lip 2014, 17:02

seebeek17 pisze:Dobra, zamiast pitolenia się ze zmuszeniem gry do używania moich skryptów do oryginalnych broni, łatwiej by było już zrobić całkiem nowe bronie na ich podstawie. xd ;/
Na pewno lepiej, kompromis między chcę-i-mogę a czy-warto-się-męczyć. ;)


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