Pastebin

New pastes are no longer accepted · Stats

Latest Pastes

wiseman-as

/* $Id$
 * EOSERV is released under the zlib license.
 * See LICENSE.txt for more info.
 */

const int WISEMAN_NPC_ID = 166;

void karma_menu(Character &character, int param)
{
	Dialog @dialog = new Dialog("Karma Quest");
	dialog.AddText("What shall i do to your karma?");
	dialog.AddLink("Take 10 Karma", "do_karma", -10);
	dialog.AddLink("Take 100 Karma", "do_karma", -100);
	dialog.AddLink("Give 10 Karma", "do_karma", 10);
	dialog.AddLink("Give 100 Karma", "do_karma", 100);
	character.OpenDialog(dialog);
}

void do_karma(Character &character, int param)
{
	character.karma = character.karma + param;
}

void class_menu(Character &character, int param)
{
	Dialog @dialog = new Dialog("Karma Quest");
	dialog.AddText("This is a temporary menu to set your class thru the quest-engine, will be better later on.");

	for (PtrVector_Iterator<ECF_Data> i(character.world.ecf.data); i.InRange(); i.Forward())
	{
		ECF_Data @class = i.Dereference();
		dialog.AddLink("Make me " + class.name, "do_class", class.id);
	}

	character.OpenDialog(dialog);
}

void do_class(Character &character, int param)
{
	character.clas = param;
}

bool npc_click(CharacterEvent &e)
{
	if (e.target_npc.id == WISEMAN_NPC_ID)
	{
		Dialog @dialog = new Dialog("Karma Quest");
		dialog.AddText("Hellow stranger, what can i do for you");
		dialog.AddLink("Karma menu", "karma_menu", 0);
		dialog.AddLink("Class menu", "class_menu", 0);
		e.character.OpenDialog(dialog);
		return true;
	}

	return false;
}

bool install(HookManager @hookmanager)
{
	if (enf.Get(WISEMAN_NPC_ID).type != ENF::Quest)
	{
		Wrn("wiseman script not installed: WISEMAN_NPC_ID not set or not quest NPC");
		return false;
	}

	hookmanager.Register("character/npc/click", "npc_click");

	return true;
}