댓글 #958600 Korea_Good 15.08.11 23:36 #958600 /** @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 actif (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 0x30blockStatus = true;// Wait to begindelay(2000);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 0x30blockStatus = 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 windowgetPacket(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 itemsitems = 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;}
Nigger
상록이
Korea_Good
* @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(2000);
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;
}