D2Bot# mit Kolbot RELEASE - Ein neuer Bot für D2BS

11/06/2014 05:18 data29#3841
Quote:
Originally Posted by KingPinShadow View Post
Code:
goldTrigger: 2400000,
			goldReserve: 100000
nope, geht nicht, langsam gehen mir die ideen aus, was es noch sein könnte, help plz ? :D
normal werden doch befehlsketten mit ; beendet
hast du mal
goldReserve: 200000;
probiert ?
11/07/2014 11:08 KingPinShadow#3842
Quote:
Originally Posted by data29 View Post
normal werden doch befehlsketten mit ; beendet
hast du mal
goldReserve: 200000;
probiert ?
danke data, aber dann kommt nur ein error, gambling.js is not defined Script ended

mein post dazu [Only registered and activated users can see links. Click Here To Register...]

ich poste mal die kompletten befehlsketten

gambling.js und die gamble.js:

Code:
/**
*	@filename	Gambling.js
*	@author		kolton
*	@desc		multi-profile gambling system
*/

var Gambling = {
	Teams: {
//####################################################################################################
		/* Gambling system for kolbot

			Allows lower level characters to get a steady income of gold to gamble LLD/VLLD items
			Not recommended for rings/amulets because of their high price (unless you want 3 gold finders to supply one gambler)
			It's possible to have multiple teams of gamblers/gold finders. Individual entries are separated by commas.

			Setting up:

			"Gamble Team 1": { // Put a unique team name here.

				goldFinders: ["GF Profile 1", "GF Profile 2"], // List of gold finder PROFILE names. They will join gamble games to drop gold

				gamblers: ["Gambler 1", "Gambler 2"], // List of gambler PROFILE names. They will keep gambling and picking up gold from gold finders.

				gambleGames: ["Gambling-", "HeyIGamble-"], // Games that gold finders will join, don't use numbers.

				goldTrigger: 2500000, // Minimum amount of gold before giving it to gamblers.

				goldReserve: 200000 // Amount of gold to keep after dropping.
			}

			Once set up properly, the gold finders will run their own games and join gamblers' games when they're out of gold.
		*/

		"Gamble Team": {
			goldFinders: ["barbGF1", "barbGF2"],
			gamblers: ["gambler"],
			gambleGames: ["gamble-1"],

			goldTrigger: 2400000,
			goldReserve: 100000
		}

//####################################################################################################
	},

	inGame: false,

	getInfo: function (profile) {
		var i, j;

		if (!profile) {
			profile = me.profile;
		}

		for (i in this.Teams) {
			if (this.Teams.hasOwnProperty(i)) {
				for (j = 0; j < this.Teams[i].goldFinders.length; j += 1) {
					if (this.Teams[i].goldFinders[j].toLowerCase() === profile.toLowerCase()) {
						this.Teams[i].goldFinder = true;
						this.Teams[i].gambler = false;

						return this.Teams[i];
					}
				}

				for (j = 0; j < this.Teams[i].gamblers.length; j += 1) {
					if (this.Teams[i].gamblers[j].toLowerCase() === profile.toLowerCase()) {
						this.Teams[i].goldFinder = false;
						this.Teams[i].gambler = true;

						return this.Teams[i];
					}
				}
			}
		}

		return false;
	},

	inGameCheck: function () {
		var i,
			info = this.getInfo();

		if (info && info.goldFinder) {
			for (i = 0; i < info.gambleGames.length; i += 1) {
				if (info.gambleGames[i] && me.gamename.match(info.gambleGames[i], "i")) {
					this.dropGold();
					DataFile.updateStats("gold");
					delay(5000);
					quit();
					//delay(10000);

					return true;
				}
			}
		}

		return false;
	},

	dropGold: function () {
		var info = this.getInfo();

		if (info && info.goldFinder) {
			Town.goToTown(1);
			Town.move("stash");

			while (me.getStat(14) + me.getStat(15) > info.goldReserve) {
				gold(me.getStat(14)); // drop current gold
				Town.openStash();

				if (me.getStat(15) <= me.getStat(12) * 1e4) { // check stashed gold vs max carrying capacity
					gold(me.getStat(15) - info.goldReserve, 4); // leave minGold in stash, pick the rest
				} else {
					gold(me.getStat(12) * 1e4, 4); // pick max carrying capacity
				}

				delay(1000);
			}
		}
	},

	outOfGameCheck: function () {
		var game,
			info = this.getInfo();

		if (info && info.goldFinder && DataFile.getStats().gold >= info.goldTrigger) {
			game = this.getGame();

			if (game) {
				D2Bot.printToConsole("Joining gold drop game.", 7);

				this.inGame = true;
				me.blockMouse = true;

				delay(2000);
				joinGame(game[0], game[1]);

				me.blockMouse = false;

				delay(5000);

				while (me.ingame) {
					delay(1000);
				}

				this.inGame = false;

				return true;
			}
		}

		return false;
	},

	getGame: function () {
		var i, game,
			info = this.getInfo();

		if (!info || !info.goldFinder) {
			return false;
		}

		function CheckEvent(mode, msg) {
			var i;

			if (mode === 4) {
				for (i = 0; i < info.gambleGames.length; i += 1) {
					if (info.gambleGames[i] && msg.match(info.gambleGames[i], "i")) {
						game = msg.split('/');

						break;
					}
				}
			}
		}

		addEventListener('copydata', CheckEvent);

		game = null;

		for (i = 0; i < info.gamblers.length; i += 1) {
			sendCopyData(null, info.gamblers[i], 0, me.profile);
			delay(100);

			if (game) {
				break;
			}
		}

		removeEventListener('copydata', CheckEvent);

		return game;
	}
};
Code:
/**
*	@filename	Gamble.js
*	@author		kolton
*	@desc		keep gambling while other players supply you with gold
*/

function Gamble() {
	var gold,
		info = Gambling.getInfo(),
		needGold = false;

	if (!info) {
		throw new Error("Bad Gambling System config.");
	}

	me.maxgametime = 0;
	Town.goToTown(1);

	addEventListener('copydata',
		function (mode, msg) {
			if (needGold && mode === 0 && info.goldFinders.indexOf(msg) > -1) {
				print("Got game request from " + msg);
				sendCopyData(null, msg, 4, me.gamename + "/" + me.gamepassword);
			}
		});

	while (true) {
		if (Town.needGamble()) {
			Town.gamble();
		} else {
			needGold = true;
		}

		Town.move("stash");

		while (needGold) {
			while (true) {
				if (Town.needGamble()) {
					needGold = false;
				}

				Town.stash();

				gold = getUnit(4, 523, 3);

				if (!gold || !Pickit.canPick(gold)) {
					break;
				}

				Pickit.pickItem(gold);
				delay(500);
			}

			delay(500);
		}

		delay(1000);
	}

	return true;
}
11/10/2014 19:29 mcp282#3843
e: ich bin so doof...hat sich erledigt :D
11/11/2014 10:12 using11#3844
was macht eigendlich Ram Reset? im manager hatte ich mich schon immer gefragt^^
11/12/2014 10:18 Killerratte1#3845
Hi

ich meine gelesen zuhaben, dass das Auto equip skript nur mit classic sachen funktioniert!
Ist das korrekt oder funktionieren auch expansion sets und uniques?

Vielen Dank
11/13/2014 22:41 Robert S.#3846
Hat jemand eine Ahnung, ob man beim Automule, wenn er Sachen vom Char auf den Mule verschiebt, man sich diese dann im D2-Bot-Fenster anschaut und dort dann auf dem Bild der Account und der Char zu sehen ist, wegbekommt? Dass er quasi nur das Foto hat, ohne irgendwleche Zusätze (Schrift)?

Bitte mal sagen, ob es geht
11/14/2014 11:55 Killerratte1#3847
Quote:
Originally Posted by Robert S. View Post
Hat jemand eine Ahnung, ob man beim Automule, wenn er Sachen vom Char auf den Mule verschiebt, man sich diese dann im D2-Bot-Fenster anschaut und dort dann auf dem Bild der Account und der Char zu sehen ist, wegbekommt? Dass er quasi nur das Foto hat, ohne irgendwleche Zusätze (Schrift)?

Bitte mal sagen, ob es geht
Du kannst alle items auf deinen mule acc/chars mit dem skript D2BotMulelog speichern. Dabei macht er von jedem Item quasi ein Bild und legt das in den images ordner ab.
11/15/2014 22:00 Northern Light#3848
hat jemand ein srcipt mit dem ich quben lassen kann.
also ich join game lass den items picken und der char qubend so lange von allein bis alle zutaten verbraucht sind
11/18/2014 12:21 Grommel#3849
Quote:
Originally Posted by using11 View Post
was macht eigendlich Ram Reset? im manager hatte ich mich schon immer gefragt^^
Es restarted den D2 Client wenn dieser mehr als XY Ram verbaucht

Quote:
Hi

ich meine gelesen zuhaben, dass das Auto equip skript nur mit classic sachen funktioniert!
Ist das korrekt oder funktionieren auch expansion sets und uniques?

Vielen Dank
das mitgelieferte Autoequip File enthält nur classic Items. Du kannst dir aber jederzeit deine eigene Lod Autoequip Pickit schreiben ...

Quote:
Hat jemand eine Ahnung, ob man beim Automule, wenn er Sachen vom Char auf den Mule verschiebt, man sich diese dann im D2-Bot-Fenster anschaut und dort dann auf dem Bild der Account und der Char zu sehen ist, wegbekommt? Dass er quasi nur das Foto hat, ohne irgendwleche Zusätze (Schrift)?
kolbot/libs/MuleLogger.js
Code:
LogNames: true, // Put account/character name on the picture
LogItemLevel: true, // Add item level to the picture
11/20/2014 13:32 Robert S.#3850
Hm, die SuFu hat nichts ergeben zu meiner Frage.

Ich suche nach einem entry-skript oder der richtigen Einstellung, dass wenn ich selbst spiele (kein Loader also "-L" drin habe), sondern über d2blank reingehe, der bot dann nicht automatisch Pötte schluckt, chickt, wenn zu wenig HP da ist, die Anzeige von Gegenständen (item class etc.) nicht aufleuchtet, wenn man auf dem Item ist usw.

Kann da jemand helfen?
11/20/2014 14:41 kim22#3851
hey leute, nach langer zeit wollte ich mal wieder in d2 reinschaun und nun hätt ich paar fragen bezüglich dem bot hier:

ich würde gerne selbst spielen - aber mit "addons".. früher gabs mal von d2nt so nen semi-bot.. hat einem vektoren angezeigt, maphack, autotele zum boss/nachsten lvl, tränke für merc usw...

kann das teil hier auch sowas ? wie siehts mit pickit aus wenn man selbst spielt? und kann man mit dem teil hier auch item-farben ingame verändern ? zb rev tränke mit lila text usw ?
11/21/2014 13:11 Grommel#3852
D2Blank is nicht zum selbstspielen sondern nur zum "selbst joinen" gedacht, configurierte Runs würden nach dem joinen sofort starten. (in deinen fAll das UserAddon)

Selbst spielen solltest du eigentlich mit D2Map ...

Die Chicken- und Autopoteinstellungen kommen dabei ganz normal aus der char config für deinen Charakter (oder eben die default werte falls keine config da is).
11/23/2014 16:04 MysticalFrame2#3853
Hab schon so paar leute gefragt und keiner konnte mir weiterhelfen also frag ich eben hier nach :)

Und zwar such ich die funktion das in einem neuen game die chars zu einem Healer gehen wenn diese under xx& life sind

NEIN ich meine nicht
Code:
Town.doChores();
in der char config is es mit drin

Code:
Config.HealHP = 75; // Go to a healer if under designated percent of life.
	Config.HealMP = 75; // Go to a healer if under designated percent of mana.
hab ein wenig in der town.js umgeschaut und folgendes gefunden
Code:
	tasks: [
		{Heal: NPC.Akara, Shop: NPC.Akara, Gamble: NPC.Gheed, Repair: NPC.Charsi, Merc: NPC.Kashya, Key: NPC.Akara, CainID: NPC.Cain},
		{Heal: NPC.Fara, Shop: NPC.Drognan, Gamble: NPC.Elzix, Repair: NPC.Fara, Merc: NPC.Greiz, Key: NPC.Lysander, CainID: NPC.Cain},
		{Heal: NPC.Ormus, Shop: NPC.Ormus, Gamble: NPC.Alkor, Repair: NPC.Hratli, Merc: NPC.Asheara, Key: NPC.Hratli, CainID: NPC.Cain},
		{Heal: NPC.Jamella, Shop: NPC.Jamella, Gamble: NPC.Jamella, Repair: NPC.Halbu, Merc: NPC.Tyrael, Key: NPC.Jamella, CainID: NPC.Cain},
		{Heal: NPC.Malah, Shop: NPC.Malah, Gamble: NPC.Anya, Repair: NPC.Larzuk, Merc: NPC["Qual-Kehk"], Key: NPC.Malah, CainID: NPC.Cain}
	],
Code:
// Go to a town healer
	heal: function () {
		if (!this.needHealing()) {
			return true;
		}

		if (!this.initNPC("Heal")) {
			return false;
		}

		return true;
	},

	// Check if healing is needed, based on character config
	needHealing: function () {
		if (me.hp * 100 / me.hpmax <= Config.HealHP || me.mp * 100 / me.mpmax <= Config.HealMP) {
			return true;
		}

		// Status effects
		if (Config.HealStatus && (me.getState(2) || me.getState(9) || me.getState(61))) {
			return true;
		}

		return false;
	},

und in zeile 80 steht ja noch

Code:
		this.heal();
		this.identify();
		this.shopItems();
		this.fillTome(518);

		if (Config.FieldID) {
			this.fillTome(519);
		}

		this.buyPotions();
		this.clearInventory();
		Item.autoEquip();
		this.buyKeys();
		this.repair();
		this.gamble();
		this.reviveMerc();
		Cubing.doCubing();
		Runewords.makeRunewords();
		this.stash(true);
		this.clearScrolls();
das ist warscheinlich die reihenfolge in der
Code:
Town.doChores();
ausgeführt wird ?

wie baue ich das nun in meinem script mit ein ? z.b. beim follower script ???

Leider kann ich das gerade nicht testen aber ich dachte mir eventuell?

Code:
Town.Heal();
???
11/24/2014 07:23 Killerratte1#3854
Quote:
Originally Posted by MysticalFrame2 View Post

Code:
Town.Heal();
???
Versuch es mal mit

Code:
this.heal();
11/24/2014 12:38 MysticalFrame2#3855
Quote:
Originally Posted by Killerratte1 View Post
Versuch es mal mit

Code:
this.heal();
ging beides nicht :)

aber hab die lösung selber gefunden :)


Quote:
Originally Posted by Killerratte1 View Post
Eine andere alternative wäre noch eine zweite townChore zumachen in der du alles rausschmeißt was du nicht haben wills, somit besteht der ganze Rahmen deiner funktion bereits.

Aber du hast es ja irgendwie geschafft.


Verstehe nicht ganz was du meinst.
Hier das wiki für den anfang.

[Only registered and activated users can see links. Click Here To Register...]
ja so hab ich es gemacht
lieber einfach machen als schwer ^^