Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Diablo 2 > Diablo 2 Programming
You last visited: Today at 19:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



while-schleife cast x | schleife ende cast y

Discussion on while-schleife cast x | schleife ende cast y within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2008
Posts: 169
Received Thanks: 14
while-schleife cast x | schleife ende cast y

ich kann nicht einschlafen und versuche gerade halbwach herauszufinden, wie ich den bot etwas casten lassen kann, um ihn anschließend nach 10-15 casts etwas anderes casten zu lassen.
Code:
	if(NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100)
	{
		if((target.name == "Pindleskin") && NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100)
		{
			var i =0;
			while(i<15)
			{
				return NTC_CastSkill(106, NTC_HAND_LEFT, target);
				i++;
			}
			
			return NTC_CastSkill(101, NTC_HAND_LEFT, target);
		}
		else 
			return NTC_CastSkill(101, NTC_HAND_LEFT, target);
	}
das soll theoretisch beim phys immunen pindle 15x zealen um anschließend zu holybolten, doch irgendwie zealt es nur - vorschläge?
fuuch is offline  
Old 07/26/2010, 12:32   #2
 
elite*gold: 0
Join Date: Apr 2010
Posts: 344
Received Thanks: 173
Edit : Bullshit-Gelaber, tut nix zur Sache
Zerker.jar is offline  
Old 07/26/2010, 12:35   #3
 
elite*gold: 0
Join Date: Jul 2008
Posts: 169
Received Thanks: 14
Code:
var i =0;
			while(i<15)
			{
				return NTC_CastSkill(106, NTC_HAND_LEFT, target);
				i++;
			}
			
			[COLOR="Red"]return NTC_CastSkill(101, NTC_HAND_LEFT, target);[/COLOR]
das kommt ja direkt nach der while schleife, also müsste das doch aufgerufen werden nachdem er die schleife durchrattert - oder?

der else fall ist für alle anderen phys immunen mobs, ich möchte bei pindle das er die adds umzealt, bevor er anfängt ihn zu holybolten, sonst hauen die mich und meinen merc um (holy bolt macht auf dem zealer eher wenig dmg, aber genug um einen phys immunen mob umzuhauen nach 15sek)
fuuch is offline  
Old 07/26/2010, 12:44   #4
 
elite*gold: 0
Join Date: Apr 2010
Posts: 344
Received Thanks: 173
Au weia ich bin heut´aber dodal verpeilt.

Das "else" wird nur dann ausgeführt, wenn die Phys-Resis von Pindle <= 100 sind. Hattest du des so geplant?
Zerker.jar is offline  
Old 07/26/2010, 14:25   #5
 
sternenlooper's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,675
Received Thanks: 789
wieso eine while schleife? o.O

es gibt doch eine schöne counter schleife -.-
Code:
   for(i = 0; i <= 20; i++) //führe das 20 mal durch
   {
      meine befehle die ich einbauen wollen würde
         break; //diesen befehl mit deinem if sowieso verbinden fals eine gewisse situation erreicht ist! wie zb pindel nicht 100% immun dann gleich abbrechen
   }
sternenlooper is offline  
Old 07/26/2010, 14:57   #6
 
elite*gold: 0
Join Date: Jul 2008
Posts: 169
Received Thanks: 14
hm das else liegt in der äußeren if-abfrage und soll eigentlich zünden, wenn das target nicht pindleskin heißt (und phys immun ist), aber dennoch phys immun ist.
ich versuche es jetzt mal mit der for-loop
fuuch is offline  
Old 07/26/2010, 22:29   #7
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,727
Received Thanks: 12,652
Ich habe es nur mal kurz überflogen, hoffe ich habe dabei nichts übersehen.

Was Sterni sagt stimmt schonmal, du solltest immer wenn du die Anazhl der Durchläufe kennst (eventuell auch nur grob wenn es für die Anwendung reicht) zur for-Schleife tendieren, auch wenn es hier nichts am eigentlichen Problem ändert. Zum einen ist die Schreibweise kompakter, zum anderen ist die Gefahr von Endlosschleifen deutlich geringer.

Dein eigentliches Problem hier liegt aber mehr im Geltungsbereich deiner Zählvariable. Die Zählvariable i existiert nur im if-Block, nicht aber darüber hinaus. Mal abgesehen davon, wird aber die Funktion mit dem return beendet, sprich die Inkrementierung deiner Zählvariable findet nie statt.
Mit dem return endet auch die Lebensdauer deiner Zählvariablen, sprich beim nächsten Funktionsaufruf wird wieder eine neue Zählvariable i angelegt und mit 0 initialisiert.
Aus diesem Grunde kann man aus dem obigen Beispiel auch die while-Schleife sowie die Zählvariable komplett entfernen und hätte denselben Effekt - aktuell läuft die Schleife nämlich jedes mal genau ein einziges mal durch und endet mit dem return.

In C++ könnte man sowas mit statischen Variablen lösen, die einmal deklariert werden und dann über die ganze Laufzeit des Programms hinweg existieren. Ich fürchte aber, dass es sowas in JavaScript nicht gibt.

Also musst du dir irgendwie mit einer globalen Zählvariable behelfen.
Diese musst du dann gegebenenfalls immer wieder zurücksetzen, wobei du das stattdessen auch einfach mit dem Modulo Operator lösen kannst.

Ich hoffe das ist so klar, ansonsten nochmal nachfragen, dann erkläre ich es nochmal genauer.

Lg
Muddy
Muddy Waters is offline  
Reply


Similar Threads Similar Threads
[Frage]Gui + while schleife?
09/05/2010 - AutoIt - 2 Replies
Tach, Wie kann man einen Wert in einen Label ständig aktualisieren, ohne das sich das GUI aufhängt, ich meine funktion die im hintergrund läuft und das man gleizeitig noch andere funktionen von button aufrufen kann. Wenn ich meine funktion in die while schleife unter dem gui packe, aktualisiert sich der wert blos ich kann das script nicht schließen und keine buttons betätigen.
[HELP] for..to..next..step schleife
07/09/2010 - AutoIt - 8 Replies
hi leuts ich hab ein problem mit meinem script #include <IE.au3> $name="xxx" $pw="xxx" $1=1 $2=23
[Frage]While schleife
07/14/2009 - AutoIt - 2 Replies
Kann man While so einstellen das es die Taste nicht gedrückt hält sondern immer schnell hintereinander drückt? Danke im Voraus:)
zauberwarteschlange/schleife??
02/12/2008 - WoW Bots - 5 Replies
Servus leute... ich hab nen warlock... und eigentlich ne ganz kurze Frage...ist es irgendwie möglich, zb verderben, fluch, feuer zu klicken--direkt nacheinander- und mit hilfe eines makro/prog7addon/bot oder was auch immer diese sachen in der reihenfolge zu wirken-sobald sie dann verfügbar sind? sozusagen eine warteschlange erstellen die dann abgearbeitet wird... ich möchte kein prog was alles für mich macht, aber so eine warteschleife an spells die dann abgearbeitet werden, wenn sie dann...
For-Schleife
01/29/2007 - General Coding - 14 Replies
Also wir haben ( um uns an die For-Schleife zu gewöhnen) ne eigentlich relativ einfache Aufgabe bekommen. Ich hoffe ich kann mich richtig dran errinern wie sie hieß^^ Wir sollten mit der FOR-Schleife herrausfinden wie viele Zahlen zwischen zwei Zahlen die man eingeben kann vorhanden sind. So ODER so ähnlich. Is ja auch nich viel Schreibtext aber mir fehlt das entscheidene Zwischenteil : procedure TForm1.Button1Click&#40;Sender&#58; TObject&#41;; var zahl1,zahl2,a&#58;integer; begin



All times are GMT +1. The time now is 20:03.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.