Page 1 of 2

OPRAVENO - Stěna ohně

Posted: 23:49 13. Mar 2014
by Nalkanar
Wall of fire
http://nwn.wikia.com/wiki/Wall_of_fire
- úprava - zranění 15d6, kdo neuspěje v hodu na reflex je navíc na 1 kolo sražen

Testováno v aréně, soupeř neuspěl v obouch záchrannách a přesto nebyl sražen.
Potvory to dnes sráželo celkem normálně.

Re: Stěna ohně

Posted: 11:08 14. Mar 2014
by pavad
Nalkanar wrote:
Wall of fire
http://nwn.wikia.com/wiki/Wall_of_fire
- úprava - zranění 15d6, kdo neuspěje v hodu na reflex je navíc na 1 kolo sražen

Testováno v aréně, soupeř neuspěl v obouch záchrannách a přesto nebyl sražen.
Potvory to dnes sráželo celkem normálně.
Opraveno v pristim update.

Re: Stěna ohně

Posted: 22:50 18. Mar 2014
by Nalkanar
Update pro pavada:
Ozkoušeno, stále při neúspěchu nesráží, při úspěchu sráží.

Re: Stěna ohně

Posted: 00:52 19. Mar 2014
by sandoftime
Nalkanar wrote:Update pro pavada:
Ozkoušeno, stále při neúspěchu nesráží, při úspěchu sráží.
to je snad v pořádku ne?

Re: Stěna ohně

Posted: 00:55 19. Mar 2014
by KaTo
sandoftime wrote:
Nalkanar wrote:Update pro pavada:
Ozkoušeno, stále při neúspěchu hodu na sražení nesráží, při úspěchu hodu na sražení sráží.
to je snad v pořádku ne?
Viz edit Nalkova příspěvku výše.

Re: Stěna ohně

Posted: 01:02 19. Mar 2014
by pavad
Nalkanar wrote:Update pro pavada:
Ozkoušeno, stále při neúspěchu nesráží, při úspěchu sráží.
Opravil jsem tu podminku - lec stale jsem neprisel na duvod proc nekdy neni souper srazen (i kdyz by mel byt).

Prosim, pokud opet PC nebude srazeno kdyz byt ma - ozvete se mi.

Re: Stěna ohně

Posted: 01:13 19. Mar 2014
by Myrpa
A opravuješ správnej script?
není to spíš sp_wallfire?
(spells.2da r.191)

Re: Stěna ohně

Posted: 01:14 19. Mar 2014
by Mourisson1
Vzhledem k tomu že se mezi opravama něco mění, tak zřejmě jo :D

Re: Stěna ohně

Posted: 01:21 19. Mar 2014
by Myrpa

Code: Select all

// * Used to route the saving throws through this function to check for spell countering by a saving throw.
//   Returns: 0 if the saving throw roll failed
//   Returns: 1 if the saving throw roll succeeded
//   Returns: 2 if the target was immune to the save type specified
//   Note: If used within an Area of Effect Object Script (On Enter, OnExit, OnHeartbeat), you MUST pass
//   GetAreaOfEffectCreator() into oSaveVersus!!    \
int MySavingThrow(int nSavingThrow, object oTarget, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus = OBJECT_SELF, float fDelay = 0.0);
A co ta Note? V tom scriptu necháváš oSaveVersus OBJECT_SELF.

Re: Stěna ohně

Posted: 01:41 19. Mar 2014
by Shaman88
Myrpa wrote:

Code: Select all

// * Used to route the saving throws through this function to check for spell countering by a saving throw.
//   Returns: 0 if the saving throw roll failed
//   Returns: 1 if the saving throw roll succeeded
//   Returns: 2 if the target was immune to the save type specified
//   Note: If used within an Area of Effect Object Script (On Enter, OnExit, OnHeartbeat), you MUST pass
//   GetAreaOfEffectCreator() into oSaveVersus!!    \
int MySavingThrow(int nSavingThrow, object oTarget, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus = OBJECT_SELF, float fDelay = 0.0);
A co ta Note? V tom scriptu necháváš oSaveVersus OBJECT_SELF.
Jo to by tam mělo být, aby fungovaly bonusy ze spell focusu.

Re: Stěna ohně

Posted: 01:45 19. Mar 2014
by Myrpa
Ještěže nedělám spelly! Ta fce vrací FALSE, když je target immuní a hod se neprovádí, 0, když failne a 1, když savne!!! To jsou fakt moc pěkně napsané metody. Zas budu tři dny údivem koktat.

Edit: čímžpádem tam musí být kontrola přímo proti nule.
Chjo, že jsem nešel spát dřív a díval se na to, teď nebudu spát.

Re: Stěna ohně

Posted: 08:15 19. Mar 2014
by pavad
Shaman88 wrote:
Myrpa wrote:

Code: Select all

// * Used to route the saving throws through this function to check for spell countering by a saving throw.
//   Returns: 0 if the saving throw roll failed
//   Returns: 1 if the saving throw roll succeeded
//   Returns: 2 if the target was immune to the save type specified
//   Note: If used within an Area of Effect Object Script (On Enter, OnExit, OnHeartbeat), you MUST pass
//   GetAreaOfEffectCreator() into oSaveVersus!!    \
int MySavingThrow(int nSavingThrow, object oTarget, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus = OBJECT_SELF, float fDelay = 0.0);
A co ta Note? V tom scriptu necháváš oSaveVersus OBJECT_SELF.
Jo to by tam mělo být, aby fungovaly bonusy ze spell focusu.
Ten popis co fce vraci neni platny. Fce nikdy nevraci 2 - viz nwn lexikon.

Jinak ke stene ohne jsou rovnou 3 skripty. Jeden ktery se vola kdyz se kouzlo kouzli, ktery vytvori AoE, dalsi dva jsou zavesene na heartbeat a kontroluji zda nekdo vchazi anebo opousti AoE.

Dal jsem podminku primo na FALSE.

Cimzto se omlouvam hracum, lec snaha otestovat skript sam, regulernim zpusobem na test serveru, nebyla uspesna (*).

(*) Zkousel jsem vcera tohle testovat v testovacim modulu urcenem pro testserver. Lec po desitkach minut otevirani, par rychlych upravach skriptu a nasledne po 25 minutach skladani modulu dohromady mi nwntoolset vyhodil error a spadnul. Takze hodina a pul snahy v mistech kde slunce nesviti. :/

Re: Stěna ohně

Posted: 08:18 19. Mar 2014
by pavad
Myrpa wrote:A opravuješ správnej script?
není to spíš sp_wallfire?
(spells.2da r.191)
Viz vyse - neni. To je skript co vytvori AoE. Spravny skript (na pobyt v AoE) je "nw_s0_wallfirec.nss".

Nomenklaturni pozn: NwN ty skripty typicky pojmenovava "jmeno_hlavniho_skriptu.nss" a pro ten check na AoE pouziva nazvy "jmeno_hlavniho_skriptuA.nss" a "jmeno_hlavniho_skriptuB.nss", ale nekdy dojde k prenosu A->B, B->C. Verim, Myrpo, ze se Ti po precteni teto poznamky koktani samym ulekem vytrati. :D Jestli ne, mam par dalsich speku ze sekce spell-scripts. :mrgreen:

Re: Stěna ohně

Posted: 09:03 19. Mar 2014
by Myrpa
Není porovnání s FALSE blbě? Ta fce MySavingThrow je přetížená a vrací FALSE a 0 pro dva různé protichůdné případy. FALSE pro immune, 0 pro fail.

Re: Stěna ohně

Posted: 09:17 19. Mar 2014
by pavad
Myrpa wrote:Není porovnání s FALSE blbě? Ta fce MySavingThrow je přetížená a vrací FALSE a 0 pro dva různé protichůdné případy. FALSE pro immune, 0 pro fail.
Oni to FALSE pro immune omlouvaji objasnenim, ze je to schvalne - protoze pokud je cil immuni, tak jej stejne nejde srazit, takze se proste (nwn logika) pusti pracny skript ktery na konci narazi na prekazku totalni imunity - a tim skonci (ne, optimalizaci nehledej).

Edit: POdle toho co ja vim, tak promenna FALSE by mela byt inherentne rovna nule, nebo uz mam vidiny? Dam tam porovnani s nulou, pro jistotu...