[Only registered and activated users can see links. Click Here To Register...]
sind nur die ersten oberen zeilen
/*
* @filename Dupe.js
* @author Walla
*/
function Dupe() {
var helper = Config.Dupe.Helper;
var i, items, npc, tick, trader, wp;
var blockStatus = false, dropInventory = false, tradeAccepted = false;
this.getItems = function() {
var items = [],
item = me.getItem(-1, 0);
if (item) {
do {
if (item.location === 3
&& item.classid !== 549
&& [76, 77, 78].indexOf(item.itemType) === -1) {
items.push(copyUnit(item));
}
} while (item.getNext());
}
return items;
};
this.PacketReceived = function(bytes) {
switch(bytes[0]) {
case 0x78:
tradeAccepted = true;
break;
}
}
this.PacketSent = function(bytes) {
switch (bytes[0]) {
case 0x30:
if (blockStatus) {
print("[Blocked] 0x30");
return true;
}
break;
}
return false;
}
addEventListener("gamepacket", this.PacketReceived);
addEventListener("gamepacketsent", this.PacketSent);
// Check act
if (me.area !== 40) {
print("Not in act 2. Changing acts.");
if (me.area !== 1) {
Pather.useWaypoint(1);
}
Town.move("warriv");
npc = getUnit(1, "warriv");
if (!npc || !npc.openMenu()) {
showConsole();
throw new Error("Act change failed.");
return false;
}
Misc.useMenu(0x0D36);
delay(1000 + me.ping * 2);
while (!me.area) {
delay(250);
}
if (me.area !== 40) {
showConsole();
throw new Error("Act change failed.");
return false;
}
print("Act change done.");
}
// Start blocking 0x30
blockStatus = true;
// Wait to begin
delay(5000);
Town.move("jerhyn");
npc = getUnit(1, "jerhyn");
if (!npc || !npc.openMenu()) {
showConsole();
throw new Error("Couldn't access Jerhyn.");
return false;
}
delay(200);
me.cancel();
delay(50);
// Stop blocking 0x30
blockStatus = false;
Town.move("waypoint");
delay(200);
wp = getUnit(2, "waypoint");
if (!wp) {
showConsole();
throw new Error("Couldn't reach waypoint.");
return false;
}
sendPacket(1, 0x49, 4, wp.gid, 1, 0, 1, 0, 1, 0, 1, 0);
delay(200);
tick = getTickCount();
do {
trader = getUnit(0, helper);
// If Helper can't be found in 15s, leave.
if (getTickCount() - tick >= 15000) {
showConsole();
throw new Error("Couldn't find Helper.");
return false;
}
delay(100);
} while (!trader);
while (!getUIFlag(0x17)) {
trader.interact();
delay(250);
}
while (!(getUIFlag(0x17) && tradeAccepted)) {
delay(100);
}
tradeAccepted = false;
delay(100);
// Close trade window
getPacket(1, 0x77, 1, 0x0C);
delay(100);
// Move out of town.
Pather.journeyTo(41);
delay(50);
// Move back to town.
Pather.journeyTo(40);
delay(50);
Town.move("waypoint");
Pather.useWaypoint(1);
Town.move("stash");
delay(200);
// Drop items
items = this.getItems();
for (i = 0; i < items.length; i += 1) {
items[i].drop();
}
delay(200);
say("closetrade");
// Go back to act 2 for a perm.
Town.move("waypoint");
delay(200);
Pather.useWaypoint(40);
say("permout");
delay(200);
trader = getUnit(0, helper);
while (!getUIFlag(0x17)) {
trader.interact();
delay(250);
}
while (!(getUIFlag(0x17) && tradeAccepted)) {
delay(100);
}
tradeAccepted = false;
me.cancel();
delay(50);
quit();
return true;
}