problem mit 3 leech bots mit redvex fastmod

07/19/2011 12:52 Kobold2#1
Hallo

erstmal zu meiner situation:
ich habe 3 bots welche bei meinem freund in priv dia baal runs leechen und ich benutze den redvex fastmod.

das problem ist folgendes:
wenn nach einem fertigen game alle 3 bots im chat sind und auf das neue game von leader warten und dann bei der meldung joinen gibt es nur joinbugs weil eben alle gleichzeitig joinen

ich habe mal gesucht und einen interessanten eintrag in der etal wiki gefunden der so ziemlich meiner situation enspricht:

Quote:
Using redvex with Etal with multiple leechfighters causes some to fail to join

If you use redvex and 3 bots to leechfight by default they will all join the new game at the same time. This will always cause 1 bot to fail to join. Because 2 bots can join right away with no problem you need to give the 3rd bot a delay.

1. Put this in your NTLeechStarter.ntj file right in the beginning to the other variables:

Code:
var delayLeecher = "leechernamehere"; 	//add the name of one of your leechers
					// must be spelled and cased exactly
var delayLeecherDelay = 500;  		// the delay that will differ from the other
					// leechers. Play with this and find what works best.
In my case it set the delay to 3000. you have to see what works best.

2. Find these lines:
Code:
controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
Delay(100);
Replace "Delay(100);" with this:
Code:
	if(me.charname == delayLeecher){
		Delay(delayLeecherDelay);
	}

	else{
		Delay(100);
	}
Ich habe es getestet mit 2 bots und es läuft wunderbar. jedoch klappt es mit 3 bots nicht. somit ist
Quote:
Because 2 bots can join right away with no problem you need to give the 3rd bot a delay.
für mich falsch.
also bräuchte ich noch eine verzögerung für den zweiten bot.

sodass am ende der erste bot ohne delay joint, dann der zweite mit nem kleinem delay und dann schliesslich der letzte auch mit nen kleinem delay.


also hab ich einfach mal noch 2 variablen oben eingefügt, aber wie löse ich das dann weiter unten bei punkt 2. ?

grüsse
07/19/2011 13:50 TheCrazy11#2
Ich habs mal für folgende Situation gecodet:
1. Leecher joint gleich
2. Leecher (delayLeecher1) nach 100 + delayLeecherDelay
3. Leecher (delayLeecher2) nach 100 + 2x delayLeecherDelay

Code:
var delayLeecher1 = "leecher1"; 	//add the name of one of your leechers
var delayLeecher2 = "leecher2"; 	// must be spelled and cased exactly

var delayLeecherDelay = 500;  		// the delay that will differ from the other
					// leechers. Play with this and find what works best.
Und der 2. Teil:
Code:
	controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
	if(me.charname == delayLeecher1)
		Delay(100 + delayLeecherDelay);
	elseif(me.charname == delayLeecher2)
		Delay(100 + 2 * delayLeecherDelay);
	else
		Delay(100);
Ist keine schöne Lösung, sollte jedoch funktionieren.
07/19/2011 13:58 lanara#3
Ich habe das ganze in etwas anderer Form mal in meine [Only registered and activated users can see links. Click Here To Register...] eingefügt. Einfach deine Chars bei DelayedJoinChars eintragen und gegebenenfalls das Delay noch anpassen. (MultipleLeecherJoinDelay)
07/19/2011 14:56 Kobold2#4
also erstmal danke euch beiden aber der manager schliesst sich immer sofort nach dem starten mit ner fehlermeldung bei beiden vorschlägen..
ich benutzte den etal bot.
07/19/2011 19:55 lanara#5
Wäre gut, wenn du die Fehlermeldung dann auch mit posten würdest. :p
07/25/2011 15:54 data29#6
@Kobold2
hatte das gleiche problem, habs jetzt auf ne andere art gelöst
habe mir einfach von der NTLeechStarter.ntj zwei kopien (NTLeechStarter3.ntj und NTLeechStarter4.ntj) erstellt und darin einfach die delay werte erhöht
bei NTLeechStarter3.ntj
Code:
case 5: // Join Game
    if (game)
    {
        controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);
        Delay ([COLOR="Red"]300[/COLOR]);
        controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
        Delay ([COLOR="Red"]800[/COLOR]);
bei NTLeechStarter4.ntj
Code:
case 5: // Join Game
    if (game)
    {
        controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);
        Delay ([COLOR="Red"]600[/COLOR]);
        controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
        Delay ([COLOR="Red"]1600[/COLOR]);
ist zwar nicht die schönste art das problem zu lösen
aber es funktioniert (bei mir zumindest)