The Black Wyrm Lair Forums
The Black Wyrm's Lair Terms of Use Help Search Members Calendar

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> er...FakeEffectExpiryCheck(O:Object*,I:Ticks*), How does it work?
lijing_hi
post Apr 8 2006, 05:14 AM
Post #1





Forum Member
Posts: 14
Joined: 17-February 06




I've used it in my script, and use a 150000 as the second parameter. But it doesn't work in game...I've tried other numbers, but the same.

How could I make it work? Or it's broken?

This post has been edited by lijing_hi: Apr 8 2006, 05:15 AM
Go to the top of the page
 
Quote Post
igi
post Apr 8 2006, 09:53 AM
Post #2


IESDP Guardian


Forum Member
Posts: 175
Joined: 22-July 04




It worked fine for me when I tested it to figure out what it should be doing.


--------------------
Go to the top of the page
 
Quote Post
lijing_hi
post Apr 8 2006, 11:05 AM
Post #3





Forum Member
Posts: 14
Joined: 17-February 06




But why it doesn't work for me...

Could you please tell me how to use it correctly?
Go to the top of the page
 
Quote Post
igi
post Apr 8 2006, 11:27 AM
Post #4


IESDP Guardian


Forum Member
Posts: 175
Joined: 22-July 04




There's not much I can say:
The action obviously goes in a script, which has to be assigned to some something. The first parameter specifies an object, the second a time.


--------------------
Go to the top of the page
 
Quote Post
lijing_hi
post Apr 8 2006, 11:56 AM
Post #5





Forum Member
Posts: 14
Joined: 17-February 06




er...I thought I could use it to remove all effects from PC...

Just like this:

IF
IsOverMe([ANYONE])
THEN
RESPONSE #100
FakeEffectExpiryCheck(LastTrigger,150000)
END

Is there something wrong?
Go to the top of the page
 
Quote Post
Avenger_teambg
post Apr 8 2006, 08:59 PM
Post #6





Forum Member
Posts: 78
Joined: 13-July 05




It removes effects that have a duration remaining less than the time specified.
It won't remove permanent or 'white equipped' effects.
At least, that's what it supposed to do.
I'm not sure IsOverMe sets LastTrigger, try Entered


--------------------
See GemRB !
Go to the top of the page
 
Quote Post
lijing_hi
post Apr 9 2006, 03:40 AM
Post #7





Forum Member
Posts: 14
Joined: 17-February 06




I've tried, but the same...

IsOverMe() does set a LastTrigger, I've tested it. And Entered() has a problem; if two creature enter the region the same time, there is only one could be returned. This's not what I want...

Use the block posted above I've made a test like this:
At first, one charater casted haste. Then, another with the effect haste moved to the trigger region. But nothing happened. If I use some spell just like dispel instead of that action, it does work with effect haste removed. So I dont know what's wrong with it...
Go to the top of the page
 
Quote Post
Avenger_teambg
post Apr 10 2006, 07:01 AM
Post #8





Forum Member
Posts: 78
Joined: 13-July 05




Well, if it is a dispel magic trap, then you better apply a strong dispel effect anyway.
Like the one in the beholder blast.

I'll test this action later, but considering how it supposed to work, it is more like a 'local time anomaly' than a dispelling effect.


--------------------
See GemRB !
Go to the top of the page
 
Quote Post
devSin
post Apr 10 2006, 08:34 AM
Post #9





Forum Member
Posts: 53
Joined: 22-March 05




I briefly tested it back when I went through all the actions. It worked, although there was a noticeable delay before the effects actually expired.

If the number really is AI updates, you might just try a bigger number.
Go to the top of the page
 
Quote Post
lijing_hi
post Apr 10 2006, 04:18 PM
Post #10





Forum Member
Posts: 14
Joined: 17-February 06




Delay? Hmm...I'll try more.

The number, I've tried 1500000, the same. But I didn't notice there is a delay...I'll try it.
Go to the top of the page
 
Quote Post
devSin
post Apr 10 2006, 06:08 PM
Post #11





Forum Member
Posts: 53
Joined: 22-March 05




The delay would be very small (a second or less). It's "noticeable" simply because it isn't immediate; if it didn't work, it's not going to work.

I'm fairly certain IsOverMe() sets LastTrigger (otherwise, there'd be no way to reference the object returned). Have you tried just testing with different objects (e.g., Player1 or "Imoen") to see if even that works? The action is only used once in the default scripts (that I know of), so it wouldn't be surprising if it wasn't fully functional.

If you just want it to dispel, you could use one of the special dispel spells (I think FORCE_DISPEL_MAGIC or DISPEL_NO_SAVE), or create your own.
Go to the top of the page
 
Quote Post
Avenger_teambg
post Apr 10 2006, 08:06 PM
Post #12





Forum Member
Posts: 78
Joined: 13-July 05




QUOTE(devSin @ Apr 10 2006, 06:08 PM)
The delay would be very small (a second or less). It's "noticeable" simply because it isn't immediate; if it didn't work, it's not going to work.

I'm fairly certain IsOverMe() sets LastTrigger (otherwise, there'd be no way to reference the object returned). Have you tried just testing with different objects (e.g., Player1 or "Imoen") to see if even that works? The action is only used once in the default scripts (that I know of), so it wouldn't be surprising if it wasn't fully functional.

If you just want it to dispel, you could use one of the special dispel spells (I think FORCE_DISPEL_MAGIC or DISPEL_NO_SAVE), or create your own.

Well, it could be that isoverme changes lastrigger, but it is not true it is required.
Like:

If
isoverme("imoen")
then
response #100
displaystringhead("imoen", "blah")
end


--------------------
See GemRB !
Go to the top of the page
 
Quote Post
devSin
post Apr 10 2006, 10:37 PM
Post #13





Forum Member
Posts: 53
Joined: 22-March 05




Don't cheat. Of course it isn't required (inasmuch as it isn't required for any other trigger that sets LastTrigger).

IF
Entered("Imoen")
THEN
RESPONSE #100
Kill("Imoen")
END

Entered() must not set LastTrigger either! :P
Go to the top of the page
 
Quote Post
lijing_hi
post Apr 16 2006, 02:09 AM
Post #14





Forum Member
Posts: 14
Joined: 17-February 06




Well, I give up...

I've tried such a block:

IF
OR(2)
Entered(Player1)
IsOverMe(Player1)
THEN
RESPONSE #100
// ForceSpellPointRES("TR0002B",[989.579])
DisplayStringHead(Player1,6365)
FakeEffectExpiryCheck(Player1,150000000)
END

(Well, "TR0002B" is a strong dispel spell my own. )
When Player1 entered the trigger region, sting 6365 displayed, that's the only difference...
The action doesn't work for me, at least doesn't work for me as my wish...
Go to the top of the page
 
Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:



- Lo-Fi Version Time is now: 19th May 2024 - 04:21 AM