X , Y - Position auslesen mit D2NT

02/03/2010 16:11 njomnjomnjom#1
Ich hab mir gedacht, dass es doch prakttisch wäre wenn man immer wissenwürde wo man gerade steht.

(Man kann dann mit den Infos z.B. ein Pindelscript produzieren das auch ohne Enigma funktioniert.)


Macht ein neues Botscrip und aktiviert es in der charconfig (z.B. "Position.ntl")

Quote:
function NTMain()
{
Include("common/NTCommon.ntl");
NTC_IncludeConfig();
NTC_IncludeLibs();

NT_LoadConfig();
NTSI_LoadNIPFiles();

NTA_Initialize();

if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("default.ntj", "NTTM_CheckAct()");
return;
}


while(1)
{
Print("[Position X :]" + me.x);
Print("[Position Y :]" + me.y);
NTC_Delay(2000);
}

}

Joah, jetzt könnt ihr rumlaufen und seht alle 2 Sekunden eure Position.

have fun



DENKT DRAN:
X, Y Positionen sind nur auf unveränderlichen Maps fix!
z.B. ist pindel immer an der selben Stelle.
Aber! Zufallsmaps wie z.B. Kalte Ebene / Wurmgruft usw haben natürlich schwankende werte.
02/15/2010 17:35 njomnjomnjom#2
Hier ein wenig erwetert, zeigt nun auch ebenenwechsel und den zustand des chars an.

Quote:
function NTMain()
{
Include("common/NTCommon.ntl");
NTC_IncludeConfig();
NTC_IncludeLibs();

NT_LoadConfig();
NTSI_LoadNIPFiles();

NTA_Initialize();

if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("default.ntj", "NTTM_CheckAct()");
return;
}

Say("ÿc;Rÿc:Aÿc8Iÿc1Nÿc2Bÿc9oÿc4W");

while(1)
{


var _oldX;
var _oldY;
var _oldAreaid;
var _oldMode;
_oldX = me.x;
_oldY = me.y;
_oldAreaid = me.areaid;
_oldMode = me.mode;

NTC_Delay(20);


if ( _oldX != me.x || _oldY != me.y)
Print("ÿc3Moved to: " + me.x + " , " + me.y);

if ( _oldAreaid != me.areaid)
{
Print("ÿc2Area Changed from: " + _oldAreaid + " to: " + me.areaid);

if ( me.areaid == 0)
Print("ÿc2New Area: NONE");

if ( me.areaid == 1)
Print("ÿc2New Area: ROGUE_ENCAMPMENT");

if ( me.areaid == 2)
Print("ÿc2New Area: BLOOD_MOOR");

if ( me.areaid == 3)
Print("ÿc2New Area: COLD_PLAINS");

if ( me.areaid == 4)
Print("ÿc2New Area: STONY_FIELD");

if ( me.areaid == 5)
Print("ÿc2New Area: DARK_WOOD");

if ( me.areaid == 6)
Print("ÿc2New Area: BLACK_MARSH");

if ( me.areaid == 7)
Print("ÿc2New Area: TAMOE_HIGHLAND");

if ( me.areaid == 8)
Print("ÿc2New Area: DEN_OF_EVIL");

if ( me.areaid == 9)
Print("ÿc2New Area: CAVE_LEVEL_1");

if ( me.areaid == 10)
Print("ÿc2New Area: UNDERGROUND_PASSAGE_LEVEL_1");

if ( me.areaid == 11)
Print("ÿc2New Area: HOLE_LEVEL_1");

if ( me.areaid == 12)
Print("ÿc2New Area: PIT_LEVEL_1");

if ( me.areaid == 13)
Print("ÿc2New Area: CAVE_LEVEL_2");

if ( me.areaid == 14)
Print("ÿc2New Area: UNDERGROUND_PASSAGE_LEVEL_2");

if ( me.areaid == 15)
Print("ÿc2New Area: HOLE_LEVEL_2");

if ( me.areaid == 16)
Print("ÿc2New Area: PIT_LEVEL_2");

if ( me.areaid == 17)
Print("ÿc2New Area: BURIAL_GROUNDS");

if ( me.areaid == 18)
Print("ÿc2New Area: CRYPT");

if ( me.areaid == 19)
Print("ÿc2New Area: MAUSOLEUM");

if ( me.areaid == 20)
Print("ÿc2New Area: FORGOTTEN_TOWER");

if ( me.areaid == 21)
Print("ÿc2New Area: TOWER_CELLAR_LEVEL_1");

if ( me.areaid == 22)
Print("ÿc2New Area: TOWER_CELLAR_LEVEL_2");

if ( me.areaid == 23)
Print("ÿc2New Area: TOWER_CELLAR_LEVEL_3");

if ( me.areaid == 24)
Print("ÿc2New Area: TOWER_CELLAR_LEVEL_4");

if ( me.areaid == 25)
Print("ÿc2New Area: TOWER_CELLAR_LEVEL_5");

if ( me.areaid == 26)
Print("ÿc2New Area: MONASTERY_GATE");

if ( me.areaid == 27)
Print("ÿc2New Area: OUTER_CLOISTER");

if ( me.areaid == 28)
Print("ÿc2New Area: BARRACKS");

if ( me.areaid == 29)
Print("ÿc2New Area: JAIL_LEVEL_1");

if ( me.areaid == 30)
Print("ÿc2New Area: JAIL_LEVEL_2");

if ( me.areaid == 31)
Print("ÿc2New Area: JAIL_LEVEL_3");

if ( me.areaid == 32)
Print("ÿc2New Area: INNER_CLOISTER");

if ( me.areaid == 33)
Print("ÿc2New Area: CATHEDRAL");

if ( me.areaid == 34)
Print("ÿc2New Area: CATACOMBS_LEVEL_1");

if ( me.areaid == 35)
Print("ÿc2New Area: CATACOMBS_LEVEL_2");

if ( me.areaid == 36)
Print("ÿc2New Area: CATACOMBS_LEVEL_3");

if ( me.areaid == 37)
Print("ÿc2New Area: CATACOMBS_LEVEL_4");

if ( me.areaid == 38)
Print("ÿc2New Area: TRISTRAM");

if ( me.areaid == 39)
Print("ÿc2New Area: MOO_MOO_FARM");

if ( me.areaid == 40)
Print("ÿc2New Area: LUT_GHOLEIN");

if ( me.areaid == 41)
Print("ÿc2New Area: ROCKY_WASTE");

if ( me.areaid == 42)
Print("ÿc2New Area: DRY_HILLS");

if ( me.areaid == 43)
Print("ÿc2New Area: FAR_OASIS");

if ( me.areaid == 44)
Print("ÿc2New Area: LOST_CITY");

if ( me.areaid == 45)
Print("ÿc2New Area: VALLEY_OF_SNAKES");

if ( me.areaid == 46)
Print("ÿc2New Area: CANYON_OF_THE_MAGI");

if ( me.areaid == 47)
Print("ÿc2New Area: SEWERS_LEVEL_1");

if ( me.areaid == 48)
Print("ÿc2New Area: SEWERS_LEVEL_2");

if ( me.areaid == 49)
Print("ÿc2New Area: SEWERS_LEVEL_3");

if ( me.areaid == 50)
Print("ÿc2New Area: HAREM_LEVEL_1");

if ( me.areaid == 51)
Print("ÿc2New Area: HAREM_LEVEL_2");

if ( me.areaid == 52)
Print("ÿc2New Area: PALACE_CELLAR_LEVEL_1");

if ( me.areaid == 53)
Print("ÿc2New Area: PALACE_CELLAR_LEVEL_2");

if ( me.areaid == 54)
Print("ÿc2New Area: PALACE_CELLAR_LEVEL_3");

if ( me.areaid == 55)
Print("ÿc2New Area: STONY_TOMB_LEVEL_1");

if ( me.areaid == 56)
Print("ÿc2New Area: HALLS_OF_THE_DEAD_LEVEL_1");

if ( me.areaid == 57)
Print("ÿc2New Area: HALLS_OF_THE_DEAD_LEVEL_2");

if ( me.areaid == 58)
Print("ÿc2New Area: CLAW_VIPER_TEMPLE_LEVEL_1");

if ( me.areaid == 59)
Print("ÿc2New Area: STONY_TOMB_LEVEL_2");

if ( me.areaid == 60)
Print("ÿc2New Area: HALLS_OF_THE_DEAD_LEVEL_3");

if ( me.areaid == 61)
Print("ÿc2New Area: CLAW_VIPER_TEMPLE_LEVEL_2");

if ( me.areaid == 62)
Print("ÿc2New Area: MAGGOT_LAIR_LEVEL_1");

if ( me.areaid == 63)
Print("ÿc2New Area: MAGGOT_LAIR_LEVEL_2");

if ( me.areaid == 64)
Print("ÿc2New Area: MAGGOT_LAIR_LEVEL_3");

if ( me.areaid == 65)
Print("ÿc2New Area: ANCIENT_TUNNELS");

if ( me.areaid == 66)
Print("ÿc2New Area: TAL_RASHAS_TOMB_1");

if ( me.areaid == 67)
Print("ÿc2New Area: TAL_RASHAS_TOMB_2");

if ( me.areaid == 68)
Print("ÿc2New Area: TAL_RASHAS_TOMB_3");

if ( me.areaid == 69)
Print("ÿc2New Area: TAL_RASHAS_TOMB_4");

if ( me.areaid == 70)
Print("ÿc2New Area: TAL_RASHAS_TOMB_5");

if ( me.areaid == 71)
Print("ÿc2New Area: TAL_RASHAS_TOMB_6");

if ( me.areaid == 72)
Print("ÿc2New Area: TAL_RASHAS_TOMB_7");

if ( me.areaid == 73)
Print("ÿc2New Area: DURIELS_LAIR");

if ( me.areaid == 74)
Print("ÿc2New Area: ARCANE_SANCTUARY");

if ( me.areaid == 75)
Print("ÿc2New Area: KURAST_DOCKTOWN");

if ( me.areaid == 76)
Print("ÿc2New Area: SPIDER_FOREST");

if ( me.areaid == 77)
Print("ÿc2New Area: GREAT_MARSH");

if ( me.areaid == 78)
Print("ÿc2New Area: FLAYER_JUNGLE");

if ( me.areaid == 79)
Print("ÿc2New Area: LOWER_KURAST");

if ( me.areaid == 80)
Print("ÿc2New Area: KURAST_BAZAAR");

if ( me.areaid == 81)
Print("ÿc2New Area: UPPER_KURAST");

if ( me.areaid == 82)
Print("ÿc2New Area: KURAST_CAUSEWAY");

if ( me.areaid == 83)
Print("ÿc2New Area: TRAVINCAL");

if ( me.areaid == 84)
Print("ÿc2New Area: SPIDER_CAVE");

if ( me.areaid == 85)
Print("ÿc2New Area: SPIDER_CAVERN");

if ( me.areaid == 86)
Print("ÿc2New Area: SWAMPY_PIT_LEVEL_1");

if ( me.areaid == 87)
Print("ÿc2New Area: SWAMPY_PIT_LEVEL_2");

if ( me.areaid == 88)
Print("ÿc2New Area: FLAYER_DUNGEON_LEVEL_1");

if ( me.areaid == 89)
Print("ÿc2New Area: FLAYER_DUNGEON_LEVEL_2");

if ( me.areaid == 90)
Print("ÿc2New Area: SWAMPY_PIT_LEVEL_3");

if ( me.areaid == 91)
Print("ÿc2New Area: FLAYER_DUNGEON_LEVEL_3");

if ( me.areaid == 92)
Print("ÿc2New Area: SEWERS_LEVEL_1");

if ( me.areaid == 93)
Print("ÿc2New Area: SEWERS_LEVEL_2");

if ( me.areaid == 94)
Print("ÿc2New Area: RUINED_TEMPLE");

if ( me.areaid == 95)
Print("ÿc2New Area: DISUSED_FANE");

if ( me.areaid == 96)
Print("ÿc2New Area: FORGOTTEN_RELIQUARY");

if ( me.areaid == 97)
Print("ÿc2New Area: FORGOTTEN_TEMPLE");

if ( me.areaid == 98)
Print("ÿc2New Area: RUINED_FANE");

if ( me.areaid == 99)
Print("ÿc2New Area: DISUSED_RELIQUARY");

if ( me.areaid == 100)
Print("ÿc2New Area: DURANCE_OF_HATE_LEVEL_1");

if ( me.areaid == 101)
Print("ÿc2New Area: DURANCE_OF_HATE_LEVEL_2");

if ( me.areaid == 102)
Print("ÿc2New Area: DURANCE_OF_HATE_LEVEL_3");

if ( me.areaid == 103)
Print("ÿc2New Area: THE_PANDEMONIUM_FORTRESS");

if ( me.areaid == 104)
Print("ÿc2New Area: OUTER_STEPPES");

if ( me.areaid == 105)
Print("ÿc2New Area: PLAINS_OF_DESPAIR");

if ( me.areaid == 106)
Print("ÿc2New Area: CITY_OF_THE_DAMNED");

if ( me.areaid == 107)
Print("ÿc2New Area: RIVER_OF_FLAME");

if ( me.areaid == 108)
Print("ÿc2New Area: CHAOS_SANCTUM");

if ( me.areaid == 109)
Print("ÿc2New Area: HARROGATH");

if ( me.areaid == 110)
Print("ÿc2New Area: BLOODY_FOOTHILLS");

if ( me.areaid == 111)
Print("ÿc2New Area: RIGID_HIGHLANDS");

if ( me.areaid == 112)
Print("ÿc2New Area: ARREAT_PLATEAU");

if ( me.areaid == 113)
Print("ÿc2New Area: CRYSTALIZED_CAVERN_LEVEL_1");

if ( me.areaid == 114)
Print("ÿc2New Area: CELLAR_OF_PITY");

if ( me.areaid == 115)
Print("ÿc2New Area: CRYSTALIZED_CAVERN_LEVEL_2");

if ( me.areaid == 116)
Print("ÿc2New Area: ECHO_CHAMBER");

if ( me.areaid == 117)
Print("ÿc2New Area: TUNDRA_WASTELANDS");

if ( me.areaid == 118)
Print("ÿc2New Area: GLACIAL_CAVES_LEVEL_1");

if ( me.areaid == 119)
Print("ÿc2New Area: GLACIAL_CAVES_LEVEL_2");

if ( me.areaid == 120)
Print("ÿc2New Area: ROCKY_SUMMIT");

if ( me.areaid == 121)
Print("ÿc2New Area: NIHLATHAKS_TEMPLE");

if ( me.areaid == 122)
Print("ÿc2New Area: HALLS_OF_ANGUISH");

if ( me.areaid == 123)
Print("ÿc2New Area: HALLS_OF_DEATHS_CALLING");

if ( me.areaid == 124)
Print("ÿc2New Area: HALLS_OF_VAUGHT");

if ( me.areaid == 125)
Print("ÿc2New Area: HELL_1");

if ( me.areaid == 126)
Print("ÿc2New Area: HELL_2");

if ( me.areaid == 127)
Print("ÿc2New Area: HELL_3");

if ( me.areaid == 128)
Print("ÿc2New Area: THE_WORLDSTONE_KEEP_LEVEL_1");

if ( me.areaid == 129)
Print("ÿc2New Area: THE_WORLDSTONE_KEEP_LEVEL_2");

if ( me.areaid == 130)
Print("ÿc2New Area: THE_WORLDSTONE_KEEP_LEVEL_3");

if ( me.areaid == 131)
Print("ÿc2New Area: THRONE_OF_DESTRUCTION");

if ( me.areaid == 132)
Print("ÿc2New Area: THE_WORLDSTONE_CHAMBER");
}

if ( _oldMode != me.mode)
{
Print("My mode changed to: " + me.mode)

if ( me.mode == 0)
Print("Ich sterbe !!!")

if ( me.mode == 1)
Print("I'm ready to attack")

if ( me.mode == 2)
Print("I'm walking")

if ( me.mode == 3)
Print("I'm Running")

if ( me.mode == 4)
Print("I'm getting damage")

if ( me.mode == 5)
Print("I'm standing")

if ( me.mode == 6)
Print("I'm walking in town")

if ( me.mode == 7)
Print("I'm attacking")

if ( me.mode == 8)
Print("I'm attacking")

if ( me.mode == 9)
Print("I'm Blocking")

if ( me.mode == 10)
Print("I'm Casting")

if ( me.mode == 11)
Print("I'm throwing something")

if ( me.mode == 12)
Print("I'm kicking")

if ( me.mode == 13)
Print("This is Skill 1")

if ( me.mode == 14)
Print("This is Skill 2")

if ( me.mode == 15)
Print("This is Skill 3")

if ( me.mode == 16)
Print("This is Skill 4")

if ( me.mode == 17)
Print("Ich bin tot verdammte Scheisse !!!")

if ( me.mode == 18)
Print("I'm in a sequence")

if ( me.mode == 19)
Print("I get knocked back")
}
}

}
02/15/2010 23:07 kal_el#3
wo hast du das her ..meine fresse ^^ :)
02/16/2010 10:41 ente2#4
v.a. letzteres Skript finde ich sehr hilfreich. Wenn meine Prüfung rum ist, werde ich mich da mal etwas mehr drum kümmern und mich an nem Tempelskript versuchen ;)
Das Travscript hab ich immerhin schon quick/dirty optimiert und die ersten paar Koordinaten rausgeworfen (nun teleportiert er direkt zum Rat) und das pickit ganz ans Ende verschoben, d.h. er killt erstmal alles und fängt dann mit seinem lahmen picken an ;)
02/16/2010 16:07 njomnjomnjom#5
Quote:
wo hast du das her ..meine fresse ^^

Selber gemacht ^^

Im grunde hat ich die idee, dass er x.y. ausliest und sich merkt. Dann macht er 20 milisekunden pause und vergleicht dann ob das neue x.y. das selbe ist wie das neue, fals nicht zeigt er das neue an.

Das selbe macht er halt mit dem zustand. Wenn man losläuft merkt er dass sich der zustand verändert hat und sagt "i'm walking".
Wenn er blockt "i'm blocking". usw usw

Dann halt noch wenn sich areaid ändert ^^
04/05/2010 20:06 Hirnverbrannt#6
schade das das mit dem neuen nt nicht geht -.-
gibts da nen anderen weg?
04/07/2010 02:38 woke#7
?? funktioniert doch tadellos ^^
04/14/2010 09:08 kal_el#8
so gehts auch auf jedenfall mit dem 3.1
Quote:
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");

NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");

NTA_Initialize();

if(!NTTM_CheckAct())
{
NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
return;
}

while(1)
{
Print("[Position X :]" + me.x);
Print("[Position Y :]" + me.y);
NTC_Delay(4000);
}

}
04/16/2010 16:56 galandor#9
also da wird absolut nix angezeigt .. keine einzige meldung :(

habs genau kopiert in die char konf rein und was machts "schweigen" lauf mir nen wolf durch die gegen???

Version 3.0
04/16/2010 22:09 kal_el#10
du nennst das teil von mir aus "NTmami.ntj" in der config muss es dann heissen NTConfig_Script.push("NTmami.ntj");

ich hab z.B einfach die nt vom coldwurm genommen..alles rausgelöscht..das teil hineinkopiert, fertig..coldwurm in der config. aktiviert..klar.
04/17/2010 01:50 galandor#11
hmm dann binsch zu doof dazu habs in etwa genu so gemacht ^^ aber mir wird nich gezeigt schade wollte paar einzel boss scripte machen.. naja egal was ihc soll soll nich :D danke