Simple Horse System (SHS)

I’ve implemented this system successfully a few years ago
, but seem to be having a hard time now.

How do I do this: Modify the module’s item activation script to use the “UseHorseSummoningStone(object oPC, object oItem)” function from “inc_simplehorse” (after checking if it is a horse summoning stone with “GetIsItemHorseSummoningStone(object oItem)”); if the module uses tag-based scripting, make scripts with that function call named “it_horsestone01”, “it_horsestone02”, “it_horsestone03” and “it_horsestone04”.

Either way works for me. I just need it to work. I get compile errors both way. I know it’s probably something simple that I’m overlooking.

https://neverwintervault.org/project/nwnee/script/simple-horse-system-shs

This is one of the things I’ve tried on the module activate script:

  if (GetIsItemHorseSummoningStone(object oItem));
     UseHorseSummoningStone(object oPC, object oItem);

I’m not really a scripter but can usually figure things out and get by.

ERROR: UNKNOWN STATE IN COMPILER

It is hard to tell from your question and examples: the Module OnActivate object script needs to find the user and the object used before you can ask it to use the script you are calling.

#include "inc_simplehorse"
void main()
{
object oItem = GetItemActivated();
object oPC = GetItemActivator();
  if (GetIsItemHorseSummoningStone(oItem))//Edited out the error - sorry!
     UseHorseSummoningStone(oPC, oItem);
}

It won’t compile either in the on activate script or as a separate script that I can execute from the on activate script.

“if condition cannot be followed by a null statement”

You need to take out the “;” on the “if” statement. It should just be

if (GetIsItemHorseSummoningStone(oItem))
     UseHorseSummoningStone(oPC, oItem);
1 Like

It compiled. Awesome. Thank you!