ITEM_SHIELD, Prints_ext, Unequip_item oraz wpisy do dziennika 5969 22

O temacie

Autor Siemekk

Zaczęty 2.02.2016 roku

Wyświetleń 5969

Odpowiedzi 22

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Witam. Otóż znowu męczę się z dwoma ostrzami... Problem nie dotyczy MDS (działa w 100% :D) ani animacji... tylko właśnie lewego miecza... Występują z nim dwa błędy... Pierwszy to, że gdy uruchomię sprint podczas animacji zakładania to lewy dual zostanie na plecach. Drugi problem - Dual zostaje w lewej ręce po pobiciu, śmierci czy innych tego typu sprawach... Wpadłem na pomysł (z pomocą Draksa) aby lewy dual zrobić jako ITEM_SHIELD a nie ITEM_CROSSBOW samą pozycję w animacji raz dwa przerobie tylko jest jeden problem... mianowicie to:
Spoiler
Na czerwono zaznaczyłem problem- Czyli prawy miecz jest to 2H. A jak wiadomo tarcze nie działają z 2H :/
Nie da się tego jakoś pominąć- próbowałem funkcją zakładania ale nic nie pomogło...
Drugi błąd jest to Prints_ext-funkcja z LeGo nie wiem dlaczego ale gdy ustawiłem ją przy eliksirach napis się powiela co wygląda tragicznie... (Po wypiciu drugiego eliksiru-oraz dzieje się tak tylko przy eliksirach stale zwiększających nasze statystyki)
Przykład:Zręczność + 3 = 43Zręczność +3 = 47itd..
Trzecia rzecz to zdejmowanie przedmiotu: Użyłem skryptu Splasha :
http://themodders.org/index.php?topic=21691.0 ale gdy nie znam umiejętności tarczy to ona dalej jest założona :/ wywoływałem to tak....
[s]
if (Poslugiwaniesietarcza==true){
}
//załącz mds
else{
//zdejmij mds
Unequip_Item(hero, tarczajakastam);
};[/s]
Skrypt wygląda inaczej ale najważniejsze rzeczy przedstawiłem :D
Ostatni problem to wpisy do dziennika:
Próbowałem zrobić to za pomocą tego skryptu Avallacha
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);
};
Ale niestety wyskakuje błąd o treści "Wrong type message "- nie wiem co jest grane....
Mam nadzieje że ktoś mógłby mi pomóc z tymi czterema aż problemami... Byłbym bardzo wdzięczny :)
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4208
Propsy3410
ProfesjaNierób
  • Moderator
Twój problem polega na tym, że dużo chcesz, a za mało wiesz. Popełniasz błędy nawet w tak błahych rzeczach,  jak umieszczanie w warunku zmienną zwracającą stringa. W warunkach umieszcza się tylko rzeczy zwracające inta, czyli wartość liczbową.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

inż. Avallach

inż. Avallach

Administrator
posty7662
Propsy5238
NagrodyV
ProfesjaProgramista
  • Administrator
Nie wiem co ćpałem jak to pisałem :F
Pisałem to z półtora roku po ostatniej styczności z tymi skryptami i nie pamiętałem już na co dokładnie pozwalał a na co nie. Nie było to całkiem chybione, po prostu pomyliłem z php gdzie można stosować takie referencje do stringów w kontekście boolowskim. Przykładowo ten kod PHP:
<?php
$kaka 
"asdasd";
$kaka2 "";
$kaka3;

if (
$kaka) echo 1;
if (
$kaka2) echo 2;
if (
$kaka3) echo 3;
if (
$kaka4) echo 4;
?>
Poprawnie się skompiluje i wypluje tylko "1".

Omawiana funkcja powinna wyglądać tak:
func void Log_SetTopicStatus_2 (var string missionName, var int newStatus)
{
var string message;
message = ConcatStrings ("Zadanie ", missionName);
if (newStatus == LOG_SUCCESS)
{
message = ConcatStrings(message, ": zakończone powodzeniem!");
}
else if (newStatus == LOG_FAILED)
{
message = ConcatStrings(message, ": niezaliczone!");
}

PrintScreen (message, -1, YPOS_LOGENTRY, FONT_ScreenSmall, 2);
Log_SetTopicStatus (missionName, newStatus);
};
Z tego co widzę w źródłowym wątku to miała ona dodatkowo wyświetlać na ekranie napis przy kończeniu misji.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Chwila, o co chodzi z dualami?

Pierwszy to, że gdy uruchomię sprint podczas animacji zakładania to lewy dual zostanie na plecach.

Dzieje się tak, bo nie masz ustawionego chowania podczas biegu.

Drugi problem - Dual zostaje w lewej ręce po pobiciu, śmierci czy innych tego typu sprawach...
Musisz zrobić funkcję, która będzie "kasowała" lewego duala podczas ZS_DEAD (Ikarus).

Trzecia rzecz to zdejmowanie przedmiotu: Użyłem skryptu Splasha :

ale gdy nie znam umiejętności tarczy to ona dalej jest założona :/ wywoływałem to tak....
if (Poslugiwaniesietarcza==true){
}
//załącz mds
else{
//zdejmij mds
Unequip_Item(hero, tarczajakastam);
};
Skrypt wygląda inaczej ale najważniejsze rzeczy przedstawiłem :D

Nie dziwię się. Masz to ustawione w warunku ZAŁOŻENIA tarczy. Musisz dać unequipItem jak założysz przedmiot, a warunek nie jest spełniany.
W sumie, dałoby radę zrobić to na podstawie, że jeśli nie spełniasz wymagań, to nie możesz nawet tego założyć. Możnaby np. ustawić wymóg siły na 999999 kiedy nie masz umiejętności, a jak się jej nauczysz to redukować do 0 lub chcianej wartości. Można to zapewne też zrobić jeszcze inaczej, tak jak z siłą, zręcznością i maną.

Drugi błąd jest to Prints_ext-funkcja z LeGo nie wiem dlaczego ale gdy ustawiłem ją przy eliksirach napis się powiela co wygląda tragicznie... (Po wypiciu drugiego eliksiru-oraz dzieje się tak tylko przy eliksirach stale zwiększających nasze statystyki)
Przykład:Zręczność + 3 = 43Zręczność +3 = 47itd..

Czy aby na pewno masz najnowszą wersję LeGo? Przed chwilą wyszukiwałem "Prints_ext" i nic nie znalazłem. Wiem, że kiedyś była dokładnie taka funkcja, ale teraz jej nie ma (lub po prostu złą nazwę podałeś).
Szukałem w nie tym katalogu.  :facepalm:

Ale teraz rzuciłem okiem i w sumie nie powinno być żadnych problemów. Uaktualnij LeGo.
Jeśli samo to PrintS(var string txt) też będzie powielało, to znaczy że masz starą wersję LeGo. Polecam uaktualniać stąd.
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Chwila, o co chodzi z dualami?

Pierwszy to, że gdy uruchomię sprint podczas animacji zakładania to lewy dual zostanie na plecach.

Dzieje się tak, bo nie masz ustawionego chowania podczas biegu.

Drugi problem - Dual zostaje w lewej ręce po pobiciu, śmierci czy innych tego typu sprawach...
Musisz zrobić funkcję, która będzie "kasowała" lewego duala podczas ZS_DEAD (Ikarus).

Trzecia rzecz to zdejmowanie przedmiotu: Użyłem skryptu Splasha :

ale gdy nie znam umiejętności tarczy to ona dalej jest założona :/ wywoływałem to tak....
if (Poslugiwaniesietarcza==true){
}
//załącz mds
else{
//zdejmij mds
Unequip_Item(hero, tarczajakastam);
};
Skrypt wygląda inaczej ale najważniejsze rzeczy przedstawiłem :D

Nie dziwię się. Masz to ustawione w warunku ZAŁOŻENIA tarczy. Musisz dać unequipItem jak założysz przedmiot, a warunek nie jest spełniany.
W sumie, dałoby radę zrobić to na podstawie, że jeśli nie spełniasz wymagań, to nie możesz nawet tego założyć. Możnaby np. ustawić wymóg siły na 999999 kiedy nie masz umiejętności, a jak się jej nauczysz to redukować do 0 lub chcianej wartości. Można to zapewne też zrobić jeszcze inaczej, tak jak z siłą, zręcznością i maną.

Drugi błąd jest to Prints_ext-funkcja z LeGo nie wiem dlaczego ale gdy ustawiłem ją przy eliksirach napis się powiela co wygląda tragicznie... (Po wypiciu drugiego eliksiru-oraz dzieje się tak tylko przy eliksirach stale zwiększających nasze statystyki)
Przykład:Zręczność + 3 = 43Zręczność +3 = 47itd..

Czy aby na pewno masz najnowszą wersję LeGo? Przed chwilą wyszukiwałem "Prints_ext" i nic nie znalazłem. Wiem, że kiedyś była dokładnie taka funkcja, ale teraz jej nie ma (lub po prostu złą nazwę podałeś).
Szukałem w nie tym katalogu.  :facepalm:

Ale teraz rzuciłem okiem i w sumie nie powinno być żadnych problemów. Uaktualnij LeGo.
Jeśli samo to PrintS(var string txt) też będzie powielało, to znaczy że masz starą wersję LeGo. Polecam uaktualniać stąd.

Tak więc... Lego mam najnowsze... (funkcja ta jest w pliku Interface :F).
Tarczę zrobiłem. Wpisałem    cond_atr[2]         =   TALENT_SHIELDUSER; - i odziwo działa xD
Duale... Nie jestem głupi aby nie dać tego w biegu... Filmik jak to wygląda...
https://youtu.be/qe4o_kcqP24Nie jest to doskonale pokazane, ale podczas sprintu broń chowa się i wyciąga dobrze... Błąd występuje tylko gdy wyciągnę broń i szybko wcisnę Shift-Sprint ... I właśnie dlatego chciałbym zrobić warunek założenia tarczy z 2h(Tarcza to dual :F)
Edit: Użyłem tej funkcji Avallach'a ale zadanie się nie kończy :/ Zawsze figuruje w dzienniku jako obecne ... Próbowałem przerobić plik B_CloseTopic ale bez skutku :/
Edit 2 :F : Zapomniałem dodać że gdy mam duale zrobione na kuszy to wtedy nie mogę nosić broni dystansowej ...
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Halicor

Halicor

Użytkownicy
Hauptsturmfuhrer
posty365
Propsy57
ProfesjaNierób
  • Użytkownicy
  • Hauptsturmfuhrer
Problem z tarczą rozwiązałem tak func void Equip_Shield_2()

{

if(self.HitChance[NPC_TALENT_1H] >= 60)

{
Mdl_ApplyOverlayMds(self,"SHIELD.MDS");
PrintScreen("Tekst 1",-1,YPOS_LevelUp,FONT_Screen,2);
}

    else
{
  PrintScreen("Tekst 2",-1,YPOS_LevelUp,FONT_Screen,2);
  AI_UnequipWeapons(self);
};
};

func void UnEquip_Shield_2()
{

Mdl_RemoveOverlayMds(self,"SHIELD.MDS");
};
Jest ustawione 1H ponieważ nie mam zrobionej jeszcze umięjętności posługiwania się tarczą  :lol:

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Nie jest to doskonale pokazane, ale podczas sprintu broń chowa się i wyciąga dobrze... Błąd występuje tylko gdy wyciągnę broń i szybko wcisnę Shift-Sprint ... I właśnie dlatego chciałbym zrobić warunek założenia tarczy z 2h(Tarcza to dual :F)

Masz ustawione w MDS żeby w tej samej klatce odkładał broń? Btw, to jest wina albo animacji, albo funkcji applyoverlay.

Chodzi tu o to, żeby dual był przekładany w tej samej klatce co przekłada się prawa broń (domyślnie dla broni jedno i dwu ręcznych klatka 5). Ale podejrzewam, że to wina Overlay'a.
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
U mnie jest to klatka 7 :F ale mniejsza z tym... Chodzi mi bardziej jednak o to aby ten dual był tarczą (wtedy by przekładał się w tej samej klatce i nie było by bugów) Nie wiem czy można zrobić funkcją Equip (jeżeli 2h założony to możesz założyć tą tarczę duala)- Nie jestem pewny więc prosiłbym o wypowiedź kogoś bardziej obeznanego.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Jest możliwe. Starczy przerobić silnik (nie wiem czy samym Ikarusem da radę, ale raczej tak). :F

Może spróbuj ustawić chowanie na klatkę 5 i zobacz czy dalej tak się dzieje.
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Take testowałem i dalej problem z Dualem występuje... Z tego co wiem to dual w Returningu 2.0 jest ustawiony na ITEM_THROW, jednak jest on nie widzialny... nie ma jakiegoś sposobu aby aktywować ITEM_THROW lub zrobić to na tarczy :/
A co do Tych zadań zadania się nie kończą (zawsze figurują jako OBECNE w dzienniku) Kiedyś pamiętam że grzebałem w funkcji B_CloseTopic, Wyświetlało Zadanie wykonane:JAKIEŚTAM, ale gdy zabiłem potwora to też pisało zadanie wykonane... Ktoś może mi pomóc z Tymi dwiema rzeczami byłbym bardzo wdzięczny :wstyd:
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
To może ustaw w MDSie sprintu przekładanie duala na odpowiednie miejsce. W końcu dual to tylko efekt wizualny.
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Sprint to osobny MDS Jeśli bym tak ustawił to zawsze kuszą by przechodziła... Wydaje mi się ze nastąpiło nieporozumienie ponieważ jeżeli sprintuje i wyciągam bronie to dual normalnie przechodzi... Problem nastaje gdy Podczas chowania/wyciągania duali i przerwania sprintu dual zostaje w ręce lub na plecach.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
To zrobisz inny MDS. Jeśli będzie założony dual to odpali odpowiedni MDS, jeśli nie to odpali zwyczajny.

Nie doszło do nieporozumienia. Wiem o czym 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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Ostatnio wróciłem do tych duali :F Udało mi się zrobić aby ITEM_THROW znów był widzialny  : D, ale dzieje się to samo(lewy Dual jest ściągany gdy założę prawy), zmieniłem const int ITEM_THROW= 1<<29;
na const int ITEM_THROW = 262147; (tak samo jest w r2.0 tej starej wersji, ale dual dalej się ściąga ).Ktoś wie co może dalej nie grać ??? (To nie jest zasługą AST w r2.0), Dodam też że w nowym patchu do r2.0 Dzieje się to samo... mimo iż skrypt wygląda identycznie.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Finciakowski

Finciakowski

Użytkownicy
posty80
Propsy3
ProfesjaSkrypter
  • Użytkownicy
Dałeś już rade? jak nie to spróbuj zmienić ten drugi miecz na dwu ręczną XD Mi pomogło wiem dziwne ale tak :fuckyeah:
 
Mod będze wyglądał gdzieś tak ^^

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
W sumie poradziłem sobie już ze wszystkim dawno ale zapomniałem powiedzieć. Wystarczyło zmienić ITEM_2h_SWD <--- Prawy dual na ITEM_DAG oraz zmienić adres ITEM_DAG + dodatkowo trzeba było wgrać SP 1.2 z R2.0 :F
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Nie wiedziałem, że w Gothic da się nosić miecz dwuręczny i jednoręczny jednocześnie. :o

Ja mam fajny pomysł na duale, jak będę miał czas to zrobię małą prezentację na forum.
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Nie wiedziałem, że w Gothic da się nosić miecz dwuręczny i jednoręczny jednocześnie. :o

Ja mam fajny pomysł na duale, jak będę miał czas to zrobię małą prezentację na forum.
Moje działają świetnie :F tylko animację przydało by się nowe ogarnąć xD Powodzenia czy życzę :) Zapewne że każdy 1h można założyć, lub tak jak zrobili twórcy AST
https://www.youtube.com/watch?v=iLDsiTvVXwA
PrintS_ext już też działa (bo wywaliłem to i dałem system powiadomień Orca :F )
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4208
Propsy3410
ProfesjaNierób
  • Moderator
Nie wiedziałem, że w Gothic da się nosić miecz dwuręczny i jednoręczny jednocześnie. :o
Wystarczy za pomocą HookEngine "zablokować" zdejmowanie broni.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Nie wiedziałem, że w Gothic da się nosić miecz dwuręczny i jednoręczny jednocześnie. :o
Wystarczy za pomocą HookEngine "zablokować" zdejmowanie broni.
Tak mnie dawno nurtuje jedno pytanie :F Czy samym hookiem da się odblokować oś Y w celowaniu? Bo przemieściłem kamerę nad ramię, wyłączyłem auto-aiming tylko oś Y i zrobienie celownika (+ w uj poprawek związanych z bugami :F) Pytam się bo nie wiem czy w ogóle jest to możliwe bez AST (celowanie jest w samej bibliotece patrzałem )
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.


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