Non-threaded

Forums » Advanced Editor Forum » Read Thread

Get help from the experts on variables, scripts, items, and other scary things.

Item scripting.

12 years ago

I'm writing a storygame that features the use of items as companions/followers/allies, and each one of them has a health variable attached. If each character's health variable drops to 0, that character dies (ITEMSTATE becomes 0). Basically, I wrote this into the global page:

IF %ITEM11 = 1 THEN
BEGIN
$ITEMSTATE11 := 1
END

IF %ITEM11 = 0 THEN
BEGIN
$ITEMSTATE11 := 0
END

IF %ITEM12 = 1 THEN
BEGIN
$ITEMSTATE12 := 1
END

IF %ITEM12 = 0 THEN
BEGIN
$ITEMSTATE12 := 0
END

IF %ITEM13 = 1 THEN
BEGIN
$ITEMSTATE13 := 1
END

IF %ITEM13 = 0 THEN
BEGIN
$ITEMSTATE13 := 0
END

IF %ITEM14 = 1 THEN
BEGIN
$ITEMSTATE14 := 1
END

IF %ITEM14 = 0 THEN
BEGIN
$ITEMSTATE14 := 0
END

IF %ITEM15 = 1 THEN
BEGIN
$ITEMSTATE15 := 1
END

IF %ITEM15 = 0 THEN
BEGIN
$ITEMSTATE15 := 0
END

IF %ITEM16 = 1 THEN
BEGIN
$ITEMSTATE16 := 1
END

IF %ITEM16 = 0 THEN
BEGIN
$ITEMSTATE16 := 0
END

IF %ITEM17 = 1 THEN
BEGIN
$ITEMSTATE17 := 1
END

IF %ITEM17 = 0 THEN
BEGIN
$ITEMSTATE17 := 0
END

IF %ITEM18 = 1 THEN
BEGIN
$ITEMSTATE18 := 1
END

IF %ITEM18 = 0 THEN
BEGIN
$ITEMSTATE18 := 0
END

IF %ITEM19 = 1 THEN
BEGIN
$ITEMSTATE19 := 1
END

IF %ITEM19 = 0 THEN
BEGIN
$ITEMSTATE19 := 0
END

IF %HEALTHORIT = 0 THEN
BEGIN
%ITEM11 := 0
END

IF %HEALTHBRUT = 0 THEN
BEGIN
%ITEM12 := 0
END

IF %HEALTHHAST = 0 THEN
BEGIN
%ITEM13 := 0
END

IF %HEALTHBRAD = 0 THEN
BEGIN
%ITEM14 := 0
END

IF %HEALTHHAST = 0 THEN
BEGIN
%ITEM15 := 0
END

IF %HEALTHCLAY = 0 THEN
BEGIN
%ITEM16 := 0
END

IF %HEALTHGOOG = 0 THEN
BEGIN
%ITEM17 := 0
END

IF %HEALTHKAST = 0 THEN
BEGIN
%ITEM18 := 0
END

IF %HEALTHSPAR = 0 THEN
BEGIN
%ITEM19 := 0
END

 

It works for adding the items (if I make %ITEM19 = 1 then $ITEMSTATE19 = 1 and that item is added), but not the other way around. Does anyone know how I could fix this, or does the editor simply not allow this?

Item scripting.

12 years ago

I can tell you from experience that it does work, but what you are not seeing is that when you use Scripting to reduce a Variable Value, It does not honor the set Minimum in the Variable List. So you can't use '= 0'; you have to use '< 1'

I have to go right now, but when I come back, I'll help further. There are a few more things that need to be just right to fully make it work :)

Item scripting.

12 years ago

And I'm back!

This also applies to any other variable reduction including Hit points and the like. I had one problem where the PC was doing negative Hit Points and actually adding HP to the monsters with every hit.

If you use any sort of damage reduction in your battles, then you'll want to put a check into them to eliminate negative values:

For example:

%DAMAGE := 1D6 - %ARMORSOAK
IF %DAMAGE < 1 THEN
  %DAMAGE := 0

%HITPOINTS := %HITPOINTS - %DAMAGE

Item scripting.

12 years ago

It worked, thanks for your help.

Item scripting.

12 years ago

This was just slightly over my head, but... it sounds awesome.