D2NT if target.name == "Lister the Tormentor"

08/20/2010 14:47 hendricius#1
Ich möchte gerne für meinen Druiden eine unterschiedliche Distanz zu Lester the Tormentor auswählen. Dafür kann ich ja das attribut name des objektes target überprüfen.

Das muss ich irgendwie hier ändern:
Code:
	if(me.GetSkill(245, true) > 1)
		if(target.name == "Andariel" || target.name == "Baal" || target.name == "Mephisto" || target.name == "Diablo")
		{
			if(!NTA_DruidCastSkillIntNear(_primaryindex, target))
				return 2;

			return 3;
		}
oder hier:
Code:
	if(NTConfig_AttackSkill[index+1] > 0)
	{
		if(GetDistance(me, target) > 3 || !CheckCollision(me, target, 4))
		{
			var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, 3, 4);

			if(_pos)
				NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
				
		}

		return NTC_CastSkill(NTConfig_AttackSkill[index+1], _NTA_SkillHand[index+1], target);
	}
Ich muss ihm quasi sagen, wenn Lister the Tormentor da ist, dann soll er eine andere Skillrange auswählen.

Hat einer eine Idee?

Danke.
08/21/2010 17:17 Muddy Waters#2
Quote:
Originally Posted by hendricius View Post
Ich möchte gerne für meinen Druiden eine unterschiedliche Distanz zu Lester the Tormentor auswählen. Dafür kann ich ja das attribut name des objektes target überprüfen.

Das muss ich irgendwie hier ändern:
Code:
    if(me.GetSkill(245, true) > 1)
        if(target.name == "Andariel" || target.name == "Baal" || target.name == "Mephisto" || target.name == "Diablo")
        {
            if(!NTA_DruidCastSkillIntNear(_primaryindex, target))
                return 2;

            return 3;
        }
oder hier:
Code:
    if(NTConfig_AttackSkill[index+1] > 0)
    {
        if(GetDistance(me, target) > 3 || !CheckCollision(me, target, 4))
        {
            var _pos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, 3, 4);

            if(_pos)
                NTM_MoveTo(target.areaid, _pos[0], _pos[1], 0);
                
        }

        return NTC_CastSkill(NTConfig_AttackSkill[index+1], _NTA_SkillHand[index+1], target);
    }
Ich muss ihm quasi sagen, wenn Lister the Tormentor da ist, dann soll er eine andere Skillrange auswählen.

Hat einer eine Idee?

Danke.
Nun ist so eine Skillrange aber nicht unbedingt ein Wert, den man sich einfach mal so ausdenkt und dann setzt wie es einem gerade passt.
Es gibt ja schon eine gewisse Verbindung zu dem dazugehörigen Skill und bei Tornado hätte ich bei einer Erhöhten Skillrange durchaus Bedenken, was die Genauigkeit betrifft.

Von meinen Zweifeln abgesehen wäre es praktisch ganze Funktionen/Algorithmen zu posten, denn anhand von ein paar if-Anweisungen kann man den Kontext nicht nachvollziehen und versteht nur wenig bis nichts. ;)
Anhand deiner Ausdrucksweise zu urteilen machst du nicht unbedingt den Eindruck, als wärst du ganz ohne programmiertechnische Vorbelastung, gerade deshalb müsstest du obige Kritik eigentlich gut nachvollziehen können.

Eventuell hilft dir das hier ja schon weiter:
Quote:
Originally Posted by D2NT Version History
Added unit.GetOptimalAttackPos(area_id, target_x, target_y, search_range, collision_mask) function
Dann noch ein hilfreiches [Only registered and activated users can see links. Click Here To Register...] bezüglich der Bitmasken:
Quote:
Originally Posted by CrazyGansta
Bit 0 - Map non walkable
Bit 1 - LOS blockers, like walls for instance
Bit 2 - Leap blocks, blocks ranged
Bit 3 - Block Player's walk but not Mercenary's walk
Bit 4 - Some doors, entry/exits, a few waypoints. Also seems to have something to do with light.
Bit 5 - Blocks light only, not LOS
Bit 6 - Stuff from catapults in act 5 and poison clouds not
Bit 7 - Players, all players, yourself and others
Bit 8 - NPCs & Monsters (a dot)
Bit 9 - Items
Bit 10 - Objects
Bit 11 - Closed Doors
Bit 12 - NPCs & Monsters (where you collide with them)
Bit 13 - Friendly NPCs
Bit 14
Bit 15 - Dead bodies, tps, most likely interactive non blockers

Thanx for the extra info TechnoHunter
Lg
Muddy
08/22/2010 15:11 hendricius#3
Danke Muddy :).