#include <lib.h> #include <daemons.h> int QuestPoints = 0; mapping QuestBook = ([]); int AddQuestPoints(mixed x){ if( !intp(x)) error("Bad argument 1 to AddQuestPoints().\n"); if((QuestPoints+= x) < 0) QuestPoints = 0; return QuestPoints; } int GetQuestPoints(){ return QuestPoints; } int SetQuestPoints(int i){ QuestPoints = i; return QuestPoints; } void AddQuest(string title, string desc){ mapping tmp = ([]); object * PartyMember; object ob; string pname; if( !title || !desc ) return; if( this_object()->GetParty() ){ pname = this_object()->GetParty(); PartyMember = PARTY_D->GetPartyMembers(pname) - ({ this_player() });; foreach(ob in PartyMember){ ob->AddPartyQuest(title,desc); } } tmp["Date"] = time(); tmp["Description"] = desc; if(!QuestBook) QuestBook = ([]); QuestBook[title] = tmp; this_object()->AddTitle(title); } void AddQuestSkillPoints(string skill, int amount){ object * PartyMember; object ob; string pname; if(!skill || !amount) return; if( this_object()->GetParty() ){ pname = this_object()->GetParty(); PartyMember = PARTY_D->GetPartyMembers(pname); foreach(ob in PartyMember){ ob->AddSkillPoints(skill, amount); } } else this_object()->AddSkillPoints(skill, amount); } void AddQuestStatPoints(string stat, int amount){ object * PartyMember; object ob; string pname; if(!stat || !amount) return; if( this_object()->GetParty() ){ pname = this_object()->GetParty(); PartyMember = PARTY_D->GetPartyMembers(pname); foreach(ob in PartyMember){ ob->AddStatPoints(stat, amount); } } else this_object()->AddStatPoints(stat, amount); } void AddQuestCurrency(string type, int amount){ object * PartyMember; object ob; string pname; if(!type || !amount) return; if( this_object()->GetParty() ){ pname = this_object()->GetParty(); PartyMember = PARTY_D->GetPartyMembers(pname); foreach(ob in PartyMember){ ob->AddCurrency(type, amount); } } else this_object()->AddCurrency(type, amount); } void AddPartyQuest(string title, string desc){ mapping tmp = ([]); if( !title || !desc ) return; if( member_array(title, this_object()->GetTitles()) != -1 ) return; tmp["Date"] = time(); tmp["Description"] = desc; if(!QuestBook) QuestBook = ([]); QuestBook[title] = tmp; this_object()->AddTitle(title); } mixed *GetQuests(){ if(!QuestBook) QuestBook = ([]); return copy(QuestBook); } int GetQuest(string str){ if(!QuestBook) QuestBook = ([]); foreach(string key, mapping val in QuestBook){ if(str == val["Description"]) return 1; } return 0; } mapping RemoveQuest(string str){ if(!QuestBook) QuestBook = ([]); if(QuestBook[str]){ map_delete(QuestBook,str); } return copy(QuestBook); } void create(){ QuestBook = ([]); }