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.


Wiadomości - Czarny133

Strony: [1]
1
Alt + Shift ani Shift + Ctrl nie działają. Ponadto w żadnym pliku .ini nie mogę znaleźć nic na ten temat. Zrobiłem eksperyment i zainstalowałem patch w osobnym folderze dzięki czemu wiem, że patch zmienia plik Gothic.exe i tworzy nowy plik Gothic2.exe.manifest a tak poza tym to nic więcej. Gothic.exe nie jestem w stanie zedytować a zawartość Gothic2.exe.manifest wygląda następująco:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity type="win32" name="Piranha-Bytes.Gothic2.Gothic" version="2.6.0.0" processorArchitecture="X86" />
    <description>Gothic II</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" />
        </dependentAssembly>
    </dependency>
</assembly>
Niestety nie łapię się w tym.

2
Witam.
Mam problem zaistniały po instalacji patcha do Gothica 2. Podczas wpisywania komend w konsoli F2 mam tzw. układ maszynistki (charakteryzuje się np. tym że zamiast wpisać Z wpisuję Y) a chciałbym go zmienić na układ programisty czyli na taki jaki występuje oryginalnie w polskiej wersji Gothica 2. Mógłbym prosić o odpowiedź jak jestem w stanie rozwiązać problem?

3
Skrypty / Czas w Gothic 2
« dnia: 2014-05-17, 12:33 »
Czy istnieje jakaś możliwość żeby czas w Gothicu 2 działał jak w rzeczywistości? O ile się nie mylę 1 minuta w grze to jakieś 5 sekund. Byłoby miło gdyby ktoś napisał w jakim pliku/plikach znajduje się cokolwiek co mogłoby mi pomóc zmienić upływ czasu w grze.

4
Skrypty / Zaklęcie wskrzeszenia
« dnia: 2013-07-23, 19:33 »
Witam, mam jeszcze jedno pytanko (a konkretnie dwa). W pliku Classes.d znalazłem to:

// Aktueller Npc und der SC
INSTANCE self,other (C_NPC);

// Opfer bei "witness"-Aktionen
INSTANCE victim(C_NPC);

// aktuelles Item
INSTANCE item(C_Item);

// Und der Player immer als globale Instanz
INSTANCE hero(C_NPC);

Chciałbym się dowiedzieć za co konkretnie odpowiada victim. Z tego co wiem to jest to chyba jakaś ofiara. Znalazłem to określenie jeszcze w kilku innych plikach np. w Externals.d

A po drugie to w pliku Constants.d znalazłem to:

const int TARGET_TYPE_ALL = 1;
const int TARGET_TYPE_ITEMS = 2;
const int TARGET_TYPE_NPCS = 4;
const int TARGET_TYPE_ORCS = 8;
const int TARGET_TYPE_HUMANS = 16;
const int TARGET_TYPE_UNDEAD = 32;

Nie dałoby się tu wpisać nowej wartości i jakoś jej zdefiniować? Skoro można ustawić czarowi działanie na itemach to czy nie dałoby się dorobić działania na trupach?

5
Skrypty / Zaklęcie wskrzeszenia
« dnia: 2013-07-23, 11:55 »
Nie pomogło. Ustawienie na działanie obszarowe też nie pomogło. Po prostu zaklęcia nie działają na martwych. Bez jakichś bardziej skomplikowanych skryptów się chyba nie obejdzie tak więc nie ma co liczyć na cud. Temat do zamknięcia.

Chciałbym jeszcze wiedzieć o co chodzi z tym SPELL_GOOD. Jeśli ktoś wie to mógłby się podzielić wiedzą.

6
Skrypty / Zaklęcie wskrzeszenia
« dnia: 2013-07-22, 20:27 »
Zapomniałem napisać, że chodzi o Gothic 2 NK. Do spella wpisałem:
targetCollectAlgo       =       TARGET_COLLECT_FOCUS;
targetCollectType       =       TARGET_TYPE_ALL;
Problem w tym że TARGER_TYPE_ALL nie sprawia, że można tego użyć na trupie. Trzeba widocznie gdzieś zrobić nowy warunek tylko problem w tym gdzie.

7
Skrypty / Zaklęcie wskrzeszenia
« dnia: 2013-07-22, 14:35 »
Śmierć nieumarłym to zwykłe zaklęcie bojowe, które w pliku C_CanNpcCollideWithSpell.d ma warunek działania tylko na nieumarłych. A co do zmniejszenia potwora to nie ma w nim nic co mógłbym wykorzystać. Mi chodzi o to żeby to zaklęcie mogło nacelować jakąś nieżyjącą osobę i żeby można go było na niej użyć i to tyle. Z resztą dam sobie radę.

8
Skrypty / Zaklęcie wskrzeszenia
« dnia: 2013-07-22, 13:51 »
Mam problem z tytułowym zaklęciem wskrzeszenia. Nie wiem dokładnie co zrobić żeby zaklęcie można było użyć na martwej osobie (tylko i wyłącznie). Jeśli ktoś zna jakiś sposób aby można było ustawić temu zaklęciu taką możliwość to byłbym wdzięczny o podanie chociaż jakiejś wskazówki.

Poza tym mam jeszcze jedno pytanie:
spelltype = SPELL_GOOD;Czym różni się SPELL_GOOD od SPELL_NEUTRAL albo SPELL_BAD?

9
Skrypty / Zmienny kurs sprzedaży
« dnia: 2013-05-29, 14:24 »
Przeniosłem tą funkcję do innego (nowego) pliku, który parsuje sie zaraz po Ikarusie. Potem w ZS_Talk dodałem wywoływacz ten funkcji i uruchomiłem grę. Gra się ładnie uruchomiła, zrobiłem nową grę i wszystko się wczytało (nawet filmiki się uruchomiły), ale tuż po tym wywaliło mi crasha. Wniosek jaki wyciągłem z analizy tego problemu jest taki, że adres dla G2NK jednak jest inny niż dla G1.

Oto screen crasha jeśli miałby się na coś przydać:


Próbowałem jeszcze zmieniać tą funkcję na różne sposoby, ale nic nie pomogło. Zostało mi chyba już tylko znalezienie prawidłowego adresu, ale to już mnie przerasta.

10
Skrypty / Zmienny kurs sprzedaży
« dnia: 2013-05-29, 12:19 »
Pokombinowałem trochę i oto wyniki:
W pliku Constants.d wyłączyłem tą linijkę:
//const float TRADE_VALUE_MULTIPLIER = 0.15;
A następnie korzystając ze strony, którą podał mi Avallach wkleiłem to:
//==================================================
// Trade_ChangeSellMultiplier
// ----
// - mul have to be zfloat value
// - function should be refreshed atleast every trade
//   for simplify you can add it in ZS_TALK
//==================================================
func void Trade_ChangeSellMultiplier(var int mul)
{
        var int ptr;
        ptr = MEMINT_oCInformationManager_Address;
        ptr = MEM_ReadInt(ptr+24);//oCInformationManager.dlgTrade
        ptr = MEM_ReadInt(ptr+260);     //dlgTrade.oCViewDialogItemContainer
        MEM_WriteInt(ptr+268,mul);//oCViewDialogItemContainer.Multiplier = mul
};
do pliku ZS_Talk.d

Efekt był taki, że kurs przybrał domyślną wartość (0.30)
Postanowiłem więc zamienić Trade_ChangeSellMultiplier na Trade_Value_Multiplier i efekt był taki, że wszystko co jest warte powyżej 0 sprzedaje się za 1 sztukę złota. Nie wiem czy to mimo wszystko jakiś krok naprzód czy zrobiłem coś źle, bo mimo wszystko jak już wspomniałem jestem jeszcze słaby w skryptach. Teraz nie wiem co dalej.

11
Skrypty / Zmienny kurs sprzedaży
« dnia: 2013-05-28, 16:59 »
Hm, w takim razie zostało mi trochę poczekać na zmianę systemu handlu bo jestem wciąż zbyt niedoświadczony żeby robić tak skomplikowane (dla mnie) rzeczy. Gdybym się kiedyś chciał tym zająć ponownie albo gdyby moje prace posunęły się do przodu to dam znać.
Pozdrawiam

12
Skrypty / Zmienny kurs sprzedaży
« dnia: 2013-05-28, 15:51 »
Trochę kombinowałem z tą wartością i w pliku Constants.d zamieniłem:
const float TRADE_VALUE_MULTIPLIER = 0.15;na
var float TRADE_VALUE_MULTIPLIER;
Potem w AI_Constants.d dodałem:
var int atr_rhetoric;

func void TRADE_RHETORIC()
{
if (Npc_GetTalentSkill(hero, NPC_TALENT_RHETORIC) == 0)
{
TRADE_VALUE_MULTIPLIER = 0.10;
};
if (Npc_GetTalentSkill(hero, NPC_TALENT_RHETORIC) == 1)
{
TRADE_VALUE_MULTIPLIER = 0.105;
};
if (Npc_GetTalentSkill(hero, NPC_TALENT_RHETORIC) == 2)
{
TRADE_VALUE_MULTIPLIER = 0.11;
};
if (Npc_GetTalentSkill(hero, NPC_TALENT_RHETORIC) == 3)
{
TRADE_VALUE_MULTIPLIER = 0.115;
};
if (Npc_GetTalentSkill(hero, NPC_TALENT_RHETORIC) == 4)
{
TRADE_VALUE_MULTIPLIER = 0.12;
};
if (Npc_GetTalentSkill(hero, NPC_TALENT_RHETORIC) == 5)
{
TRADE_VALUE_MULTIPLIER = 0.125;
};
        //i tak dalej, i tak dalej aż do:
if (Npc_GetTalentSkill(hero, NPC_TALENT_RHETORIC) == 100)
{
TRADE_VALUE_MULTIPLIER = 0.60;
};
};

Potem w Startup.d zmieniłem:
func void STARTUP_GLOBAL()
{
Game_InitGerman();
};

func void INIT_GLOBAL()
{
Game_InitGerman();
};
na
func void STARTUP_GLOBAL()
{
Game_InitGerman();
TRADE_RHETORIC();
};

func void INIT_GLOBAL()
{
Game_InitGerman();
TRADE_RHETORIC();
};

A następnie dodałem u nauczyciela retoryki taki dopisek (5 retoryki za 5 PN):
atr_rhetoric = atr_rhetoric+5;
Npc_SetTalentSkill (hero, NPC_TALENT_RHETORIC, atr_rhetoric);  

PrintScreen (Retoryka +5, - 1, - 1, FONT_Screen, 2);  
TRADE_RHETORIC();

Umiejętność retoryki zwiększa mi się o 5 i z tego co wiem wywołuje się funkcja TRADE_RHETORIC która powinna zaktualizować kurs sprzedaży ale kurs jest taki sam. Jedyna różnica którą zauważyłem to gdy dodałem wpisy do Startup.d to podczas uruchomienia nowej gry albo wczytania jakiegoś zapisu kurs zmienia się na 0.10 (bez tego wynosi 0.30).

Mógłbym prosić o kolejne rady albo wytknięcie mi błędów które zrobiłem? Zależy mi na tym zmiennym kursie i jeśli grzebanie w skryptach nie podziała to zostanie tylko ingerencja w silnik gry na czym się nie znam.

13
Skrypty / Zmienny kurs sprzedaży
« dnia: 2013-05-28, 09:01 »
Witam serdecznie wszystkich. Chciałbym zrobić w G2 kurs sprzedaży towarów zależny od retoryki (wprowadzonej przeze mnie umiejętności). Znalazłem w skryptach (konkretnie w Constants.d) tą linijkę:
const float TRADE_VALUE_MULTIPLIER = 0.15;Chciałem zamiast 0.15 umieścić tam zmienną rhetoric/200+0.10. Problem w tym, że const float umożliwia podanie tylko zwykłej liczby zmiennoprzecinkowej co jest niezgodne z tym co chciałem osiągnąć. Pytanie się nasuwa takie: czy istnieje jakiś sposób na obrobienie tej linijki tak bym osiągnął zamierzony cel? Albo czy istnieją jakieś inne pliki ze skryptami w których jest określony system handlu?
Nie jestem jakimś szczególnie uzdolnionym skrypterem, więc proszę o wyrozumiałość.

Strony: [1]
Do góry