nie mogę uzyskać prawidłowych skryptów 3315 10

O temacie

Autor majaczek

Zaczęty 19.03.2010 roku

Wyświetleń 3315

Odpowiedzi 10

majaczek

majaczek

DreamVader
The Dreamer
posty404
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer
zarówno polskie skrypty z themodders, jak i zdekompilowane gothic.dat z polskiego g2nk nie chcą się kompilować
korzystam z gothic sourcer3.14

potrzebuję poprawnych skryptów z nocy kruka (PL), aby pewnym programem utworzyć tabelkę ru-pl
(wersję RU od akella posiadam od Dimmella i działa poprawnie przy kompilacji)

teoretycznie mógłbym użyć skryptów z błędami o ile polskie teksty były tam gdzie trzeba,
ale na wszelki wypadek chciałbym mieć źródło skryptów z g2nk całkowicie poprawne
 

fifka

fifka

DreamVader
posty563
Propsy50
ProfesjaTłumacz
  • DreamVader
polskie skrypty : pobierałem z poradnika by czip17


http://www.sendspace.pl/file/a452f976c9545ee011bbdc8
 
Naprawdę dokopałeś się do postów typa nieaktywnego na forum od 10 lat? Weź wyjdź z domu.


Vuler

Vuler

Użytkownicy
posty60
Propsy16
Profesjabrak
  • Użytkownicy
GothicSourcer ma swój własny parser który jest niezależny od tego wbudowanego w ZenGin i jest on dużo bardziej restrykcyjny. Większość błędów z tego co pamiętam to były problemy z wartością zwracaną z funkcji i były powodowane np tym, że osoba napisała funkcję z typem zwracanym int, podczas gdy w samej funkcji nie było użycia słowa kluczowego return. Swoją drogą to też przez dowolność jaką dali programiści z Piranii, bo pamiętam, że w dokumentacji z GMDK, przy okazji omawiania funkcji rutyny/dialogu (dokładnie nie pamiętam), mogła ona dodatkowo zwracać jakąś wartość (choć nie musiała), i właśnie przez tą dowolność występują błędy podczas kompilacji skryptów w GS. Błędy te trzeba samemu poprawić jeśli, chcemy używać parsera GSa.
 

majaczek

majaczek

DreamVader
The Dreamer
posty404
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer

majaczek
DreamVader

nie mogę uzyskać prawidłowych skryptów
#4 2010-03-20, 12:04(Ostatnia zmiana: 2010-03-20, 12:12)
samemu poprawić? to ma być wtedy
return;
czy
return cośtam;
? a jeśli coś to jaka jest domyślna?

poza tym w tamtych skryptach były dużo poważniejsze błędy niż te z brakiem zwracania
wypróbuję te co fifka napisał

EDIT:
błędy składniowe :)
Cytuj
slf.attribute[ATR_STRENGTH]       = 10;
slf jest nieszdefiniowane :P  - chyba powinno być self, ale takich błędów jest od groma
dobra postaram się wykorzystać to co mam (programik potrzebuje skryptów wwersji source więc powinien chwycić)

PS: jak kompilować skrypty ZEN-em poza katalogiem gothica?
 

Vuler

Vuler

Użytkownicy
posty60
Propsy16
Profesjabrak
  • Użytkownicy
return wartosc_zwracana;

Ale poprawianie tego ma tylko sens jeśli chcesz parsować skrypty za pomocą GS, poza tym trzeba wiedzieć też co zwrócić. Błędy można też poprawić na podstawie wersji rosyjskiej, jeśli jednak używasz do kompilacji skryptów Spacera to one nie mają znaczenia.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

nie mogę uzyskać prawidłowych skryptów
#6 2010-03-20, 12:22(Ostatnia zmiana: 2010-03-20, 12:23)
jak kompilować skrypty ZEN-em poza katalogiem gothica?
Muszą być w _work/data/scripts, tylko niekoniecznie w Content, można zrobić alternatywne podfoldery dla różnych projektów i wybierać które chcesz kompilować przez pliki ini.

majaczek

majaczek

DreamVader
The Dreamer
posty404
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer

majaczek
DreamVader

nie mogę uzyskać prawidłowych skryptów
#7 2010-03-20, 12:57(Ostatnia zmiana: 2010-03-20, 13:08)
jaka jest domyślna wartość zwracana? 0? 1?
jeśli w funkcjach bez return dopisze się na końcu return 0 to czy to coś zepsuje w grze?
jeśli nie to zamieszcze poprawione skrypty

PS: w paczce polskich skryptów były 3 błędy innego rodzaju niż brak zwracania
całe szczęście że były oczywiste do poprawy plus błędy slf zamiast self

EDIT: tu jest plik ze skryptami gdzie poprawiono te trzy błędy i dodano return 0; wszędzie gdzie funkcja nic nie zwracała a był czerwony napis że powinna, zamieniono wszystkie "slf." na "self." - i widać .że się kompiluje :)
http://www.przeklej.pl/plik/g2nkpl4-7z-000cjca237tb

EDIT2: ten plik zawiera tylko część dotyczącą gothic.dat. proszę o zamieszczenie go w temacie modding gothica/download/programy/polskie skrypty, bo każdy z tych trzech linków zawierał tą samą paczkę z tymi samymi błędami
 

Vuler

Vuler

Użytkownicy
posty60
Propsy16
Profesjabrak
  • Użytkownicy
jaka jest domyślna wartość zwracana? 0? 1?
jeśli w funkcjach bez return dopisze się na końcu return 0 to czy to coś zepsuje w grze?
jeśli nie to zamieszcze poprawione skrypty

Nie ma czegoś takiego jak domyślna wartości zwracana, jeśli w funkcji nie ma użytej instrukcji return a ma typ zwracany (np int) to nie można sobie dopisać czegokolwiek. Aby poprawić taką funkcję najpierw trzeba by było sprawdzić w skryptach czy funkcja jest używana jako taka od której się oczekuje zwrócenia wartości. Nawet jeśli poprawisz wszystko trzeba by było przetestować skrypty czy nie występują jakieś błędy spowodowane tymi zmianami,  na to trzeba mieć trochę czasu.
 


majaczek

majaczek

DreamVader
The Dreamer
posty404
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer
Jeśli od funkcji nie oczekuje się zwracania wartości i tego nie robi, najlepiej ustawić jej typ na void zamiast sztucznie zwracać null.

wszystkie funkcje które powinny zwracać wartość i podmieniłem na zwracanie 0 to były funkcje zwracające int
rozumiem że to jaka powinna być wartość zależy od tego jak jest wywoływana

część z nich zwracało wartość we wcześniejszych liniach tyle że nie było return  dla sytuacji która teoretycznie miała nie wystąpić, część z nich miała puste ciało funkcji

jeśli gdziekolwiek funkcja jest poproszona o wartość przy wywoływaniu a jej nie zwraca to musi tam być jakaś domyślna wartość (nie wiem... np 1 przy funkcjach na warunek dialogu?) niektóre języki w przypadku nie zwracania nic dają jakąś domyślną wartość zależnie od typu (hmm dla int najczęściej jest to zero)

rozumiem że moja poprawiona wersja może mieć więcej błędów wykonania :D
a z tym void to nie byłbym taki pewien - niektóre funkcje muszą zwracać int nawet jeśli się z tą wartością nic nie robi - ot kwestia składni dotycząca niektórych pól klas
 


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