63 lines
2.8 KiB
JavaScript
63 lines
2.8 KiB
JavaScript
this.inherits(COMMAND);
|
|
this.command = "give";
|
|
this.regex = /^(\w+)(?:\s+(\w+))?\s+(\w+)$/;
|
|
this.enter = function (player, target, count, objid) {
|
|
target = player.find_obj(target, player.environment);
|
|
if (!target || !target.hp) return player.notify("你要给谁东西?");
|
|
if (target.is_player && player.master != target.id) return player.notify("不能给玩家控制的人物东西。");
|
|
|
|
|
|
if (objid == "money") {
|
|
if (!count) return player.notify("你要给" + target.name + "多少钱?");
|
|
count = parseInt(count);
|
|
if (count <= 0) return player.notify("你要给" + target.name + "多少钱?");
|
|
if (count > player.money) return player.notify("你身上没有那么多的钱给" + target.name + "。");
|
|
if (target.on_accept && target.on_accept(player, objid, count)) {
|
|
player.money -= count;
|
|
//target.money = target.money || 0;
|
|
//target.money += count;
|
|
|
|
// player.add_temp('money1', count, UTIL.diff_time());
|
|
player.send_room("$N给了$n" + UTIL.moneyToStr(count) + "。", target);
|
|
return;
|
|
}
|
|
return player.notify(target.name + "不要你的钱。");
|
|
} else if (objid == "cash") {
|
|
if (!count) return player.notify("你要给" + target.name + "多少元宝?");
|
|
if (count <= 0) return player.notify("你要给" + target.name + "多少元宝?");
|
|
if (count > player.cash_money) return player.notify("你身上没有那么多的元宝给" + target.name + "。");
|
|
if (target.on_accept && target.on_accept(player, objid, count)) {
|
|
return player.add_cash(-count, "给" + target.name);
|
|
}
|
|
return player.notify(target.name + "不要你的钱。");
|
|
}
|
|
|
|
var obj = player.find_obj(objid);
|
|
if (!obj) {
|
|
return player.notify("你要给" + target.name + "什么东西?");
|
|
}
|
|
if (!count) count = 1;
|
|
else if (count === 'all')
|
|
count = obj.count;
|
|
else
|
|
count = parseInt(count);
|
|
if (!(count > 0)) return;
|
|
if (obj.count < count) {
|
|
return player.notify("你没有那么多的" + obj.name + "。");
|
|
}
|
|
if (target.master == player.id || target.id == player.master) {
|
|
if (target.is_full()) return player.notify(target.name + "身上东西太多了。");
|
|
obj = player.remove_obj(obj, count);
|
|
if (obj) {
|
|
target.add_obj(obj);
|
|
player.send_room("$N给了$n" + UTIL.to_c(count) + obj.unit + obj.color_name + "。", target);
|
|
}
|
|
return;
|
|
}
|
|
if (target.on_accept && target.on_accept(player, obj, count)) {
|
|
obj = player.remove_obj(obj, count);
|
|
if (obj) {
|
|
player.send_room("$N给了$n" + UTIL.to_c(count) + obj.unit + obj.color_name + "。", target);
|
|
}
|
|
}
|
|
} |