示例#1
0
Float AddTrigger(Script * script)
{
	if (script->VerifyArguments(3) == true)
	{
		Word * targetWord = script->GetNextWord();
		Word * triggerWord = script->GetNextWord();
		Word * subscriptID = script->GetNextOriginalWord();

		Script * subscript = script->GetSubscript(subscriptID->value);
		SpellObject * source = (SpellObject *)script->GetSource();
		SpellObject * target = (SpellObject *)script->GetTarget(targetWord);

		if ((subscript != NULL) && (target != NULL) && (target->GetState() == true) && (triggerWord->type == TRIGGER))
		{
			Spell * spell = (Spell *)script->GetOriginalSource();
			if (spell->CheckType(OBJ_TYPE_SPELL) == true)
			{
				Script * newScript = new Script;
				newScript->LoadScript(subscript->GetScript(), source);

				target->AddTriggeredScript(triggerWord->value, newScript, spell);

				delete newScript;
				return false;
			}
		}
	}
	return false;
}