Zadania (napis) 10198 36

O temacie

Autor Bogdan Zwei

Zaczęty 12.07.2012 roku

Wyświetleń 10198

Odpowiedzi 36

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.

Bogdan Zwei

Zadania (napis)
2012-07-12, 14:30(Ostatnia zmiana: 2012-07-12, 14:34)
Już od 32 godzin próbuję zrobić "jeśli zadanie zakończone sukcesem" {...}; i "jeżeli zadanie zakończone niepowodzeniem"{...}; a i tak nic nie działa. Próbowałem na pierdyliardy sposobów, ale i tak nic. Chodzi mi tutaj o LOG_FAILED i LOG_SUCCESS, chcę tylko to, co zapisałem wyżej. Bardzo proszę o jakąkolwiek pomoc i wskazówki.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
musisz zrobić dodatkową zmienną
var int zmienna;
i zapisać do niej

zamienna = LOG_FAILED lub
zamienna = LOG_SUCCESS
potem w if sprawdzasz

if (zamienna == LOG_SUCCESS)
Nie wiem co ci tyle czasu zajęło :lol2:

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Nie działa, robiłem to przed tym tematem.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Może coś innego źle robisz ? Bo to działa na 100 % więc może w złym momencie przypisujesz wartości. Na spokojnie ogarnij lub daj jakieś kody albo cuś :P

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.

Bogdan Zwei

Zadania (napis)
#4 2012-07-12, 16:08(Ostatnia zmiana: 2012-07-12, 16:09)
// **********
// B_LogEntry
// **********

func void B_LogEntry (var string topic, var string entry)
{
Log_AddEntry (topic, entry);

PrintScreen (PRINT_NewLogEntry, -1, YPOS_LOGENTRY, FONT_ScreenSmall, 2);
Snd_Play ("LogEntry");

var int q;
if (q == LOG_SUCCESS)
{
PrintScreen ("Tratata", -1, 84, FONT_ScreenSmall, 2);
};
};

Nie działa...

Ten usuńcie - double post.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Zadania (napis)
#5 2012-07-12, 16:55(Ostatnia zmiana: 2012-07-12, 16:57)
Lol, co ten kod ma według ciebie robić?
Tworzysz pustą zmienną i od razu sprawdzasz czy w tej zmiennej jest liczba "2". Ponieważ zmienna jest pusta, warunek nigdy nie będzie spełniony. Czego ty oczekujesz?


Pokaż miejsce gdzie ustawiasz stan misji i gdzie chcesz go sprawdzić, to ci dopiszę brakujący kawałek. Nie wklejaj zawartości oryginalnych funkcji, tylko tą którą ty tworzysz.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Przecież q NIE MA żadnej wartość !!!

i co ty chcesz zrobić jeśli q jest lokalną ?

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.

Bogdan Zwei

Zadania (napis)
#7 2012-07-12, 17:06(Ostatnia zmiana: 2012-07-12, 17:55)
Bo już mnie kurwica brała i po prostu to zignorowałem.

To co mam niby dać do Q? BTW., Ja chcę to do wszystkich dialogów.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
func void B_LogEntry (var string topic, var string entry, var int q)
{
        Log_AddEntry    (topic, entry);

        PrintScreen             (PRINT_NewLogEntry, -1, YPOS_LOGENTRY, FONT_ScreenSmall, 2);
        Snd_Play                ("LogEntry");

        if (q == LOG_SUCCESS)
        {
                PrintScreen             ("Tratata", -1, 84, FONT_ScreenSmall, 2);
        };
};

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Info: Wyskakuje błąd w linii 189 jak to zrobię tak jak mówisz.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis
Bo musisz z edytować wszystkie wpisy w dziennik w dialogach.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Zadania (napis)
#11 2012-07-12, 18:29(Ostatnia zmiana: 2012-07-12, 18:31)
Rafał, z tego co widzę dodajesz nowy argument w wykorzystywanej w oryginalnych skryptach funkcji. Nie można tak robić, trzeba by zmodyfikować wszystkie jej dotychczasowe wywołania.

Pokaż miejsce gdzie ustawiasz stan misji i gdzie chcesz go sprawdzić, to ci dopiszę brakujący kawałek. Nie wklejaj zawartości oryginalnych funkcji, tylko tą którą ty tworzysz.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Pokaż miejsce gdzie ustawiasz stan misji i gdzie chcesz go sprawdzić, to ci dopiszę brakujący kawałek. Nie wklejaj zawartości oryginalnych funkcji, tylko tą którą ty tworzysz.


No chcę to mieć jak już mówiłem w B_LogEntries żeby mi wyskakiwały powiadomienia jeśli jest misja zaliczona lub sfailowana. Ma to być do WSZYSTKICH misji.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis
Najłatwiej będzie tak jak Rafał napisał ale też będzie dużo roboty. Można by jakoś ikarusem pokombinować bo innej opcji nie widzę. Chyba sam zaraz nad tym usiądę i pomyślę.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.

Bogdan Zwei

Zadania (napis)
#14 2012-07-12, 19:13(Ostatnia zmiana: 2012-07-12, 19:14)
Lehona powiedział, że to się robi w B_LogEntry. Więc próbowałem już jakoś do 40 godzin i dalej nic...


Chyba, że spróbowałbym Frammer'em, ale wątpię, czy to zadziała. Raczej nie będzie system wiedział, o co chodzi.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy

Lehona

Zadania (napis)
#15 2012-07-12, 19:21(Ostatnia zmiana: 2012-07-12, 19:26)
Gothic offers the external Log_SetTopicStatus() but no Log_GetTopicStatus(). However, I've reverse engineered the corresponding machinecode and made a Log_GetTopicStatus().
func string zString_zString(var int charPtr) {
const int zString__zString = 4198592; //0x4010C0
CALL_PtrParam(charPtr);
var int strPtr; strPtr = MEM_Alloc(20);
CALL__thiscall(strPtr, zString__zString);
return CALL_RetValAszString();
};

func int LogManager_GetLogManager() {
const int LogManager__GetLogManager =6697840; //0x663370
CALL__cdecl(LogManager__GetLogManager);
return CALL_RetValAsInt();
};

func string std2z(var int ptr) {
return zString_zString(MEM_ReadInt(ptr+4));
};

func int Log_GetTopicStatus(var string name) {
var int logMan; logMan = LogManager_GetLogManager();
var int topic;
var int pos; pos = MEM_StackPos.position;
topic = MEM_ReadInt(logMan);
if (topic) {
// Compare 'name' and (next+4)=std::string=(next+4)+4
if (Str_Compare(name, std2z(topic+4))) {
logMan = MEM_ReadInt(logMan+4);
MEM_StackPos.position = pos;
} else {
return MEM_ReadInt(topic+24);
};
} else {
logMan = MEM_ReadInt(logMan+4);
if (logMan) {
MEM_StackPos.position = pos;
};
};
return -1;
};

This is probably what you need. Be careful, it works with Gothic 2 only. If someone needs it for Gothic 1, I can look it up.
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Zadania (napis)
#16 2012-07-12, 19:38(Ostatnia zmiana: 2012-07-12, 19:56)
We wszystkich skryptach zamień "Log_SetTopicStatus" na "Log_SetTopicStatus_2". Dodaj w skryptach (możliwie wcześnie) funkcję:
func void Log_SetTopicStatus_2 (var string missionName, var int newStatus)
{
var string message;
if (newStatus == LOG_SUCCESS) { message = "Misja zakończona powodzeniem!"; };
if (newStatus == LOG_FAILED) { message = "Misja niezaliczona!"; };

if (message)
{
// message = ConcatStrings("Zadanie: ", ConcatStrings (missionName, message)); //jak chcesz, odkomentuj
PrintScreen (message, -1, YPOS_LOGENTRY, FONT_ScreenSmall, 2);
};

Log_SetTopicStatus (missionName, newStatus);
};;
Kiedy jakaś misja się skończy, na ekranie wyświetli się komunikat z napisem jak się skończyła (np: zabijasz swojego zleceniodawcę, na ekranie pojawia się że zadanie które ci dał zostaje zakończone niepowodzeniem). O to ci chodziło?

Lehona, if I understood him properly, he wants something like this. When mission is complete, on the screen will be displayed message about how it finished. Even though, the function you wrote surely also will be helpful for someone :D

Lehona

Lehona

Użytkownicy
posty196
Propsy190
  • Użytkownicy

Lehona

Zadania (napis)
#17 2012-07-12, 19:43(Ostatnia zmiana: 2012-07-12, 19:44)
If Log_SetTopicStatus() is used before the last entry to a topic is made, both should work, but you're right - that is probably closer to what he wants :)
Someone else might need Log_GetTopicStatus() anyway :)
 
Unless specified otherwise, my posts are always about Gothic 2 Night of the Raven.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Dobra, to jak to teraz użyć? Bo jak to cisnę do Log_Entry to mi się wyłącza gothic i według Lehony nie wiem jak to użyć, no to się pyta...
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Zrób to co napisałem w swoim poście. Pozmieniaj wszędzie w skryptach (nie ręcznie, jakimś programem) "Log_SetTopicStatus" na "Log_SetTopicStatus_2" i dodaj np na końcu pliku B_LogEntry.d (najlepiej w innym, ale jak to dla ciebie za trudne, niech będzie w tym...) funkcję którą napisałem.


0 użytkowników i 2 gości przegląda ten wątek.
0 użytkowników
Do góry