Forum Tawerny Four Ways

Mount&Blade - Modyfikacje => Modding => Wątek zaczęty przez: Mat Berserker w Grudnia 10, 2009, 09:19:36

Tytuł: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Mat Berserker w Grudnia 10, 2009, 09:19:36
Wlasnie wymyslilem prosty skrypt który moze dodac MB wiele glebi.  W bardzo prosty sposób mozna sprawic by bronie pojawialy sie dopiero po pewnym czasie. Rownie latwo mozna zmienic armie lordow oraz sceny(lecz trzeba je najpierw oczywiscie wykonac. W najblizszych dniach przygotuje jakies demko techniczne(oraz zródlo moda). Skrypt ten mozna wykozystac miedzy innymi w modach o 2WS (z czasem pojawiaja sie nowe rodzaje uzbrojenia oraz czesc jednostek zaczyna je uzywac) lub nawet potencjalnym megamodzie od wczesnego sredniowiecza do np. 2WS(no dobra rozmarzylem się)

PS. przepraszam za nieskladne pismo, literówki, czesciowy brak polifonów i bledy ortograficzne ale pisze z telefonu i niezbyt mam jak je teraz poprawic.
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Maly_007 w Grudnia 10, 2009, 09:25:39
Czyli z tego co zrozumiałem skrypt pozwala by w sklepach po pewnym czasie zmieniły się bronie na "nowsze", tak samo z armiami lordów? Przecież to właśnie pozwala zrobić moda właśnie od czasów średniowiecza do współczesnych... (ooj ile czasu zająłby taki projekt... eech, pomarzyć można)
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Mat Berserker w Grudnia 10, 2009, 09:33:15
Wlasnie to by robil, a samo robienie takiego moda nie zajelo by bardzo dlugo przyjmujac ze zdolalbym przekonac do wspólpracy twórcow  wiekszych modów o europie z róznych epok. Sadze ze po wypuszczeniu dobrego demka technicznego przekonanie ich nie bylo by takie trudne.
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Maly_007 w Grudnia 10, 2009, 09:37:49
Niby tak, ale nadal trzeba wziąć pod uwagę, że (spora?) część twórców modów nie będzie chciała współpracować. Do tego dochodzą różne mapy (czy skrypt pozwala też na dodawanie/usuwanie lokacji podczas gry?), indywidualne skrypty twórców itd. W każdym razie sporo czasu zajęłoby pogodzenie tego wszystkiego...

PS: O kurde... Jaką listę Credits'ów miałby ten mod... xD
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Daedalus w Grudnia 10, 2009, 12:25:47
Jak w ogóle ma działać ten skrypt? Pytam, bo z pojawianiem się broni w sklepach to przecież żaden problem, wystarczy ustawić im prawdopodobieństwo w zależności od obecnego dnia. Podmiana scen to też kwestia króciutkiego skryptu sprawdzającego ilość dni w grze (+ zrobienie scen). Zostaje podmiana ekwipunku jednostek, ale to też nie jest problem, gdy ma się funkcję "troop_remove_items" i "troop_add_items". :) Niby ekwipunek zwykłych jednostek się nie zapisuje w stanach gry, ale można zastosować prosty trick i włączać trigger podmieniający broń w ten sam sposób, jak to zrobił fisheye w swoich "konfigurowalnych jednostkach".
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Tobik-N w Grudnia 10, 2009, 16:29:19
Brawo!!
A o mapę nie ma się co martwić , można by zrobić mapę Europy .
Taki mod to by było coś!!
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Gedus w Grudnia 10, 2009, 17:34:45
Ale nie będziemy musieli czekać 1000 lat żeby postrzelać z karabinów maszynowych? Gadaj mat bo jestem ciekaw!
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Mat Berserker w Grudnia 10, 2009, 17:58:58
Oddziały zasilające armie lordów i rekrutowalne przez gracza ustawiane są na początku gry(tak samo jak wygląd scen itp). Nic nie stoi na przeszkodzie żeby codziennie/ co tydzień wywoływać tiggera sprawdzającego dzień i sprawiającego że jeżeli jest to dzień 150 przejść do kolejnej epoki. Wyświetlałby on tekst mówiący np o wynalezieniu broni palnej oraz zamieniał jednostki. oczywiście nie dochodziło by do tego od razu ale dopiero nowo rekrutowane jednostki byłyby jednostkami nowymi(z czasem można by było pomyśleć o skrypcie modernizacji wojska w miastach i wśród lordów którzy nie stracili oddziałów). Większy problem może być z przedmiotami ponieważ myślałem że skrypt odświeżający kupców jest bardziej otwarty ale przypuszczam że dało by się w niego wgryźć lub przepisać go od nowa. Przypuszczalnie użyje do tego jakiejś nowej stałej każdego itemu którą będę indeksował na początku gry.
PS. Zajmę się tym w sobotę bo za chwilkę rodzice wracają z wywiadówki i muszę przygotować się do obrony mojej małej twierdzy w Breslau ;)
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Kalpokor w Grudnia 10, 2009, 21:20:03
Trzymaj się! Posiłki z centrum już idą! Tak na poważnie to ja się nieznam, ale myślę, że napisać da się wszystko
(click to show/hide)
Z miłą chęcią zobaczyłbym coś takiego.
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Mat Berserker w Grudnia 10, 2009, 21:46:39
(click to show/hide)
Odezwał się ktoś kto z własnej nieprzymuszonej chęci uczy się chemi.... :D

Zastanawiam się czemu jeszcze nikt nie zrobił czegoś takiego. Wychodzi na to że wykonanie tego jest banalne (nie licząc paru trudności które pewno da się łatwo obejść). Chociaż z innej strony zawsze musi się znaleść ktoś kto pierwszy rzuci kamień.
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Daedalus w Grudnia 10, 2009, 22:34:30
Nikt nie napisał, bo chyba nikt takiego czegoś nie potrzebował. ;) Zresztą się nie dziwię, bo mało komu chciałoby się czekać w grze kilka czy kilkanaście lat, aż wymyślony zostanie dany typ broni. Przy modach osadzonych w okresie średniowiecza coś takiego nie miało w sumie zbyt wielkiego sensu. Jeśli chodzi o mody osadzone w bardziej współczesnych czasach, to już jakiś sens jest...

Cytuj
Większy problem może być z przedmiotami ponieważ myślałem że skrypt odświeżający kupców jest bardziej otwarty ale przypuszczam że dało by się w niego wgryźć lub przepisać go od nowa.

Eeee no, gościu, nie przesadzaj. Ten skrypt jest przecież banalny do obcykania. Wystarczy tam w sumie dodać parę linijek "set_item_probability_in_merchandise", które dla wynalazków ustawią prawdopodobieństwo na 0, jeśli jeszcze nie zaczęła się dana epoka, lub na jakąś rozsądną wartość, gdy daną rzecz wynaleziono. Dla przejrzystości można dodać nowy slot przedmiotom, w którym będzie zapisana (w godzinach) data minimalna dla pojawienia się przedmiotu (wystarczy ją określić tylko dla wynalazków, bo reszta i tak będzie miała 0).

Cytuj
Oddziały zasilające armie lordów i rekrutowalne przez gracza ustawiane są na początku gry(tak samo jak wygląd scen itp). Nic nie stoi na przeszkodzie żeby codziennie/ co tydzień wywoływać tiggera sprawdzającego dzień i sprawiającego że jeżeli jest to dzień 150 przejść do kolejnej epoki.

Nie, takie coś Ci nie wypali. A to z jednej przyczyny, o której mówiłem wcześniej - ekwipunek jednostek, które nie są herosami nie jest zapisywany w stanach gry. Dlatego po każdym załadowaniu zapisanej gry jednostki miałyby domyślny ekwipunek i musiałbyś czekać, aż trigger znowu się odpali, sprawdzi dzień i zmieni epokę oraz ekwipunek żołnierzy. Musisz więc dodać jeszcze jeden trigger, który będzie to sprawdzał.

Taki trigger musi być ustawiony, by odpalał się momentalnie po wczytaniu gry. Jest bardzo prosty sposób, by to zrobić. Wystarczy dodać jednostkę, która posłuży nam do sprawdzenia, czy zmiany zostały wprowadzone, czy też dopiero co załadowaliśmy grę z zapisanego stanu. Jednostka koniecznie musi być zwykła (nie heros!). Do ekwipunku wrzucasz jej jakiś określony przedmiot (np. narzędzia) i ustawiasz simple_trigger mniej więcej w ten sposób:

Cytuj
   (0,
      [
         (map_free),
         (troop_get_inventory_slot, ":item", "trp_jednostka_do_sprawdzenia", 10),
         (eq,":item","itm_tools"),
         (call_script, "script_ktory_zmienia_epoke_i_podmienia_ uzbrojenie_jednostek"),
         (troop_clear_inventory, "trp_jednostka_do_sprawdzenia"),#czyscisz ekwipunek, by trigger sie nie odpalal az do ponownego zaladowania save'a
      ]
   ),
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Mat Berserker w Grudnia 11, 2009, 15:27:40
Dedal możesz wyjść z tego tematu, ja tu się próbuje polansować ;P
Teraz ja w ramach zemsty pocytuje Ciebie.
Nikt nie napisał, bo chyba nikt takiego czegoś nie potrzebował. ;) Zresztą się nie dziwię, bo mało komu chciałoby się czekać w grze kilka czy kilkanaście lat, aż wymyślony zostanie dany typ broni.
Wiesz nie zawsze trzeba trzymać się określonej w native skali czasu, zresztą mało kiedy w przeciągu pół roku wszystkie królestwa są pokonywane przez jedno. Podobnie można zagmatwać zmiany epok. Chociaż przyznam się że myślałem głównie o 2 WŚ.

Cytuj
Eeee no, gościu, nie przesadzaj. Ten skrypt jest przecież banalny do obcykania. Wystarczy tam w sumie dodać parę linijek "set_item_probability_in_merchandise", które dla wynalazków ustawią prawdopodobieństwo na 0, jeśli jeszcze nie zaczęła się dana epoka, lub na jakąś rozsądną wartość, gdy daną rzecz wynaleziono.
Przyznam się zbytnio się w to nie zagłębiałem ale przeczuwałem że da się to zrobić bardzo łatwo. Z innej strony ciężko jest robić cokolwiek wiedząc że za chwilę rodzice wrócą z wywiadówki.

Cytuj
Nie, takie coś Ci nie wypali. A to z jednej przyczyny, o której mówiłem wcześniej - ekwipunek jednostek, które nie są herosami nie jest zapisywany w stanach gry. Dlatego po każdym załadowaniu zapisanej gry jednostki miałyby domyślny ekwipunek i musiałbyś czekać, aż trigger znowu się odpali, sprawdzi dzień i zmieni epokę oraz ekwipunek żołnierzy. Musisz więc dodać jeszcze jeden trigger, który będzie to sprawdzał.

Taki trigger musi być ustawiony, by odpalał się momentalnie po wczytaniu gry. Jest bardzo prosty sposób, by to zrobić. Wystarczy dodać jednostkę, która posłuży nam do sprawdzenia, czy zmiany zostały wprowadzone, czy też dopiero co załadowaliśmy grę z zapisanego stanu. Jednostka koniecznie musi być zwykła (nie heros!). Do ekwipunku wrzucasz jej jakiś określony przedmiot (np. narzędzia) i ustawiasz simple_trigger mniej więcej w ten sposób:
Ale mi nie chodziło o zmianę ekwipunku jednostek tylko o zmianę tych slotów.
      (faction_set_slot, "fac_culture_1",  slot_faction_tier_1_troop, "trp_wehrmacht_recruit"),

          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_a, "pt_kingdom_1_reinforcements_a"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_b, "pt_kingdom_1_reinforcements_b"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_c, "pt_kingdom_1_reinforcements_c"),
i tak dalej. Ale muszę przyznać że fajny patent z tą jednostką sprawdzającą, mam dziwne wrażenie że może mi się do czegoś przydać.
Tytuł: Odp: Prosty ale rewolucyjny(?) skrypt
Wiadomość wysłana przez: Daedalus w Grudnia 11, 2009, 15:45:54
Cytuj
Ale mi nie chodziło o zmianę ekwipunku jednostek tylko o zmianę tych slotów.

To się wiąże znowu z dodatkowymi jednostkami i nowymi drzewkami... Moim zdaniem podmiana ekwipunku daje znacznie więcej możliwości oraz uczyni grę ciekawszą.

Ok, już spadam a Ty się lansuj... ;P