Register for your free account! | Forgot your password?

You last visited: Today at 11:14

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

Advertisement



[D2NT] Mob auslassen?

Discussion on [D2NT] Mob auslassen? within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old   #1
 
SparkZ11's Avatar
 
elite*gold: 2
Join Date: Dec 2009
Posts: 391
Received Thanks: 65
[D2NT] Mob auslassen?

Hi,

hab das problem vorallem im cs, wenn mal so ein ghost hinter ner mauer rumschebt probiert der bot den zukillen ohne erfolg bis er ausn game rausgeht kann man irgendwie einstellen das er nach 10 sek den mob skipt?

danke schonmal
SparkZ11 is offline  
Old 05/18/2010, 19:18   #2
 
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
NTAttack

Code:
function NTA_IsValidMonster(monster)
{
	var _classid;

	if(monster.hp <= 0 || monster.mode == 0 || monster.mode == 12)
		return false;

	_classid = monster.classid;

	if(((_classid >= 110 && _classid <= 113) || _classid == 608) && monster.mode == 8) // ignore flying scavengers
		return false;

	if(_classid == 68 && monster.mode == 14) // ignore burrowing maggots
		return false;

	if(_classid >= 258 && _classid <= 263 && monster.mode == 14) // ignore submerged WaterWatchers
		return false;

	if(monster.GetState(53) || monster.GetState(96)) // Conversion, Revive
		return false;

	return true;
}

so jetzt einfach die id von den ghosts raussuchen und adden
Medix is offline  
Thanks
1 User
Old 05/18/2010, 19:38   #3
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,727
Received Thanks: 12,652
Quote:
Originally Posted by Medix View Post
NTAttack

Code:
function NTA_IsValidMonster(monster)
{
    var _classid;

    if(monster.hp <= 0 || monster.mode == 0 || monster.mode == 12)
        return false;

    _classid = monster.classid;

    if(((_classid >= 110 && _classid <= 113) || _classid == 608) && monster.mode == 8) // ignore flying scavengers
        return false;

    if(_classid == 68 && monster.mode == 14) // ignore burrowing maggots
        return false;

    if(_classid >= 258 && _classid <= 263 && monster.mode == 14) // ignore submerged WaterWatchers
        return false;

    if(monster.GetState(53) || monster.GetState(96)) // Conversion, Revive
        return false;

    return true;
}
so jetzt einfach die id von den ghosts raussuchen und adden
Irgendwie löst das aber das eigentliche Problem nicht, es umgeht es einfach.

Das mit dem Timer sollte auch leicht umzusetzen sein. Irgendwo in der NTAttack.ntj müsstest du mal die entsprechende Attack Funktion suchen.
Typischerweise wird dort ein Monster Objekt instantiiert, danach kommt in irgend einer Weise eine While-Schleife, in der dann als Schleifenbedingung sowas wie monsterunit.GetNext() steht. du musst dir im Grunde nur anschauen wie nun die einzelnen Monster angegriffen werden, vermutlich auch in einer While-Schleife, wobei vermutlich vermutlich solange angegriffen wird, solange das Monster ein gültiges Ziel ist (also beispielsweise noch lebt).

Genau vor dieser Schleife speicherst du nun den aktuellen Tick Count in einer Variable. In die Bedingung der "Angriffs"-While-Schleife kommt nun eine zusätzliche Bedingung, nämlich ganz einfach die Differenz von aktuellem Tick Count und dem zuvor gespeicherten Wert.
Dies ist dann die Schleifenlaufzeit in Millisekunden, die du dann nach belieben mit einem vorher definiertem Referenzwert (z.B. 10 Sekunden) vergleichen kannst.
Das war einmal die Kurzform, ich hoffe die Umsetzung schaffst du selbst, ich habe gerade weder Zeit noch Lust das zu implementieren.

Lg
Muddy
Muddy Waters is offline  
Thanks
1 User
Old 05/18/2010, 20:09   #4
 
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
Quote:
Originally Posted by Muddy_Waters View Post
Irgendwie löst das aber das eigentliche Problem nicht, es umgeht es einfach.
ja aber sehr effektiv ^.^

Deine Lösung mag zwar sehr elegant sein, er wird sich damit jedoch den kompletten bot zerschießen wenn er nicht weiß was er tut .


PS: Die Monsterid findest du im Sticky
Medix is offline  
Thanks
1 User
Old 05/18/2010, 22:05   #5
 
elite*gold: 0
Join Date: Apr 2009
Posts: 108
Received Thanks: 44
Mein Ansatz war nach jedem Angriff zu schaun ob der erfolgreich war oder nich (gibt nen switch wo dies abgefragt wird) und wenn der angriff daneben ging nen zähler zu inkrementieren. sobald der dann z.B. >5 soll er das Monster auslassen und zum nächsten gehen - hat nur nich so geklappt wie ichs wollt und habs drum wieder rausgenommen - vllt hat ja wer anders mehr Erfolg damit..
hdin84 is offline  
Thanks
1 User
Old 05/19/2010, 00:33   #6
 
SparkZ11's Avatar
 
elite*gold: 2
Join Date: Dec 2009
Posts: 391
Received Thanks: 65
Quote:
Originally Posted by Muddy_Waters View Post
Irgendwie löst das aber das eigentliche Problem nicht, es umgeht es einfach.

Das mit dem Timer sollte auch leicht umzusetzen sein. Irgendwo in der NTAttack.ntj müsstest du mal die entsprechende Attack Funktion suchen.
Typischerweise wird dort ein Monster Objekt instantiiert, danach kommt in irgend einer Weise eine While-Schleife, in der dann als Schleifenbedingung sowas wie monsterunit.GetNext() steht. du musst dir im Grunde nur anschauen wie nun die einzelnen Monster angegriffen werden, vermutlich auch in einer While-Schleife, wobei vermutlich vermutlich solange angegriffen wird, solange das Monster ein gültiges Ziel ist (also beispielsweise noch lebt).

Genau vor dieser Schleife speicherst du nun den aktuellen Tick Count in einer Variable. In die Bedingung der "Angriffs"-While-Schleife kommt nun eine zusätzliche Bedingung, nämlich ganz einfach die Differenz von aktuellem Tick Count und dem zuvor gespeicherten Wert.
Dies ist dann die Schleifenlaufzeit in Millisekunden, die du dann nach belieben mit einem vorher definiertem Referenzwert (z.B. 10 Sekunden) vergleichen kannst.
Das war einmal die Kurzform, ich hoffe die Umsetzung schaffst du selbst, ich habe gerade weder Zeit noch Lust das zu implementieren.

Lg
Muddy
hmm danke so werd ichs wahrscheinlich machen hab euch allen ein thx gegeben
SparkZ11 is offline  
Old 05/19/2010, 22:47   #7
 
elite*gold: 20
Join Date: Jan 2008
Posts: 2,338
Received Thanks: 490
Also wirklich... wer so programmiert hat ja keinen style :O

Das schaut nicht nach C# aus.... eher Kinderlähmung
~Yuki~ is offline  
Reply


Similar Threads Similar Threads
storm caster / geister im cs auslassen
04/28/2010 - Diablo 2 Programming - 1 Replies
im cs hängen manchmal geister in den wänden fest und der bot castet bist er oom ist und bricht danach ab, also hier ein einfacher fix: NTAttack.ntl in libs/common/ zeile 632 ungefähr in -> folgenden eintrag einfügen der bot lässt alle geister im cs aus bis auf den vizier und seine mitspawns + die rare geister spawns die es manchmal so gibt dort
[D2NT] Mausuleum Blitzimmune auslassen
04/07/2010 - Diablo 2 Programming - 2 Replies
Hy! Gibt es irgendwie die Möglichkeit, einzustellen, dass der Bot im Mausuleum die Blitzimmunen einfach auslässt? Habt ihr da vielleicht ne lösung? Danke im Vorraus. Lg
GameMaster bei Rangliste auslassen
09/22/2009 - General Coding - 8 Replies
Hallu^^ Bin gerade am Coden eines Rankings für das Onlinegame Metin2, alles mit PHP und HTML. Zu meinem Problem: Es funktioniert alles, aber er ließt die GameMaster auch aus der Liste aus. Hier kann man das Ranking betrachten:
SRY MUS MICH ABER ÜBER LONGJUYT2 AUSLASSEN
07/09/2009 - Metin2 Private Server - 37 Replies
Hii >.< ich bin gerade so angepisst wegen dem drecks P-server longjuyt2 diese scheis kicks regen mich so auf man zock 2 min dan diese kicks dan mus man scheis lange warten bis man eingeloggt hat. Das regt mich so auf hab schon meine tastatur zerhauen die sollen mal die ganze bug user und hacker bannen dan is der server eh halb leer dan gibts keine kick >.< €: pls net bannen musste aber sein
SRY MUS MICH ABER ÜBER LONGJUYT2 AUSLASSEN
07/08/2009 - Metin2 Private Server - 18 Replies
Hii >.< ich bin gerade so angepisst wegen dem drecks P-server longjuyt2 diese scheis kicks regen mich so auf man zock 2 min dan diese kicks dan mus man scheis lange warten bis man eingeloggt hat. Das regt mich so auf hab schon meine tastatur zerhauen die sollen mal die ganze bug user und hacker bannen dan is der server eh halb leer dan gibts keine kick >.< €: pls net bannen musste aber sein :mad:



All times are GMT +1. The time now is 11:18.


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.