merentha_fluffos_v2/
merentha_fluffos_v2/bin/
merentha_fluffos_v2/fluffos-2.9-ds2.03/
merentha_fluffos_v2/fluffos-2.9-ds2.03/ChangeLog.old/
merentha_fluffos_v2/fluffos-2.9-ds2.03/Win32/
merentha_fluffos_v2/fluffos-2.9-ds2.03/compat/
merentha_fluffos_v2/fluffos-2.9-ds2.03/compat/simuls/
merentha_fluffos_v2/fluffos-2.9-ds2.03/include/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/clone/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/command/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/data/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/etc/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/include/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/inherit/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/inherit/master/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/log/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/tests/compiler/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/tests/efuns/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/single/tests/operators/
merentha_fluffos_v2/fluffos-2.9-ds2.03/testsuite/u/
merentha_fluffos_v2/fluffos-2.9-ds2.03/tmp/
merentha_fluffos_v2/fluffos-2.9-ds2.03/windows/
merentha_fluffos_v2/lib/cfg/
merentha_fluffos_v2/lib/cfg/races/
merentha_fluffos_v2/lib/cmds/abilities/
merentha_fluffos_v2/lib/cmds/actions/
merentha_fluffos_v2/lib/cmds/spells/
merentha_fluffos_v2/lib/daemon/include/
merentha_fluffos_v2/lib/daemon/services/
merentha_fluffos_v2/lib/doc/
merentha_fluffos_v2/lib/doc/building/
merentha_fluffos_v2/lib/doc/help/classes/
merentha_fluffos_v2/lib/doc/help/general/
merentha_fluffos_v2/lib/doc/help/races/
merentha_fluffos_v2/lib/doc/help/skills/
merentha_fluffos_v2/lib/doc/help/stats/
merentha_fluffos_v2/lib/doc/man/efuns/
merentha_fluffos_v2/lib/doc/man/lfuns/
merentha_fluffos_v2/lib/doc/news/
merentha_fluffos_v2/lib/doc/old/
merentha_fluffos_v2/lib/doc/old/concepts/
merentha_fluffos_v2/lib/doc/old/lpc/constructs/
merentha_fluffos_v2/lib/doc/old/lpc/types/
merentha_fluffos_v2/lib/domains/ROOMS/
merentha_fluffos_v2/lib/domains/obj/armour/
merentha_fluffos_v2/lib/domains/obj/monsters/
merentha_fluffos_v2/lib/domains/obj/other/
merentha_fluffos_v2/lib/domains/obj/weapons/
merentha_fluffos_v2/lib/realms/petrarch/
merentha_fluffos_v2/lib/save/daemons/
merentha_fluffos_v2/lib/save/rid/
merentha_fluffos_v2/lib/save/users/a/
merentha_fluffos_v2/lib/save/users/p/
merentha_fluffos_v2/lib/save/users/t/
merentha_fluffos_v2/lib/std/login/
merentha_fluffos_v2/lib/std/obj/
merentha_fluffos_v2/win32/
// Petrarch
// Merentha Lib 1.0
// <give>

#include <money.h>
#include <objects.h>
 
varargs int command(string str) {
object ob, pl;
string item, player, type, junk;
int amt;
    if(!str) return notify_fail("Drop what?\n");
    if(sscanf(str, "%s to %s", item, player)!=2) return notify_fail("Syntax: give <item> to <player>\n");
    if(sscanf(item, "%d %s coin%s", amt, type, junk)==3) {
      if(member_array(type, __CURRENCY_TYPES)==-1) return notify_fail("That is not a valid type of currency.\n");
      if(!pl=present(player_name(player), environment(this_player()))) return notify_fail("They are not here.\n");
      if(amt>this_player()->query_money(type)) return notify_fail("You do not have that much "+type+".");
      this_player()->add_money(type, -amt);
      pl->add_money(type, amt);
      message("command", "You give "+amt+" "+type+" coins to "+pl->query_cap_name()+".", this_player());
      message("command", this_player()->query_cap_name()+" gives you "+amt+" "+type+" coins.", pl);
      message("command", this_player()->query_cap_name()+" gives some money to "+pl->query_cap_name()+".", environment(this_player()), ({this_player(),pl}));
      return 1;
    }
    if(!ob=present(item, this_player())) return notify_fail("You do have that.\n");
    if(!pl=present(player_name(player), environment(this_player()))) return notify_fail("They are not here.\n");
    if(ob->move(pl)) return 1;
    message("command", "You give "+ob->query_short()+" to "+pl->query_cap_name()+".", this_player());
    message("command", this_player()->query_cap_name()+" gives "+ob->query_short()+" to "+pl->query_cap_name()+".", environment(this_player()), ({this_player(),pl}));
    message("command", this_player()->query_cap_name()+" gives you "+ob->query_short()+".", pl);
    return 1;
}

string help() {
return "Syntax: give <item> to <living>\n\nThis command will move an item from your inventory to another player or a monster.  To transfer money the syntax is 'give 5 gold coins to petrarch' for example.";
}