#include <lib.h> private static mapping Teaching = ([]); private static int OfferExpires = 60; int direct_teach_str_to_liv(){ return 1;} int direct_teach_liv_to_str(){ return 1;} int CanTeach(){ return 1; } int eventOfferTeaching(object who, string what){ if(!CanTeach()){ write("You can't teach that."); return 0; } tell_player(who,this_object()->GetName()+" offers to teach you "+what+"."); Teaching[who] = ({ what, time() }); return 1; } int eventTeach(object who, string what){ if(!CanTeach()){ write("They can't teach that."); return 0; } if(!Teaching[who]){ write("They're not interested in teaching you anything."); return 0; } if(time() - Teaching[who][1] > OfferExpires){ write("It's too late. Their offer to teach you expired."); map_delete(Teaching,who); return 0; } if( !who->eventLearnSpell(what) ) { write("You are not prepared for that spell!"); return 0; } who->eventPrint(this_object()->GetName() + " touches your forehead and gives " "you knowledge of " + what + "."); environment()->eventPrint(this_object()->GetName() + " touches " + possessive_noun(who) + " forehead and gives " + objective(who) + " knowledge of " + what + ".", who); map_delete(Teaching,who); return 1; }