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
Darmowy hosting zapewnia PRV.PL