Wo finde ich den stash eintrag?

05/07/2010 10:26 sternenlooper#1
so mal eine frage an die pro programierer!^^

wo genau steht das eigentlich mit den stash befehlen?

das problem zzt ist ja das der bot die erste zeile nimmt und dann von links nach rechts durchgeht!
dann kommt die zweite zeile von links nach rechts!
usw
sobald die plätze passen packt er diese dort rein!

leider sorgt das für extreme unordnung -.-

ich würde das gerne so abändern oder abändern lassen wenn einer von euch die lust dazu hat *g*
das er die erste zeile nimmt und von oben nach unten absucht!
dann die zweite zeile und von oben nach unten!
usw

das würde ein sehr viel besseres platz managment mit sich bringen! ;)

ob das alles so klappt wie ich es mir vorstelle ist wieder was anderes! aber von der theorie her müsste es dann alles etwas besser klappen!
05/17/2010 18:06 Medix#2
Ich denke mal du suchst die funktion die den Stash managed oder :o?

NTTown

Code:
function NTT_ManageStash(invitem)
{
	var i, x, y;
	var _items;
	var _stashall;
	var StashHeight = (me.gametype == 0) ? 4 : 8;
	var _ignorestring = _NTT_IgnoredItems.join();
	var _ignoreitem;

	if(!GetUIState(0x19))
		return false;

	if(arguments.length < 1)
		_stashall = true;
	else
		_stashall = false;

	if(!NTC_StashGoldFull() && NTC_MyGoldCarry() > NTConfig_MinGoldToStash)
	{
		var _mygold = NTC_MyGoldCarry();

		Gold(3, _mygold);

		for(i = 0 ; i < 2 ; i++)
		{
			NTC_Delay(500);

			if(_mygold > NTC_MyGoldCarry())
				break;
		}
	}

	var _stashspace = new Array(StashHeight);

	for(y = 0 ; y < StashHeight ; y++)
		_stashspace[y] = new Array(6);

	for(y = 0 ; y < StashHeight ; y++)
	{
		for(x = 0 ; x < 6 ; x++)
			_stashspace[y][x] = 0;
	}

	_items = me.GetItems();

	if(!_items)
		return false;

	for(i = 0 ; i < _items.length ; i++)
	{
		if(_items[i].mode == 0 && _items[i].itemloc == 4)
		{
			for(y = 0 ; y < _items[i].ysize ; y++)
			{
				for(x = 0 ; x < _items[i].xsize ; x++)
					_stashspace[y+_items[i].y][x+_items[i].x] = 1;
			}
		}
	}

	for(i = 0 ; i < _items.length ; i++)
	{
		if(_items[i].mode == 0 && _items[i].itemloc == 0 && (_stashall || (_items[i].x == invitem.x && _items[i].y == invitem.y)))
		{
			if(_stashall)
			{
				_ignoreitem = (NTConfig_Columns[_items[i].y][_items[i].x] == 0);

				if(!_ignoreitem)
				{
					if( _ignorestring.indexOf(_items[i].code) != -1 || NTSI_CheckItem(_items[i]) <= 0 )
						_ignoreitem = true;
				}
			} 
			else
				_ignoreitem = false;

			if(!_ignoreitem)
			{
				_itemdone = false;

				for(y = 0 ; y < StashHeight ; y++)
				{
					if(_itemdone)
						break;

					for(x = 0 ; x < 6 ; x++)
					{
						if(_itemdone)
							break;

						if(_stashspace[y][x] == 0)
						{
							if((x+_items[i].xsize-1) < 6 && (y+_items[i].ysize-1) < StashHeight)
							{
								var _havespace = true;

								for(m = 0 ; m < _items[i].ysize ; m++)
								{
									for(n = 0 ; n < _items[i].xsize ; n++)
									{
										if(_stashspace[y+m][x+n] == 1)
										{
											_havespace = false;
											m = 4;
											break;
										}
									}
								}

								if(_havespace)
								{
									if(NTC_ItemToCursor(_items[i]))
									{
										for(n = 0 ; n < 80 ; n++)
										{
											if((n % 40) == 0)
												me.ClickItem(0, x, y, 4);

											NTC_Delay(100);

											if(!me.itemoncursor)
												break;
										}

										if(n < 80)
										{
											for(m = 0 ; m < _items[i].ysize ; m++)
											{
												for(n = 0 ; n < _items[i].xsize ; n++)
													_stashspace[y+m][x+n] = 1;
											}
										}

										NTC_PingDelay(200);
									}

									_itemdone = true;
								}
							}
						}
					}
				}
			}

			if(!_stashall)
				return true;
		}
	}

	return true;
}
05/18/2010 13:23 sternenlooper#3
Quote:
Originally Posted by Medix View Post
Ich denke mal du suchst die funktion die den Stash managed oder :o?

NTTown

Code:
function NTT_ManageStash(invitem)
{
	var i, x, y;
	var _items;
	var _stashall;
	var StashHeight = (me.gametype == 0) ? 4 : 8;
	var _ignorestring = _NTT_IgnoredItems.join();
	var _ignoreitem;

	if(!GetUIState(0x19))
		return false;

	if(arguments.length < 1)
		_stashall = true;
	else
		_stashall = false;

	if(!NTC_StashGoldFull() && NTC_MyGoldCarry() > NTConfig_MinGoldToStash)
	{
		var _mygold = NTC_MyGoldCarry();

		Gold(3, _mygold);

		for(i = 0 ; i < 2 ; i++)
		{
			NTC_Delay(500);

			if(_mygold > NTC_MyGoldCarry())
				break;
		}
	}

	var _stashspace = new Array(StashHeight);

	for(y = 0 ; y < StashHeight ; y++)
		_stashspace[y] = new Array(6);

	for(y = 0 ; y < StashHeight ; y++)
	{
		for(x = 0 ; x < 6 ; x++)
			_stashspace[y][x] = 0;
	}

	_items = me.GetItems();

	if(!_items)
		return false;

	for(i = 0 ; i < _items.length ; i++)
	{
		if(_items[i].mode == 0 && _items[i].itemloc == 4)
		{
			for(y = 0 ; y < _items[i].ysize ; y++)
			{
				for(x = 0 ; x < _items[i].xsize ; x++)
					_stashspace[y+_items[i].y][x+_items[i].x] = 1;
			}
		}
	}

	for(i = 0 ; i < _items.length ; i++)
	{
		if(_items[i].mode == 0 && _items[i].itemloc == 0 && (_stashall || (_items[i].x == invitem.x && _items[i].y == invitem.y)))
		{
			if(_stashall)
			{
				_ignoreitem = (NTConfig_Columns[_items[i].y][_items[i].x] == 0);

				if(!_ignoreitem)
				{
					if( _ignorestring.indexOf(_items[i].code) != -1 || NTSI_CheckItem(_items[i]) <= 0 )
						_ignoreitem = true;
				}
			} 
			else
				_ignoreitem = false;

			if(!_ignoreitem)
			{
				_itemdone = false;

				for(y = 0 ; y < StashHeight ; y++)
				{
					if(_itemdone)
						break;

					for(x = 0 ; x < 6 ; x++)
					{
						if(_itemdone)
							break;

						if(_stashspace[y][x] == 0)
						{
							if((x+_items[i].xsize-1) < 6 && (y+_items[i].ysize-1) < StashHeight)
							{
								var _havespace = true;

								for(m = 0 ; m < _items[i].ysize ; m++)
								{
									for(n = 0 ; n < _items[i].xsize ; n++)
									{
										if(_stashspace[y+m][x+n] == 1)
										{
											_havespace = false;
											m = 4;
											break;
										}
									}
								}

								if(_havespace)
								{
									if(NTC_ItemToCursor(_items[i]))
									{
										for(n = 0 ; n < 80 ; n++)
										{
											if((n % 40) == 0)
												me.ClickItem(0, x, y, 4);

											NTC_Delay(100);

											if(!me.itemoncursor)
												break;
										}

										if(n < 80)
										{
											for(m = 0 ; m < _items[i].ysize ; m++)
											{
												for(n = 0 ; n < _items[i].xsize ; n++)
													_stashspace[y+m][x+n] = 1;
											}
										}

										NTC_PingDelay(200);
									}

									_itemdone = true;
								}
							}
						}
					}
				}
			}

			if(!_stashall)
				return true;
		}
	}

	return true;
}
thx so oft da drinn gewesen aber immer übelesen -.-
bzw falsch verstanden gehabt die ganzen bezeichnungen!

so einzeln rauskopiert ergibt das alles doch etwas mehr sinn!

dannw erde ich mal etwas mit den einstellungen spielen :P