D2nt Blood Mana

06/20/2010 11:02 Harlekind#1
Guten Tag,
ich stoße bei einigen Runs auf das Problem des "Blood Mana"-Fluches, welcher mir bei jedem Wirken eines Zaubers Schaden zufügt.

Ich lass die Sorc momentan auf normal leveln und dieser Fluch löst immer chicken aus, da er nicht abgefragt wird. Ich benutze D2nt 3.0 und habe bereits einige Modifikationen in den Skripten vorgenommen.
- eine (für mich) besseren Restockingfunktion des Gürtels
- Behebung des falschen Tränkekaufs (immer die schlechten)

Nachdem ich mich mit diesen Problemen selber rumgequält habe, wollte ich nun mal um Hilfe bitten.
Ich möchte diesen nun auch bei NTTMGR_CheckCurse() abfragen lassen.
Hat jemand dafür schon eine fertige Lösung oder kann mir sagen, wo ich was hinzufügen muss?
1. Erstellen einer neuen statemask? (Wo? Wie?)
2. Erstellen eines neuen Charakterzustandes? (Wo? Welche Werte hat Blood Mana?)

Code:
// mask - 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
function NTTMGR_CheckCurse(selfmask, mercmask)
{
	if(selfmask > 0x01)
	{
		if((selfmask&0x02) && me.GetState(2))
			return true;

		...
>>>>		if((selfmask&0xXX) && me.GetState(X))
			return true;
	}

	if(mercmask > 0x01)
	{
		var _merc = NTC_GetMerc();

		if(_merc)
		{
			if((mercmask&0x02) && _merc.GetState(2))
				return true;

			...
>>>>			if((mercmask&0xXX) && _merc.GetState(X))
			return true;
		}
	}

	return false;
}
06/20/2010 11:13 Publ!c 3n3my#2
Is das dein ernst das ein Fluch deinen Char zum Chicken bringt?
06/20/2010 11:36 Harlekind#3
Quote:
Originally Posted by Publ!c 3n3my View Post
Is das dein ernst das ein Fluch deinen Char zum Chicken bringt?
Meine Sorc hat momentan noch nicht viel Leben. Da der Fluch aber jedesmal Leben abzieht, wenn sie zaubert... Ja. Der bringt einen schnell zum chicken.
6mal (geschätzt) Teleportieren und Leben ist weg -> Chicken
Und 6mal Teleportieren geht schnell, oder nicht? ;)

Hab noch jemand anderes eine Hilfe? Deines hilft mir nicht^^
06/20/2010 11:36 kal_el#4
Quote:
Ich lass die Sorc momentan auf normal leveln
dann könnt es hingehn oder?
aber ich würd mich da schleunigst mal rushen lassen... das ja öde da rum zu gurken...
06/20/2010 11:38 Harlekind#5
Quote:
Originally Posted by kal_el View Post
dann könnt es hingehn oder?
aber ich würd mich da schleunigst mal rushen lassen... das ja öde da rum zu gurken...
Wenn auf Alp und Hell kein Blood Mana benutzt wird, gerne ;)
Außerdem habe ich den Bot erst vor 3 Tagen angeschafft und habe ihn von 18an (oder ab wann man halt Teleportation bekommt) selber leveln lassen um die Einstellungen zu machen.
06/20/2010 11:54 yewyow#6
Quote:
Originally Posted by Publ!c 3n3my View Post
Is das dein ernst das ein Fluch deinen Char zum Chicken bringt?
Der Fluch ist böse, statt Mana wird halt leben verbraucht :cool:

Auf Hell ist mir der schon lange nichtmehr untergekomme, zuletzt mal vor 2-3 monaten @ Anya.
06/20/2010 11:57 Harlekind#7
Quote:
Originally Posted by yewyow View Post
Der Fluch ist böse, statt Mana wird halt leben verbraucht :cool:

Auf Hell ist mir der schon lange nichtmehr untergekomme, zuletzt mal vor 2-3 monaten @ Anya.
Vielen Dank. _Das_ war (meiner Meinung nach) der hilfreichste Beitrag ;)
06/20/2010 12:25 Publ!c 3n3my#8
Naja aber mal erlich wer bottet den schon auf normal? auf alp oder hel passiert dir sowas nicht das du wegen des fluches chicken bekommst.
06/20/2010 12:32 Harlekind#9
Wiegesagt, ich habe den Bot vor 3Tagen angeschafft und musste mich erst einarbeiten und Einstellungen machen. Da war das Lvln der Sorc mit dem Bot grade praktisch.

Ich pack ungern Programme drauf und lass die einfach laufen ohne eine Ahnung zu haben wie die Skripte laufen.
Obwohl das Problem nun gelöst ich (ich botte gerade auf Alp) würde ich doch gerne wissen, wie man den Fluch überprüfen würde. Sonst ist das ja nur ein ungelöstes/umgangenes Problem ;) Probleme sind da um gelöst zu werden.

Werde den Bot nun in Tristram und bei der Countess lvln lassen und schaue später nochmal, ob es weitere Hilfe bezüglich neuer statechecks gibt.
afk paar Stunden
06/20/2010 14:13 Muddy Waters#10
Dein Code Schnipsel sieht ziemlich abenteuerlich aus, am besten Kommentare auch als solche einfügen, oder durch Farben hervorheben, aber das ist natürlich reine Kosmetik, mit Syntaxfremden Ausdrücken oder wie in deinem Fall mit Operatoren sieht es abenteuerlich aus, aber das ist natürlich reine Kosmetik.

Zu deinem eigentlichen Problem:
Man könnte das für sämtliche States, also auch alle Flüche einbinden.
Die hexadezimal Zahlen die dort verwendet werden sind im prinzipiell frei gewählt und ermöglichen nur den bitweisen Abgleich. Das ganze hat einfach den Hintergrund, dass es von der Schreibweise her kompakter wird, sonst nichts.

Somit lassen sich auch leicht neue States hinzufügen.
Die NTTMGR_CheckCurse() Funktion hast du ja schon gefunden. Du müsstest dir eine hexadezimal Zahl definieren und die State ID des Zustandes wissen, auf welchen du überprüfen willst.

Mal ein doofes Beispiel:
Code:
if((selfmask&0x50) && me.GetState(51)) // Battle Command
            return true;
Die 0x50 als mask habe ich frei gewählt, 51 ist die State ID von Battle Command. Jetzt muss ich nurnoch meine gewählte mask mit dem bitweisen ODER Operator in meiner Config einfügen und schon würde der Char jedes mal bei Battle Command einen Stadtbesuch durchführen.
Doofes Beispiel, aber das Prinzip sollte klar sein denke ich. :)

Lg
Muddy
06/20/2010 14:26 deep_thought#11
Hmmm, ich empfehle dir eh mal eine der neuen Versionen runterzuladen, und wenn du dich ja schon mit scripten auskennst, bisschen reinzuschauen. Eventuell willst mal umsteigen. Die neusten Versionen haben inzwischen halt schon einiges an Verbesserungen.

Bevor du da weiter rumwerkelst vielleicht mal schauen, ob's das Zeugs nicht schon in einer ausgereifteren Version gibt. Kannst ja dann immer noch zusammenbasteln.
06/20/2010 15:36 GruenerApfel#12
Quote:
Originally Posted by yewyow View Post
Der Fluch ist böse, statt Mana wird halt leben verbraucht :cool:

Auf Hell ist mir der schon lange nichtmehr untergekomme, zuletzt mal vor 2-3 monaten @ Anya.
dann botte mal mit ner es sorc .... die hexen bzw auch baal casten ihn jedes mal wenn dein life <x> mana haushalt zu gunsten von mana ausfällt, wobei tele dann noch harmlos is richtig funny wirds erst wenn blizzard oder so ins spiel kommen :D
06/20/2010 16:29 Harlekind#13
Quote:
Originally Posted by Muddy_Waters View Post
Dein Code Schnipsel sieht ziemlich abenteuerlich aus, am besten Kommentare auch als solche einfügen, oder durch Farben hervorheben, aber das ist natürlich reine Kosmetik, mit Syntaxfremden Ausdrücken oder wie in deinem Fall mit Operatoren sieht es abenteuerlich aus, aber das ist natürlich reine Kosmetik.
Das ist aus dem Skript kopiert, dass bei meinem Bot dabei war. Ich hätte da aber auch gerne mehr Kommentare gehabt. Schön, dass das andere auch so sehen^^
Das Gekürzte diente der Übersichtlichkeit. Das neu hinzugefügte sollte auf das anspielen, was du bereits bestätigt hast :D

Nun muss ich nurnoch die ID von Blood Mana herausfinden. Dazu wird es sicherlich Tabellen geben.

Danke
06/20/2010 16:35 Nikoklaus#14
310 Blood Mana

sdk/skils.txt
06/20/2010 21:39 Harlekind#15
Quote:
Originally Posted by deep_thought View Post
Hmmm, ich empfehle dir eh mal eine der neuen Versionen runterzuladen, und wenn du dich ja schon mit scripten auskennst, bisschen reinzuschauen. Eventuell willst mal umsteigen. Die neusten Versionen haben inzwischen halt schon einiges an Verbesserungen.

Bevor du da weiter rumwerkelst vielleicht mal schauen, ob's das Zeugs nicht schon in einer ausgereifteren Version gibt. Kannst ja dann immer noch zusammenbasteln.
Was ist denn die neueste Version? In meiner History steht:
D2NT for Diablo II 1.13c
=========================

D2NT.dll : Core + SpiderMonkey 1.8 RC1 + NSPR 4.8.4
D2NT Manager.exe : D2NT OOG Manager
D2NT ManagerKOR.dll : Korean MUI
D2NT ManagerLOC.dll : English MUI