Register for your free account! | Forgot your password?

You last visited: Today at 10:34

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

Advertisement



MF-Weaponslot Switch

Discussion on MF-Weaponslot Switch within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 0
MF-Weaponslot Switch

Moin zusammen,

Finde einfach nix zum Thema, also frag ich mal hier nach.

Wie muß ich die Attack Library umschreiben, dass der Bot einen Weaponslot-Switch macht, wenn das Leben vom Boss nur noch x-% beträgt und den Slot bis zum Tod des Bosses bei behält und danach wieder auf den Kampfslot wechselt?

Hoffe hab mich da verständlich ausgedrückt. Ist halt dafür da, kurz vorm Ende mehr MF zu haben.

Gruß
Balti
MrBaltimore is offline  
Old 02/25/2011, 16:44   #2
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Wärst du so nett und editierst in deinen Beitrag noch deine NTA_KillMonster() Funktion rein?

Dann haben wir eine gemeinsame Basis auf die ich eingehen kann, so würde ich vermutlich an dir vorbei reden und Mitleser können nicht folgen.

Die Funktion findest du in der NTAttack library.
Und denk an die [Code]-Box.

Lg
Muddy

Edit: Ich wollte doch weniger Vollzitate posten...
Muddy Waters is offline  
Old 02/25/2011, 16:50   #3
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 0
Kommt sofort. Ist komplett Standard.

MrBaltimore is offline  
Old 02/25/2011, 17:10   #4
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Das hier ist einmal die schnelle Lösung, sehr einfach gestrickt:
Code:
function NTA_KillMonster(classid)
{
    var _target, _swapped;

    if(NTConfig_AttackSkill[1] < 1)
        return false;

    _target = NTC_FindUnit(NTC_UNIT_MONSTER, classid, 5);

    if(!_target)
        return false;
        
    _swapped = false;
    
    if(_target.IsAttackable())
    {
        var _attackcount = 0;
    
        while(_attackcount < 300 && NTA_IsValidMonster(_target))
        {
            if(NTA_Attack(_target, (_attackcount%30) == 0) < 2)
                break;

            _attackcount++;
            
            if(!_swapped && parseInt(_target.hp * 100 / _target.hpmax) < MWConfig_SwitchSlotHP && (_target.classid == 156 || _target.classid == 211 || _target.classid == 242 || _target.classid == 243 || _target.classid == 544))
                _swapped = NTC_SwapWeapons();
        }
    }
    
    if(_swapped)
        NTC_SwapWeapons();

    return (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12);
}
Da ich es nicht Kommentiert habe, gibt es hier mal ein paar Kommentare in Textform:
Die Schwelle habe ich in einer lokalen Konstante untergebracht, die mit dem gewünschten Wert initialisiert wird. Schicker wäre natürlich eine passende Variable in der Char Config.
Wenn du das lieber möchtest, frag nach, ist nur minimal mehr Aufwand.

Die Config Variable MWConfig_SwitchSlotHP muss natürlich noch deklariert werden. Dazu einfach die NTConfig.ntl im Config Ordner öffnen und irgendwo folgendes einfügen:
Code:
var MWConfig_SwitchSlotHP;
Danach muss die Variable nur irgendwo in der Charconfig initialisiert werden. Als Wert wird dabei die HP Schwelle des Monster in Prozent angegeben, bei der ein Slotwechsel erfolgen soll.
Soll kein Slotwechsel erfolgen, wird die Variable mit 0 initialisiert.

Hier einmal beispielshaft die initialisierung mit für eine Schwelle von 10%:
Code:
MWConfig_SwitchSlotHP = 10;
Natürlich ist diese Lösung auch dahingehend etwas suboptimal, dass einfach ein Slotwechsel durchgeführt wird, ohne zu überprüfen, welche Eigenschaften der aktuelle Slot hat. Allerdings wäre das Analysieren der verschiedenen Slots deutlich komplizierter und würde hier vermutlich den Rahmen sprengen, jedenfalls wenn deine D2NT Version nicht ohnehin schon entsprechende Funktionen dafür mitbringt.
Die Variable _swapped brauchen wir übrigens, um zu verhindern, dass nach jedem Angriff ein Slotwechsel erfolgt und auch um am Ende zurückzuwecheln, falls ein Slotwechsel erfolgt ist.

Edit: Übrigens wird der Slotwechsel bei obiger Funktion nur bei den Aktbossen Andariel, Duriel, Mephisto, Diablo und Baal durchgeführt.

Soviel dazu, bei Rückfragen, einfach melden.

Lg
Muddy
Muddy Waters is offline  
Thanks
1 User
Old 02/25/2011, 17:30   #5
 
elite*gold: 5
Join Date: Apr 2010
Posts: 689
Received Thanks: 151
danke schön wollte das gleich auch fragen ich probiers ma aus und meld mich dann nochma zum dankeschön
Derbeth is offline  
Old 02/25/2011, 17:31   #6
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 0
Die Sache mit der Variablen bekomm ich wahrscheinlich *aus dem Fenster lehn* auch alleine hin.

Was mich mehr oder weniger stört, ist das nicht geprüft wird welcher slot aktiv ist. Meine das so. Slot 1 = Kampfslot und Slot2 = MF Slot.
Also wenn Slot1 aktiv ist dann weaponswitch zu Slot2, ist Slot2 aktiv, dann kein weaponswitch, aber nach dem Tod vom Boss ein Switch zu Slot1.
Keine Ahnung, ob´s möglich ist.

Ach ja, wo ist NTC_SwapWeapons() definiert. Sry, muss blöd fragen, da keine Ahnung. Eigentlich wollte ich mich ja nicht tiefer damit beschäftigen, wegen keine Zeit, aber interessant wärs ja schon ^^.

*MrBaltimore <- trauert den alten AutoIt Zeiten hinterher*

P.S.: _SWAP_WEAPON_HP_THRESHOLD = 0.1
Wird hier definiert wann er switchen soll ? Sind aber keine % oder, da ja hier _target.hp / _target.hpmax <= _SWAP_WEAPON_HP_THRESHOLD verglichen wird
MrBaltimore is offline  
Old 02/25/2011, 17:39   #7
 
elite*gold: 5
Join Date: Apr 2010
Posts: 689
Received Thanks: 151
Hab auch noch was, kann ich das irgendwie einstellen das das nur mein Hdin macht? habe noch 2 Sosos am laufen die kein weaponswitch benötigen...

Sonst funktionierts perfekt! besten Dank!
Derbeth is offline  
Old 02/25/2011, 17:51   #8
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by Derbeth View Post
danke schön wollte das gleich auch fragen ich probiers ma aus und meld mich dann nochma zum dankeschön
In dem Fall hat sich der Vorschlag, die Frage besser in die Programming Sektion zu verlagern, ja gelohnt.

Ich dachte mir schon, dass das mehr Leute interessiert, gerade zu Ladder beginn eigentlich recht sinnvoll, wenn es wirklich noch auf MF ankommt.
Quote:
Originally Posted by MrBaltimore View Post
Die Sache mit der Variablen bekomm ich wahrscheinlich *aus dem Fenster lehn* auch alleine hin.

Was mich mehr oder weniger stört, ist das nicht geprüft wird welcher slot aktiv ist. Meine das so. Slot 1 = Kampfslot und Slot2 = MF Slot.
Also wenn Slot1 aktiv ist dann weaponswitch zu Slot2, ist Slot2 aktiv, dann kein weaponswitch, aber nach dem Tod vom Boss ein Switch zu Slot1.
Keine Ahnung, ob´s möglich ist.

Ach ja, wo ist NTC_SwapWeapons() definiert. Sry, muss blöd fragen, da keine Ahnung. Eigentlich wollte ich mich ja nicht tiefer damit beschäftigen, wegen keine Zeit, aber interessant wärs ja schon ^^.

*MrBaltimore <- trauert den alten AutoIt Zeiten hinterher*

P.S.: _SWAP_WEAPON_HP_THRESHOLD = 0.1
Wird hier definiert wann er switchen soll ? Sind aber keine % oder, da ja hier _target.hp / _target.hpmax <= _SWAP_WEAPON_HP_THRESHOLD verglichen wird
Zu deiner Frage:
Das Präfix der Funktion verweist auf die library, in der die Funktion definiert ist.

Siehe auch , Punkt 5 unter "Benennung von Funktionen".
Und ja, du kannst festlegen, auf welchen Slot gewechselt wird, allerdings gewinnst du damit eigentlich gegenüber der jetzigen Lösung nichts.
Denn die Slotverteilung ist keinesfalls konstant und kann sich beispielsweise beim Ableben des Chars ändern.
In dem Fall hat man verloren, wenn man auf konstante Slots setzt.

Aber wenn du es trotzdem so machen möchtest, kannst mit
NTC_SwapWeapons() mit dem Parameter 0 aufrufen, um auf den Slot mit dem Index I zu wechseln, NTC_SwapWeapons() mit dem Parameter 1 aufrufen, um auf den Slot mit dem Index II zu wechseln.

Quote:
Originally Posted by Derbeth View Post
Hab auch noch was, kann ich das irgendwie einstellen das das nur mein Hdin macht? habe noch 2 Sosos am laufen die kein weaponswitch benötigen...

Sonst funktionierts perfekt! besten Dank!
Klingt so, als sollten wir doch besser eine Config Variable definieren.

Ich editiere das gleich oben rein.

Lg
Muddy
Muddy Waters is offline  
Old 02/25/2011, 18:00   #9
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 0
Ok, nicht daran gedacht, dass sich die Werte nach Char Tod ändern.

So langsam steig ich in dem Aufbau durch, dank deinem Guide. Übrigens , schöne Arbeit.

P.S.: Les mir grad Muddy's D2NT V1.13 mit Update vom 18.12.2010 durch. Hört sich ja gut an, nur wieder diese sch.. englische Installation. Muss nochmal suchen wie das nochmal ging Deutsch -> Englisch
MrBaltimore is offline  
Old 02/25/2011, 18:15   #10
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by MrBaltimore View Post
Ok, nicht daran gedacht, dass sich die Werte nach Char Tod ändern.

So langsam steig ich in dem Aufbau durch, dank deinem Guide. Übrigens , schöne Arbeit.
Danke.

Ich würde mich ja freuen, wenn hier mehr Fragen zu so kleinen entwicklerischen Problemen kommen, denn anhand solcher kleinen Beispiele kann man meist schon eine Menge lernen und man sieht, dass sowas gar nicht so furchtbar kompliziert ist, wie es zunächst scheint.
Leider tauchen solche Fragen immer in den allgemeinen D2NT Themen auf, wo sie dann untergehen, ohne dass je eine Lösung dafür entwickelt wird.
Andererseits muss man auch sehen, dass sich die breite Masse der Fragen auf Probleme bei der richtigen Konfiguration bezieht. Sowas taucht dann teilweise auch hier auf und ist natürlich Fehl am Platze.

Übrigens habe ich meinen Beitrag ergänzt, nicht nur um das Einfügen einer Config Variable, sondern auch um eine Eingrenzung der möglichen Ziele auf die 5 Aktbosse.

Lg
Muddy

Edit:
Versuchs mal , oder .
Übrigens ist der Text dort ziemlich überholt, sogar auf die dort veröffentlichte Version, wird Zeit, dass ich das mal neu schreibe.
Muddy Waters is offline  
Thanks
1 User
Old 02/25/2011, 19:03   #11
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 0
THX, Diablo ist jetzt auf Englisch. Nun mal sehen, ob ich deine Version ans laufen bekomme ^^.

Quote:
Ich würde mich ja freuen, wenn hier mehr Fragen zu so kleinen entwicklerischen Problemen kommen, denn anhand solcher kleinen Beispiele kann man meist schon eine Menge lernen und man sieht, dass sowas gar nicht so furchtbar kompliziert ist, wie es zunächst scheint.
Leider tauchen solche Fragen immer in den allgemeinen D2NT Themen auf, wo sie dann untergehen, ohne dass je eine Lösung dafür entwickelt wird.
Andererseits muss man auch sehen, dass sich die breite Masse der Fragen auf Probleme bei der richtigen Konfiguration bezieht. Sowas taucht dann teilweise auch hier auf und ist natürlich Fehl am Platze.
Tja, denke das Problem ist da doch eher die Unwissenheit der Leute. Siehe mich. Nicht genug damit befasst und siehe da, auch im falschen Bereich gelandet. Und es ist selten so einen freundlichen Wissenden wie dich zu finden. In der Regel wird man ziemlich nieder gemacht. Also mal wieder vor dir.

Quote:
Übrigens habe ich meinen Beitrag ergänzt, nicht nur um das Einfügen einer Config Variable, sondern auch um eine Eingrenzung der möglichen Ziele auf die 5 Aktbosse.
Ähm, sry, wie war das nochmal, MF hat auf Runendrops keine Einflüsse oder?

Lg
MrBaltimore
MrBaltimore is offline  
Old 02/25/2011, 22:57   #12
 
elite*gold: 5
Join Date: Apr 2010
Posts: 689
Received Thanks: 151
Besten Dank, müsste jetzt wohl klappen

Wenn nur mein DSL Anbieter so schnell auf Fragen antworten würde

Gruss Derb
Derbeth is offline  
Old 02/26/2011, 12:41   #13
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 0
Sry, kleines Prob ist noch da!

Und zwar, wenn der Char stirbt und der MF Slot ist aktiv, wird ja nicht beim nächsten Start auf den richtigen Slot zurück gestellt. Bot läuft also die ganze Zeit mit aktiven MF Slot rum.
Da meine Fb/Fo noch recht häufig stirbt, kann ichs so nicht benutzen, trotzdem THX.

Lg
Balti

P.S.: Hab deinen Bot mal getestet. Läuft auch soweit, nur stirbt er immer. Bei der Gräfin teleportiert er immer hin und her und lockt dadurch zu viele an. Wie gesagt meine Soso schafft Gräfin so eben ^^. Schade, das ItemLog und einiges anderes wäre echt schön gewesen
MrBaltimore is offline  
Old 02/26/2011, 13:04   #14
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by MrBaltimore View Post
Sry, kleines Prob ist noch da!

Und zwar, wenn der Char stirbt und der MF Slot ist aktiv, wird ja nicht beim nächsten Start auf den richtigen Slot zurück gestellt. Bot läuft also die ganze Zeit mit aktiven MF Slot rum.
Da meine Fb/Fo noch recht häufig stirbt, kann ichs so nicht benutzen, trotzdem THX.

Lg
Balti

P.S.: Hab deinen Bot mal getestet. Läuft auch soweit, nur stirbt er immer. Bei der Gräfin teleportiert er immer hin und her und lockt dadurch zu viele an. Wie gesagt meine Soso schafft Gräfin so eben ^^. Schade, das ItemLog und einiges anderes wäre echt schön gewesen
In dem Fall müsste man tatsächlich die Eigenschaften der verschiedenen Slots auswerten, was dann aber etwas kompliziert wird.

Du könntest dir mal bei meiner Version die Funktion MWC_GetSlotID(type) anschauen, die macht prinzipiell genau das, wenn auch mehr zur Bestimmung des Precast oder FindItem Slots.
Aber so in der Form könnte man das umsetzen.

Zu meiner Version:
Kannst ja testweise mal die Variable MWConfig_KeepDistanceToMonsters auf false setzen, auch wenn das in den meisten Fällen eher den gegenteiligen Effekt haben sollte. Es sei denn deine Sorc hat aus irgendeinem Grund zu wenig FCR, um vernünftig ausweichen und zwischendurch noch angreifen zu können. In dem Fall würde ich Fastmod nutzen, als Anleitung empfehle ich .

Lg
Muddy

P.S.: Und nein, MF wirkt sich nicht auf Runen aus, aber solche Fragen kannst du besser stellen.
Muddy Waters is offline  
Old 02/26/2011, 14:18   #15
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 0
Quote:
Es sei denn deine Sorc hat aus irgendeinem Grund zu wenig FCR, um vernünftig ausweichen und zwischendurch noch angreifen zu können.
Ok, hab nur 80% erhöhte. KA ob das reicht. Kann´s Probleme damit geben, dass ich Occu benutze?

Quote:
P.S.: Und nein, MF wirkt sich nicht auf Runen aus, aber solche Fragen kannst du besser hier stellen.
Sinnlos und komisch nur für den, der´s weis!
MrBaltimore is offline  
Reply


Similar Threads Similar Threads
switch off your name
05/09/2011 - Archlord Trading - 5 Replies
sorry if this should have gone in another section or has already been posted but ive seen a lot of people posting pics where you can still see their name in the background. webzen might not give a rats at the moment but maybe one day they will start banning so to prevent this just turn off your name in the options menu. http://i40.tinypic.com/dxdy6v.jpg simples
DSS Switch Bot?!
02/01/2011 - Metin2 Private Server - 10 Replies
Hallo Liebe Com. Da ich schon gesehen habe das es einer hinbekommen hat, einen Bot zu Skripten der die bonies solange switcht bis z.b. etwas zwischen 30-39 dss heraus kommt und dann aufhört. Aber dieser funzt bei fast keinem.. Und geht nur mit Waffen die 3 Steinslots bestizen also nur Nun ist meine Frage ob es villeicht jemand schaft einen solchen Bot richtig zu skripten das dieser voll funktionstüchtig ist. Und auch oder nur VMS switchen kann, und man einstellen kann das er erst dann...
Switch in C++
01/14/2011 - C/C++ - 4 Replies
Hi ich hab ein Problem bei der Switch-Funktion: // Quadratzahlengenerator.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" #include <string> #include <iostream> #include <Windows.h>
Prüfen ob Weaponslot(1) aktiv ist
06/02/2010 - Diablo 2 Programming - 0 Replies
Habe es gefunden.
FB and SS switch?
02/05/2006 - Conquer Online 2 - 8 Replies
Hey guys, I was just wondering if there was anyway to change the FB image with the SS image. I know it sounds weird but i can aim better with the ss image..Please help me or PM me. Thanks guys. btw...I love all your guys work.Ill start to post more. lolx :bandit: :bandit: :bandit: :bandit:



All times are GMT +1. The time now is 10:34.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.