Boscript für Muddys

11/08/2011 14:38 MaRiOaNnA#1
Sers,

ich möchte, das bevor mein Bot mit dem Run startet, er sich erst mal Bo von nem Bobarb geben lässt.

Da ich noch in den Anfangsphasen des "verstehens" bin, habe ich mir folgendes "zusammengebastelt"

Code:
	var _BoTime = false;

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

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

	NTA_Initialize();
	
	if(!NTTM_CheckAct()) {
		NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
		return;
	}
	
	NTC_Delay(1000);
	
	if(!NTTM_CheckAct(4)) {
		NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
		return;
	}
	
	RegisterEvent(EVENT_GAMEMSG, quitfunc); 
	RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);

	if(me.classid == 3) {
		if(!NTTM_CheckAct(4)) {
			NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
			return;
		}
		
		Print("Loading Pala function");
		NTTMGR_TownManager();	
		Palafunc();
		return;
	}
	
	if(me.classid == 4) {
		Print("Loading barb function");
		NTTM_TownMove("portalspot");
		NTC_Delay(2500);
	}
	
	for(i = 0; i <= 200; i++)
	{
		if(NTC_InMyParty(NTConfig_Leader))
			break;
			
		if(!NTConfig_Leader)
		{
			_portal = NTM_FindPortalAreaInt(108, 0);
			
			if(_portal != -1)
			{
				_owner = _portal.GetParent();
				
				if(_owner && !NTC_InMyParty(_owner))
					NTConfig_Leader = _owner;
			}
		}

		NTC_Delay(200);
	}

	if(MWConfig_BoTime)
		_BoTime = true;
	
	while(NTC_InTown() && NTC_InMyParty(NTConfig_Leader))
	{
		if(_BoTime)
			NTM_UsePortal("BluePortal", 108, NTConfig_Leader);
			NTP_DoPrecast(true);
			
		NTC_Delay(500);
	
	}			
	
		NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}

function Palafunc() { 
	NTC_Delay(500);
	
	if(!NTTM_TownMove("waypoint")) {
		NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
		return;
	}
	
	if(!NTM_TakeWaypoint(107)) {
		NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
		return;
	}
	
	NTC_Delay(5000);
	NTM_MoveTo(me.areaid, me.x+5, me.y);
	for(var i = 0 ; i < 5 ; i++) {
		if(NTM_MakeTP())
		Say(MWConfig_Announcements.BoTime);
			break;
	}
	
	while(!me.GetState(32))
		NTC_Delay(500);
		NTP_DoPrecast(true);
		return;
	}

	
function quitfunc(msg, type) {
	if(msg.indexOf(NTConfig_Leader) != -1 && (msg.indexOf("weaken") != -1 || msg.indexOf("timeout") != -1)) {
		NTC_Delay(500);
		ExitGame();
	}
}

function NT_GameMsgEvents(msg, type)
{
	var _msg = msg.toLowerCase();
	
	if(type == 0 && _msg.indexOf(NTConfig_Leader.toLowerCase()) > -1 && MWConfig_Announcements.BoTime && _msg.indexOf(MWConfig_Announcements.BoTime.toLowerCase()) > -1)
		_BoTime = true;
}
Es funktioniert auch insofern, das der Pala sein Tp macht, brav sein Sprüchchen sagt, woraufhin der Barb auch det Tp nimmt und Bo gibt.

Nur macht der Pala dann nicht mit seinen anderen Scripts weiter.

Was mache ich falsch bzw. übersehe ich?

Wäre mich über jede Hilfe freuen.


Greetz
11/08/2011 20:03 PeterNeu#2
Hey,

ich bin auch noch in der Anfangsphase des Verstehens und kann Dir somit leider nicht helfen.

Aber ich hab ein BO-Skript ausm Etal-Forum (Danke an Grassroots) für Muddys Version angepasst. Wenn Du möchtest, kann ich Dir das schicken.

Ansonsten alles Gute für deine eigene Version. :)
11/08/2011 20:10 FoGzone#3
bekommt der Pala irgendeine error message nach dem er den bo bekommen hat?

also ich hab mal eben meine gefunden die ich mir mal zusammengebastelt habe und auch funktioniert haben (für classic und anfang der ladder)

Für den Bo Barb:


für die sorc oder pala

Andariel:

Summenor - Duriel + Meppl:

musst allerdings alle noch auf muddys Version anpassen.
In meinem Fall ist der Barb der leader also muss noch in die Charconfig von der sorc folgendes rein:
NTConfig_Leader = "Charname"
KillAndariel = true/false
KillSummenor = true/false
KillDuriel = true/false
KillMephisto = true/false

Bei dem Barb muss das rein:
BoforAndariel = true;
BoforMephisto = true;


Wenn magst kannst auch gerne an den scripten rumbauen etc
11/08/2011 20:14 MaRiOaNnA#4
Quote:
Originally Posted by Knutschkugel View Post
bekommt der Pala irgendeine error message nach dem er den bo bekommen hat?
Nope, er steht einfach nur rum und tut nichts.
11/09/2011 12:29 FoGzone#5
versuch es mal mit dem script was ich oben reineditiert hab
11/09/2011 13:01 MaRiOaNnA#6
Quote:
Originally Posted by Knutschkugel View Post
versuch es mal mit dem script was ich oben reineditiert hab
Oh, garnicht bemerkt dein edit.

PeterNeu hat mir sein Script geschickt, welches bestens funzt und das tut was ich wollte.

Werd mir deins trotzdem mal anschauen.

Danke für dein bemühen.
11/09/2011 13:04 rovx#7
Moin Peter,

falls du willst, stelle dein script uns doch allen zur Verfügung. :)

grüße
11/11/2011 00:07 PeterNeu#8
Sorry, jetzt erst bemerkt.

Es ist nicht mein Skript. Und meine Variante ist hässlich. Das Original gibts im Etal Forum vom Nutzer Grassroots. Link nicht erlaubt wegen fehlendem Backlink