Teraz jest 21 lis 2024, 22:27

Strefa czasowa: UTC + 2


Regulamin działu


Kliknij, aby przejrzeć regulamin



Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: 6 lut 2010, 00:26 
Offline

Dołączył(a): 28 lip 2009, 18:59
Posty: 4
archer napisał(a):
ObjectTemplate.setTorque w KatyushaRocket_Engine decyduje tylko o mocy silnika rakiety.
Na lecącą rakietę działa też grawitacja. Zmiana siły grawitacji działającej na pojazd jest niemożliwa, ale na szczęście rakieta jest bronią, więc możemy do
Objects/Vehicles/Land/KatyushaRocket/Weapons.con
zaraz po linijce
ObjectTemplate.ForceOnExplosion 15
dodać
ObjectTemplate.GravityModifier CRD_NONE/0/0/0
aby na rakietę nie działała grawitacja. Najpewniej to jest odpowiedzią na to pytanie.

Natomiast właściwość ObjectTemplate.velocity obiektu FireArms to prędkość z jaką pocisk jest wystrzeliwany z tejże broni

Co do poradnika: z tego co wiem to w naszym ojczystym języku nic takiego nie jest napisane. Do niedawna istniała "oficjalna" strona o modowaniu BF1942 na PlanetBattlefield, gdzie był spis wszystkich możliwych właściwości i wszystkich obiektów, większość z opisami, ale strona przestała istnieć. Zdążyłem jednak zrobić kopię zapasową zanim strona zniknęła i teraz działa na moim serwerze:
http://dzn.org.pl/mdt/index.shtm.html



Wielkie dzięki, tego potrzebowałem. Jak nie sprawi Ci to kłopotu, to potrzymaj to jeszcze troszke na serverze, przyjamniej do jutra, to ja sobie to przeanalizuję. Jeszcze raz ogromne dzięki oraz pozrdawiam.

_________________
"Amor Patriae Nostra Lex"


Góra
 Zobacz profil  
 
PostNapisane: 10 lut 2010, 03:48 
Offline
Avatar użytkownika

Dołączył(a): 28 kwi 2007, 12:57
Posty: 116
Lokalizacja: Wrocław
Mod: Desert Combat
MLRSRocket/Weapons
natrafiłem na linijkę:
Kod:
ObjectTemplate.hasCollisionEffect 1
oraz
ObjectTemplate.dieAfterColl 1

Wydaje mi się że pierwsza odpowiada za efekt w momencie zderzenia z innym obiektem a druga za jednorazowość pocisku. Jeśli tak jest to mam wobec tego pytanie: czy po zmianie tych wartości na "2" pocisk przeleci przez pierwszą przeszkodę i eksploduje na drugiej?
Było by wspaniale bo oznaczałoby to pociski przeciw-bunkrowe (przydałoby się w ten sposób zmodować pociski GBU (z F-117)) tylko czy nie przelatywały by przez góry?

_________________
*RwCB* Kamil PL


Góra
 Zobacz profil  
 
PostNapisane: 10 lut 2010, 10:35 
Offline
Avatar użytkownika

Dołączył(a): 4 lut 2009, 18:43
Posty: 162
Lokalizacja: Übertów
http://dznmods.tk/mdt/scripting/ObjectTemplate/Properties/HasCollisionEffect.shtm.html napisał(a):
ObjectTemplate.HasCollisionEffect boolean
Argument values:
argument 1: 0, 1; most commonly 1
Description: This property says that the effect set for an object/object collision should be used.


Pierwsza ustawia, czy po trafieniu w coś ma mieć efekt kolizji (np. bomba trafiająca w ziemię pokazuje ładną eksplozję.) Zauważ ze możliwe wartości to tylko 0 lub 1.

Cytuj:
ObjectTemplate.DieAfterColl boolean
Argument values:
argument 1: 0, 1; most commonly 1
Description: Destroy projectile after collision. This is set to 1 for most projectiles in their Weapons.con file. The exceptions are: expack, grenade, landmine, the Aichival-TProjectile, and the plane bombs.


Druga decyduje o tym czy pocisk ma zostać usunięty z pamięci zaraz po kolizji. Takie działanie jest pożądane w przypadku pocisków karabinu, czołgów, lecz np. granat może odbić się parę razy (od czegokolwiek) nim wybuchnie, dlatego ma ustawioną tą wartość na 0.
Niestety, bf1942 nie obsługuje pocisków które przebijają niektóre materiały ale zatrzymują się na drugich. W teorii możnaby to obejść poprzez zaawansowane użycie efektów (np. jak bomba trafia w mur, to nie ma żadnego efektu, poza tym że mur spawnuje drugą bombę zaraz po drugiej stronie.) ale nie testowałem tego jeszcze, więc może nie działać.

_________________
Obrazek
Przez te całe mody mam więcej godzin przegranych w BF1942 Debug niż w normalną wersję gry...


Ostatnio edytowano 15 sty 2012, 00:14 przez archer, łącznie edytowano 1 raz

Góra
 Zobacz profil  
 
PostNapisane: 10 lut 2010, 14:52 
Offline
Avatar użytkownika

Dołączył(a): 28 kwi 2007, 12:57
Posty: 116
Lokalizacja: Wrocław
A czy dałoby się przesunąć miejsce eksplozji w stosunku do miejsca uderzenia?

_________________
*RwCB* Kamil PL


Góra
 Zobacz profil  
 
PostNapisane: 10 lut 2010, 15:06 
Offline
Avatar użytkownika

Dołączył(a): 4 lut 2009, 18:43
Posty: 162
Lokalizacja: Übertów
Sam efekt eksplozji możesz spokojnie przenieść gdzie chcesz, ale jeśli bunkier jest obiektem statycznym i bomba trafi w zewnętrzną ścianę, żołnierze w środku nie doznają obrażeń. Tego zachowania nie da się zmienić, chyba że zrobisz bunkier jako PCO.
W ActionBF możesz rzucić na ziemię bombę atomową która rozwala wszystko w promieniu paru sektorów. Ale jak staniesz tuż obok tej bomby, tyle że za ścianą lub nawet za workami z piaskiem, nic Ci się nie stanie. Tego nie da się ominąć, chyba że zrezygnujesz w ogóle z obiektów statycznych i stworzysz cały krajobraz jako PCO.

_________________
Obrazek
Przez te całe mody mam więcej godzin przegranych w BF1942 Debug niż w normalną wersję gry...


Góra
 Zobacz profil  
 
PostNapisane: 10 lut 2010, 17:45 
Offline
Avatar użytkownika

Dołączył(a): 28 kwi 2007, 12:57
Posty: 116
Lokalizacja: Wrocław
archer napisał(a):
jak staniesz tuż obok tej bomby, tyle że za ścianą lub nawet za workami z piaskiem, nic Ci się nie stanie

Zgadza się. Dlatego chciałbym przesunąć nie tylko sam efekt wizualny ale miejsce, od którego rozchodzi się fala uderzeniowa i to w obie strony (do przodu i do tyłu (nie w jednym)).

1. Do tyłu - tzn żeby rakieta eksplodowała daną odległość przed uderzeniem w obiekt/ziemię a nie w punkcie zetknięcia się z nim. Chodzi mi o to czy da się manewrować tym punktem. Coś takiego jak w podstawce pociski przeciwlotnicze wybuchają w pobliżu celu (nie muszą trafić bezpośrednio w obiekt, żeby eksplodowały).

2. Do przodu - Gdy staniemy czołgiem (w DesertCombat np T72) przy ścianie hangaru i skierujemy tam lufę, będzie ona wystawać w środku. Gdy strzelimy pocisk będzie wewnątrz hangaru. Czy dałoby się takie coś zrobić z rakietą? Umieścić punkt z którego pochodzą obrażenia poza obiektem?


I jeszcze jedna sprawa przy okazji:
W pliku mapy Conquest/ObjectSpawnTemplates.con dodałem:
Kod:
ObjectTemplate.active mlrsrocket
ObjectTemplate.setTorque 100.0     // default 50
ObjectTemplate.velocity 250        // default 100
ObjectTemplate.radius 30            // default 25
ObjectTemplate.ForceOnExplosion 30  // default 25

Dwa ostatnie działają bez zarzutu, ale prędkości i kąta opadania rakiety nie udało się tym zmienić.
Jak w ten podany sposób zmienić te parametry?

_________________
*RwCB* Kamil PL


Góra
 Zobacz profil  
 
PostNapisane: 10 lut 2010, 19:26 
Offline
Avatar użytkownika

Dołączył(a): 4 lut 2009, 18:43
Posty: 162
Lokalizacja: Übertów
Skikov napisał(a):
chciałbym przesunąć nie tylko sam efekt wizualny ale miejsce, od którego rozchodzi się fala uderzeniowa i to w obie strony (do przodu i do tyłu (nie w jednym))

Może nie wyraziłem się dość jasno mówiąc że tego nie da się zrobić. Fala uderzeniowa rozchodzi się dokładnie od miejsca w które trafi pocisk i zawsze będzie "omijać" obiekty statyczne i żaden skrypt tego nie zmieni. To zachowanie jest określone w kodzie samej gry.
Proponowałem takie obejście: po trafieniu w miejsce, pocisk spawnuje pociski tego samego typu dookoła. Jednak robiłem właśnie próby i nic z tego nie wyszło.
Wygląda na to, że jedyne rozwiązanie to zrobić bunkier jako pojazd, ponieważ fala uderzeniowa nie omija pojazdów. Jeśli chcesz przykład jak to zrobić, podejrzyj sobie fabrykę w Battle of Britain.

Zapalnikiem zbliżeniowym w pociskach przeciwlotniczych steruje komenda ObjectTemplate.ExplodeNearEnemyDistance dla typu Projectile. Zwróć uwagę na nazwę - Pocisk będzie eksplodował tylko jeśli znajdzie się w pobliżu pojazdu i tylko jeśli w pojeździe ktoś będzie siedział (dlatego m.in. flaki nie wybuchają "chmurką" jak pociski przelatują blisko budynków, lub jak strzelasz w pusty samolot.

Przykład z T72 to też coś innego. Albo w skutek zaniedbania twórców, albo celowo, lufa T72 nie posiada kolizji! Broń w BF działa tak, że podczas pocisk spawnuje się zawsze w tym samym miejscu względem lufy (zazwyczaj trochę z przodu żeby np. czołg w ruchu nie trafił sam siebie). Kiedy czołg strzela przez ścianę bunkra, pocisk spawnuje się z przodu lufy. Ale zauważ że to nie pocisk przenika przez ścianę, tylko lufa czołgu - bo to ona nie ma kolizji. Więc w efekcie sam pocisk spawnuje się już wewnątrz bunkra, a nie na zewnątrz. To nie jest żadne przenoszenie punktu obrażeń, tylko zwykły błąd w siatce kolizji czołgu.

Pisząc kod w bf, trzeba wiedzieć, że każda komenda działa tylko dla niektórych typów. Na przykład ObjectTemplate.setInputToFire (która najczęściej określa który przycisk myszy aktywuje broń) została przewidziana dla typu FireArms, czyli dla broni. Gdybyś chciał użyć tej komendy w przypadku silnika (typ Engine), to - cokolwiek nie wpiszesz - nie zadziała, bo niby czym silnik ma strzelać? Tak samo nie zadziała dla typu Projectile (pocisk), bo pocisk nie strzela tylko jest wystrzeliwany.
Więc ten kod to typowy przypadek braku świadomości typów.
Zakładam, że mlrsrocket jest obiektem typu Projectile, czyli pociskiem
Dwie ostatnie linijki to poprawne polecenia dla typu Projectile, przedostatnia określa zasięg eksplozji, ostatnia siłę z jaką eksplozja rozrzuca wszystko dookoła.
Pierwsza linijka jest poprawną komendą, ale dla typu Engine (silnik) i określa - w dużym skrócie - moc silnika.
Druga linijka natomiast jest pleceniem dla typu FireArms (broń) i określa prędkość wylotową pocisku.
Żeby ten kod działał, musisz znaleźć nazwy silnika rakiety oraz broni która wystrzeliwuje tą rakietę (to nie to samo co nazwa pojazdu (PCO).)
Poprawny kod będzie miał podobną postać:
Kod:
ObjectTemplate.active mlrsrocket       
ObjectTemplate.radius 30           
ObjectTemplate.ForceOnExplosion 30 

ObjectTemplate.active SilnikRakietyMLRS
ObjectTemplate.setTorque 100.0   

ObjectTemplate.active BronStrzelajacaRakietamiMLRS
ObjectTemplate.velocity 250


Poza tym podsunę jeszcze komendę dla typu Projectile - ObjectTemplate.GravityModifier CRD_NONE/x/0/0
Za x podstaw dowolną liczbę, a BF będzie przez tą liczbę mnożył siłę grawitacji która działa na rakietę. To powinno pomóc w trajektorii. Korzystając z parametru CRD (poczytaj o nim tutaj) możesz losować ten parametr dla każdej nowo-wystrzelonej rakiety, co da trochę rozrzutu :)

_________________
Obrazek
Przez te całe mody mam więcej godzin przegranych w BF1942 Debug niż w normalną wersję gry...


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ]  Przejdź na stronę Poprzednia strona  1, 2

Strefa czasowa: UTC + 2


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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