Teraz jest 4 gru 2024, 21:11

Strefa czasowa: UTC + 2


Regulamin działu


Kliknij, aby przejrzeć regulamin



Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 20 paź 2013, 18:12 
Offline

Dołączył(a): 18 kwi 2009, 22:12
Posty: 12
Witam po długiej przerwie.
Ostatnio gram z kumplem na mapce taraba quarry na lanie i przez to, że nam się już trochę znudziła, postanowiłem że spróbuję ją zmodyfikować.
Ta mapa aż się prosi o jakieś śmigłowce, więc chciałem ich kilka dodać.
Jeśli chodzi o modyfikacje, to obejrzałem już trochę tutoriali odośnie modyfikacji w bf2editor, poczytałem trochę, również na tym forum i niestety nie znalazłem odpowiedzi na swoje pytanie.

Pytanie jest swoją drogą proste: czemu mi to do cholery nie działa? ;)

Idąc po kolei, oto co robię:
1) Kopiuję sobie cały folder X..\Battlefield 2\mods\bf2\Levels\Taraba_Quarry w bezpieczne miejsce pozostawiając oryginalny folder na miejscu.
2) Wchodzę w zawartość tego folderu i widzę tam folder "Info", pliki: server.zip, client.zip.
3) Zaznaczam server.zip oraz client.zip i następnie wybieram opcję "wypakuj tutaj".
4) Zaznaczam wszystko co znajduje się w głownym folderze taraba quarry, klikam prawym klawiszem, właściwości i odznaczam "tylko do odczytu" [+ podfoldery/pliki]. Przy okazji tworzę folder "Editor" obok pozostałych.
5) Odpalam program bf2editor i w select startup mod mam do wyboru bf2/xpack [nie wiem skąd to] oraz "Create new mod". Wybieram bf2 i u góry z lewej daję na: LevelEditor.

Na screenie niżej widać jakieś czerwone błędy i nie wiem czy już na tym etapie mam coś zwalone:
Obrazek

Następnie wybieram load i wybieram swoją mapę taraba quarry znajdującą się na liście. Kiedy mapa jest wczytana słychać dźwięk i mogę normalnie się rozglądać po mapie.
Z menu mod wybieram mod manager, przechodzę na zakładkę "editor content" i zaznaczam wszystko, po czym klikam apply/ok.

Przesuwam kamerę obok wyjściowej bazy UE, klikam prawym przyciskiem z menu wybieram "Create control point", wpisuję mu jakąś nazwę i pojawia się poprawnie nowa flaga. Domyślnie jest to flaga MEC, więc zmieniam w jej właściwościach team z 1 na 2, dzięki czemu flaga się aktualizuje na tą z UE.

Następnie klikam na "create object spawner" i z listy wybieram śmigłowiec. Poniżej to co mam do tej pory:
Obrazek

Następnie klikam save, zaznaczam wszystko na liście, potem save all.
Na samym końcu wybieram z menu mod - package mod i w okienku, które się pojawia jest zaznaczona opcja "Package this level: taraba_quarry". Klikam ok i pliki te są kompresowane z powrotem do client.zip i server.zip.

Dodatkowo cały folder "Editor", w którym teraz znajdują się pliki: GamePlayObjects.com, Roads.con, Splines.con oraz folder DetailMaps, kopiuję do server.zip.
W server.zip znajduję się plik Init.con, w którym to z kolei jest taka linijka: run Editor/GamePlayObjects.con host.

GamePlayObjects.con wygląda tak:

rem ********** Object Spawner **********
rem [ObjectSpawnerTemplate: dd_CH_US_AttakHeli]
ObjectTemplate.create ObjectSpawner dd_CH_US_AttakHeli
ObjectTemplate.activeSafe ObjectSpawner dd_CH_US_AttakHeli
ObjectTemplate.modifiedByUser "Peterka_P"
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.setObjectTemplate 1 AHE_Z10
ObjectTemplate.setObjectTemplate 2 AHE_AH1Z

if v_arg1 == host

rem [ObjectSpawner: dd_CH_US_AttakHeli]
Object.create dd_CH_US_AttakHeli
Object.absolutePosition 236.121/165.346/-278.140
Object.rotation 0.000/0.000/0.000
Object.setControlPointId 1
Object.layer 1

endIf

rem ********** Spawn Points **********
rem ********** Control Points **********
rem [ControlPointTemplate: dd]
ObjectTemplate.create ControlPoint dd
ObjectTemplate.activeSafe ControlPoint dd
ObjectTemplate.modifiedByUser "Peterka_P"
ObjectTemplate.setNetworkableInfo ControlPointInfo
ObjectTemplate.isNotSaveable 1
ObjectTemplate.hasMobilePhysics 0
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.physicsType Mesh
rem -------------------------------------
ObjectTemplate.addTemplate flagpole
rem -------------------------------------
ObjectTemplate.setControlPointName dd
ObjectTemplate.team 2
ObjectTemplate.controlPointId 1
ObjectTemplate.hoistMinMax 0.2/0.9

if v_arg1 == host

rem [ControlPoint: dd]
Object.create dd
Object.absolutePosition 247.770/165.768/-279.833
Object.layer 1

endIf

CombatAreaManager.use 0
CombatAreaManager.timeAllowedOutside 10.000000

Włączam grę, wybieram multiplayer, stwórz lokalny serwer, wybieram swoją mapę i nic nowego się nie pokazuje. Nie ma ani nowej flagi, ani śmigłowca.

Jest ktoś w stanie mi podpowiedzieć co robię źle?
Z góry dzięki za pomoc.


Góra
 Zobacz profil  
 
PostNapisane: 21 paź 2013, 10:52 
Offline

Dołączył(a): 25 kwi 2009, 20:30
Posty: 717
Lokalizacja: Rzeszów
Musisz dodać GamePlayObjects.con do właściwej wersji(16, 32 lub 64). Najlepiej dodaj po prostu to co stworzyłeś do którejś z tych wersji i powinno działać, ale powinieneś zmienić id flagi na nieużywane i dodać linijkę z layerem.
Według mnie najłatwiej jest poporstu podmienić pojazd na inny, po prostu zamieniasz
Kod:
ObjectTemplate.setObjectTemplate 1 AHE_Z10
ObjectTemplate.setObjectTemplate 2 AHE_AH1Z

Na nazwę wybranego pojazdu.
Errory na początku to norma, większość można zignorować.

_________________
Obrazek


Góra
 Zobacz profil  
 
PostNapisane: 21 paź 2013, 22:45 
Offline

Dołączył(a): 18 kwi 2009, 22:12
Posty: 12
O cholera działa, dziękuję bardzo. Wystarczyło GamePlayObjects wrzucić do wersji 16 i to wszystko - skopiowałem po prostu zawartość i wkleiłem na samą górę pliku.


Góra
 Zobacz profil  
 
PostNapisane: 23 paź 2013, 22:36 
Offline

Dołączył(a): 18 kwi 2009, 22:12
Posty: 12
Okazuje się, że teraz mam problem z połączeniem się z serwerem, na którym znajduje się zmodyfikowana mapa.
Po dołączeniu się do serwera otrzymałem błąd: "ta wersja serwera nie pozwala na modyfikacje, przywróc oryginalną wersję aby grać" [mniej więcej].

Wyczytałem na internecie, że należy stworzyć własny mod, dodać do niego mapę i dopiero zagrać.

W edytorze wybrałem więc create new mod, wpisałem nazwę "CustomMaps", następnie do utworzonego folderu "CustomMaps/Locations" wkleiłem cały folder taraba quarry.
Załadowałem następnie tą zmodyfikowaną mapę, dałem standardowo na save all i w mod/mod manager tym razem miałem dostępne dwie opcje: spakuj ten poziom i spakuj ten mod do dystrybucji.

Po zakończeniu procesu, dokleiłem powownie do server.zip/GameModes/gpm_coop/16/GamePlayObjects.con zawartość Editor/GamePlayObjects.con.
Cały folder przeniosłem do bf2/mods/ na drugi komputer.

Następnie utworzyłem sobie nowy skrót do gry, dopisując nowy parametr: +modPath mods/CustomMaps.
Na obu kompach mod startuje i widoczne są jedynie dwie mapy taraba quarry w trybie conquest [16/32] oraz moja edytowana mapka w trybie coop [16].

Na jednym komputerze [na tym, na którym zawsze stawiałem serwer] odpalam mapkę i na nim wszystko działa, natomiast po kliknięciu na dołącz do serwera na drugim komputerze dostaję błąd [gra wraca do puplitu z jakimiś informacjami].

Jeśli chodzi o zestawienie: mod, odpalenie, ustawienie serwera i klienta robię coś źle? Może dodatkowo trzeba coś zrobić po spakowaniu całości do moda?

W razie czego wkleję log z błędem.


Zawartość folderu bf2/mods/CustomMaps [archiwa są puste, podejrzane]
Obrazek

[EDIT]
Ok, chyba znalazłem odpowiedź na swoje pytanie.
Jeśli na mapce [na serwerze] ustawię więcej niż 39 botów, to gra się wykasztania. Przed chwilą ustawiłem na 35 botów i dwóch graczy i było ok.
Dodatkowo przed zagraniem usunąłem oryginalną mapkę taraba quarry, czyli folder mods/bf2/levels/tarabaQuarry przeniosłem na inną partycję i ją usunąłem -> gdzieś wyczytałem że trzeba usunąć lub zmienić nazwę modyfikowanej mapy.

Btw. w edytorze bf2 kiedy chcę zapisać mapkę pod inną nazwą, czyli otwieram ją w trybie 'terrain editor', klikam save as i podaję nową nazwę, to pod koniec procesu ciągle program zwraca błąd pamięci. System to win7 ultimate x64.
[/EDIT]


Góra
 Zobacz profil  
 
PostNapisane: 25 paź 2013, 09:53 
Offline

Dołączył(a): 25 kwi 2009, 20:30
Posty: 717
Lokalizacja: Rzeszów
Edytor BFa ma swoje problemy, w końcu z tego co pamiętam to jest beta :D.

Jeśli masz puste archiwa to nie ma prawa uruchomić ci się mapka, chyba że nie używasz w ogóle żadnych obiektów co jest raczej nie możliwe. Chyba że używasz archiwów z vanili. Sprawdź co jest w serverarchives.con i clientarchives.con. Jeśli są tam odnośniki do archiwa z folderu mods/bf2, to wczytuje ci tamte i te puste możesz właściwie wywalić, chyba że modyfikowałeś coś jeszcze oprócz map.

Co do zmiany nazwy map jest do tego specjalny program, ale jak go kiedyś szukałem to nie mogłem go znaleźć, więc po prostu zrobiłem replace in files w Notepad++. Problemem jest to, że oprócz plików tekstowych trzeba również zmienić jeden plik graficzny, w którym jest ten tekst. Jest to chyba jakiś .raw. Pootwieraj po kolei poszukaj starej nazwy mapy i zmień na nową.

Na pewno na obu kompach jest ta sama wersja mapy. Zrób może sumę kontrolną MD5 by się upewnić.

Z tego co wiem jest jakiś limit graczy na serwerze, który może być mniejszy kiedy na serwie mogą być boty. Pogrzeb dokładniej w ustawieniach serwera i ustaw ilość graczy na maks.

_________________
Obrazek


Góra
 Zobacz profil  
 
PostNapisane: 25 paź 2013, 19:59 
Offline

Dołączył(a): 18 kwi 2009, 22:12
Posty: 12
Wyczytałem, że da się stosunkowo łatwo zmienić nazwę mapy używając w jednym przypadku edytora hex, natomiast w kilku pozostałych plikach wystarczy użyć notatnika. W związku z tym, że tych plików jest dużo, to mi się nie chce i wolę jednak kasować oryginalną mapę.

Natknąłem się przy okazji na nowy problem:
Zrobiłem sobie nową flagę domyślnie przypisaną do arabów oraz respawn point znajdujący się obok.
Kawałek od flagi znajdują się samoloty i śmigłowce, bo flaga ta znajduje się na lotnisku.

Flagę opatrzyłem taką niebieską ramką [małą], aby boty starały się tą flagę zajmować itp.
Kiedy więc uruchomię mapę, wybiorę arabską drużynę i wybiorę ten punkt na mapie, to respawnuję się jednocześnie z kilkoma botami, które natychmiast giną.

Po odczekaniu paru chwil widać że boty się tam pojawiają ponownie i od razu giną.
U góry z lewej strony nie pojawia się przy tym żaden komunikat typu: ziomek X nie żyje.

Ktoś wie o co może chodzić?


[EDIT]

W bazie wsiadłem do czołgu i zabrałem ze sobą jakiegoś bota.
Mapka taraba quarry:
Obrazek
Gdzieś w sektorze G4 bot wysiadł z czołgu i umarł - albo się zabił, albo znalazł się w zakazanej strefie. Cała mapa jest jednak pokryta tzw. combat area, gdzie obrażenia to 0 i dozwolony czas to 500. Standardową strefę [znajduje się na samym dole pliku GamePlayObjects.con] zawsze kasuję.

[/EDIT]


Góra
 Zobacz profil  
 
PostNapisane: 25 paź 2013, 22:49 
Offline

Dołączył(a): 25 kwi 2009, 20:30
Posty: 717
Lokalizacja: Rzeszów
Zrobiłeś do tej mapy nawymesh? Bez tego boty nie dadzą rady i będą ginąć kiedy wyjdą poza obszar nawymesha z oryginału. Więc musisz albo zrobić nawymesh(jest to kwestia dość często kilkudziesięciu godzin generowania, jeśli wszystko zrobiłeś dorzbrze, bo to też wymaga trochę skilla do poprawnego zrobienia.

_________________
Obrazek


Góra
 Zobacz profil  
 
PostNapisane: 26 paź 2013, 15:51 
Offline

Dołączył(a): 18 kwi 2009, 22:12
Posty: 12
Ok, to się wyjaśniło o co chodzi.
Szkoda więc, że boty nie sugerują się po prostu combat area.
Dzięki za wyjaśnienie.


Góra
 Zobacz profil  
 
PostNapisane: 26 paź 2013, 18:51 
Offline

Dołączył(a): 25 kwi 2009, 20:30
Posty: 717
Lokalizacja: Rzeszów
I jeszcze taka jedna uwaga. Jeśli chcesz mieć bazę gdzie nie ma navyweshu i nie chcesz by ci się tam boty re-spiły i ginęły, to dodaj linię do spawnpointa ObjectTemplate.setOnlyForHuman 1

_________________
Obrazek


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 2


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 25 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Skocz do:  
Powered by phpBB® Forum Software © phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL