mirror of
https://github.com/gooba42/adventureland.git
synced 2026-10-15 02:49:28 -05:00
Merge branch 'kaansoral:main' into patch-2
This commit is contained in:
+95
-12
@@ -4092,7 +4092,13 @@ function init_io() {
|
||||
} else {
|
||||
climit = round(climit / 4);
|
||||
}
|
||||
if (method == "cm") {
|
||||
if (method == "equip_batch") {
|
||||
var cost = 1;
|
||||
if (Array.isArray(data)) {
|
||||
cost += data.length / 2;
|
||||
}
|
||||
add_call_cost(CC.equip * cost);
|
||||
} else if (method == "cm") {
|
||||
var add = 1;
|
||||
var len = JSON.stringify(data.message).length;
|
||||
var mult = 1;
|
||||
@@ -6364,6 +6370,71 @@ function init_io() {
|
||||
return socket.emit("game_response", { response: "exception", place: "upgrade", failed: true });
|
||||
}
|
||||
});
|
||||
socket.on("equip_batch", function (data) {
|
||||
let player = players[socket.id];
|
||||
if (!player) {
|
||||
return;
|
||||
}
|
||||
player.c = {};
|
||||
if (Array.isArray(data)) {
|
||||
data.length = min(data.length, 15);
|
||||
let resolve = [];
|
||||
let penalty = 0;
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let equip_def = data[i];
|
||||
equip_def.num = to_number(equip_def.num);
|
||||
if (equip_def.num >= player.items.length) {
|
||||
resolve.push("invalid");
|
||||
break;
|
||||
}
|
||||
var item = player.items[equip_def.num];
|
||||
if (!item) {
|
||||
resolve.push("no_item");
|
||||
break;
|
||||
}
|
||||
if (item.b) {
|
||||
resolve.push("item_blocked");
|
||||
break;
|
||||
}
|
||||
if (item.name == "placeholder") {
|
||||
resolve.push("item_placeholder");
|
||||
break;
|
||||
}
|
||||
var def = G.items[item.name];
|
||||
def.iname = item.name; //just for orb name checks [08/10/16]
|
||||
if (!def) {
|
||||
resolve.push("no_item");
|
||||
break;
|
||||
}
|
||||
var slot = equip_def.slot || def.type;
|
||||
var comp = can_equip_item(player, def, slot);
|
||||
if (comp == "no") {
|
||||
resolve.push("cant_equip");
|
||||
break;
|
||||
}
|
||||
slot = comp;
|
||||
var existing = player.slots[slot];
|
||||
player.slots[slot] = player.items[equip_def.num];
|
||||
player.cslots[slot] = cache_item(player.slots[slot]);
|
||||
if (existing && existing.b) {
|
||||
existing = null;
|
||||
}
|
||||
player.items[equip_def.num] = existing;
|
||||
player.citems[equip_def.num] = cache_item(existing);
|
||||
penalty += 120;
|
||||
resolve.push({ num: equip_def.num, slot });
|
||||
}
|
||||
if ("penalty_cd" in player.s) {
|
||||
player.s.penalty_cd.ms = min(player.s.penalty_cd.ms + penalty, 120000);
|
||||
} else {
|
||||
player.s.penalty_cd = { ms: penalty };
|
||||
}
|
||||
resend(player, "reopen+u+cid");
|
||||
success_response("data", { slots: resolve });
|
||||
} else {
|
||||
return fail_response("invalid");
|
||||
}
|
||||
});
|
||||
socket.on("equip", function (data) {
|
||||
var player = players[socket.id];
|
||||
if (!player) {
|
||||
@@ -9240,14 +9311,6 @@ function init_io() {
|
||||
return fail_response("loot_failed");
|
||||
}
|
||||
try {
|
||||
if (chest && !chest.pvp && chest.gold > 100000000 && !player.stealth) {
|
||||
broadcast("server_message", {
|
||||
message: player.name + " looted " + to_pretty_num(server_tax(round(chest.gold * r.goldm), true)) + " gold",
|
||||
color: "gold",
|
||||
type: "server_gold",
|
||||
name: player.name,
|
||||
});
|
||||
}
|
||||
if (chest && player.owner && chest.owners && !in_arr(player.owner, chest.owners) && !W.chest[player.owner]) {
|
||||
W.chest[player.owner] = new Date();
|
||||
server_log("SEVERE - Cross Loot from " + player.name + " not from " + chest.owners.toString());
|
||||
@@ -9258,6 +9321,15 @@ function init_io() {
|
||||
if (!can_add_items(player, all_items)) {
|
||||
return fail_response("loot_no_space");
|
||||
}
|
||||
if (chest && !chest.pvp && chest.gold > 100000000 && !player.stealth) {
|
||||
broadcast("server_message", {
|
||||
message:
|
||||
player.name + " looted " + to_pretty_num(server_tax(round(chest.gold * r.goldm), true)) + " gold",
|
||||
color: "gold",
|
||||
type: "server_gold",
|
||||
name: player.name,
|
||||
});
|
||||
}
|
||||
delete chests[data.id]; // The add_shells routine was at the top, so when inventory was full, attempting to open the chest gave shells infinitely, repeated lesson, always remove before adding, or exceptions [11/07/18]
|
||||
if (chest && chest.cash) {
|
||||
add_shells(player, chest.cash, "chest", true, "override");
|
||||
@@ -9318,6 +9390,15 @@ function init_io() {
|
||||
r.party = true;
|
||||
var chest = chests[data.id];
|
||||
var reopen = {};
|
||||
if (chest && !chest.pvp && chest.gold > 100000000 && !player.stealth) {
|
||||
broadcast("server_message", {
|
||||
message:
|
||||
player.name + " looted " + to_pretty_num(server_tax(round(chest.gold * r.goldm), true)) + " gold",
|
||||
color: "gold",
|
||||
type: "server_gold",
|
||||
name: player.name,
|
||||
});
|
||||
}
|
||||
delete chests[data.id];
|
||||
if (chest && chest.cash) {
|
||||
add_shells(player, chest.cash, "chest", true, "override");
|
||||
@@ -10497,10 +10578,12 @@ function init_io() {
|
||||
}
|
||||
}
|
||||
});
|
||||
socket.on("skin",function(data){
|
||||
socket.on("skin", function (data) {
|
||||
var player = players[socket.id];
|
||||
if(player.role!="gm") return;
|
||||
player.tskin=data.name;
|
||||
if (player.role != "gm") {
|
||||
return;
|
||||
}
|
||||
player.tskin = data.name;
|
||||
resend(player, "u+cid");
|
||||
});
|
||||
socket.on("legacify", function (data) {
|
||||
|
||||
Reference in New Issue
Block a user