|
You last visited: Today at 07:34
Advertisement
[Project] Baal Wave 2 Party Leaver
Discussion on [Project] Baal Wave 2 Party Leaver within the Diablo 2 Programming forum part of the Diablo 2 category.
12/20/2011, 23:19
|
#1
|
elite*gold: 0
Join Date: Dec 2010
Posts: 73
Received Thanks: 12
|
[Project] Baal Wave 2 Party Leaver
Da keiner der Leecher, die meinen Public Baal Runs folgen, auf die Idee kommt bei der zweiten Baalwelle die Party zuverlassen um den Expbug zu vermeiden, muss ich dieses Problem wohl nun selber in die Hand nehmen.
Umsetzbar ist das Ganze meiner Meinung nach schon, nur habe ich noch nicht mit dem Schreiben begonnen :P
Folgenden Funktionen sollen erfüllt werden:
Following Leecher, aktiv sowie passiv, soll bei einer Partygrösse von 8 Spielern bei der zweiten Baalwelle die Party verlassen und erst zum Spawn der dritten Welle wieder der Party beitreten.
Der Effekt von einem Autopartyplugin aus Redvex soll negiert werden während der zweiten Welle.
Ideen etc sind willkommen
Ich halte euch auf dem Laufenden
|
|
|
12/21/2011, 03:16
|
#2
|
elite*gold: 0
Join Date: Oct 2009
Posts: 798
Received Thanks: 165
|
Den EXP-Bug gibt es schon seid Jahren nichtmehr!
|
|
|
12/21/2011, 07:16
|
#3
|
elite*gold: 0
Join Date: Dec 2010
Posts: 73
Received Thanks: 12
|
Quote:
Originally Posted by Talltree
Den EXP-Bug gibt es schon seid Jahren nichtmehr!
|
Deshalb bekommen meine Chars 10 Exp bei der zweiten Wave
|
|
|
12/21/2011, 08:37
|
#4
|
elite*gold: 0
Join Date: Mar 2010
Posts: 539
Received Thanks: 418
|
Muss er die Party unbedingt verlassen oder reicht es, wenn er Town geht? Wäre um einiges einfacher zu realisieren...
Den Leecher, der in die Town geht, muss man vorher in der Config festlegen, wenn man das dynamisch macht, kann es sein, dass dann eben einer der Leecher ausgewählt wird, die nicht darauf reagieren!
Hier mal meine schnelle Lösung, ich habe es mal so gelöst, dass der Leecher das Leaderportal verwendet, man kann es aber einfach umschreiben, dass ein eigenes gemacht wird):
In der NTConfig.ntl eine neue Variable definieren:
Code:
var MWConfig_BaalLeavePartyWave2;
In der Config des Leechers, der in die Stadt soll:
Code:
MWConfig_Script.push(["NTBaalLeechFight.ntj", 10]); NTConfig_KillBaal = true; MWConfig_DoBaalPreAttack = true; MWConfig_EnterUnsafeTP = true; NTConfig_Leader = "LeaderNameGoesHere"; [B]MWConfig_BaalLeavePartyWave2 = true;[/B]
In der NTBaalLeechFight.ntj:
Code:
switch(_wave)
{
case 1:
NTA_ClearPosition(40, true, 1);
break;
[B]case 2:
if(MWConfig_BaalLeavePartyWave2 && CountPartyMembers() == 8)
{
NTM_UsePortal("BluePortal", 109, NTConfig_Leader);
Delay(10000); // Wait in town
NTM_UsePortal("BluePortal", 131, NTConfig_Leader);
}
else
NTA_ClearPosition(40, true, 1);
break;[/B]
case 3:
NTA_ClearPosition(40, true, 2);
NT_CheckHydraInt();
break;
case 4:
NTA_ClearPosition(40, true, 2);
break;
case 5:
NTA_ClearPosition(40, true);
break;
default:
NTA_ClearPosition(40, true, 1);
break;
}
und die neue Funktion CountPartyMembers() am Ende der NTBaalLeechFight.ntj einfügen (schöner wäre es natürlich die Funktion mit entsprechender Namensanpassung in die NTCommon.ntl einzufügen...):
Code:
function CountPartyMembers()
{
var _player, _count;
_player = GetPlayerUnit();
_count = 0;
if(_player)
{
do
{
if(NTC_InMyParty(_player.name))
_count++;
} while(_player.GetNext());
print("ÿc3Current party members: ÿc2" + _count); // Testausgabe
return _count;
}
return false;
}
PS: Da ich heute keine Möglichkeit zum Testen habe und die Funktion GetPlayerUnit() nicht kenne, bitte die Testausgabe hier posten, damit ich weiß, ob bei einer vollen Party 7, 8 oder gar mehr Werte ausgelesen werden.
|
|
|
12/21/2011, 12:25
|
#5
|
Administrator
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,727
Received Thanks: 12,652
|
Die Funktion passt fast, du solltest nur zwei Punkte beachten: - GetPlayerUnit() gibt eine einfach verkettete Liste von Party Objekten zurück, wobei der Pointer zunächst immer auf ein Objekt zeigt, welches sich auf den gesteuerten Charakter bezieht. Darum sollte statt einer do...while- eine while-Schleife eingesetzt werden, damit dieses Objekt gar nicht erst in die Betrachtung mit einfließt.
- Deine Funktion gibt keine konsistenten Typen zurück. Nicht dass das in JS grundsätzlich ein Problem wäre, irgendwo sind schließlich alle Typen dynamische Objekte, aber es macht für diese Funktion eigentlich keinen Sinn, der Rückgabewert sollte immer vom Typ Number sein.
Sähe dann also so aus:
Code:
function CountPartyMembers()
{
var _player, _count;
_player = GetPlayerUnit();
_count = 0;
if(_player)
{
while(_player.GetNext())
{
if(NTC_InMyParty(_player.name))
_count++;
}
}
print("ÿc3Current party members: ÿc2" + _count); // Testausgabe
return _count;
}
Achja, die Sache mit dem Party verlassen klappt meines Wissens nach mit D2NT nicht, die Core Funktionen werfen bei entsprechenden Parametern reproduzierbar Exceptions und D2 schmiert ab. Somit ist dieser Workaround zumindest auf D2NT bezogen die einzige Alternative.
|
|
|
12/21/2011, 13:44
|
#6
|
elite*gold: 0
Join Date: Mar 2010
Posts: 539
Received Thanks: 418
|
Danke für dein Feedback, ich bin halt doch kein Programmierer!
- Achso, ich bin davon ausgegangen, dass mit dem Aufruf GetPlayerUnit() gleich das 1. Party Objekt ausgewählt wird und nicht erst die "Übersicht" der Party Objekte.
Diese Vermutung habe ich durch das Durchlesen der Funktion NTC_InMyParty(playerName) aufgestellt.
Deswegen habe ich extra die do..while-Schleife gewählt, dass dieses 1. Objekt nicht übersprungen wird.
- Stimmt, da war ich schlampig, was auf meinen Zeitdruck zurückzuführen ist, hatte eine Besprechung und musste dafür noch was fertig machen...

(Sieht man auch an der jetzt richtigen Position der Testausgabe in deiner Variante! )
An das Verlassen der Party habe ich jetzt gar nicht gedacht, da er ja Redvex Autoparty erwähnt hat und ich damit gar keine Erfahrung habe.
|
|
|
12/21/2011, 13:57
|
#7
|
elite*gold: 0
Join Date: Dec 2010
Posts: 73
Received Thanks: 12
|
Jezz muss ich ja noch nichmal mehr damit anfangen
Habs mal reingeschmissen und mir ist aufgefallen, dass der Bot sich selber nicht als Partymember mitzählt...
also entweder:
Code:
case 2:
if(MWConfig_BaalLeavePartyWave2 && CountPartyMembers() == [COLOR="Red"]7[/COLOR])
{
NTM_UsePortal("BluePortal", 109, NTConfig_Leader);
Delay(10000); // Wait in town
NTM_UsePortal("BluePortal", 131, NTConfig_Leader);
}
oder noch ein +1 in die Function einbauen
|
|
|
12/21/2011, 14:42
|
#8
|
elite*gold: 0
Join Date: Mar 2010
Posts: 539
Received Thanks: 418
|
Genau deswegen habe ich in meinem Beitrag ganz unten das dazugeschrieben:
Quote:
Originally Posted by TheCrazy11
PS: Da ich heute keine Möglichkeit zum Testen habe und die Funktion GetPlayerUnit() nicht kenne, bitte die Testausgabe hier posten, damit ich weiß, ob bei einer vollen Party 7, 8 oder gar mehr Werte ausgelesen werden.
|
Funktioniert es sonst?
|
|
|
12/21/2011, 15:13
|
#9
|
elite*gold: 0
Join Date: Dec 2010
Posts: 73
Received Thanks: 12
|
Quote:
Originally Posted by TheCrazy11
Genau deswegen habe ich in meinem Beitrag ganz unten das dazugeschrieben:
Funktioniert es sonst?
|
Jop, tut es 
Nur das mit dem Towndelay werd ich noch ändern, jenachdem wielang die zweite Welle dauert ist der Leecher manchmal zuschnell/zulangsam.
Werds wohl auf ein extra Leaderaccouncement umstellen sobald ich Zeit finde
|
|
|
 |
Similar Threads
|
Suche Script line für Baal Party @ D2NT
04/25/2011 - Diablo 2 - 4 Replies
Hat jemand ne Script line bei der der bot wenn baal an der reihe ist die "party leavt" und einen bestimmten spieler einlädt?
|
Autoshare Party Project
12/13/2010 - Silkroad Online - 3 Replies
What you need:
-Silkroad experience
-Bot (Sbot/mBot)
-hold your character only 24/7
-you should be aktiv
-well english skills or german =)
Server: Aral
|
Autoshare Party Project##
12/13/2010 - Silkroad Online - 26 Replies
Hello Community
most of you know the videos from Mx which done 60+ in some days. Yea Party lvling is very funny
and fast. But hard to find people for partys. Here i wanna search guys which are interested in
Party Lvling (1-110). I already tried to do so a party with 2 friends. I had 4 chars, my friends each 2. But it didint worked caus we were not enough players to do it. We often died and Its hard for my pc to hold 4 clients 24/7 online. Becaus of this i wanna search here some nice people...
|
Baal Leeech bot bleibt nach baal kill im game
06/17/2010 - Diablo 2 - 3 Replies
hey leute
hab en problem mit meinem leechbot,
also ich leeche dia&baal und kämpfe auch mit aber nachdem baal gelegt wurde bleibt der bot einfach im game und tut nichts
kann mir vll jemand weiter helfen?
|
baal runs (assa)ntbot ohne baal
01/22/2010 - Diablo 2 - 2 Replies
also ich mach 20 games gestern hatte bei 57 aufgehört nur baal diener
1game
login 11 27 33 sec
game offen 11 27 53 sec
20 games! 12 :33:47
|
All times are GMT +1. The time now is 07:37.
|
|