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 - Splash

Strony: [1] 2
1
Materiały / InfoBoxy
« dnia: 2019-10-07, 15:04 »
Uszanowanko.

Jak zapewne wiecie, stworzona przez Piranha Bytes funkcja PrintScreen jest bardzo uboga i często spotykaliśmy się z sytuacją nakładających się na siebie informacji o otrzymanym doświadczeniu czy przedmiotach :facepalm: Natomiast oferowany przez LeGo system Print Soft jest taki se... Tak więc zrobiłem własny system wyświetlania wiadomości. Skrypt napisałem dość dawno, ale dopiero teraz trochę go doszlifowałem.


Skrypt jest bardzo łatwy w użyciu, ponieważ nie wymaga żadnej inicjalizacji (za wyjątkiem pakietów skryptowych), a niektóre właściwości można dowolnie konfigurować. W zależności od potrzeby wystarczy wywołać jedną z funkcji:
InfoBox_Create
InfoBox
AI_InfoBox

Jak to wygląda w praktyce:
https://www.youtube.com/watch?v=gQ9McwBiD5Q


Niestety YouTube mocno obciął jakość filmu skalując z 1050p do 720p xD

Skrypt:
Spoiler
const int InfoBox_PosX = 200; //pozycja X (0-8191)
const int InfoBox_PosY = 5000; //pozycja Y (0-8191)
const int InfoBox_SpaceBetweenBoxes = 30; //odstęp między oknami (0-8191)
const int InfoBox_DurationMS = 5000; //czas w milisekundach po jakim wiadomość ma zacząć zanikać
const int InfoBox_FadeInTimeMS = 500; //czas w milisekundach pojawiania się wiadomości (przejście poziomu kanału alfa z 0 do 255)
const int InfoBox_FadeOutTimeMS = 1000; //czas w milisekundach zanikania wiadomości
const int InfoBox_MoveXTimeMS = 500; //czas w milisekundach jaki ma zająć przesuwanie się okna w lewo do pozycji ustalonej w InfoBox_PosX
const int InfoBox_MoveYTimeMS = 400; //czas w milisekundach jaki ma zająć przesuwanie się okna w górę do pozycji ustalonej w InfoBox_PosY
const string InfoBox_DefaultTexture = "InfoBox.tga"; //domyślna tekstura

class CInfoBox {
    var int view;
    var int a8_duration;
    var int a8_movementX;
    var int a8_movementY;
    var int a8_alpha;
    var int bFadeOut;
    var int posY;
};

instance InfoBox@(CInfoBox);
var int InfoBox_CurrentSize;

func void InfoBox_Delete(var int hndl) {
    var CInfoBox InfoBox; InfoBox = get(hndl);
    View_Delete(InfoBox.view);
    delete(InfoBox.a8_duration);
    delete(InfoBox.a8_movementX);
    delete(InfoBox.a8_movementY);
    delete(InfoBox.a8_alpha);
    delete(hndl);
};

func void InfoBox_DeleteAll() {
    foreachHndl(InfoBox@, InfoBox_Delete);
};

func void InfoBox_A8PositionX(var int hndl, var int position) {
    var CInfoBox InfoBox; InfoBox = get(hndl);
    View_MoveTo(InfoBox.view, position, -1);
};

func void InfoBox_A8PositionY(var int hndl, var int position) {
    var CInfoBox InfoBox; InfoBox = get(hndl);
    var zCView view; view = View_Get(InfoBox.view);
    View_MoveTo(InfoBox.view, -1, position);

    if (view.vposy + view.vsizey <= 0) {
        InfoBox_Delete(hndl);
    };
};

func void InfoBox_A8Alpha(var int hndl, var int alpha) {
    var CInfoBox InfoBox; InfoBox = get(hndl);
    var zCView view; view = View_Get(InfoBox.view);
    view.alpha = alpha;
    view.fontColor = ChangeAlpha(view.fontColor, alpha);

    if (InfoBox.bFadeOut && !view.alpha) {
        InfoBox_Delete(hndl);
    };
};

func void InfoBox_A8Duration(var int hndl, var int duration) {
    var CInfoBox InfoBox; InfoBox = get(hndl);

    if (duration == InfoBox_DurationMS) {
        InfoBox.bFadeOut = true;
        Anim8(InfoBox.a8_alpha, 0, InfoBox_FadeOutTimeMS, A8_Constant);
    };
};

func void InfoBox_MoveUp(var int hndl) {
    var CInfoBox InfoBox; InfoBox = get(hndl);

    if (!Hlp_IsValidHandle(InfoBox.a8_movementY)) {
        InfoBox.a8_movementY = Anim8_NewExt(1, InfoBox_A8PositionY, hndl, false);
    };

    Anim8_RemoveIfEmpty(InfoBox.a8_movementY, true);
    var zCView view; view = View_Get(InfoBox.view);
    Anim8(InfoBox.a8_movementY, view.vposy, 0, A8_Constant);
    InfoBox.posY -= InfoBox_CurrentSize + InfoBox_SpaceBetweenBoxes;
    Anim8q(InfoBox.a8_movementY, InfoBox.posY, InfoBox_MoveYTimeMS, A8_SlowEnd);
};

func int InfoBox_GetLongestLineWidth(var string text, var string fontName, var int lines) {
    var int i; var string longest; longest = "";

    repeat(i, lines);
        var string str; str = STR_Split(text, "~", i);

        if (Print_GetStringWidth(str, fontName) > Print_GetStringWidth(longest, fontName)) {
            longest = str;
        };
    end;

    return Print_GetStringWidth(longest, fontName);
};

func int InfoBox_CenterTextLine(var int pixel, var int pixelSize) {
    return (1<<13>>1) - (Print_ToVirtual(pixel, pixelSize) / 2);
};

func int InfoBox_GetLongestLinePositionX(var zCView view) {
    var zCList list; list = _^(view.textLines_next);

    while(list.next);
        list = _^(list.next);
        var zCViewText t; t = _^(list.data);
        var int x;

        if (t.posx < x || !x) {
            x = t.posx;
        };
    end;

    return x;
};

func void InfoBox_AlignTextLines(var zCView view, var string fontName, var int bCenterLines) {
    var zCList list; list = _^(view.textLines_next);

    while(list.next);
        list = _^(list.next);
        var zCViewText t; t = _^(list.data);

        if (bCenterLines) {
            var int width; width = Print_GetStringWidth(t.text, fontName);
            t.posx = InfoBox_CenterTextLine(width, view.psizex);
        }
        else {
    t.posx = InfoBox_GetLongestLinePositionX(view);
        };

    end;
};

func void InfoBox_Create(var string text, var int bCenterLines, var string fontName, var int fontColor, var string textureName) {
    foreachHndl(InfoBox@, InfoBox_MoveUp);

    var int lines; lines = STR_SplitCount(text, "~");
    var int stringWidth; stringWidth = InfoBox_GetLongestLineWidth(text, fontName, lines);
    var int fontHeight; fontHeight = Print_GetFontHeight(fontName);
    var int x1; x1 = Print_ToPixel(InfoBox_PosX, PS_X);
    var int y1; y1 = Print_ToPixel(InfoBox_PosY, PS_Y);
    var int x2; x2 = x1 + stringWidth + (fontHeight * 2);
    var int y2; y2 = y1 + (fontHeight * 2 * lines);

    var int hndl; hndl = new(InfoBox@);
    var CInfoBox InfoBox; InfoBox = get(hndl);
    InfoBox.view = View_CreatePxl(x1, y1, x2, y2);
    View_SetTexture(InfoBox.view, textureName);
    var zCView view; view = View_Get(InfoBox.view);
    InfoBox.posY = view.vposy;
    InfoBox_CurrentSize = view.vsizey;

    var string firstLine; firstLine = STR_Split(text, "~", 0);
    var int width; width = Print_GetStringWidth(firstLine, fontName);
    var int xPos; xPos = InfoBox_CenterTextLine(width, view.psizex);
    var int posY; posY = InfoBox_CenterTextLine(fontHeight * lines, view.psizey);
    View_AddText(InfoBox.view, xPos, posY, text, fontName);
    InfoBox_AlignTextLines(view, fontName, bCenterLines);

    view.fontColor = fontColor;
    View_MoveTo(InfoBox.view, InfoBox_PosX + view.vsizex, -1);
    View_Open(InfoBox.view);

    InfoBox.a8_alpha = Anim8_NewExt(1, InfoBox_A8Alpha, hndl, false);
    Anim8q(InfoBox.a8_alpha, 255, InfoBox_FadeInTimeMS, A8_Constant);

    InfoBox.a8_movementX = Anim8_NewExt(1, InfoBox_A8PositionX, hndl, false);
    Anim8_RemoveIfEmpty(InfoBox.a8_movementX, true);
    Anim8(InfoBox.a8_movementX, view.vposx, 0, A8_Constant);
    Anim8q(InfoBox.a8_movementX, InfoBox_PosX, InfoBox_MoveXTimeMS, A8_SlowEnd);

    InfoBox.a8_duration = Anim8_NewExt(1, InfoBox_A8Duration, hndl, false);
    Anim8_RemoveIfEmpty(InfoBox.a8_duration, true);
    Anim8q(InfoBox.a8_duration, InfoBox_DurationMS, InfoBox_DurationMS, A8_Constant);
};

func void InfoBox(var string text, var int fontColor) {
    InfoBox_Create(text, true, FONT_ScreenSmall, fontColor, InfoBox_DefaultTexture);
};

func void AI_InfoBox(var string text, var int fontColor) {
    AI_Function_SI(hero, InfoBox, text, fontColor);
};

Tekstura tła:
https://drive.google.com/file/d/1lqFHvAWuWyVGCI8GXVtoHjCCn4XAgCzo/view

Parę informacji:
- Wiadomości które powędrują poza ekran są automatycznie usuwane (optymalizacja)
- Skoro skrypt udostępniam, to tak - macie pozwolenie na użycie go w swojej modyfiakcji
- Nie odpowiadam na pytania w stylu "Pokazuje mi się Unknown identifier. Co robić?"
- Skrypt nie podmienia oryginalnego systemu wiadomości. Musicie sami podmienić sobie w skryptach przypadki użycia funkcji PrintScreen, Print etc.
- Aby usunąć wszystkie info boxy, należy wywołać funkcję InfoBox_DeleteAll
- Co prawda nie testowałem tego w G1, ale nie widzę przeciwskazań w poprawnym działaniu

Aby dodać linijkę tekstu, należy w tekście zamieścić tyldę "~"
InfoBox("Pierwsza linijka~Druga linijka~Trzecia linijka", COL_White);


Dokładny opis użycia funkcji InfoBox_Create
InfoBox_Create(var string text, var int bCenterLines, var string fontName, var int fontColor, var string textureName)
- text - jak sama nazwa wskazuje, jest to po prostu tekst
- bCenterLines - czy linijki mają być wyśrodkowane (true lub false)
- fontName - nazwa czcionki
- fontColor - kolor czcionki w RGBA
- textureName - nazwa tekstury tła

Bez wyśrodkowanych linijek:


InfoBox_Create("Pierwsza linijka~Druga linijka~Trzecia linijka", false, FONT_ScreenSmall, COL_White, InfoBox_DefaultTexture);
PS. myślałem nad ustaleniem jakiejś stałej szerokości boxów by wyglądało to symetrycznie, ale obawiam się wyglądu pustki między tekstem a krawędziami tekstury, dlatego poczekam na wasz feedback.

2
Offtopic / Tureckie problemy
« dnia: 2018-01-27, 19:48 »

Królestwo theModders zjednoczone pod tureckim namiotem inżyniera Avallacha. Podczas długich lat swego panowania inżynier zdołał pokonać wszystkich swoich hejterów. Oprócz jednej grupy...
Wojna ze Szmykiem była niezwykle kosztowna, a cenę za nią miała ponieść niewielka grupa zbanowanych. Inżynier potrzebował propsów i warnów dla swoich moderatorów, toteż wkrótce każdy ukarany warnem niezależnie od występku jaki popełnił, zmuszony był do pracy w kradzieży propsów na dolnym forum. Aby uniemozliwić im ucieczkę, inżynier wysłał swych najlepszych moderatorów by ci otoczyli dolne forum antyhakerską barierą. A ja byłem jednym z nich...
Niespodziewanie coś zakłóciło delikatną strukturę kodu i... zostaliśmy zbanowani, przez nasze własne dzieło. Zbanowani wykorzystali moment konsternacji. TheModders, wraz ze wszystkimi propsami, znajdowały się teraz w rękach zbanowanych.
Inżynier nie miał wyboru. Musiał negocjować. Potrzebował propsów. Miesiąc po miesiącu inżynier dostarczał zbanowanym wszystkiego czego potrzebowali. Miesiąc po miesiącu otrzymywał od nich w zamian nowy ładunek cennych propsów. Aż do dziś... Na skraj shoutboxa sprowadzono kolejnego zbanowanego. Nie wiedział co go czeka, a to właśnie on miał wszystko odmienić.

- W imieniu jego wysokości, administratora inżyniera Avallacha, pana tureckiego namiotu, skazuję tego zbanowanego na...
- Stać! Użytkowniku, mam dla ciebie propozycję. Ten artwork musi dotrzeć do arcygrafika Kazzmira.
- Marnujesz czas!
- Sam wybierzesz sobie kartę graficzną. Kazzmir da ci tak głośną, jaką tylko zażądasz.
- Niech będzie, zaniosę tę wasz cenny artwork. Pod jednym warunkiem: oszczędźcie mi tej reszty paplaniny.
- Jak śmiesz!
- Ban!
- Dobra, zbanujcie go.




Ultra śmieszny temat nie powstałby gdyby nie współpraca z @WinterKing Kereth oraz @Sculler.

3
Narzędzia / Nowy Gothic Starter
« dnia: 2016-08-27, 18:13 »
Całkiem niedawno Gratt z rosyjskiego forum World of Players opublikował nowy starter modów do Gothica. Program jest prosty w obsłudze i zawiera podstawowe funkcje, jak odpalanie zSpy czy kompilowanie skryptów oraz parę dodatkowych funkcji.

Co nowego?
  • Szybkie zamknięcie procesu Gothic lub Spacera po wciśnięciu kombinacji klawiszy CTRL + ALT + Q (przydatne przy crashach)
  • Włączenie / wyłączenie limitu 60 klatek
  • Inicjowanie własnej biblioteki (dll=nazwa.dll w sekcji FILES)
  • Licznik spędzonego czasu w danym modzie
  • Języki, w tym także polski
  • Wyświetlanie miniatury moda

Program należy wrzucić do folderu System.
Link: http://worldofplayers.ru/threads/39340/

Widać, że język polski jest z translatora, ale przynajmniej pomyśleli o nas  :F  Skontaktuję się z Grattem i podeślę mu poprawne tłumaczenie.

4
Ukończone modyfikacje / [G½] Gothic DirectX 11 #2
« dnia: 2015-09-20, 13:40 »
To kontynuacja tematu [G½] Gothic DirectX 11 #1: http://themodders.org/index.php?topic=22920.980 .
Nowy został założony aby nie edytować ponad rocznego posta w celu aktualizacji linków.

Witam wszystkich zapalonych graczy Gothica oraz tych, którzy po prostu chcą sobie w niego zagrać. Powstało już wiele modów i nadal trochę ich powstaje, ale jak dotąd żadna nie oferuje tego, co ta. Kiedy zbrzydła ci już oprawa graficzna Gothica, a modyfikacje graficzne, jak Vurt's graphics overhaul, czy L'Hiver Edition ci nie wystarczają, z pomocą przychodzi ten oto mod. Kiedyś pracowano nad przepisaniem części silnika, by korzystał z DirectX 9, ale projekt porzucono. Parę lat później na niemieckim forum od tak sobie pojawił się człowiek, znany pod nickiem Degenerated. On postanowił pójść dalej i zamiast DirectX 9, postanowił zrobić tak, by Gothic korzystał z DirectX 11. Jak to wyglądało z początku, możecie znaleźć w pierwszych tematach moda na niemieckim forum. Obecna wersja zawiera trochę błędów i trzeba je akceptować, ale jest znacznie lepiej niż wcześniej.

Co oferuje modyfikacja:
- Dynamiczne cienie
- Zwiększona odległość rysowania
- HBAO+
- Odbicia na wodzie
- Normalmapping
- Dynamiczne światło
- Wegetacja
- Teselacja
- HDR
- Automatyczna aktualizacja modyfikacji
- Panel pozwalający zarządzać funkcjami modyfikacji (Klawisz F11 oraz Ctrl + F11)
- Bardziej realistyczny deszcz

Aktualny temat: https://forum.worldofplayers.de/forum/threads/1536863-D3D11-Renderer-f%C3%BCr-Gothic-I-und-Gothic-II-22

Aktualna wersja (X17.1):
Instalator
Instalacja ręczna

Normalmapy:
Oryginalne tekstury
Vurt's graphic overhaul
L'Hiver Edition

Jak ktoś chce pograć z tym w pierwszego Gothica, musi dodatkowo pobrać ten plik i go podmienić:
DOWNLOAD

Ręczna instalacja:
- Pobierasz najnowszą wersję modyfikacji, normalmapy do Gothicowych tekstur
- Jeśli posiadasz Vurt's lub L'Hiver Edition, pobierasz także normalmapy do używanego texturepacka
- Wklejasz wszystko do folderu system, który znajduje się w głównym folderze Gothica
- Normalmapy umieść w folderze system\GD3D11\textures\replacements

Jeśli pobrałeś normalmapy do texturepacka, najpierw umieść gothicowe tekstury, dopiero potem normalmapy do texturpacka.

Poradnik ręcznej instalacji:
https://www.youtube.com/watch?v=zutOLP-U8o8


UWAGA:
Teselacja jest przyczyną crashy.

SMAA jest przyczyną zdeformowań.

Do poprawnego funkcjonowania potrzebny jest system pack.

Do działania tej modyfikacji potrzebna jest gamingowa karta graficzna oraz system obsługujący (Windows 7 lub nowszy) DirectX 11, co jest chyba oczywiste. Dlatego posiadacze kart biurowych niech nawet nie próbują tego uruchomić, bo mogą się zawieść.

Jeśli komuś pojawi się błąd związany z plikiem MSCCP110.dll, należy pobrać i zainstalować to w wersji 32-bitowej (x86) niezależnie od systemu: https://www.microsoft.com/en-US/download/details.aspx?id=30679

System pack: http://themodders.org/index.php?topic=20751.0

I jeszcze jedno. Nie piszcie do mnie na PW z każdą pierdołą związaną z tym modem. Od tego jest temat. A jak ktoś napisze, że ma problemy z modem, a się okaże, że nie posiada karty lub systemu obsługującego DirectX 11, będę postulował o warna i usunięcia posta za głupotę i lenistwo.

Screeny:
Spoiler

















Screeny w wykonaniu Jurigaga ze starszej wersji: https://imageshack.us/a/VDHz/1

5
Archiwum / [G½] Gothic DirectX 11 #1
« dnia: 2014-09-04, 20:15 »
To jest temat archiwalny. Kolejna część: http://themodders.org/index.php?topic=25128

Tak jak nazwa tematu mówi, nasz kochany Gothiczek może mieć od teraz efekty graficzne, które oferuje DX11. Sporo się zmieniło. Obecna wersja nie przypomina już tej, którą dane nam było widzieć. Jest znacznie ładniejsza, bardziej zaawansowana i stabilniejsza :3 Błędy, które kiedyś były wrzodem na dupie (:F) już dawno zostały naprawione. Degenerated nadal pracuje nad modyfikacją i niedawno stworzył wersję działającą także w pierwszej części Gothica, którą można znaleźć na GitHubie.

Co oferuje modyfikacja:
- Dynamiczne cienie
- Zwiększona odległość rysowania
- HBAO+
- Odbicia na wodzie
- Normalmapping
- Dynamiczne światło
- Wegetacja
- Teselacja
- HDR
- Automatyczna aktualizacja modyfikacji
- Panel pozwalający zarządzać funkcjami modyfikacji (Klawisz F11)
- Bardziej realistyczny deszcz

Aktualny temat: http://forum.worldofplayers.de/forum/threads/1441897-D3D11-Renderer-f%C3%BCr-Gothic-2-%28alpha%29-15

Najnowsza wersja (X17.1): http://forum.worldofplayers.de/forum/threads/1438917-D3D11-Renderer-f%C3%BCr-Gothic-2-%28alpha%29-14?p=24468892&viewfull=1#post24468892

Większość postów jest w języku niemieckim, ale znajdują się tam też posty w języku angielskim i nikt nie zabrania ich pisania w tym właśnie języku, więc możecie tam śmiało dyskutować i zadawać pytania.

Ręczna instalacja:
- Pobierasz najnowszą wersję D3D11, normalmapy do Gothicowych tekstur
- Jeśli posiadasz texutepack Vurta lub L'Hiver Edition, pobierasz także normalmapy do używanego texturepacka
- Wklejasz wszystko do folderu system, który znajduje się w głównym folderze Gothica
- Normalmapy wypakowujesz i wklejasz do folderu system\GD3D11\textures\replacements

Jeśli ktoś nie potrafi samodzielnie tego zainstalować, ten film powinien bardzo pomóc. Może i po niemiecku, ale nie stanowi to problemu. Wystarczy robić to samo, co na filmie.
https://www.youtube.com/watch?v=BdTcofHsINQ


Normalmapy:
- Do oryginalnych tekstur http://www.gothic-dx11.de/download/replacements_dds.7z
- Vurts Graphics overhaul: http://www.gothic-dx11.de/download/replacements_vurt.zip
- L'Hiver Edition: http://www.gothic-dx11.de/download/Normalmaps_LHiver.zip

Niedawno pojawił się SweetFX, więc jeśli ktoś jest zainteresowany, może go wypróbować. Do jego funkcjonowania wymagany jest mod D3D11. SweetFX również można skonfigurować, ale niestety tylko w pliku konfiguracyjnym. Jak ktoś to ogarnia, to może mu wyjść z tego niezły efekt. Więcej w tym temacie: http://forum.worldofplayers.de/forum/threads/1434495-ReShade-SweetFX

UWAGA :
Zanim, ktoś spróbuje to odpalić u siebie, niech najpierw się upewni czy jego karta obsługuje DX11. Przypominam, że Windows XP nie obsługuje nawet DirectX 10, a odpalanie Gothica na Viście to samookaleczanie. Więc jeśli macie, któryś z tych systemów, to sobie odpuśćcie, serio.
Jeśli komuś wywali błąd o brakującej bibliotece MSVCP110.dll, należy pobrać ją w wersji 32-bitowej (x86) niezależnie od systemu. Plik ten należy umieścić w folderze System znajdującym się w folderze Gothica. Download: http://www.microsoft.com/de-de/download/details.aspx?id=30679
Jeśli komuś pojawi się błąd o brakującym pliku DLL, np. d3dx9_43.dll, wystarczy wejść ma stronę:
http://www.dll-files.com
Wystarczy wyszukać na niej brakującego pliku, a następnie go pobrać. Plik także należy umieścić w folderze System.

Nie jestem w stanie odpowiedzieć na wszystkie pytania, ponieważ obecnie nie jestem posiadaczem karty obsługującej DX11.


Mam nadzieję, że wyjaśniłem wszystko w miarę łopatologicznie.


Screeny :
Ze starszej wersji, gdzie np. niebo jest znacznie ciemniejsze lub bledsze niż obecnie













Promienie słoneczne (God rays)






Teselacja








Wegetacja





Screeny zrobione przez Jurigaga, na których można zobaczyć między innymi cienie, odbicia na wodzie i normalmapy: https://imageshack.us/a/VDHz/1 (są to screeny ze starszej wersji, gdzie niebo jest jeszcze ciemne)

Wideło:
https://www.youtube.com/watch?v=2B5BvBWJR7E

https://www.youtube.com/watch?v=8QgY6zbcIhY

https://www.youtube.com/watch?v=SdqXup3-CQQ

https://www.youtube.com/watch?v=Gv_KjOrjcAA

https://www.youtube.com/watch?v=zbX9u7fnRWY

https://www.youtube.com/watch?v=Ctuhg8ym-Hk


Do poprawnego funkcjonowania zaleca się zainstalowanie system pack autorstwa MaGotha.
http://themodders.org/index.php?topic=20751.msg1099563#msg1099563

Przed wgraniem system packa, należy zainstalować wersję raportową - 2.6 (fix)
POBIERZ

6
Sprzęt, oprogramowanie / Upierdliwy wirus na komputerze
« dnia: 2014-07-28, 20:17 »
Zacznę od samego początku jak to się zaczęło. Siedziałem na przeglądarce i zawiesił mi się komputer. Zrestartowałem go. Gdy pojawiło się logo Windowsa, ładowanie systemu wyglądało tak, że "pasek" ładowania (te 3 kropki na Windowsie XP), gdy dochodził do końca, zawieszał się na chwilę i potem szedł dalej. Za każdym razem tak się działo. Jednak, system się nie uruchomił. Pojawiał się wtedy bluecreen na ułamek sekundy po czym się restartował. I tak w kółko. Postanowiłem sformatować cały dysk C, by nie stracić ważnych rzeczy, które trzymałem na dysku D. Samo formatowanie, które powinno trwać maks. godzinę, trwało dobre 3 godziny (od 70 procent formatowanie trwało jakieś 2 godziny do 80 procent). W końcu udało mi się go jakoś sformatować i zainstalować system i dostać się do pulpitu. Początkowo wszystko wydawało się w porządku. Pierw chciałem ściągnąć przeglądarkę, ale Internet Explorer, który jest od zawsze, nie ładował stron. Ściągnąłem więc Operę z komputera mojego brata na pendrive'a i zainstalowałem. Internet działał wtedy bez problemu, więc postanowiłem ściągnąć kilka programów - WinRara, Flasha i Avasta. Żaden z tych programów  nie dał się zainstalować. Po uruchomieniu jakiejkolwiek instalki, pojawiał się jej proces i dochodził do 5 mb zużycia pamięci, po czym proces się zamykał i pojawiało się okno z raportem o błędach. Musiałem wyjść z domu, więc postanowiłem, że pokombinuję coś z tym jak wrócę. Gdy wróciłem, przeglądarki nie dało się uruchomić. Wirus sam zamykał proces. Szukałem jakichś porad na różnych forach, jednak oni tam pieprzą głupoty typu "masz oryginalnego Windowsa?", dlatego wolę was się poradzić. Znacie jakieś sposoby na pozbycie się tego upierdliwego wirusa? Czy usunięcie obu partycji (C i D) załatwi problem? System : Windows XP Home Edition. Wyczytałem, że to może być wirus Sality, więc ściągnąłem SalityKillera, jednak nic się nie zmieniło.

7
Ze względu na to, że Gothicowa funkcja EquipItem nie działa idealnie, postanowiłem napisać ją tak aby już nie mieć tego problemu. Wiem, wiem, każdy kto zna chociaż podstawy Ikarusa dałby radę taki skrypt napisać, ale tym, którzy jeszcze go nie ogarniają, ta funkcja może pomóc przy moddowaniu :D Funkcja działa tylko w Gothic 2 NK. Aby działała w Gothic 1 musicie zmienić adresy :ok:

Cytuj
func void Equip_Item(var C_NPC slf, var int Item)
{
    if (!Npc_HasItems (slf, Item))
    {
        CreateInvItems (slf, Item, 1);
    };

    CALL_PtrParam(MEM_InstToPtr(Item));
    CALL__thiscall(MEM_InstToPtr(slf), 7545792);
};

func void Unequip_Item(var C_NPC slf, var int Item)
{
    CALL_PtrParam(MEM_InstToPtr(Item));
    CALL__thiscall(MEM_InstToPtr(slf), 7546560);
};

8
Skrypty / Kolor światła zależny od pory dnia.
« dnia: 2014-03-06, 22:05 »
Na wstępie od razu mówię, że nie chodzi mi napisanie gotowej funkcji tylko o wskazanie właściwej w odpowiedniej klasie. Mój problem polega na tym, że chcę pobawić się kolorami światła zależnymi od pory dnia, bo uważam, że w nocy jest stanowczo za jasno. Nie jestem pewien, ale chyba wystarczy tylko pobawić się klasą zCSkyController, ale nie wiem, do której funkcji w tej klasie się odnieść. Próbowałem zmienić to edytując kolor słońca, ale to działa tylko wtedy, gdy się patrzy na słońce :lol2: Zabawa z mgłą też odpada, bo ona ogranicza widoczność.

9
Skrypty / Gothic 2 Adres
« dnia: 2013-11-25, 18:41 »
Mój problem polega na tym, że nie wiem jak przekształcić adres silnika na skryptowy (Ikarus). Tak więc jeśli ktoś może to niech powie jak to zrobić albo niech mi poda adres do
Cytuj
0074A590:    oCNpc::DropFromSlot

10
Skrypty / Trucizna nie zatruwa przeciwnika
« dnia: 2013-07-29, 16:13 »
Napisałem skrypt zatrutej strzały. Sam skrypt działa prawidłowo, ale tylko wtedy gdy w skrypcie odbierania dam hero. Skrypt jest wstawiony w triggerze i tu jest cały problem. Jak każdy wie trigger nie potrafi wybrać właściwego npc jeśli ustawię na self lub other. I teraz pora na oczywiste pytanie. Co trzeba zrobić aby po trafieniu strzałą przeciwnik został zatruty. Wpisanie instancji każdego npc nie wchodzi w grę  :lol2:  

Skrypty :

Trigger :
func void Poison_Func () {

if (poisoned == true)
{
poisontime = poisontime +1;
other.attribute[atr_hitpoints] -= 10;
};
if (poisontime == 10)
&& (poisoned == true)
{
poisontime = 0;
poisoned = false;
};
};

Trafienie strzałą :
func void B_PoisonMunition (var C_NPC oth, var C_NPC slf)
{

if (Hlp_GetInstanceID(oth) == Hlp_GetInstanceID(hero))
{
var C_ITEM ready;
ready = Npc_GetReadiedWeapon(hero);

if (Npc_HasItems(hero, ItRw_Bow_L_01) == TRUE && Hlp_IsItem(ready, ItRw_Bow_L_01) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_L_02) == TRUE && Hlp_IsItem(ready, ItRw_Bow_L_02) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_L_03) == TRUE && Hlp_IsItem(ready, ItRw_Bow_L_03) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_L_04) == TRUE && Hlp_IsItem(ready, ItRw_Bow_L_01) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_m_01) == TRUE && Hlp_IsItem(ready, ItRw_Bow_m_01) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_m_02) == TRUE && Hlp_IsItem(ready, ItRw_Bow_m_02) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_m_03) == TRUE && Hlp_IsItem(ready, ItRw_Bow_m_03) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_m_04) == TRUE && Hlp_IsItem(ready, ItRw_Bow_m_01) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_h_01) == TRUE && Hlp_IsItem(ready, ItRw_Bow_h_01) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_h_02) == TRUE && Hlp_IsItem(ready, ItRw_Bow_h_02) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_h_03) == TRUE && Hlp_IsItem(ready, ItRw_Bow_h_03) == TRUE)
|| (Npc_HasItems(hero, ItRw_Bow_h_04) == TRUE && Hlp_IsItem(ready, ItRw_Bow_h_01) == TRUE)
|| (Npc_HasItems(hero, ItRw_sld_bow) == TRUE && Hlp_IsItem(ready, ItRw_sld_bow) == TRUE)
|| (Npc_HasItems(hero, deathbringer) == TRUE && Hlp_IsItem(ready, deathbringer) == TRUE)
|| (Npc_HasItems(hero, fearbow) == TRUE && Hlp_IsItem(ready, fearbow) == TRUE)
|| (Npc_HasItems(hero, bow_arabic) == TRUE && Hlp_IsItem(ready, bow_arabic) == TRUE)
&& ((poisonarrow == true) || (poisonbolt == true))
{
poisoned = true;
poisontime = 0;
};
};
};

Edit :
Od razu mówię, że gdy wpiszę do funkcji trafienia funkcję trucizny odbierze hp tylko raz przy trafieniu.

11
Skrypty / Problem z monologiem
« dnia: 2013-07-05, 00:56 »
Opracowałem skrypt miecza runicznego z funkcją wkładania run. Funkcja wkładania run jest w monologu. Monolog wywołuje się po założeniu miecza. Ale gdy założę miecz i pojawi się monolog, to gdy chcę się położyć spać pojawiają się opcje spania i miecza runicznego  :D

12
Skrypty / Zdejmowanie broni po pobiciu
« dnia: 2013-05-08, 22:36 »
Nie będę się rozpisywać.
Który plik odpowiada w Gothic 2 za to, że gdy NPC zostanie pobity zdejmuje broń? Czy jest zaprogramowane w silniku?

13
Spacer / Śnieg pada zamiast deszczu
« dnia: 2013-05-01, 13:13 »
Mam problem z jednym z moich zenów. Z nieznanych przyczyn zamiast deszczu pada śnieg. Szukałem pomocy na forym, google i nic nie znalazłem. Nigdy mi się coś takiego nie stało w żadnym zenie, więc nie wiem jak to zrobić. Może mi ktoś powiedzieć jak to zmienić?

14
Pytania i problemy / [Gothic 1] Błąd z teksturami
« dnia: 2012-08-23, 16:07 »
Ostatnio zaczalem modowac sobie gothica 1 (narazie skryptowo). I dzisaj chcialem dodac pare modeli jedzenia z g2, dodalem bez problemow, potem dodalem teksure i gdy insertuje np mleko pojawia sie taki blad :
http://www.fotoski.pl/show.php/14274_error.JPG.html
Czy jedynym rozwiazaniem tego problemu jest spakowanie do paczki z modem?

15
Sprzęt, oprogramowanie / Sony Ericsson Live with Walkman
« dnia: 2012-06-24, 19:05 »
Witam wszystkich, wczoraj wieczorem umarł mój stary telefon, więc rozmyślam nad kupnem nowego. Pytałem się wielu osób jaki telefon by mi polecali. Z tych wszystkich co mi podali poszukałem na necie, ale żaden mnie nie zainteresował. Wczoraj przeglądałem telefony na jednej stronie i wszedłem na dział z sony erricsonami, czyli telefonami, których miałem najwięcej i znalazłem Live'a. Przeczytałem opinie na jego temat, ale nie było tam nic poza pierdołami typu "ostatnio sobie go kupiłem, ma wiele funkcji, polecam". Więc chcę zapytać Was jaka jest opinia nt. tego telefonu, czyli jak się na nim pracuje, czy się tnie, czy obudowa jest wytrzymała, czy menu jest ogarnięte itd.

16
Skrypty / Miecz runiczny z efektem odrzucenia
« dnia: 2012-05-14, 21:49 »
witam wszystkich
mam takie pytanie : czy da sie zrobic skrypt miecza runicznego z efektem odrzucenia bez uzycia ikarusa?

17
Pytania i problemy / Nazwa pliku w foramcie sgt
« dnia: 2012-05-11, 19:41 »
latwe pytanie : jak sie nazywa plik sgt, czyli muzyczka ktora gra w miejscu chaty cavalorna lub karczmy w nowym obozie?

18
Skrypty / Przedmiot z monologiem
« dnia: 2012-04-07, 21:07 »
chcialem sie pobawic z monologami, ale nie wiem co trzeba wpisac w funkcji przedmiotu, aby monolog mogl sie pojawic, a wiec prosze o wasza pomoc tylko z tym ^.^ z reszta dam sobie rade

edit : zapomnialem dodac, do g2 potrzebne

19
MDS i animacje / Potrzebna lekka zbroja najemnika
« dnia: 2012-03-11, 18:41 »
potrzebuje do gothic 2 lekkiej zbroi najemnika z gothic 1, bo nie mam gothic 1 na jakis czas
moze mi ktos wyciagnac i dac linka?

20
Spacer / Zmiana tla nieba
« dnia: 2012-03-10, 23:37 »
chce zmienic tlo nieba w pewnym zenie bez podmiany tekstur, ale nie wiem jak, czy mozna to zrobic spacerem, a jesli tak to jak?

Strony: [1] 2
Do góry