gebiet eingrenzen zum cleanen?

01/15/2012 21:12 kal_el#1
ich hab mich mal durch die programmierung gelesen, raff es aber ned.

ich kann zwar mit
Code:
NTA_ClearLevel(true, 2, MWConfig_ClearAreaSpectypes.ChaosSanctum)
das "gesamte chaos cleanen,
möchte aber nur das in "grün" gekennzeichnete cleanen.
wie wer was?
mit?
Code:
_deltax = _xxxx;
	_deltay = _xxxx;
wie finde ich diese xxxx raus?
und,brauch ich dazu attack positionen?

[Only registered and activated users can see links. Click Here To Register...]
01/16/2012 08:02 TheCrazy11#2
Funktioniert es nicht, wenn du in der Config folgendes setzt:
Code:
	MWConfig_Script.push(["NTDiablo.ntj", 10]); MWConfig_KillFullInfectorMob = true; [B]MWConfig_StartAtStar = true;[/B] MWConfig_IgnoreSealOpeningErrors = false; [B]MWConfig_FastDia = false;[/B]
01/16/2012 11:58 kal_el#3
ne, ich wollt einfach auf die schnelle nur cleanen ohne die siegel und siegelbosse.
01/16/2012 19:50 Muddy Waters#4
Bin gerade eigentlich mit Webentwicklung beschäftigt, darum gibt es erstmal nur einen hingeklatschten Entwurf, damit du ungefähr weißt, wie sich sowas umsetzen lässt:
Code:
const THRESHOLD_Y = 5340;

function NTMain()
{
	var _monsterCount, _attackpos, _room, _roomCoords, _distance, _minindex, _mindistance;
	
	Include("libs/common/NTCommon.ntl");
	NTC_IncludeLibs();
	NTC_IncludeConfig("NTBot/char_configs");

	NT_LoadConfig();
	NTSI_LoadNIPFiles("NTBot/item_configs");

	MWC_Initialize();

	if(!NTTM_CheckAct(me.act, true))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 20, me.act, true);
		return;
	}
	
	NTTMGR_TownManager();

	if(!NTTM_TownMove("waypoint"))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 28, "waypoint");
		return;
	}

	if(!NTM_TakeWaypoint(107))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 34, 107);
		return;
	}

	NTP_DoPrecast(true);

	if(!NTM_MoveTo(108, 7797, 5560, 10))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveTo, 42, 108, 7797, 5560);
		return;
	}

	NTM_MoveTo(108, 7792, 5292);

	_room = GetRoom();

	if(!_room)
	{
		NTC_SendMsgToScript("MWBotGame.ntj", GetRoom);
		return false;
	}

	_rooms = new Array();

	do
	{
		_roomCoords = new Point(parseInt(_room.x*5 + _room.xsize*5/2), parseInt(_room.y*5 + _room.ysize*5/2));
		
		if(_roomCoords.y <= THRESHOLD_Y)
			_rooms.push(_roomCoords);

	} while(_room.GetNext());

	while(_rooms.length > 0)
	{
		_mindistance = 100000;

		for(var i = 0; i < _rooms.length; i++)
		{
			_distance = GetDistance(me.x, me.y, _rooms[i].x, _rooms[i].y);

			if(_distance < _mindistance)
			{
				_minindex = i;
				_mindistance = _distance;
			}
		}

		if(NTM_MoveTo(me.areaid, _rooms[_minindex].x, _rooms[_minindex].y, 1))
		{
			NTA_ClearRoom(true);
			NTP_DoPrecast(false);
		}

		_rooms.splice(_minindex, 1);
	}

	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
Die Konstante oben habe ich nur auf die Schnelle ausgelesen, auch hier müsstest du mal schauen, was in der Praxis wirklich brauchbar ist. Aber wie man sieht ist die Grundherangehensweise denkbar simpel:
  1. Räume durchgehen und direkt alles rausschmeissen, was von der Y-Koordinate her zu groß ist (also zu weit "links" ist).
  2. In die entsprechenden Räume Bewegen.
  3. Funktion zum Säubern eines Raums aufrufen.
Hoffe das bringt dich erstmal weiter. :)
01/16/2012 20:49 worthless1337#5
kal-el und MuddyWaters, danke fuer diese interessanten Gedanken und Ausfuehrungen!

Die gleiche Vorangehensweise duerfte wohl auch anwendbar sein, um Durance lvl. 3 komplett zu clearen anstatt nur Meph zu machen. Eine solche Funktionalitaet wuerde mir auch gefallen.

Hoffe sehr darauf, dass ich in diesem Thread Knowledge leechen kann. :D
01/16/2012 20:54 kal_el#6
Quote:
Hoffe das bringt dich erstmal weiter
ja, es bringt mich um den verstand, aber ich probiers mal:)


Quote:
um Durance lvl. 3 komplett zu clearen
um einen kompletten raum/level ganz einfach zu clearen sollte auch
Quote:
NTA_ClearLevel(true, 2, MWConfig_ClearAreaSpectypes.ChaosSanctum)
reichen.
dabei muss ned mal "ChaosSanctum" in der NTConfig.ntl stehn . (das hab ich mir hinzugefügt)
es reichen die vorhandenen einträge z.B die vom frozenriver script (schau da mal rein.)
dann z.B nur zu meppel reintelen und...
Quote:
NTA_ClearLevel(true, 2, MWConfig_ClearAreaSpectypes.FrozenRiver)
ausführen und er sollte alles cleanen.
kannst dir aber natürlich auch für jedes gebiet den enstprechenden namen in die NTConfig.ntl hinzufügen.

bei mir oben ging es um die begrenzung eines gebietes.

mein chaos cleanen so wie ich es jetzt einfachmal gestrickt hatte.
Code:
/**
*	This file was modified by [Only registered and activated users can see links. Click Here To Register...]
*	Check the programming section for updates and further scripts
*	Last Update: 22:01 14.08.2011
*/

function NTMain()
{
	Include("libs/common/NTCommon.ntl");
	NTC_IncludeLibs();
	NTC_IncludeConfig("NTBot/char_configs");

	NT_LoadConfig();
	NTSI_LoadNIPFiles("NTBot/item_configs");

	MWC_Initialize();
	

	if(!NTTM_CheckAct(me.act, true))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTTM_CheckAct, 18, me.act, true);
		return;
	}

	NTTMGR_TownManager();

	if(!NTTM_TownMove("waypoint"))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTTM_TownMove, 26, "waypoint");
		return;
	}

	if(!NTM_TakeWaypoint(111))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 32, 111);
		return;
	}

	NTP_DoPrecast(true);

	
            
             if(!NTM_MoveTo(me.areaid, 3778, 5108))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveTo, 40, me.areaid, 3778, 5108);
		return;
	}
                  if(!NTM_TakeWaypoint(107))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_TakeWaypoint, 34, 107);
		return;
	}


	if(!NTM_MoveTo(108, 7797, 5560, 10))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTM_MoveTo, 42, 108, 7797, 5560);
		return;
	
	}
	

	
	if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", NTTMGR_CheckSafe, 134, NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
		return;
	}
	





	NTA_ClearLevel(true, 2, MWConfig_ClearAreaSpectypes.ChaosSanctum)

            
        NTSI_PickItems();

	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}
ich machs eben gern einfach :)
darum bringt mich so einwahnsinns script wie oben um den verstand :D
01/16/2012 23:25 Muddy Waters#7
Also so im Vergleich zu dem BBCode Parser zur Konvertierung von HTML Code in BB Code, an dem ich gerade für ein User Script arbeite, finde ich das hier unheimlich entspannt. :o

Aber der Punkt ist: Wenn du es so machen möchtest, wie in deinem Bild, dann muss du zwangsläufig die verschiedenen Räume durchgehen und dir nur die rauspicken, welche ebn in dem Bereich liegen, den du säubern möchtest. Die NTA_ClearLevel Funktion macht an sich nichts anderes, nur dass dort keine Aussortierung bestimmter Räume stattfindet.
01/18/2012 08:44 kal_el#8
das ganze läuft wie am schnürchen und passt wie arsch auf klodeckel von den bereichen her.

thx