Ruszyła konwersja forum! Przez ten czas wyłączyliśmy możliwość pisania nowych postów, ale po zalogowaniu się można pisać na chacie. Poniżej znajdują się też linki do naszej grupy Steam i facebooka, gdzie również będą ogłoszenia. Modernizacja forum powinna zakończyć się najpóźniej do wtorku.

Najnowsze newsy z naszej strony:


    Polub nasz profil na facebooku! oraz dołącz do naszej Grupy STEAM

    Autor Wątek: Jak mogę dodać nowy budynek w wiosce, zamku czy mieście?  (Przeczytany 3308 razy)

    Opis tematu:

    0 użytkowników i 1 Gość przegląda ten wątek.

    Offline Dravic

    • Użytkownik
    • Wiadomości: 674
    • Piwa: -1
    Jak mogę dodać nowy budynek w wiosce, zamku czy mieście?
    « dnia: Października 29, 2010, 16:53:32 »
    Witam, naszła mnie dzisiaj chęć na proste modyfikowanie gry. Moje pytanie brzmi:

    Jak wykonać nowy budynek do wybudowania w wiosce.

    Chciałbym pododawać budynki, które działałyby jak:
    - młyn, ale nazywałyby się np. "Kanały irygacyjne", "Kuźnia", "Pchli targ", "Stajnie", "Browar"
    - szkoła, ale nazywałyby się np. "Brukowane drogi", "Burdel", "Szpital", "Tawerna (nie musi dać się jej odwiedzać, to chyba za trudne)" (tutaj, jeśli tak się da, zmieniłbym wartości, które dają budynki z 1pkt relacji, na 1/4, jeśli tak się da. jeśli nie, trudno - 4-5 pktów relacji miesięcznie :P)
    - Strażnica, ale nazywałyby się np. "Palisada", "Drewniana brama" (tutaj , musiałbym pozmieniać wszystkie wartości tych budynków na mniejsze, np. z 50% na 25%, albo nawet 20% - inaczej dałoby się przedłużyć czas plądrowania wioski o 150%, co jest przesadą)

    Proszę o pomoc!

    PS Całość bardzo chciałbym wprowadzić do już gotowego moda Diplomacy (takie osobiste usprawnienie)...
    « Ostatnia zmiana: Października 29, 2010, 21:49:30 wysłana przez Dravic »
    -i oczywiście saga Sienkiewicza- Wiedźmin

    Offline Leinnan

    • Użytkownik
    • Wiadomości: 1537
    • Piwa: 61
    • Płeć: Mężczyzna
    • Szczęść Boże, służby i loże
    • Steam ID: Mój status Steam
    Odp: Jak mogę dodać nowy budynek w wiosce, zamku czy mieście?
    « Odpowiedź #1 dnia: Listopada 01, 2010, 09:50:42 »
    Spróbuję ci pomóc:
    1. Otwieramy module_constans i wyszukujemy
    Cytuj
    slot_center_has_manor            = 130 #village
    2. Pod "slot_center_has_prisoner_tower" piszemy np. slot_center_has_pchli_targ
    3.Otwieramy module_game_menus i wyszukujemy
    Cytuj
          ("center_build_watch_tower",[(eq, reg6, 0),
                                       (party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
                                       (party_slot_eq, "$g_encountered_party", slot_center_has_watch_tower, 0),
                                      ],
           "Build a watch tower.",[(assign, "$g_improvement_type", slot_center_has_watch_tower),
                                   (jump_to_menu, "mnu_center_improve"),]),

    4. Kopiujesz to i wklejasz pod
    Cytuj
           "Build a prisoner tower.",[(assign, "$g_improvement_type", slot_center_has_prisoner_tower),
                                      (jump_to_menu, "mnu_center_improve"),]),
    i edytujesz zaznaczone elementy menu. Watch_tower to wiesz dlaczego, spt_village określala gdzie można to wybudować.

    5. W module_scripts wyszukajemy, kopiujemy, wklejamy pod tym i edytujemy zaznaczone elementy(cyfra to koszt wybudowania)
    Cytuj
         (else_try),
           (eq, ":improvement_no", slot_center_has_prisoner_tower),
           (str_store_string, s0, "@Prison Tower"),
           (str_store_string, s1, "@A prison tower reduces the chance of captives held here running away successfully."),
           (assign, reg0, 7000),
    .

    6. Tylko nie wiem gdzie dodawać efekty budowania takie jak np. +2 do relacji z miastem,wioską co miesiąc.

    Jak są jakieś błędy to pisać
    Mit der Dummheit kämpfen die Götter selbst vergebens
    steam | slavic castles |  last.fm | moddb.com | Stary, najlepszy lider Sclavinii

    Offline Dravic

    • Użytkownik
    • Wiadomości: 674
    • Piwa: -1
    Odp: Jak mogę dodać nowy budynek w wiosce, zamku czy mieście?
    « Odpowiedź #2 dnia: Listopada 01, 2010, 10:23:42 »
    Dzięki za dobre chęci, tylko że ja już do tego sam doszedłem już wczoraj :)

    Ale w ramach wzajemnej pomocy, jeśli ty też chciałbyś to zrobić, ja doszedłem do tego, jak zrobić konkretny efekt (w tym wypadku taki sam, jak w szkole, ale nasz budynek nazwiemy ambitnie: bordello)

    Po pierwsze: w module_constans.py pod innymi budynkami (co już zauważyłeś) dodajemy wpis:

    Cytuj
    slot_center_has_bordello         = 801 #village
    - gdzie liczba musi być duża, byśmy mogli łatwo sobie wyszukac później wpis w razie chęci usunięcia budynku.

    Po drugie: w module_game_menus.py musimy dodać wpis, dzięki któremu budynek będzie się dało wybudować (tutaj zauważ, że skopiowałem dokładnie blok szkoły, a jedynie pozmieniałem wszystkie "school" (tutaj w sumie 4) na "bordello"

    Cytuj
         ("center_build_bordello",[(eq, reg6, 0),
                                  (party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
                                  (party_slot_eq, "$g_encountered_party", slot_center_has_bordello, 0),
                                      ],
           "Build a bordello.",[(assign, "$g_improvement_type", slot_center_has_bordello),
                              (jump_to_menu, "mnu_center_improve"),]),

    Po trzecie: w module_scripts.py musimy dodać opis, jaki będzie się wyświetlał przy kliknięciu w menu usprawnien (nawiasem ^^ mówiąc trochę podrasowałem te opisy, bo są nudne) - czyli kopiujemy szkołę, zmieniamy "school" na bordello i ewentualnie zmieniamy opis budynku

    Cytuj
    (else_try),
           (eq, ":improvement_no", slot_center_has_bordello),
           (str_store_string, s0, "@Bordello"),
           (str_store_string, s1, "@A bordello increases the loyality of the villagers to you by +1 every 4 weeks, because every man need a while of relax, and you gave them the best girls."),
           (assign, reg0, 9000),

    Teraz uważaj: tego nie wiedziałeś. W module_simple_triggers.py znajdź pod hasłem "school" lub "has_school" blok zaczynający się na "try_for_range". Widzisz to działanie nad blokiem, 30 x 24? Ono oblicza, co ile dni dostajesz z calego triggersa +1 relacji, gdzie 30 to liczba dni a 24 to liczba godzin (w tym wypadku doba).
    A więc nie kopiujesz liczby, nie zaznaczasz też pierwszego "[", zaczynasz od nawiasu przed try_for range, o tak:
    Cytuj
    (try_for_range, ":cur_village", villages_begin, villages_end),
          (party_slot_eq, ":cur_village", slot_town_lord, "trp_player"),
          (party_slot_eq, ":cur_village", slot_center_has_school, 1),
          (party_get_slot, ":cur_relation", ":cur_village", slot_center_player_relation),
          (val_add, ":cur_relation", 1),
          (val_min, ":cur_relation", 100),
          (party_set_slot, ":cur_village", slot_center_player_relation, ":cur_relation"),
        (try_end),
    Kończąc na skopiowaniu przecinka po "try_end".

    Co wazne: Wklej to centralnie po try_end, ale przed ]),
    i zmień "slot_center_has_school, 1"  na  "slot_center_has_bordello, 1".

    Własnie dodałeś budynek: bordello, w pełni działający, jesli nie zrobiłeś żadnego błędu. Doszedłem do tego wpisując w wyszukiwarce w notepadzie++ "school" --> szukaj we wszystkich otwartych plikach :)

    « Ostatnia zmiana: Listopada 01, 2010, 10:29:10 wysłana przez Dravic »
    -i oczywiście saga Sienkiewicza- Wiedźmin

    Offline akosmo

    • Użytkownik
    • Wiadomości: 321
    • Piwa: 27
    • Płeć: Mężczyzna
    • Na PW to tylko z ptasim mleczkiem! (czekoladowym)
    Odp: Jak mogę dodać nowy budynek w wiosce, zamku czy mieście?
    « Odpowiedź #3 dnia: Maja 24, 2011, 00:57:32 »
    trzeba jeszcze w module_constants zmienić  improvements np:
    jak ostatni budynek jest
    slot_center_has_burdello = 136 to w village_improvements_end = wpisać 136
    Dla wiosek:

    przykład:
    slot_center_has_messenger_post = 134
    slot_center_has_prisoner_tower = 135
    slot_center_has_burdello = 136 (nowy budynek, wpis - 136)

    village_improvements_begin = slot_center_has_manor (od którego budynku mają zacząć się ulepszenia)
    village_improvements_end = 136 (było 135)

    Dzięki temu po wybudowaniu ulepszenia burdello w wsi, będzie pisać w ulepszeniach że jest już wybudowane.

    Dla miast i zamków jest podobnie, tylko trzeba zmienić wartość 135 w walled_center_improvements_end.
    Ja taką metodą dodałem kilka ulepszeń jak zakon templariuszy, klasztor, akademia wojskowa, dom medyka, teatr i kilka innych i po ich wybudowaniu, są dostępne w wiadomościach ulepszeń.