Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Pokaż wątki - Czudak

Strony: [1]
1

GIERA: Gothic II Noc Kruka/Złota Edycja (z CD/DVD czy Steama/GOGa; jeśli w wersji 2.6/2.7)
BIEŻĄCA WERSJA MODA: v2.6.8.1

AUTOR YAUPa: Czudak



Cytuj
UWAGA!!! Spolszczenia dla wersji 2.6 na razie nie ma!!!

W skrócie: KNP/YAUP to jest jeden z tych "staroszkolnych" projektów-dodatków do Nocy Kruka, który początkowo był poprawką tylko dla błędów (jak te "pacze" skryptowe od Fizzbana, czy Lorda Sargona), ale w pewnym momencie wyrósł poza ramy tego założenia. Sama poprawka była od startu skierowana na międzynarodowy "rynek" społeczności Gothica, żeby trafić do jak największej liczby fanów gry, więc wyszła po angielsku, i jest ogólnie znana pod nazwą YAUP (od Yet Another Unofficial Patch).

W szczegółach: KNP powstał w celu eliminacji wielu, mniejszych lub większych, błędów, którymi Noc Kruka jest przesiąknięta w finałowej wersji wypuszczonej przez PB. W obecnej wersji modyfikacja eliminuje ponad 300+ błędów czysto technicznych (jak zła składnia w skryptach, dzięki której można było wpływać na smoki za pomocą "Strachu", czy sprzedawać podwójnie tę samą liczbę mieczy u Harada), wałków kombinatorskich (związanych zwłaszcza z przekazywaniem/dębieniem przedmiotów przy BNach), plus niejasności/niespójności logicznych (jak zmieniające się nazwy ochron przy pancerzach albo latające losowe znaki przy opisach przedmiotów). Zmienia parę rozwiązań i mechanik technicznych oraz fabularnych (jak przy przywoływaniu nieskończonego strumienia stworzeń, czy "skoko-skradaniu"), dospawa tereny za palisadą orków w Górniczej Dolinie (dzięki modyfikacji Wasteland [wskazówka: jest tam trochę pusto, jak nazwa sugeruje]), zmienia źródła obrażeń niektórych potworasów (np. wilki teraz zadają obrażenia kłute, a nie miażdżone, widziadła w pełni zadają obrażenia tylko od ognia itd.), poprawia menu gry (zawierają parę opcji, które były dostępne wcześniej tylko w .INI), dodaje parę postaci tła dla specjalnych możliwości fabularnych (a których brakowało w podstawce), ogarnia system trenowania u nauczycieli (można sobie od razu żreć wszelkie premie z przedmiotów nie czekając na osiągnięcie pewnego pułapu kosztu w PNach) i naprawdę wiele, wiele więcej.

Nie ma za to tutaj nowoczesnych mechanik wprowadzonych przez znane mega modyfikacje, jak głód, pragnienie, udźwig, czy wytrzymałość (albo pasek PDków, tudzież karma u bogów, czy co tam), czy innych MMORPGowych zagrywek.

Dodatkowo, to pierwszy w ogóle mod, który w pełni zaaplikował istniejącą wersję Uniona już od wersji v1.0a w bardzo wczesnym 2019 oraz pierwsze napisane pod niego, a eksperymentalne wtyczki, tym samym stając się pionierską modyfikacją dla wszystkich innych w które grałeś [jak L'Hiver(y), Nostalgic, The Returning(i), VarusBiker, Atariar, Definitive, Odyseja, Guilds, czy Othello], a korzystają z jego dobrodziejstw.

SCREENSHITS:

Spoiler







INSTRUKCJA INSTALACJI:

Spoiler
Ta instrukcja jest niepodatna na własne "widzimisię" użytkownika, a powstała oparta o doświadczenia z wielu lat kadencji YAUPa. Tzn. można sobie pomijać kroki, czy bawić się we własne konfiguracje, ale to tylko jak ktoś chce robić za technicznego beta testera. Za pryncypium ten mod nie jest kompatybilny z żadnymi innymi łatkami (jak te wspomniane, od Fizzbana, czy IronKeep Community itp.), modkitami/oprogramowaniem/wtyczkami nie Unionowymi (jak Ninja), jakimiś różnymi poprawkami (Final Gothic II EXE, Steam Fix, 4GB Patch itp.), edytorami zmiennych w zapisach gry, czy jakimikolwiek SystemPackami (Union ma wszystko co w nich jest i więcej).

Z powodu nieudokumentowanych procesów instalacyjnych, znany menadżer modów, Spine, jest mocno odradzany i niezalecany na jakimkolwiek etapie instalacji.

1. Pobierz instalator Yet Another Unofficial Patch v2.6.8.1 (1 GB), "podążaj" za instrukcjami na ekranie.
2. Odpal przez skrót w menu Start i grej.

LISTA ZMIAN:

Spoiler
Najnowsza wersja jest zawsze w najnowszym instalatorze. Pobierz, zainstaluj, potem poszukaj w głównym katalogu. Albo zwizytuj serwer tego moda na Discordzie i szukaj w sekcji #changelog. Elo.

2

[Jako że na forum nie jest się tak bardzo ograniczonym liczbą znaków jak w gazecie, czy na Twitterze, pozwolę sobie na wprowadzenie, zanim przejdę do sedna.]

Modding Gothica, czy innych gier Piranii, jest w powolnym odwrocie. Każdy siedzący w tym temacie widzi, że czasy złotej "prosperity" już minęły, a pojawiający się materiał w większości to klepanie tego samego (a ja sam dokładam, małą, ale wciąż, cegiełkę do tego problemu swoją działalnością modderską w postaci YAUPa). Te najpopularniejsze fora polskie, rosyjskie i niemieckie z roku na rok mają mniejsze zainteresowanie i liczbę odwiedzających, a procentowo największymi generatorami ruchu są te olbrzymie mody jak The Returning, L'Hiver, czy Odyssee, czy (polskie) tłumaczenia tychże, tudzież te z serii Przeznaczenia (to moje wnioski oparte na danych szybko wyciągniętych z Google Trends i/lub Alexy i/lub SpyFu i/lub Act-On i/lub SEMrush dla worldof(players/gothic).de, worldof(players/gothic).ru, themodders.org, bractwospolszczenia.pl oraz druzynaspolszczenia.pl).

Po części jest to związane ze zmęczeniem materiału, po części z rozbitej działalności różnojęzykowych "departamentów" fandomu (niemiecki, rosyjski i polski to dominujące w tym temacie), po części z tego że format forów oddaje pola takim miejscom rozdrobnionej agitacji jak Facebook, Reddit, Discord i tym podobne, a po części przez najzwyklejszy wykruszający bezład internetowych społeczności.

Z drugiej strony, takie miejsca jak NexusMods, ModDb, czy SteamWorkshop, poświęcone właśnie (prawie i wyłącznie) modowaniu, przeżywają drugą młodość ostatnimi czasy i są sieciowymi lokacjami, w których jest najwięcej potencjalnie zainteresowanych modami do gier wszelakich (w tym i gier Piranii). Z pewnością sprofilowane strony/działy pod konkretne gry, nowoczesna łacina robiąca za urzędowy (mam tu na myśli język angielski), plus własnościowe programy do automatycznej instalacji modów (NM i SW, bo ModDb jeszcze takowego nie ma) pomagają. To wszystko sprawia, że na "rynku" pojawiła się nisza. I tę niszę chcę zagospodarować.

ZACZYN

Moje ogłoszenie jest zaadresowane do chętnych, którzy chcieliby wziąć udział w stworzeniu grupy modderskiej, która:

- będzie operować na grach Piranii (czyli wysłużone już wszystkie gry z serii Gothic [tak, trzecia część również], Arcanii [bez kitu, ziomy, bo pora na porządną modyfikację do tej gry], Risen [zwłaszcza pierwsza odsłona cieszy się pewną estymą po dzień dzisiejszy], oraz, oczywiście, ELEX)
- będzie wydawać swoje dzieła w języku angielskim, ale nie tłumaczonym maszynowo przez Google Translate czy inne gówno, które będą skierowane do międzynarodowej społeczności gier Piranii
- będzie mieć swoje (pod)strony poświęcone swoim modom docelowo na ModDb (generalnie ma o wiele lepszą, bardziej rozumującą społeczność), a pomocniczo na NexusMods i Steam Workshop (ale te oba ostatnie to w czasie późniejszym)
- będzie mieć swoją stronę na Patreonie i własny serwer na Discordzie, gdzie obie rzeczy będą w komitywie robić za główny kanał komunikacji z fanami i "patronami"

Zanim przejdę do wymagań i mojego własnego wkładu, to tutaj musi pojawić się małe tłumaczenie: tak, finalnie, team ma zbierać datki i "zarabiać". Ale nie po to, by te pieniądze trafiały do kieszeni poszczególnych członków (to można rozpracować później, jak będzie dostatecznie wysoki poziom tychże datków), ale na cele związane z modyfikacjami, czyli pro dubbing od aktorów głosowych, pro skrypty od specjalistów, pro grafiki od artystów itd.

Dodatkowo, pieniądze będą również motywacją, bo przekładają się one współmiernie na odzew i zainteresowanie, a oba są potrzebne żeby cokolwiek mogło przetrwać dłużej w dzisiejszym Internecie (tzw. "hype" działa na korzyść twórców, mobilizując ich do (kontynuowania) twórczości).

Ponadto, język angielski jest domyślną formą wymiany informacji w XXI. wieku, a dzięki temu pozwoli dotrzeć do znacznie większej liczby odbiorców. Pośród członków jednak będzie wszystko odbywało się po polsku.

WARZENIE

Czego wymagam od potencjalnych kandydatów:

- znajomość gier Piranii pod względem technicznym, gdzie samodzielna zdolność do (de)kompilacji i edycji w stopniu podstawowym skryptów, grafik i innych plików wymienionych gier jest potrzebna, i jest bazowym pryncypium dla moddera; narzędzia są dostępne już od dawna (jestem pewien co do Gothiców, Risenów i ELEXa, ale nie co do Arcanii)
- znajomość merytoryczna gier Piranii; chodzi mi o ogólną, nie jakąś specjalistyczną; od razu zaznaczam, że długaśne dysputy na temat tego co jest "canon", a co jest "fanon", co jest "lore", a co nie, nie będą zajmować żadnego szczególnego miejsca w tym teamie, bo głównym celem będzie faktyczne dostarczanie zawartości, a nie dyskusje nad jej super poprawną "kanonicznością"
- znajomość języka angielskiego na poziomie co najmniej B1 (pisany, bo mówiony to już zupełnie inna bajka)
- wszelka znajomość z zakresu:

  • wprawnego pisania dialogów, scenariuszy i konceptów abstrakcyjnych
  • wykwalifikowanej obsługi programów graficznych typu Photoshop albo GIMP czy tam Clip Studio Paint (czy czym innym ci wygodnie) na cele grafiki rastrowej
  • wyszkolonej obsługi Blendera lub 3DS Max
  • jakiejkolwiek obsługi programów do edycji wideo
  • jakiejkolwiek obsługi programów do edycji dźwięku i muzyki
  • Uniona (ten team odcina się od Ikarusa, LeGo i Ninja)

Będzie w opór mile widziana.

DESTYLACJA

Co ja oferuję ze swojej strony:

- znajomość języka angielskiego na poziomie C1 (pisany) i B2 (mówiony)
- dobrą znajomość ModDb, NexusMods i Steam Workshop oraz ich społeczności
- kumulatywnie dostateczną z plusem obsługę techniczną gier Piranii:

  • (de)kompilacja i edycja plików gry (skrypty, animacje, tekstury, dźwięki, wideo)
  • solidna obróbka graficzna 2D w programie Photoshop pod kątem grafik i tekstur
  • wypadkowo przeciętnie ogarnięta obróbka graficzna 3D w programie Blender pod kątem modeli, światów, animacji i obiektów
  • bazowa obróbka dźwięku i wideo w programie Photoshop i Premiere
  • zerowa obróbka (dekompilacja, edycja i kompilacja) muzyki
  • zerowa znajomość Ikarusa, LeGo, Ninja i Union

- bardzo dobrą znajomość Patreona i jego tajników
- gotowe scenariusze o porządnej jakości na Google Docs co do modów, które team będzie tworzył (oczywiście to tylko na początek, aby nie zginąć w (bez)twórczym marazmie, bo polemiki na temat twórczości teamu będą organizowane)
- pomoc w nauce modowania gier Piranii

***

Jestem świadom, że ten projekt jest ambitny, więc odzew pewnie będzie niewielki, ale od razu zaznaczam, że ten model modowania szeroko ulubionych gier (Fallouty, The Elder Scrolls, różnorakie C&C, gry z serii id Tech 1 lub Europa lub Infinity Engine itd., a gry Piranii również się do nich zaliczają) już z powodzeniem jest wykorzystywany na Patreonie od 2015, więc pomysł nie jest "z dupy" i ma jak najbardziej realne szanse na zaistnienie w świadomości Internetowej społeczności. Na posłowie: nigdy lepszy moment na ten ruch nie nastąpi, "trust me".

Zapraszam też do dyskusji na ten temat.

[To ogłoszenie miało pojawić się też na stronach BS.pl i DS.pl, ale sobie daruję, bo jakoś percypuję słabszy zapach liberalizmu w wymienionych miejscach niźli tutaj, a wrzucać coś po to, aby zostało to zaraz skasowane to mi się nie widzi.]

3
[G2NK] Jak zwiększyć maksymalną ilość umiejętności?

Joł.

Ostatnimi czasy zacząłem dodawać "nowe seksi skille" do moda, ale natrafiłem na przeszkodę. Mianowicie, skończyły mi się nowe miejsca na umiejętności, wykorzystując te wolne, których twórcy nie wykorzystali. Potrzebuję jeszcze trzy nowe, ale zgaduję, że nie wystarczy sobie dopisać te plus 3 do const int NPC_TALENT_MAX, żeby było łącznie 25, a potem odpowiednio zmodyfikować stringi w odpowiednich miejscach jak TEXT.D i MENU_STATUS.D, żeby to wszystko grało? No bo tak zrobiłem i nie wyszło. xD Czy to jest zakodowane "na twardo" gdzieś w silniku?

Pytanie więc: czy ktoś to już kiedyś z czytających jakoś obszedł? Może którymś ze znanych pakietów skryptów?

4
Zrobiłem sobie w Blenderze v2.66a, wykorzystując pakiet zdekompilowanych animacji z WoGa, animację jak NPC smaruje się po przedramionach i ramionach do wykorzystania w "sceme(Name)" SALVE w grze, na potrzeby leczniczego smarowidła (mam model, teksturę i skrypt już przygotowane do tego przedmiotu).

Na razie animacja jest zapisana w formacie Blenderowym i nie eksportowałem jej przez wtyczkę Kerraxa.

I tutaj pytanie, jako że nigdy nie dodawałem animacji zrobionej od zera: jak już wyeksportuję w formacie .ASC, to jak potem dodać nowy "sceme" do gry, aby mogła ona skompilować sobie wszystkie potrzebne do animacji pliki?

Alternatywnie, jeśli ktoś by mi to ogarnął, to nie widzę problemu wypuścić tego w wersji publicznej do użytku przez kogokolwiek, również przez tego co pomógł mi to zrobić. Choć w tym wypadku fajnie by było jak ten ktoś powiedział mi jak tego dokonał, żebym nie musiał go męczyć za każdym razem jak coś zaanimuję. xD

5
Skrypty / Natychmiastowa śmierć z Npc_ChangeAttribute
« dnia: 2020-01-10, 13:16 »
Panowie, mam problem.

Mianowicie, zrobiłem sobie funkcję na "podstępny atak", na którą kod poniżej.

func void CheckForBackstabDamage(var C_Npc other,var C_Npc self)
{
if(C_NpcIsHero(other) && (!Npc_CanSeeNpc(self,other) || Npc_IsInState(self,ZS_Sleep) || Npc_IsInState(self,ZS_Sleep_Deep)) && C_BodyStateContains(other,BS_HIT) && (Npc_GetTalentSkill(other,NPC_TALENT_SNEAK) == TRUE) && Npc_IsInFightMode(other,FMODE_MELEE) && !C_NpcIsUndead(self) && !C_NpcIsGolem(self) && !Npc_IsInState(self,ZS_Attack) && !Npc_IsInState(self,ZS_MM_Attack))
{
Backstab = other.attribute[ATR_DEXTERITY] * 3;
Npc_ChangeAttribute(self,ATR_HITPOINTS,-Backstab);
PrintScreen("Sneak attack!",-1,-1,Font_Screen,2);
if(Npc_IsDead(self))
{
B_GiveDeathXp(other,self);
};
};
};

I działa wszystko fajnie i tak zajebiście, ale jest jeden defekt: kiedy wartość Backstab zrówna się albo przekroczy aktualną wartość Zdrowia potraktowanego, ten zamiast paść na pysk, odszczekuje, a potem pada, albo ma czelność jeszcze wyciągnąć broń, a dopiero potem umrzeć.

Próbowałem dodać różne inne funkcje, jak:

if(other.attribute[ATR_HITPOINTS] <= 0)
{
AI_PlayAni(other,"T_DEAD");
};

Czy dodać AI_StopProcessInfos, tudzież Npc_ClearAIQueue(self), a wszystko razem lub osobno, no ale nie idzie.

Czy ktoś wie jak zrobić, żeby zabici dzięki Npc_ChangeAttribute nie bawili się w dziwne zajawki, tylko grzecznie zdechli w tym przykładzie?

6
Moduję Gothica 2 NK pod kątem masowego (x1 - wszystko) wyrabiania przedmiotów (kucie broni, warzenie mikstur, właściwie wszystko oprócz rycia run). Niestety, animacje mają to do siebie że tworzą dodatkowy obiekt potrzebny do operowania danym punktem wyrabiania, przetrzymując go w "wirtualnym slocie", a który później pojawia się w ekwipunku, jeśli funkcje tworzenia nie traktują wszystkiego pojedynczo, jak w oryginalnym Gothicu 2, gdzie można kontrolować ostateczną ilość obiektów po jednym naraz.

Nie zmieniając samych animacji (usuwając przedmiot tutaj nie musiałbym się babrać w skryptach, ale wyglądałoby to niewyjściowo), próbowałem od zatrzęsienia zmiennych w różnych miejscach w samych skryptach, ale po dwóch dniach kombinacji muszę się poddać, bo zawsze wychodzi mi o jeden obiekt za dużo/mało w ostatecznym rozrachunku, nieważne jakbym próbował to ogarnąć.

Stąd pytanie: czy ktoś wie, widział albo zna modyfikację, w której autorzy ten problem rozwiązali, ale bez pomocy BNów i zachowując oryginalne animacje? Może być mod z Ikarusem, LeGo, czy nawet AST. Może być samouczek z tym zagadnieniem (nie widziałem takiego w wynikach wyszukiwania), a który potrzebuje wspomnianych pakietów skryptowych lub Agamy.

7
No elo.

Wróciłem do Blenderingu, po roku przerwy, ale mam mały problem. Za każdym razem jak importuję mesha za pomocą plugina od Kerraxa (tego pod Blendera wersję 2.66.1), to muszę ręcznie ustawiać materiały i tekstury.

Pamiętam, że kiedyś był poradnik od tego gościa, jak to ogarnąć, żeby ładowało wraz z obiektem, ale nie mogę go nigdzie znaleźć, ani tutaj, ani na WoGu, czy SourceForge. Jakby ktoś mógł do niego zalinkować albo napisać własny, byłbym super wdzięczny.

Post połączony: 2019-02-19, 17:51
O, już rozwiązałem, czytając podręcznik użytkownika. Do zamknięcia temat.

8


Jestem pewien, że wielu modderów doświadczyło problemów z parsowaniem skryptów, gdzie skrypt technicznie był poprawny, ale mimo tego i gra, i Sourcer negowały wysiłki upierdliwym "syntax error/expected ;". Szczególnie często występującym jest to zjawisko przy złożonych funkcjach if/else if, zwłaszcza jeśli zawierają dużo tekstu albo dialogów.

Istotnym problemem jest różnica w kodowaniu zapisanych bajtów o "końcu linii" (dla uproszczenia umownie nazwiemy tak pojedyncze naciśnięcie klawisza ENTER), a gdzie stosowane są trzy formaty:

- CR (Carriage Return) znany jeszcze z czasów maszyn do pisania, czy Commodore (oraz wcześniejszych maszyn Macintosh/Mac od Apple'a)
- LF (Line Feed) to "nowocześniejszy" sposób zapisu (głównym środowiskiem są tutaj maszyny Unix i jego pochodne, czyli Linux i późniejsze Mac OSX)
- CRLF, czyli "mieszany", zwany też EoL (End of Line), ukierunkowany na systemy Windows (czyli na zdecydowaną większość sprzętu na świecie, nie licząc urządzeń mobilnych)

CR i LF to normalne, pojedyncze znaki, które można wklepać z klawiatury, odpowiednio dla ASCII i Unicode, podczas gdy CRLF/EoL to praktycznie dwa znaki z repertuaru ASCII. Można też przyjąć podział na:

- CR = \r
- LF = \n
- CRLF = \r\n

Należy zaznaczyć, iż pomimo dzisiejszej wszechwładzy CRLF na świecie, wszystkie trzy sposoby są wykorzystywane do dziś. Napisałbym coś więcej o ich historii, ale na dziś już wystarczy dziejowych wątków. Może kiedyś jeszcze coś tu dopiszę.



Najważniejszą dla nas informacją jest to, że EoL w plikach skryptów Gothica i Gothica II są zapisane w formacie Unixowym (czyli \n), a przynajmniej w tej wersji od CD Projekt/GoG. Ci co wykorzystują GothicSourcera lub chociażby Worda od Microsoftu do edycji skryptów, operują dwoma różnymi formatami zapisu końca linii, gdzie każde naciśnięcie klawisza ENTER może doprowadzić do niepotrzebnie podniesionego ciśnienia.

Najprostszym rozwiązaniem jest po prostu hurtowe przekształcenie tychże plików pod tym względem, aby uniknąć kłopotów tej natury w przyszłości. Poniżej pokażę wam jak to zrobić za pomocą Notepad++; jeśli masz program, który wykorzystuje Scintillę do edycji kodu/tekstu, poniższy poradnik ma to samo zastosowanie, bo wykorzystuje te same polecenia. Dobra, pora na konkrety:

0. Zrób kopię zapasową plików. To punkt obowiązkowy.

1. Zainstaluj Notepad++ jeśli jeszcze tego nie zrobiłeś (do pobrania tutaj; obecna wersja to v7.6.3, ale wcześniejsze też dadzą radę, jeśli z jakiegoś powodu musisz ich użyć, a to samo dotyczy wersji późniejszych; bez znaczenia czy to wersja 32- czy 64-bitowa) albo otwórz swój edytor kodu/tekstu ze Scintillą.

2. Wciśnij CTRL + SHIFT + F ("Szukaj w plikach").

3. Zmień "Tryb szukania" na "Wyrażenia regularne" (lewy dolny róg).

4. W "Katalog" wybierz folder ze skryptami.

5. W "Szukany tekst:" wpisz "(?<!\r)\n" (dokładnie tak, bez cudzysłowy na początku i końcu całej zbitki).

6. Pod "Zamień na:" dopisz "\r\n" (znów bez cudzysłowy).

7. Upewnij się, że "Flitry:" są ustawione na "*.d" (pomiń cudzysłowy).

7. Kliknij "Zamień w plikach" (nie pomyl ze "Znajdź wszystkie", które jest powyżej tego co masz kliknąć), potwierdź i poczekaj aż skończy.



Powyższa receptura komputerowa do każdego samotnego \n doda przed nim \r, transformując zapis Unixowy w Windowsowy. Potem już możesz bez obaw uderzać w ENTER w GothicSourcerze, czy Wordzie, unikając błędów składni.

9
Skrypty / zEngine, "Burza Ognia" i rodzaj obrażeń
« dnia: 2018-11-17, 10:53 »
Elo.

Czy to prawda, że Nocy Kruka jest błąd w samym silniku gry, dotyczący zaklęcia "Burza Ognia", który ignoruje damagetype = DAM_MAGIC przypisanego skryptu, i tak zadając obrażenia od ognia, czy to kolejny "urban legend"?

Jeśli to jest na fakcie, o życie i bez kitu, czy można to gdzieś podejrzeć (chociażby w edytorze heksów)?

10

Dla niektórych wszechpotężne orcze/jaszczurzoczłecze percypowanie wszystkiego z odległości 300 kroków jest zaletą, która podkreśla ich potworzy rodowód. Dla innych, w tym mnie, trąci lenistwem albo brakiem pomysłów twórców gry.

Wykreowałem dosyć prosty system, który adresuje kwestię za pomocą atrybutu zręczności postaci (zarówno wobec wymienionych humanoidów, jak i kilkunastu innych paskud). Im większa wartość tego atrybutu, tym mniejszy zasięg wykrywania bohatera którymkolwiek ze zmysłów (w grze są tylko wzrok, słuch i węch); ale tylko podczas skradania, naturalnie.

Nie jest to system doskonały i "realistyczny" (w grze gdzie można wyleczyć wszystkie rany zjadając wagon żółtego sera), ale przynajmniej próbuje odnieść się do wątpliwej jakości umiejętności skradania się w organiczny dla niej sposób. Jeśli kiedykolwiek ulepszę całość metody (bo na bank można ją poprawić), to opublikuję go w tym samym temacie, zmieniając jego nazwę.



Założenia wstępne:
- im większa wartość zręczności, tym gorzej monstrom idzie wykrywanie skradającego się bohatera
- system wymaga, aby postać miała wyuczoną zdolność ukradkowości (skradania się) i aktywnie jej używała
- może dojść do sytuacji, gdzie odpowiednio zręczna postać może przejść cieniostworowi przed nosem na odległość miecza; coś takiego przydałoby się fabularnie uzasadnić (np. u nauczyciela podczas nauki talentu, że skradanie się to nie tylko dźwięk, ale i elementy wizualne [oblepienie się błotem lub odpowiednią do otoczenia farba, ubranie płaszcza, nałożenie kamuflażu z liści i gałązek, używanie osłon w otoczeniu] oraz powonienia [podchodzenie od zawiewnej, noszenie szali, masek i rękawic, natarcie się ziemią, igliwiem itp.]), bowiem z oczywistych względów nie będzie to zrozumiała sytuacja, kiedy już nastąpi; osobiście nigdzie tego nie tłumaczyłem, gdyż ten system zainstalowałem w modzie, który właściwie robię tylko dla siebie
- zaaplikowano absolutne minimum, z którego nawet najbardziej otępiały krwiopijca wyczuje przez egzoszkielet zbliżającą się katastrofę (dokładnie 50, co odpowiada zasięgowi sztyletu w grze), a jest ono osiągane przy 150 punktach zręczności dla wszystkich pokrak objętych systemem
- brak zmian w zasadach skradania się/wykrywania u ludzi
- nie włączono pewnych grup potworów (jak konstrukty, czy nieumarli, lub smoki, Poszukiwacze, rodzinka psowatych [wraz z orkowymi psami, czyli wargami], szczury [wszystkie], trolle, harpie)
- całość zagadnienia dotyczy tylko Bezimiennego, bowiem NPC nigdy nie skradają (choć raz widziałem wilka podkradającego się do ścierwojada)
- po wykonaniu jakiejkolwiek innej czynności (atak, chód, bieg, wspinaczka, czasem skok), ciągłość skradania się zostaje przerwana, a potwory które powinny percypować postać w zasięgu zrobią to natychmiastowo (tak jak w przypadku ludzi), co może skończyć się niezbyt miło
- po zaimplementowaniu procedury, może nastąpić epizod gdzie jakaś poczwara nie zaatakuje NPCa człowieka, który jest na wyciągnięcie ręki, gdyż system działa zawsze gdy bohater się skrada, a dane postacie zmaterializowały się w zasięgu widzenia (choć może być tak, że ich nie widać); jednakoż na palcach jednej ręki można policzyć sytuacje, gdzie stwór aktywnie atakujący postać tła jest przewodnim wątkiem fabularnym w Nocy Kruka; w 99% przypadków to gracz/NPC decyduje o podjęciu walki
- najlepiej powiązać to wraz z jakimś dodatkowym systemem nawiązującym do podchodzenia ukradkiem, np. ciosów w plecy/podstępnego ataku (dla którego samouczek też mam i który przedstawię później)



Całość krok po kroku:

1. Do (...)_WORK\DATA\SCRIPTS\CONTENT\STORY\STORY_GLOBALS.D dodajemy zmienną var int SNEAKER; (czy co tam chcesz, tylko żebyś spamiętał co).

2. W (...)_WORK\DATA\SCRIPTS\CONTENT\AI\HUMAN\C_HUMAN (może być gdzieś indziej, ale najlepiej w folderze AI) tworzymy plik C_SNEAKER.D (choć możesz ozwać go tym co ci przyjdzie do głowy, bez kitu), a w nim umieszczamy naszą podstawową funkcję:

Spoiler
func int C_Sneaker(var C_Npc hero)
{
if(C_BodyStateContains(hero,BS_SNEAK))
{
                return TRUE;
SNEAKER = TRUE;
}
else
{
                return FALSE;
SNEAKER = FALSE;
};
};

Pewnie można byłoby się obyć bez określania obu warunków TRUE/FALSE w tak bezpośredni sposób, ale wiedziony doświadczeniem, wiem że lepiej kiedy zEngine ma jasno przedstawione oba wybory w funkcjach, które mają zwrócić zerojedynkowe wartości.

3. Tak stworzoną funkcję, za pomocą AI\HUMAN\C_HUMAN\C_SNEAKER.D, dodajemy do pliku kompilacyjnego GOTHIC.SRC, który znajduje się zazwyczaj w (...)_WORK\DATA\SCRIPTS\CONTENT. Umieszczamy na pozycji po wszystkich ZS_MM_*****.D (u mnie w linii 1650); koniecznie tutaj, bowiem te skrypty regulują percepcję i nastawienie wobec innych NPCów w grze, w tym gracza.

4. Następnie, do wybranych (przez ciebie; nie będę dawał swojej listy, gdyż jest ona zbyt długa) skryptów potworów w (...)_WORK\DATA\SCRIPTS\CONTENT\STORY\NPC\MONSTER oraz \ORC dodajemy następującą treść, zamiast senses_range:

Spoiler
if(SNEAKER == TRUE)
{
senses_range = 1500 - (hero.attribute[ATR_DEXTERITY] * 10);
if(senses_range < 50)
{
senses_range = 50;
};
}
if(SNEAKER == FALSE)
{
senses_range = PERC_DIST_MONSTER_ACTIVE_MAX;
};

Musi się ona znaleźć zaraz po linii senses = ******** (od dwóch do trzech zmysłów); w danym skrypcie.

Należy zauważyć, iż PERC_DIST_MONSTER_ACTIVE_MAX są zastąpione u orków/jaszczuroludzi przez PERC_DIST_ORC_ACTIVE_MAX i mają różne wartości (1500 dla pierwszego, a 2500 dla drugiego), więc należy też kod powyżej odpowiednio zmienić, no chyba że ktoś chce zrównać pomiot Beliara z innymi zwierzętami.

Dodatkowo, 10 w równaniu można zastąpić inną liczbą (mniejszą dla łatwiejszego wykrywania w zależności od zręczności, a większą dla trudniejszego), więc samemu można sobie ustalić korelację, w zależności od preferencji. Nie polecam używania matematycznego dzielenia przez cokolwiek, bowiem nawet jeden punkt różnicy w zręczności może przełożyć się na dwa/trzy kroki odległości detekcji w świecie gry (a przynajmniej tak miałem podczas testowania).



I tyle. Teraz grając złodziejem, czy łucznikiem (bądź łucznikiem-złodziejem), o odpowiednio wysokiej zręczności, można przekraść się obok hordy orków w drodze do zamku (w rozdziale 2), czy kamiennego smoka (w rozdziale 4), zająć odpowiednią pozycję i ich wszystkich powystrzelać.

Tylko weź ze sobą odpowiednio dużo amunicji, OK?

Post połączony: 2018-10-25, 16:36

11

Czy kiedykolwiek zdarzyło ci się przystanąć i zastanowić jak to jest, że nawet niskopoziomowy mag ognia potrafi stworzyć dziesięć szkieletów, które wesoło rozsmarują każdego przeciwnika na ścianie, a to wszystko weryfikowane właściwie tylko ilością dostępnej czarownikowi Many?

No właśnie. Nawet w starożytnym AD&D ilość przyzywańców które dało się ujarzmić naraz była zależna od poziomu sprowadzającego, który z grubsza określał jego ogólną potęgę i zaawansowanie w sztukach magicznych.

Na własne potrzeby stworzyłem system, w którym nie da się przyzywać i tworzyć popleczników bez końca, bo jest to kontrolowane poziomem doświadczenia, a który odpowiada za to jak wiele poczwar jednocześnie będzie się swojego "szefa" słuchać.



Założenia wstępne:
- po przekroczeniu limitu (którym jest własny poziom doświadczenia), wszystkie osobiście przyzwane i stworzone potwory atakują gracza, co ma wyrażać ich grupową awersję do bycia kontrolowanymi
- omówiony system nie dotyczy szkieletowych magów, którzy są jedynymi NPCami oprócz gracza potrafiącymi tworzyć sprzymierzeńców (wrodzona władza nad nieumarłymi i takie tam; jak ktoś chce to sobie podepnie pod ich skrypty)
- nie zmieniałem nic we wstępnych nastawieniach przyzywańców, bo system rewiduje czy pora na oklep funkcją B_MM_AssessEnemy, która działa niezależnie od innych zmiennych
- podopiecznych wciąż można wysłać na zieloną trawkę, próbując z nimi rozmawiać, gdy nie są związani walką, tak jak było
- brak ograniczeń dla szkieletów stworzonych zaklęciem "Armia Ciemności" (bo to najpotężniejsze zaklęcie przyzywające i runiczne opus magnum przyzywacza)



Skryptowy przepis:

1. Najpierw do (...)_WORK\DATA\SCRIPTS\CONTENT\STORY\STORY_GLOBALS.D dodaj zmienną var int SUMMONCOUNTER (albo jak chcesz ją sobie tam nazwać; tylko sobie gdzieś to zapisz, bo byłoby trochę głupio gdybyś zapomniał, a potem się frustrował, gdy skrypty się nie kompilują).

2. Potem w każdym z zaklęć przyzywających (...)_WORK\DATA\SCRIPTS\CONTENT\AI\MAGIC\SPELLS\SUMMON_***.D (jest ich siedem; patrz adnotacja na samym dole) wkomponuj odpowiednie wartości (arbitralnie określone; w segmencie Spell_Cast_***) dla swojego SUMMONCOUNTER. Wartości zostały wybrane na oko, posiłkując się faktem, że w normalnej rozgrywce w Noc Kruka można osiągnąć około 60 poziom doświadczenia bez super kombinowania, i tutaj zostały ustalone są na:
- przyzwany wilk: 5
- stworzony goblini szkielet: 7
- stworzony kamienny strażnik: 11
- stworzony szkielet: 13
- stworzony zombie: 15
- stworzony kamienny golem: 17
- przyzwany demon: 26

Jak widać dopiero powyżej 50 poziomu będzie można władać dwoma demonami albo trzema kamiennymi golemami równocześnie. Chyba nie myślałeś, iż demony będą sobie, ot tak, dziesiątkami służyć jakiemuś pacjentowi, tylko dlatego że nosi szatę maga i ma odpowiednią runę? Się cenią te pomioty. Naturalnie, wartości się dodają, więc 47 poziomowy mag może władać trzema przyzywanymi wilkami (5 x 3 = 15), jednym kamiennym strażnikiem (11), i pojedynczym zombie (15) naraz, nie ryzykując z nimi problemów (15 + 11 + 15 = 41, a 41 < 47). Mógłby nawet dodać jeszcze wilka ekstra do swej drużyny chwatów (41 + 5 = 46, a 46 < 47), a wciąż obyłoby się bez komplikacji.

Sam możesz sobie dobrać wartości takie jakie chcesz. Nieźle, nie?

3. Prawie zrobione! W funkcji (...)_WORK\DATA\SCRIPTS\CONTENT\AI\MONSTER\B_MONSTER\B_MM_ASSESSPLAYER.D dorzuć kod (i dokładnie w tym miejscu, bo inaczej ci nie pójdzie jak Nadji w deszcz):
Spoiler
if(self.aivar[AIV_PARTYMEMBER] == TRUE)
{
if((Npc_GetDistToNpc(self,hero) < 500) && !C_BodyStateContains(self,BS_STAND))
{
Npc_ClearAIQueue(self);
AI_Standup(self);
AI_TurnToNPC(self,hero);
};
if((SummonCounter > hero.level) && (self.guild > GIL_SEPERATOR_HUM))
{
B_MM_AssessEnemy();
return;
};
};

4. Na koniec, w funkcji (...)_WORK\DATA\SCRIPTS\CONTENT\STORY\B_STORY\B_GIVEDEATHINV.D (bardzo ważne, gdyż ta funkcja jest wykonywana tylko raz; inaczej pojawią się problemy z licznikiem SUMMONCOUNTER przy zapisywaniu/ładowaniu gry, i bałagan gotowy) wstaw to co poniżej (pamiętaj aby zmienić liczby i tutaj, jeśli zmieniłeś je też w punkcie nr 2 tego samouczka, na równoważne):

Spoiler
if(slf.aivar[AIV_DeathInvGiven] == TRUE)
{
return;
};
if(slf.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_WOLF)
{
SummonCounter -= 5;
if(SummonCounter < 0)
{
SummonCounter = 0;
};
};
if(slf.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_GOBBO_SKELETON)
{
SummonCounter -= 7;
if(SummonCounter < 0)
{
SummonCounter = 0;
};
};
if(slf.aivar[AIV_MM_REAL_ID] == ID_SUMMONEDGUARDIAN)
{
SummonCounter -= 11;
if(SummonCounter < 0)
{
SummonCounter = 0;
};
};
if(slf.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_SKELETON)
{
SummonCounter -= 13;
if(SummonCounter < 0)
{
SummonCounter = 0;
};
};
if(slf.aivar[AIV_MM_REAL_ID] == ID_SUMMONEDZOMBIE)
{
SummonCounter -= 15;
if(SummonCounter < 0)
{
SummonCounter = 0;
};
};
if(slf.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_GOLEM)
{
SummonCounter -= 17;
if(SummonCounter < 0)
{
SummonCounter = 0;
};
};
if(slf.aivar[AIV_MM_REAL_ID] == ID_SUMMONED_DEMON)
{
SummonCounter -= 26;
if(SummonCounter < 0)
{
SummonCounter = 0;
};
};

I już. W tej chwili stałeś się wymoczkiem, który musi uważać na to ile nieumarłych i konstruktów jest pod jego pieczą, i czy może stworzyć jeszcze nowych do kompletu. Ktoś bardziej wymyślny mógłby dodatkowo wykreować jakąś książkę z wyszczególnionymi wartościami (czy nawet taką, która śledzi je na bieżąco), do umieszczenia w grze, ale ja preferuję doglądać i rachować samemu wszystko na bieżąco. Wiesz, żeby poćwiczyć sobie pamięć.

O czym my to mówiliśmy?



Zaklęcia to:
- SPELL_SUMMONDEMON.D
- SPELL_SUMMONGOBLINSKELETON.D
- SPELL_SUMMONGOLEM.D
- SPELL_SUMMONGUARDIAN.D
- SPELL_SUMMONSKELETON.D
- SPELL_SUMMONWOLF.D
- SPELL_SUMMONZOMBIE.D

12
Pytania i problemy / [WYMIANA; GIINK] Edycja ZENa NEWWORLD
« dnia: 2018-09-24, 16:48 »
Elo. Mój ziomal z forum jest zajęty, a ja nie chcę mu zawracać dupy kolejną modowania opcją, plus nie chce mi się szarpać ze Spacerem, a potrzebuję tylko wyedytować w ZENie (NEWWORLD.ZEN):

- ułożenie trzech przedmiotów (stalowy pręt, złoty kielich, jakaś niskopoziomowa broń) w dzielnicy portowej Khorinis na dachach,
- schowanie patelni gdzieś w okolicy farmy Lobarta,
- wyciągnięcie zatopionego w workach mieszka ze złotem w okolicy namiotu gdzie urzędują Magowie Wody,
- umiejscowienie dwóch zębaczy na wzgórzu koło Niclasa.

W zamian oferuję usługi graficzne (2D tylko) w tworzeniu tekstur dla krajobrazu, elementów 3D (bronie, tarcze, zwykłe przedmioty użytkowe, pancerze) oraz tekstur ludzików (potworasów też).

Towarzysz @TheKetrab może poświadczyć że jestem mocno prawilny w tych kwestiach, nie nawalam i nie wystawiam do wiatru.

Zainteresowanych proszę o wiadomości w komentarzach albo na PW.

13
Przeglądnąłem forum i nie znalazłem stricte targowiska gdzie można byłoby się wymieniać usługami moderskimi w stylu "coś za coś", więc zakładam ten temat tutaj.

Szybko i na temat: nie radzę sobie z tworzeniem .3DSów. Blender i inne programy nie chcą ze mną współpracować, a ja dość już czasu straciłem na naukę i mocowanie się z programami, a potrzebuję tylko nałożenia "przekolorowanych" tekstur na już istniejącą formę (którykolwiek mesh ITPO_PERM_***.MRM).

Tak też szukam kogoś kto:
- nałożyłby 5 różnych wersji (każda w innym kolorze) tej samej tekstury na ten sam kształt 3D
- stworzyłby 5 różnych meshy dla każdego z nowych kolorów tekstury (format .3DS)
- wysłałby je mnie

W zamian za to:
- napisałbym tej osobie skrypt(y) (nie jestem super skrypto-pisarzem, więc bez skomplikowanych fantazji z Returninga proszę)
- stworzyłbym jejże jakąś teksturę(y) (hobbystycznie jestem artystą cyfrowym)
- wykreowałbym scenariusz, mniejszy lub większy (swojego czasu byłem scenarzystą)
- coś tam przetłumaczył z polskiego na angielski i vice versa (długi staż jako specjalista językowy PL<->ENG)

Naturalnie, tekstury dostarczam ja, a śmiałek będzie wpisany w "creditsach" produkcji, gdzie meshe zostaną wykorzystane, plus zachowa prawo autorskie itd. itp. Jeśli ktoś jest zainteresowany, proszę o kontakt tutaj albo na PW.

Koniec ogłoszeń duszpasterskich.

14
Archiwum / [G2NK] Yet Another Unofficial Patch
« dnia: 2018-09-12, 14:25 »
[Mod jest w niedźwiedziej części mój, z uwzględnieniem pomocy od innych moderów w sekcji "CREDITS", którzy wyrazili zgodę na przerabianie swoich danych osobowych i repostowanie swoich własności intelektualnych na forach. Ta alteracja jest po angielsku, ale w tej wersji jest w pełni sprawna również na polskim, rumuńskim, i radzieckim wydaniu Nocy Kruka. Tłumaczenie na nasze nigdy nie nastąpi z mojej ręki. Sugestie, rekomendacje, uwagi, wskazówki, dygresje, i ogólny feedback mile widziane. Link do tego tematu na forum World of Gothic jest tutaj.]


GAME: Gothic II NotR/Gold (any CD/DVD or GOG/Steam in 2.6/2.7 version)
CURRENT MOD VERSION: v2.5
MOD LANGUAGE: English only
COMPATIBILITY WITH: All language versions. (You will have English subtitles/captions/descriptions with the dubbing in the language of the originally installed game.)

Yet Another Unofficial Patch is, you guessed it right, a patch modification for Gothic II NotR/Gold! YAUP supplements the original game with a collection of bug fixes, improvements in several areas, updated execution of certain innate mechanics, and improved linguistic conveyance, while staying mostly faithful to Gothic's gameplay. That means the player won't be showered with a plethora of new exciting lands, prepossessing characters, and inventive adventures... except the familiar Gothic II journey, but smoother than ever. Most vanilla inconsistencies were squished, resulting in the same good old Gothic, from the Chapter 1 to the Chapter 6. It's recommended for all "purist" players out there, but other types of fans, including the fanatic ones, who want something extra with a decisive value edge, should find YAUP to their liking.

THE FEATURES:

- Ability to buy back any weapon, melee or ranged, that a trader has equipped, for wares browsing impunity
- Acrobatics is now a regular skill the player can absorb from the certain three teachers
- Almost all textures were doubled in size and augmented with inbuilt responsive grain, in order to make them sharper and less resistant to brightness/contrast/gamma controls manipulations, while mostly preserving their classic look, all without significantly increased demand for hardware resources
- Colored or recolored spell scrolls/runes and many other items for an easy equipment awareness
- Consistent pricing system for almost all items and goods
- Corrected all Quest Log entries, and added a couple of new ones for those "hidden" quests that were lacking them before
- Cosmetic and aesthetic changes and fixes of all variety in abundance
- Crafting of certain items in greater quantities than one for less tedium; currently only for the things created at pans/stoves and alchemy benches; mass steel heating and mass forging are coming soon
- Eliminated exploits for the several dozen characters and their connected quests
- Enabled cheats, part 1: cheat as much as you want, because there is no point in disabling something that is an essential section of the game
- Enabled cheats, part 2: translated and streamlined all dialogues of all cheat characters to English
- Enhanced options menus, including a lot more options that were hidden inside the config files so far; some will require to restart the game
- Fixed problems with several dozen quests, especially where items being transferred are involved
- Fresh names for several NPCs to differentiate them from the common folk; they won't provide new quests, only just new names
- Frying all kinds of raw meats and mushrooms at pans/stoves is now a thing
- Keys have their own category in the inventory, so they won't mix with the other items anymore
- Massive amount of corrected typos, spelling errors, and inaccuracies to the game's texts; English only
- More believable and logical changes to the damage system depending on slashing, bludgeoning, piercing, fire, and magic damage types
- More characters can now have their pockets checked with the pickpocketing course of action; also, implemented a special Log Entry to track pickpocketing successes/failures
- New fonts for both big and small texts
- New minor loot for felled entities that didn't have any previously
- No achievements or cloud saves or centered dialogue options or onscreen counter of defeated enemies/inflicted damage or XP bar or "trialogs" or gods karma system or auto key removal
- No additional equipment requirements for usual crafting spots; like hammers for anvils, pans for pans/stoves, pincers for rune tables, etc.
- No exhaustive manipulations to LP system
- No hunger, thirst, encumbrance, sleep deprivation, or stamina systems in place
- No multiple artificial difficulty settings to select from
- No options for the guildless playthrough or with the addon disabled or as a water mage
- No ultra HD texture, DX11 renderer, hyper dense grass, or free aiming mods included in the package
- Possibility of taking items from dead NPCs at several points of the game, where it wasn't a feasible option earlier
- Revamped names and/or meshes and/or textures for the majority of potions, jewelry, stone tablets, and other equipment for a greater diversification
- Revised inventory and equipment for a lot of NPCs
- Simple backstab/sneak attack mechanic that scales with the player's value of Dexterity
- Summoning system that depends on the summoner's level of experience to prevent summon spamming and encourage conscious spellcasting
- The Valley of Mines is a bit harder and this includes the difficulty of the dragons
- The issue of not leveling properly while transformed was eliminated
- The issue with randomly changing values of weapon skills caused by transformations was put to sleep; includes weapons, accessories, and other items that might interfere with the erroneous outcome
- The player's gait will change depending on the guild they belong to
- Visiting the missing locations from the first Gothic installment, in the Valley of Mines, like Free Mine, inside of Xardas' sunken tower, orcish graveyard, orcish village, fog tower, and several others, is possible now
- Water mages use their own spells in case of trouble
- When training, only the actual value of training in the given attribute/weapon skill is taken into account; bonuses from stone tablets/elixirs/blessings/foods are considered "magical" and not recognized in the training formula, hence these items can be consumed right away; overall, that means having a much better "LP liquidity" in the long run; this change also terminated the infamous "+5 investment jump" exploit as well, because all values are now calculated in absolutes
- Zero cliche tropes like permanent Health bonus potions brewed from berries, cooking yourself a plethora of cuisines at cauldron, or all armors from Gothic Sequel that are in every other mod
- And much, much more!

In default, the newer versions of this mod are compatible with the saved games created using the older versions of this patch. If they would be not, it will be clearly expressed using BIG words.

This mod is NOT compatible with other patches that modify the game's script files, like the ancient IronKeep Community Patch, no matter its version, or mega modifications and total conversions, like any L'Hiver, Returning, or Odyssey. This is a collective work that successfully aims at superseding all "community" or "unofficial" English patches out there, so you only need this one.

THE INSTALLATION GUIDE WITH DOWNLOAD LINKS:

Spoiler
Look it up on WoG, because there's a characters limit on here.

THE FULL CHANGELOG:

Spoiler
Look it up on WoG, because there's a characters limit on here.

THE FAQ:

Spoiler
Look it up on WoG, because there's a characters limit on here.

THE CREDITS:

Spoiler
Look it up on WoG, because there's a characters limit on here.

15
Skrypty / Taran orków w Górniczej Dolinie i jego skrypty
« dnia: 2018-03-07, 16:49 »
Gdzie można edytować właściwości tego obiektu i jego okolic, tak aby orki nie głupiały w jego pobliżu?

To jest gdzieś w skryptach, czy to jakaś specjalna (mam nadzieję zdatna do edycji) strefa w pliku world GD? Nie mogę tego znaleźć.

16
Skrypty / [NK] Mechanika "podstępnego ataku" i BS_SNEAK
« dnia: 2018-03-04, 16:51 »
Jak w temacie. Na początek kod na funkcję "ciosu w plecy/kosę do snu":

Cytuj
func void CheckForBackstabDamage(var C_Npc oth,var C_Npc slf)
{
   if((Hlp_GetInstanceID(oth) == Hlp_GetInstanceID(hero)) && ((!Npc_CanSeeNpc(slf,oth) || Npc_IsInState(slf,ZS_Sleep)) && C_BodyStateContains(oth,BS_HIT) && (Npc_GetTalentSkill(oth,NPC_TALENT_SNEAK) == TRUE) && Npc_IsInFightMode(oth,FMODE_MELEE) && !Npc_IsInState(slf,ZS_Attack) && !Npc_IsInState(slf,ZS_MM_Attack)))
   {
      Backstab = oth.attribute[ATR_DEXTERITY] * 2;
      B_MagicHurtNpc(oth,slf,Backstab);
      PrintScreen("Sneak attack!",-1,40,FONT_Screen,2);
   }
   else
   {
      Backstab = 0;
   };
};

Funkcja jest sprawdzana w funkcjach B_AssessDamage (dla ludzi) i B_MM_AssessDamage (dla potworów) za pomocą CheckForBackstabDamage(other,self); przed funkcją na obrażenia od Szpona Beliara.

Zamierzeniem była weryfikacja ciosu w plecy gdy gracz się skrada (w składzie z pozostałymi warunkami we funkcji); niestety warunek (C_BodyStateContains(oth,BS_SNEAK) nie działa w takiej konfiguracji i musiałem zastąpić go posiadaniem samej umiejętności skradania; nie jest to zbyt komfortowym rozwiązaniem, gdyż atak na nieświadomego (czytaj: nie mającego gracza w polu widzenia) przeciwnika zawsze skutkuje tymi obrażeniami ekstra, a brak wyboru w tej kwestii jest nielogiczny. C_BodyStateContains nie wskazuje żeby cokolwiek kolidowało z wywoływaniem BS_SNEAK.

Czy ktoś wie co jest nie tak?

Strony: [1]
Do góry