Zaklęcie wskrzeszenia 11661 24

O temacie

Autor Czarny133

Zaczęty 22.07.2013 roku

Wyświetleń 11661

Odpowiedzi 24

Czarny133

Czarny133

Użytkownicy
posty13
  • Użytkownicy
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?
 

Wowoz

Wowoz

Użytkownicy
Wowoźny
posty3698
Propsy4862
NagrodyVV
Profesjabrak
  • Użytkownicy
  • Wowoźny
popatrz na czar zmniejszenie potwora, albo śmierć nieumarłym. Może tam będzie jakaś podpowiedź
 

Czarny133

Czarny133

Użytkownicy
posty13
  • Użytkownicy
Ś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ę.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Zaklęcie wskrzeszenia
#3 2013-07-22, 18:14(Ostatnia zmiana: 2013-07-22, 18:16)
Nie napisałeś która część gry, piszę dla g1:
\_Work\Data\Scripts\Content\MAGIC\spell_params.dZnajdujesz definicję danego C_Spella. Ustaw następujące parametry:targetCollectAlgo = TARGET_COLLECT_FOCUS;
targetCollectType = TARGET_TYPE_ALL;
Typy czarów o ile kojarzę są związane z tym jak npc na nie reagują (a przynajmniej tak chyba miało być, nie pamiętam jak jest w praktyce). Analogicznie jak w śmierci nieumarłym możesz ustawić warunek w C_CanNpcCollideWithSpell, to funkcja wywoływana już przez silnik.

Czarny133

Czarny133

Użytkownicy
posty13
  • Użytkownicy
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.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Zaklęcie wskrzeszenia
#5 2013-07-22, 21:37(Ostatnia zmiana: 2013-07-22, 21:53)
Jeśli nawet TARGET_TYPE_ALL nie pozwala, pozostaje jedynie ustawienie czaru na brak wspomagania celowania lub działanie obszarowe. Dodatkowy warunek może ograniczać możliwości, nie je rozszerzać.

Spróbuj z tym, ale nie mam pojęcia jaki będzie efekt, może być ciężko trafić (trzeba celować ręcznie).
targetCollectAlgo = TARGET_COLLECT_NONE;
targetCollectRange = 10; //10 metrów
targetCollectAzi = 0; // 0* w poz
targetCollectElev = 60; // 60* w pio

Czarny133

Czarny133

Użytkownicy
posty13
  • Użytkownicy
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ą.
 

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
W tym wypadku przydałoby się odwrócone działanie zaklęcia "Sen". Siedzi mi w głowie cały czas Y'Berion z G1 i powiem szczerze, że chyba sam zacznę coś z tym badziewiem kombinować ot tak, dla zaspokojenia ciekawości.
 


EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis
Ja bym to zrobił ikarusem, powiedzmy wyszukuje najbliższego voba z klasą npc dodaje mu parę hp i odgrywa jakąś animacje aby wstał. Kombinował bym może też z tym TARGET_COLLECT_FOCUS.
 

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Y#msg1093321Berion nie był martwy, po prostu uśpiony.
No właśnie o tym mówię. Działało na niego zaklęcie "Sen". A jakby tak w jakiś odwrócić jego działanie z wcześniejszym ingerowaniem w parę plików *.d, tak żeby dało się odespać NPC z HP = 0?
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Zaklęcie wskrzeszenia
#11 2013-07-23, 12:35(Ostatnia zmiana: 2013-07-23, 14:30)
TARGET_COLLECT_FOCUS sprawia że czar działa tylko i wyłącznie na focusowanego voba. Ogólnie, parametr targetCollectAlgo odpowiada za to na co ogólnie zadziała czar - czy na zaznaczonego voba, czy na gracza, czy na całe otoczenie, czy po prostu na to w co trafi jako pocisk itd. Także kombinowanie z "TARGET_COLLECT_FOCUS" nic ci nie przyniesie skoro nie jesteśmy w stanie zaznaczyć zmarłego.

Za to co możemy nacelować odpowiada targetCollectType. Jednak jak widać nawet TARGET_TYPE_ALL nie pozwala nacelować zmarłych (to bez sensu, ale musimy wierzyć na słowo Czarnemu), więc ustawienia targetCollectAlgo które uwzględniają zaznaczonego voba są tu bez sensu, a zwłaszcza "TARGET_COLLECT_FOCUS".

Kaczka, w ogóle nie zrozumiałem twojego zdania. Y'Berion nie był martwy ani przez moment. Cały czas miał więcej niż 0 hp. Żeby "wykorzystać" coś podobnego, trzeba by przerobić mechanizm umierania npc żeby zamiast tego tylko leżeli nieruchomo, ale to niewykonalne / bezsensowne.

//edit: no dobra, właściwie to jest wykonalne i ma sens. Pozwoliłoby do tego łatwo wprowadzić lootowanie wrogów jednym kliknięciem, bez używania Ikarusa. Wystarczyłoby nieco zmodyfikować zs_dead i nadpisać w nim perc_assesstalk :D

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Tak więc ssij ;p  Tak mnie to poruszyło, że nawet ja, który nie lubię babrać się w takim gównie, zacząłem kombinować ;d
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Wystarczyłoby nieco zmodyfikować zs_dead i nadpisać w nim perc_assesstalk :D


Nie wiem dlaczego ale ZS_dead nawet jak się mu doda Loop to wyłącza się po chwili. Próbowałem zrobić loop`a i po minięciu 60 sek teleportować umarłych zombie za mapę w moim zombie modzie i coś mi tam nie wychodziło nie wiem czy nie trzeba by zrobić jeszcze jednej rutyny która uruchamiała by się w ZS_dead tylko nie wiem co wtedy z otwieraniem EQ. Tak naprawdę to to co leży nie wygląda na NPC tylko na jakiś obiekt skrzynki z niestandardowym visualem. Tyle ze to się trochę kupy nie trzyma bo w zabitego możemy wejść klawiszem O.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Zaklęcie wskrzeszenia
#14 2013-07-23, 13:43(Ostatnia zmiana: 2013-07-23, 13:44)
Rafał, po prostu przy włączaniu ZS_Deada (lub w pierwszym przebiegu pętli), przełączać go na nasz nowy ZS_FakeDead ;p

Co do zbierania eq, to tak jak napisałem w poprzednim poście - przekierować w tym ZS'ie dotychczasowy perc_assesstalk na funkcje autoloota, która będzie przenosić wszystkie przedmioty z eq zabitego do bohatera oraz wyświetlać ich spis na ekranie.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Co do zbierania eq, to tak jak napisałem w poprzednim poście - przekierować w tym ZS#msg1093342ie dotychczasowy perc_assesstalk na funkcje autoloota, która będzie przenosić wszystkie przedmioty z eq zabitego do bohatera oraz wyświetlać ich spis na ekranie.

Ale to już nie będzie to samo co grzebanie w EQ :D  :P Chyba ze perc_assesstalk wywoływał by zmianę rutyny na normalnego ZS_dead :D  Ale to juz by było chyba przekombinowane ;d

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Póki by działało, to nic nie będzie przekombinowane ;p
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Zaklęcie wskrzeszenia
#17 2013-07-23, 14:29(Ostatnia zmiana: 2013-07-23, 14:31)
Właściwie mam lepszy pomysł. Przecież można by kreatywnie wykorzystać ZS_Uncoscious. To tryb w którym prawdopodobnie zarówno NPC dalej może być celem czarów, jak i w którym można lootować.
Można przerobić ZS_Dead na ustawiający jakiegoś aivara npc'a na true i przełączający go na ZS_Uncoscious. ZS_Uncoscious miałby nowy, alternatywny tryb, który byłby aktywny jeśli ta zmienna jest aktywna. Zamiast po jakimś czasie powodować wstawanie, powodowałby ustawianie hp na 0 i przełączenie na prawdziwy ZS_Dead (a ten, widząc że aivar już był na true, tym razem nie przełączałby z powrotem). A do tego czasu, wyświetlał npc jako martwego (hp powiedzmy 1/9999, animacja leżenia nieruchomo i "zaskoczony" wyraz twarzy).

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
"zaskoczony" wyraz twarzy
Zawsze myślałem, że mu się szyszka w dupsko wbiła i troche go to boli, więc ryja otwiera.
 

Czarny133

Czarny133

Użytkownicy
posty13
  • Użytkownicy
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?
 


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