Register for your free account! | Forgot your password?

You last visited: Today at 13:11

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

Advertisement



[Release] Muddy's D2NT

Discussion on [Release] Muddy's D2NT within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old 06/09/2011, 10:34   #2191
 
elite*gold: 0
Join Date: Oct 2007
Posts: 5
Received Thanks: 0
Hey, ich hätte auch mal eine Frage:

Ich benutze eine Sorc auf lvl 18 zum lvln. Das funktioniert soweit auch ganz gut, ich benutze den WayPointCatcher in Akt 2 und setze clearpath auf true. Nun teleported sie auch los und tötet auf dem weg die gegner. Allerdings öffnen sie ständig ein tp, geht in die stadt, trinkt ein MP aus dem Inventar (obwohl noch 9 MPs und 3 HPs im gürtel sind). Dann kauft sie einen neuen trank, packt ihn ins inventar, zurück durchs portal... 2-3x telen, tötet ein paar gegner und das gleiche spiel von vorn.

welche einstellungen in welcher datei muss ich ändern?
welt007 is offline  
Old 06/09/2011, 13:33   #2192
 
elite*gold: 0
Join Date: Apr 2011
Posts: 25
Received Thanks: 15
Quote:
Originally Posted by welt007 View Post
Hey, ich hätte auch mal eine Frage:

Ich benutze eine Sorc auf lvl 18 zum lvln. Das funktioniert soweit auch ganz gut, ich benutze den WayPointCatcher in Akt 2 und setze clearpath auf true. Nun teleported sie auch los und tötet auf dem weg die gegner. Allerdings öffnen sie ständig ein tp, geht in die stadt, trinkt ein MP aus dem Inventar (obwohl noch 9 MPs und 3 HPs im gürtel sind). Dann kauft sie einen neuen trank, packt ihn ins inventar, zurück durchs portal... 2-3x telen, tötet ein paar gegner und das gleiche spiel von vorn.

welche einstellungen in welcher datei muss ich ändern?
Hi,

zum einen wäre interessant, wie deine Belt-Configuration aussieht aus deiner Char-Config:

Code:
MWConfig_BeltTypeColQuantity["hp"] = [1, 3];
MWConfig_BeltTypeColQuantity["mp"] = [2, 3];
MWConfig_BeltTypeColQuantity["rv"] = [1, 0];

// Visit Town and buy potions if your char lacks mana when trying to loot a corpse or teleport.
MWConfig_BuyPotionsOnLackOfMana = true;
	
// Set to true to replace low quality potions with higher quality potions that just dropped.
MWConfig_ReplaceLowQualityPotions = true;
Zusätzlich wäre ggf. noch NTConfig_CheckSelfSafe interessant, ziemlich am Ende der selben Config:

Code:
NTConfig_CheckSelfSafe = 0x01;
Danach kann man ggf. weiterschauen, ob das Problem wo anders herstammt. Ungewöhnlich klingt es aber schon irgendwie, vor allem weil in der Stadt Tränke getrunken werden..?
fabdevil is offline  
Thanks
1 User
Old 06/09/2011, 14:17   #2193
 
elite*gold: 0
Join Date: Mar 2010
Posts: 76
Received Thanks: 12
Grüss euch

irgendwie bin ich zu doof dafür deswegen hoffe ich das ihr mich nich böse seid das ich nicht die 223 Seiten durchgelesen habe und hoffe das mir jemand helfen kann ... sollte nich soviel Arbeit sein
und zwar bräuchte ich die Attack befehle für ne Light Sorc und nen Smiter (Organe farmen)
die Grundeinstellungen der Chars sind ja auf FO/FB und Hammerdin ausgelegt und irgendwie krieg ich es nicht gebacken bzw bin des englischen nicht sooooo mächtig
Vielleicht könnte mir einfach jemand schnell den Abschnitt aus der Char-config raus kopieren ... VIelen Dank im Vorraus
Cobra80 is offline  
Old 06/09/2011, 15:28   #2194
 
elite*gold: 0
Join Date: May 2010
Posts: 212
Received Thanks: 40
Quote:
Originally Posted by welt007 View Post
Hey, ich hätte auch mal eine Frage:

Ich benutze eine Sorc auf lvl 18 zum lvln. Das funktioniert soweit auch ganz gut, ich benutze den WayPointCatcher in Akt 2 und setze clearpath auf true. Nun teleported sie auch los und tötet auf dem weg die gegner. Allerdings öffnen sie ständig ein tp, geht in die stadt, trinkt ein MP aus dem Inventar (obwohl noch 9 MPs und 3 HPs im gürtel sind). Dann kauft sie einen neuen trank, packt ihn ins inventar, zurück durchs portal... 2-3x telen, tötet ein paar gegner und das gleiche spiel von vorn.

welche einstellungen in welcher datei muss ich ändern?
Fabdevil hat dir ja schon die nötige Ausführung mitgeteilt. Du solltest noch wissen, dass die 1. Zahl in der Klammer dir sagt, wieviele Spalten dein Bot mit welchen Drinks im Gürtel damit belegen soll. Die zweite Zahl bestimmt, wieviele Drinks in einer Spalte sein sollen, bevor er neue kauft.
Also darf die zweite Zahl nicht grösser sein, als du Reihen im Gürtel hast. Es gibt halt Gürtel mit 2, 3, oder 4 Reihen. Sinnvoll wärebei 4 vorhande Reihen -1 oder -2 oder -3.
Wenn du nur 2 Reihen hast, kannst du natürlich keine 3 abziehen.
Und die Summe der ersten Zahl darf nicht grösser als 4 sein. Muss 4 sein.
Lustig finde ich, dass dein Bot einen Manapot(mp) aus dem Inventar trinkt, wenn er in die Stadt kommt.
Meiner kauft nämlich ähnlich wie bei dir, immer einen healingpotion(hp) zu viel und legt ihn in sein Inventar, um diesen beim nächsten Stadtbesuch auszutrinken.
fred9x9 is offline  
Thanks
1 User
Old 06/09/2011, 15:36   #2195
 
elite*gold: 0
Join Date: Sep 2009
Posts: 148
Received Thanks: 21
Quote:
Originally Posted by -Nemesis1337- View Post
NTC_SwapWeapons
net vergessen nachm Picken wieder NTC_SwapWeapons machen zu lassen^^
Okay hier der Nachtrag:
Dieses "NTC_SwapWeapons" fügst du einfach z.b. bei Diablo so ein:
Code:
	var _target

	NTC_FindUnit(NTC_UNIT_MONSTER, 243, 150);	

        _target = NTC_FindUnit(NTC_UNIT_MONSTER, 243, 5);

	if(!NTA_KillMonster(243))
	{
	      if(_target.hp <= 20)
                       NTC_SwapWeapons
		       NTC_SendMsgToScript("MWBotGame.ntj", NTA_KillMonster, 158, 243);
		return;
	}

	NTSI_PickItems();
        NTC_SwapWeapons
Muddy korrigier mich bitte wenn ich falsch liege^^
in der NTAttack stehts schon drin, für Instapick. Aber dort den Weaponswap mit reinzubauen würde heißen das er das dann bei jedem Gegner so macht.
Glaub net das er das so möchte^^

War mir auch net ganz sicher ob das NTC_FindUnit über dem _target gebraucht wird
-Nemesis1337- is offline  
Thanks
2 Users
Old 06/09/2011, 15:56   #2196
 
elite*gold: 0
Join Date: Jun 2011
Posts: 14
Received Thanks: 1
Meine Sorc kauft keine Townportals, bzw. verkauft die, die ich reinlege ins Inventar sofort immer wenn ich den Bot starte. Natürlich etwas unpraktisch, da sie dann bei Andy steht und nicht weiter kommt.

Hab den Bot frisch geladen (1.2), Sorcsachen editiert (Name, Angriffskram blieb gleich, hab Orb/Fb), Uniqueliste etwas editiert, Gürtelsache editiert und losgeschickt.
Bei einem Freund, der noch 1.13 hat, kauft die Sorc TPs, bei mir aber nicht.

Woran kann das liegen?
grorg is offline  
Old 06/09/2011, 16:10   #2197
 
elite*gold: 0
Join Date: Aug 2004
Posts: 233
Received Thanks: 39
kauf ein TB Buch.
letsid is offline  
Thanks
1 User
Old 06/09/2011, 16:10   #2198
 
elite*gold: 0
Join Date: Apr 2011
Posts: 25
Received Thanks: 15
Quote:
Originally Posted by grorg View Post
Meine Sorc kauft keine Townportals, bzw. verkauft die, die ich reinlege ins Inventar sofort immer wenn ich den Bot starte. Natürlich etwas unpraktisch, da sie dann bei Andy steht und nicht weiter kommt.

Hab den Bot frisch geladen (1.2), Sorcsachen editiert (Name, Angriffskram blieb gleich, hab Orb/Fb), Uniqueliste etwas editiert, Gürtelsache editiert und losgeschickt.
Bei einem Freund, der noch 1.13 hat, kauft die Sorc TPs, bei mir aber nicht.

Woran kann das liegen?
Hast du ein entsprechendes Foliant für TPs gekauft? Ich glaube einzelne TPs mag der Bot eher nicht. Wenn du aber nen Folianten im Inventar hast, wird er darauf achten, dass dort immer welche drin sind.
fabdevil is offline  
Thanks
1 User
Old 06/09/2011, 16:54   #2199
 
elite*gold: 0
Join Date: Jun 2011
Posts: 14
Received Thanks: 1
Cool, danke . Scheint jetzt zu laufen.

Beim Diarun steht sie nur manchmal in der Gegend rum, teleportiert sich ein paar Meter weiter, castet dauernd Zitterrüstung neu. Aber sie kommt am Ende doch zu Diablo und killt ihn, auch wenns recht lange dauernd.
grorg is offline  
Old 06/09/2011, 20:26   #2200
 
elite*gold: 0
Join Date: Jun 2011
Posts: 14
Received Thanks: 1
Ich wollte dieses Skript () für die Supertruhen in Unterkurast zum laufen bringen, aber das funktioniert nicht.

Gibt es eine Möglichkeit, Runs auf die Unterkurasttruhen und die Truhen beim Flammenfluss zu machen?

Meine Sorc haut auch immer in die Stadt, wenn sie merkt dass die Gräfin CI/FI ist (hab Orb/FB), der Söldner würde sie aber locker packen. Ich find nur keine Einstellung, wo ich das automatische flüchen ausstellen kann.
grorg is offline  
Old 06/09/2011, 22:51   #2201
 
elite*gold: 0
Join Date: May 2010
Posts: 212
Received Thanks: 40
@Muddy_Waters

Schade,
tritt doch noch nach dem Update auf,
Char macht 2 Spalten unterschiedlicher Drinks leer. Nimmt im Feld neue Drinks auf,
sortiert die aber anders ein wie vorher und macht die Spalte(n) nicht voll.
Macht TP um Tränke zu kaufen, in Town geht er zum Händler, kauft aber keine.
Geht wieder ins Feld, merkt Getränke entsprechen nicht der Mindestmange, neues TP um Tränke zu kaufen.
Das macht er endlos.
Mir scheint es sind immer die beiden letzten Spalten, wenigstens war es die beiden letzten male so.
Wenn er aus hp, hp, MP, RV , hp, hp, RV, MP macht.
fred9x9 is offline  
Thanks
1 User
Old 06/10/2011, 07:04   #2202
 
elite*gold: 0
Join Date: Nov 2010
Posts: 34
Received Thanks: 27
@grorg: Ersetze im Skript die Ausdrücke "NTBotGame.ntj" durch "MWBotGame.ntj". Dann sollte es klappen!

@fred9x9: Ich kann deiner Fehlerbeschreibung zustimmen und dass die leider immernoch da ist. Ich achte mal drauf, ob ich das mit den letzten beiden Spalten bestätigen kann.
Onkarion is offline  
Thanks
2 Users
Old 06/10/2011, 09:17   #2203
 
elite*gold: 0
Join Date: Mar 2010
Posts: 76
Received Thanks: 12
Grüss euch

irgendwie bin ich zu doof dafür deswegen hoffe ich das ihr mich nich böse seid das ich nicht die 223 Seiten durchgelesen habe und hoffe das mir jemand helfen kann ... sollte nich soviel Arbeit sein
und zwar bräuchte ich die Attack befehle für ne Light Sorc und nen Smiter (Organe farmen)
die Grundeinstellungen der Chars sind ja auf FO/FB und Hammerdin ausgelegt und irgendwie krieg ich es nicht gebacken bzw bin des englischen nicht sooooo mächtig
Vielleicht könnte mir einfach jemand schnell den Abschnitt aus der Char-config raus kopieren ... VIelen Dank im Vorraus
Cobra80 is offline  
Old 06/10/2011, 11:16   #2204
 
elite*gold: 0
Join Date: Aug 2004
Posts: 233
Received Thanks: 39
meine Light soso:
Code:
	//------------------------------------------------------------------------------
	// Attack Configuration
	//------------------------------------------------------------------------------
	
	// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
	// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
	NTConfig_AttackSkill[0] = MWS_THUNDER_STORM;		// This skill is used once whenever attacking a new target. Set to 0 to deactivate.
	NTConfig_AttackSkill[1] = MWS_LIGHTNING;	// Primary skill to bosses.
	NTConfig_AttackSkill[2] = 0;	// Primary untimed skill to boss. Set to 0 to deactivate.
	NTConfig_AttackSkill[3] = MWS_CHAIN_LIGHTNING;	// Primary skill to others.
	NTConfig_AttackSkill[4] = 0;	// Primary untimed skill to others. Set to 0 to deactivate.
	NTConfig_AttackSkill[5] = MWS_CHAIN_LIGHTNING;				// Secondary skill in case monster is immune to primary skill. Set to 0 to deactivate.
	NTConfig_AttackSkill[6] = 0;	// Secondary untimed skill. Set to 0 to deactivate.
	NTConfig_AttackSkill[7] = 0;	// Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed skills. Set to 0 to deactivate.
	
	// Set to true if you want to clear area after killing boss. NOTE: This only affects a few botscripts.
	NTConfig_ClearPosition = false;
	
	// Set to true to clear area when killing a boss and the position is crowded by monsters. NOTE: Setting this to true may cause NTA_KillMonster() to fail way more often.
	MWConfig_ClearBossPosition = false;
	
	// This is the number of attacks to be performed before the the character tries to move to another position. Set to 0 not to reposition.
	MWConfig_AttacksBeforeRepositioning = 10;
	
	
	// Define a time limit for your attacks for each type of monster.
	MWConfig_AttackTimeLimit[0] = 20;	// Maximum time in seconds to attack a normal monster
	MWConfig_AttackTimeLimit[1] = 120;	// Maximum time in seconds to attack a super unique monster
	MWConfig_AttackTimeLimit[2] = 30;	// Maximum time in seconds to attack a champion
	MWConfig_AttackTimeLimit[3] = 120;	// Maximum time in seconds to attack a bosse
	MWConfig_AttackTimeLimit[4] = 30;	// Maximum time in seconds to attack a minion
	
	// Define when a monster is considered immune by entering the index of one or more of your attack skills. As an example: [1, 3] means that a monster is considered immune if it is immune to both NTConfig_AttackSkill[1] and NTConfig_AttackSkill[3], whatever those may be.
	MWConfig_CheckImmunitySkills = [0, 1];
	
	// Select the behaviour of your character when encountering a monsters that is considered immune referring to the definition above.
	// 0: Don't do anything. (D2NT default)
	// 1: Get close to the monster, use static field if the monster is not immune to lightning.
	// 2: Skip the monster.
	// 3: Attack the monster using NTConfig_AttackSkill[8] and NTConfig_AttackSkill[9]
	NTConfig_BehaviourOnImmuneMonster = 3;
	
	NTConfig_AttackSkill[8] = MWS_CHAIN_LIGHTNING;	// Skill to be used against user defined immunes.
	NTConfig_AttackSkill[9] = 0;	// Untimed Skill to be used against user defined immunes.
	
	// Always check if monsters are closing in and back off, in case they get too close. NOTE: You should at least have 105FCR in order to make this work smoothly.
	MWConfig_KeepDistanceToMonsters = true;
	// If you don't wish to evade monsters in a certain area, add it's areaid as an exception below. NOTE: All areaids can be found in "sdk\areas.txt".
	// MWConfig_EvasionExceptions.push(<areaid1>, <areaid2>, <areaidn>);
Mein Smiter:
Code:
//------------------------------------------------------------------------------
	// Attack Configuration
	//------------------------------------------------------------------------------
	
	// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
	NTConfig_AttackSkill[0] = -1;	// First skill. Set to 0 if you won't
	NTConfig_AttackSkill[1] = 97;	// Primary skill to boss.
	NTConfig_AttackSkill[2] = 122;	// Primary aura to boss. Set to 0 if you won't
	NTConfig_AttackSkill[3] = 106;	// Primary skill to others.
	NTConfig_AttackSkill[4] = 122;	// Primary aura to others. Set to 0 if you won't
	NTConfig_AttackSkill[5] = -1;	// Secondary skill in case monster is immune to primary skill. Set to 0 if you won't
	NTConfig_AttackSkill[6] = -1;	// Secondary aura. Set to 0 if you won't
	NTConfig_AttackSkill[7] = -1;	// Tertiary skill in case monster is immune to primary skill. Set to 0 if you won't
	
	// Set to true if you want to clear area after killing boss. NOTE: This only affects a few botscripts.
	NTConfig_ClearPosition = true;
	
	// Set to true to clear area when killing a boss and the position is crowded by monsters. NOTE: Setting this to true may cause NTA_KillMonster() to fail way more often.
	MWConfig_ClearBossPosition = false;
	
	// This is the number of attacks to be performed before the the character tries to move to another position. Set to 0 not to reposition.
	MWConfig_AttacksBeforeRepositioning = 20;

	// Define a time limit for your attacks for each type of monster.
	MWConfig_AttackTimeLimit[0] = 20;	// Maximum time in seconds to attack a normal monster
	MWConfig_AttackTimeLimit[1] = 120;	// Maximum time in seconds to attack a super unique monster
	MWConfig_AttackTimeLimit[2] = 30;	// Maximum time in seconds to attack a champion
	MWConfig_AttackTimeLimit[3] = 120;	// Maximum time in seconds to attack a bosse
	MWConfig_AttackTimeLimit[4] = 30;	// Maximum time in seconds to attack a minion
	
	// Define when a monster is considered immune by entering the index of one or more of your attack skills. As an example: [1, 3] means that a monster is considered immune if it is immune to both NTConfig_AttackSkill[1] and NTConfig_AttackSkill[3], whatever those may be.
	MWConfig_CheckImmunitySkills = [];
	
	// Select the behaviour of your character when encountering a monsters that is considered immune referring to the definition above.
	// 0: Don't do anything. (D2NT default)
	// 1: Get close to the monster.
	// 2: Skip the monster.
	// 3: Attack the monster using NTConfig_AttackSkill[8] and NTConfig_AttackSkill[9]
	NTConfig_BehaviourOnImmuneMonster = 0;
	
	NTConfig_AttackSkill[8] = 0;	// Skill to be used against user defined immunes.
	NTConfig_AttackSkill[9] = 0;	// Untimed Skill to be used against user defined immunes.
	
	// Activate Redemption if your health is lower than this percentage. Set to 0 not to use Redemption.
	NTConfig_UseRedemptionHP = 80;
	
	// Activate Redemption if your health is lower than this percentage. Set to 0 not to use Redemption.
	NTConfig_UseRedemptionMP = 60;
letsid is offline  
Thanks
2 Users
Old 06/10/2011, 13:04   #2205
 
elite*gold: 0
Join Date: Mar 2010
Posts: 76
Received Thanks: 12
@ letsid nochmal vielen DANK

so ich hab mir jetzt ma muddys geladen und bissi ausprobiert ... alles in allem läuft bis jetzt alles prima und auch meine lightsorc rennt jetzt ... die verschiedene Zusatzdinger sind teilweise echt ziemlich gut und chicken hatte ich bis jetzt auch so gut wie keine wobei die hatte ich vorher auch nicht wobei ich jetzt mit der sorc auch travi und dia machen kann ohne das ich bauchweh bekomme
NUN zu den Sache die mir bis jetzt negativ aufgefallen sind

1. ich bin umswitcher von Bluebird und die runs jetzt bei Muddys dauern im Schnitte so 2-3 Minuten länger trotz gleicher Gebiete (bei den Hammadinen dauern die Runs jetzt zwischen 8 und 10 Minuten find ich bissi viel) Ein Grund könnte sein ... ich habe meine eigene Pickit mitgenommen und eingefügt trotzdem nimmt der Bot Sachen mit wo ich nich weiss wie ich sie ausstellen kann z.b. Battledarts ... ich hab alle cube Dinger raus genommen und in meiner Pickit sind die nich drin also irgendwie komisch ... dadurch das er soviel mitnimmt rennt der halt ständig in die Stadt --> dauertder zweite Grund ist in meinen Augen die sache mit den Truhen und Körben und sonst allem was er aufmacht ... find das mit den Truhen ja echt gut aber bei der Sorc zum beispiel macht die in den Ancient Tunnels alles auf was da so iss und das dauert schon allein ne ewigkeit länger ... hab irgendwie noch nicht gefunden wo ich das ausstellen kann
ident... hab cain ausgestellt weil ich eigentlich aufs Gold nich verzichten will nun jetzt ist es aber so das die bots zum beispiel zu akara rennen sich ne ident rolle kaufen und das items dann ohne zu ident verkaufen ... die ident rolle fliegt danach aufn boden O.o ergibt irgendwie kein Sinn... desweiteren find ich doof das der bot, wenn das inv komplett voll ist, einfach irgendein unid Item verkäuft... naja vielleicht nehm ich cain wieder rein ...

Falls jemand schon ma ein paar Tipps hat wäre ich sehr dankbar ich werde aber auch weiterhin versuchen mich durch den Thread zu lesen bzw die configs noch ein bisschen durchforsten ob ich da noch was finde

Vielen Dank schon mal in Vorraus
Cobra80 is offline  
Reply


Similar Threads Similar Threads
[Release] D2NT 3.1 1.13c
07/17/2016 - Diablo 2 - 91 Replies
hi, hab eben den d2nt3.1 gefunden. ein neues baba script is dabei. release thread eon D2NT3.1
[Realease] Muddy's Waypoint Catcher
08/21/2013 - Diablo 2 Programming - 46 Replies
Moin zusammen, hier mal die erste Release Version eines kleinen Scripts genannt Waypoint Catcher. Das ganze ist jetzt nichtmal 24h alt, dementsprechend sind vermutlich noch einige Bugs vorhanden. Hinweise dazu nehme ich gerne entgegen. ;) Features: - Suchen sämtlicher Wegpunkte mit Ausnahme, wobei in Akt ein durch Probleme im Jail Bereich nach dem Wegpunkt Outer Cloister abgebrochen wird - Wahlweise auch mit TP an jedem gefundenen Wp, sodass man damit auch anderen (nicht-Bots) die...
[D2NT] Long Dia Release
05/10/2011 - Diablo 2 Programming - 28 Replies
Ein kleines Script für diablo, es startet beim eingang macht ein tp cleart den weg zum star macht am star noch ein tp dann läufts wie das normale nur cleart es schöner :) hoffe euch gefällts ich habs noch nicht wirklich getestet (2-3 runs) bugs können gerne hier gepostet werden verbesserungs vorschläge auch :D installation: 1.)Script in den Bot ordner kopieren 2.)Script im editor oder vergleichbaren öffnen 3.) Msg´s anpassen (ist nicht schwer) 4.) in der char config die zeile...
D2NT 3.0 Pickit release
10/22/2010 - Diablo 2 - 77 Replies
edit
Muddy's D2NT Help
07/29/2010 - Diablo 2 - 3 Replies
hi i just started to use the bot it work's great. how do i set up the skill's i use on my Sorc and pick up itme's? ..... if you reply to this post please use english



All times are GMT +1. The time now is 13:12.


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.