ďťż
OnHitCastSpell


Bo człowiek głupi jest tak bez przyczyny

Mam takie pytanie: W jaki sposob wywolac jakis skrypt za pomocą wlasciwosci przedmiotu "Rzuca zaklęcie po trafieniu: Unikalna wlasciwosc"?


W NWN1 można było zmodyfikować skrypt x2_s3_onhitcast.
Jest on odpalany przy każdym trafieniu bronią z taką właściwością (oraz trafieniu w zbroję z taką właściwością).
Nie wiem jak to jest zrobione w NWN2 i nie mam jak w tej chwili sprawdzić.
Prawdopodobnie nic się w tej kwestii nie zmieniło.

Jednak, jak to jest napisane na początku skryptu:

Widzę ze ktoś mnie ubiegł
Cytat// * Generic Item Script Execution Code
// * If MODULE_SWITCH_EXECUTE_TAGBASED_SCRIPTS is set to TRUE on the module,
// * it will execute a script that has the same name as the item's tag
// * inside this script you can manage scripts for all events by checking against
// * GetUserDefinedItemEventNumber(). See x2_it_example.nss

Mam w tym skrypcie takie cos. Tworze miecz o tagu "wpn_test1" i skrypt o takiej samej nazwie zawierający:

void main()
{
object oPC = OBJECT_SELF;
object oSpellTarget = GetSpellTargetObject();
object oItem = GetSpellCastItem();

SendMessageToPC(oPC, "HIT!");

}

i nie działa. wtf? Czy ma jakiś związek z tym to, ze wyprobowuję ta bron na placeable'u?
Miecz ma odpowiednie właściwości.

Na forum bioware'u znalazlem ze ktoś cos spieprzył i ze trzeba przed nazwa skryptu dodać jeszcze "i_". W ten sposób to wciąż nie działa.


Wydaje mi się, że wpisujesz wszystko nie do tego skryptu, co trzeba.
Ewentualnie, patrząc z drugiej strony, uzywasz nieodpowiedniej własciwości broni.

Ten system "Tag Based Scripting" działa tak samo, jak umieszczenie odpowiedniego wywołania skryptu w zdarzeniu OnActivateItem.
A więc skrypt "wpn_test1" będzie się uruchamiał, jesli przypiszesz do przedmiotu z tagiem "wpn_test1" jedną z dwóch własciwości:
-"Rzuacanie zaklęcia: unikalna moc"
-"Rzucanie zaklęcia: unikalna moc, jedynie na sobie",
a następnie użyjesz jej, wybierając z menu kontekstowego dla przedmiotu.
W ten sposób były robione różnego rodzaju różdżki DM, czy inne przedmioty, posiadające "Unikalną moc".

Jeśli natomiast chcesz, żeby skrypt wyzwalał się przy trafieniu bronią lub przy trafieniu w zbroję, musisz skorzystać z tego, co napisałem wcześniej.
Czyli wpisać porządane zachowanie do x2_s3_onhitcast i uzyć właściwości "Rzuca czar przy trafieniu: unikalna moc (przy trafieniu)", lub też stworzyć własne zaklęcie w taki sposób, jak napisałem i użyć właściwości "Rzuca czar przy trafieniu: <nowe, własne zaklęcie>".

Mam nadzieję, że nic nie pokręciłem i że okazałem się pomocny.
Thx, dziala, wrzucilem do x2_s3_onhitcast linijkę:

ExecuteScript("oh_"+GetTag(oItem), OBJECT_SELF);

i zmienilem nazwe na oh_wpn_test1.

Bryka
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • latwa-kasiora.pev.pl