Zmiana bohatera w trakcie gry 4122 20

O temacie

Autor Darkmodders

Zaczęty 10.08.2017 roku

Wyświetleń 4122

Odpowiedzi 20

Darkmodders

Darkmodders

DarkModders Team
Mistrz mrocznych sztuk
posty827
Propsy283
ProfesjaProducent
  • DarkModders Team
  • Mistrz mrocznych sztuk
Witam.

Ostatnio próbuję coś ze skryptami Ikarus i chce, w trakcie gry, zmienić naszego głównego bohatera tz. nie zmienić teksture ale żebyśmy poruszali się inną postacią o innym instance. Chce to odpalić na frame function razem z innym skryptem. Otóż cały skrypt wygląda tak:

func void Beast_Dead ()
{
if (Npc_IsDead (BeliarBeast))
{
AI_Teleport (PC_Ronin, "TL_PART_03_03");
PlayVideo ("INTRO.BIK");


};
};
func void SetAsPlayer (PC_Hero)
{
    const int oCNpc__SetAsPlayer = 7612064;
    CALL__thiscall (MEM_InstToPtr (PC_Hero), oCNpc__SetAsPlayer);
};
func void Tick_125_TPS ()
{
SetAsPlayer();
Beast_Dead();
};

W linijce 11 wywala mi błąd Expected ')'. Co robię źle?
 
Blog grupy DarkModders Team.

http://darkmodders.pl/

Strona na facebook'u:

https://www.facebook.com/DarkModdersTeam/

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
Funkcja SetAsPlayer powinna mieć zadeklarowana zmienną w formie argumentu, a nie wpisaną instancję.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Darkmodders

Darkmodders

DarkModders Team
Mistrz mrocznych sztuk
posty827
Propsy283
ProfesjaProducent
  • DarkModders Team
  • Mistrz mrocznych sztuk

Darkmodders
DarkModders Team

Zmiana bohatera w trakcie gry
#2 2017-08-10, 17:50(Ostatnia zmiana: 2017-08-10, 18:14)
@Splash mógłbyś mi to jakoś zilustrować? Jestem w ikarusie zielony a każda wiedza się przyda.

Powstał drugi problem. Otóż, zaraz po tym jak się odpali intro i skończy się odtwarzać, wywala mi grę i wyskakuje access. Tu jest fotka z logu.



Post połączony: 2017-08-10, 18:14
@Splash zrobiłem tak jak trzeba ale dalej wywala błąd, w linijce 12 Expected ')', czyli w tym miejscu

func void SetAsPlayer (Bezi)
 
Blog grupy DarkModders Team.

http://darkmodders.pl/

Strona na facebook'u:

https://www.facebook.com/DarkModdersTeam/

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Ta funkcja zawsze wywala gdy wywoła się ją za pomocą FrameFunctions. Należy użyć tick tocka + napisać właściwe funkcje za pomocą Ikarusa.
 

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

Darkmodders

Darkmodders

DarkModders Team
Mistrz mrocznych sztuk
posty827
Propsy283
ProfesjaProducent
  • DarkModders Team
  • Mistrz mrocznych sztuk
@Siemekk czyli ten skrypt nie wystarczy?
 
Blog grupy DarkModders Team.

http://darkmodders.pl/

Strona na facebook'u:

https://www.facebook.com/DarkModdersTeam/

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Trzeba zrobić ticktock'a o dowolnym delayu, a potem napisać dobrze funkcje SetPlayer - jest ona w dokumentacji Ikarusa.
 

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

Darkmodders

Darkmodders

DarkModders Team
Mistrz mrocznych sztuk
posty827
Propsy283
ProfesjaProducent
  • DarkModders Team
  • Mistrz mrocznych sztuk
Dobra, wszystko działa nie wywala żadnego błędu ale po zmianie bohatera stary zostaje a ja steruje jakąś niewidzialną postacią, choć przypisałem do tej funkcji Bezimiennego.

Tak wygląda teraz skrypt:

func void SetAsPlayer (var C_Npc Bezi)
{
if (Npc_IsDead (BeliarBeast))
&& (Video_End == TRUE)
&& (Player == FALSE)
{
    const int oCNpc__SetAsPlayer = 7612064;
    CALL__thiscall (MEM_InstToPtr (Bezi), oCNpc__SetAsPlayer);
Player = TRUE;
};
};

A tak za argumentowałem Beziego w NPC_Globals:

var C_NPC Bezi;Bezi = Hlp_GetNpc(PC_Hero);
 
Blog grupy DarkModders Team.

http://darkmodders.pl/

Strona na facebook'u:

https://www.facebook.com/DarkModdersTeam/

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Czy NPC Bezi jest w świecie? Oraz jaki jest dystans pomiędzy głównym bohaterem a bezim?
 

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

Darkmodders

Darkmodders

DarkModders Team
Mistrz mrocznych sztuk
posty827
Propsy283
ProfesjaProducent
  • DarkModders Team
  • Mistrz mrocznych sztuk
Jednak kicha, fatal error.
Nie wiem czy jest sens się z tym bawić. Widzę, że za dużo z tym kombinowania :/
 
Blog grupy DarkModders Team.

http://darkmodders.pl/

Strona na facebook'u:

https://www.facebook.com/DarkModdersTeam/

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
Ta funkcja zawsze wywala gdy wywoła się ją za pomocą FrameFunctions. Należy użyć tick tocka + napisać właściwe funkcje za pomocą Ikarusa.
Nie tylko ta. Wiele funkcji wywoływanych przez FrameFunctions powoduje crash. Jest to spowodowane przez funkcję, która jest hookowana do działania FF.
 
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
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Pętla w AST używa tego samego adresu co FF z LeGo, ale nie wywala przy tym adresie.
if(KeyClick(KEY_R))
if(player->GetFocusNpc())
player->GetFocusNpc()->SetAsPlayer();
Z tego co mi się wydaje coś może być  z HookEngines, ale nie chcę się w to bawić - używam AST gdyż ma większe możliwości.
 

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

Darkmodders

Darkmodders

DarkModders Team
Mistrz mrocznych sztuk
posty827
Propsy283
ProfesjaProducent
  • DarkModders Team
  • Mistrz mrocznych sztuk
A nie można tego odpalić np. przez dialog z postacią? Próbowałem z tick_tockami ale triggery mi nie działają i to dalej nic nie daje. Stoję w martwym punkcie, jak na razie :(
 
Blog grupy DarkModders Team.

http://darkmodders.pl/

Strona na facebook'u:

https://www.facebook.com/DarkModdersTeam/

Mikotsune

Mikotsune

Czas Honoru
posty364
Propsy288
Profesjabrak
  • Czas Honoru

Mikotsune
Czas Honoru

Zmiana bohatera w trakcie gry
#12 2017-08-11, 11:54(Ostatnia zmiana: 2017-08-11, 12:01)
W modyfikacji "W Poszukiwaniu Skarbów" jest zmiana bohatera po wybraniu opcji dialogowej. Wypakuj moda i sprawdź jak to zostało zrobione.

Nie lepiej będzie przenieść wszystkie przedmioty bohatera do skrzyni i zmienić mu tekstury oraz model głowy?
Albo dodać nowego npc, który wygląda jak bohater i jemu dać te przedmioty?

Czemu nie chcesz zmieniać tekstur, tylko sterować inną postacią?
 
How can I see roses... and only feel thorns...

Darkmodders

Darkmodders

DarkModders Team
Mistrz mrocznych sztuk
posty827
Propsy283
ProfesjaProducent
  • DarkModders Team
  • Mistrz mrocznych sztuk
No niby, to też jakieś wyjście jest. Może i nawet prostsze niż to wcześniejsze.
Tylko tak, musiałbym zmienić nie tylko teksture ale i atrybuty i usunąć wszystko co postać posiadała w ekwipunku
 
Blog grupy DarkModders Team.

http://darkmodders.pl/

Strona na facebook'u:

https://www.facebook.com/DarkModdersTeam/

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
Cytuj
A nie można tego odpalić np. przez dialog z postacią?
Można. Przecież dialogi to też wywoływanie funkcji w ustalonej kolejności.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Darkmodders

Darkmodders

DarkModders Team
Mistrz mrocznych sztuk
posty827
Propsy283
ProfesjaProducent
  • DarkModders Team
  • Mistrz mrocznych sztuk

Darkmodders
DarkModders Team

Zmiana bohatera w trakcie gry
#15 2017-08-11, 13:13(Ostatnia zmiana: 2017-08-11, 13:19)
Zrobiłem już jak to polecił kolega @Młody ścierwojad
Dzięki za wszystkie rady :)

Post połączony: 2017-08-11, 13:19
Jaka jest komenda odpowiadająca za ściągnięcie wybranej broni u bohatera? Po zwykłym NPC_RemoveItems broń zostaje przypisana do bohatera ale nie ma jej w ekwipunku
 
Blog grupy DarkModders Team.

http://darkmodders.pl/

Strona na facebook'u:

https://www.facebook.com/DarkModdersTeam/

Mikotsune

Mikotsune

Czas Honoru
posty364
Propsy288
Profesjabrak
  • Czas Honoru
Nie ma komendy na ściąganie przedmiotu (Chyba XD) Ktoś napisał funkcję do Ikarusa, która ściąga lub zakłada przedmioty - musisz poszukać na forum. Jest w grze funkcja, która zakłada przedmioty, ale gdy będziesz chciał założyć w ten sposób miecz, to będziesz bił pięściami, mimo iż będziesz miał założony miecz w ekwipunku.

Removeitems usuwa przedmioty z ekwipunku, a nie ściąga.

Możesz usunąć i dodać swoją broń do ekwipunku, w ten sposób ją ściągniesz:
var int ILOSC; ILOSC = Npc_HasItems(NPC,INSTANCE) - Nie wiem, czy po usunięciu przedmiotu, usunie najpierw miecz, który masz na plecach, czy obok niego z ekwipunku. To w razie, gdybyś miał kilka takich samych broni.

Npc_RemoveInvItems(NPC,INSTANCE,ILOSC)
CreateInvItems(NPC,INSTANCE,ILOSC)
 
How can I see roses... and only feel thorns...

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
Jest tylko funkcja odpowiedzialna za zdjęcie wszystkich broni:
AI_UnequipWeapons (VAR C_NPC self)
Jak chcesz zdjąć konkretną broń, trzeba użyć Ikarusa:
func void Unequip_Item(var C_NPC slf, var int ItemInst)
{
    CALL_PtrParam(MEM_InstToPtr(ItemInst));
    CALL__thiscall(MEM_InstToPtr(slf), 7546560);
};
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Darkmodders

Darkmodders

DarkModders Team
Mistrz mrocznych sztuk
posty827
Propsy283
ProfesjaProducent
  • DarkModders Team
  • Mistrz mrocznych sztuk

Darkmodders
DarkModders Team

Zmiana bohatera w trakcie gry
#18 2017-08-11, 15:43(Ostatnia zmiana: 2017-08-11, 17:14)
I ta jedna funkcja w szczególności wystarczy. Dzięki panowie :)

Post połączony: 2017-08-11, 17:14
@Splash walka w stylu żółtodzioba z jakiego mdsa korzysta? HumanS_1hST1.mds to sytl walki wojownika
 
Blog grupy DarkModders Team.

http://darkmodders.pl/

Strona na facebook'u:

https://www.facebook.com/DarkModdersTeam/

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Korzysta z mdsa automtycznego HUMANS.MDS
Czyli musisz zdjąć humans_1hst1 i st2 funkcja RemoveOverlayMds
 


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