Suche einen sourcecode von einem Packetbot, möglichst noch funktionstüchtig, um zu verstehen wie er funktioniert.. ich meine hier im forum wäre sowas mal rumgeflogen.. kann jem den link posten? ;) Finde ihn nicht
Danke
Danke
klick auf chibis namen dann kommste auf seine page - statistiken - alle post bei chibis seil dich durch und dann haste sie - dann einfach ne fertig relese source nehmen und hf xDQuote:
chibis dann poste bitte mal den link zu deinem code :) wäre sehr dankbar.. selbst wenn es nur code snippets sind.. bin für alles dankbar was dafür diehnt erstmal ein eigenen bot "zusammen zu kopieren" und selbstzuschreiben.. das problem für mich ist im moment der anfang.. ich habe grundlegende kentnisse in c++ und anderen sprachen.. aber mir fehtl der anfang atm..
void spot()
{
spotx = Player[0].X;
spoty = Player[0].Y;
printf("Spot: X: [%d], Y: [%d]\n",spotx,spoty);
}
// gehst mit deinm char zum spot (also da, wo die meisten mobs spawnen) und führst den thread aus
void save()
{
savex = Player[0].X;
savey = Player[0].Y;
printf("Saveplace: X: [%d], Y: [%d]\n",savex,savey);
}
// gehst mit deinm char zu ner "save zone" (muss keine richtige save zone sein, hauptsache kaum bzw keine mobs, da er sich dort hin moved wenn er kaum hp mehr hat) und führst den thread aus
if (strcmp(input,"mobclasse") == 0)
{
printf("Enter mobclasse 1, where u want to bot(enter the number and then relog!!!): \n");
scanf_s("%d",&mobclasse1);
printf("Enter mobclasse 2:\n");
scanf_s("%d",&mobclasse2);
printf("Botting at Mobclasse: [%d] and [%d]\n",mobclasse1,mobclasse2);
}
//durch eingeben der mobclasse z.B. Water Dragons (20) und Hungry Water Dragons (21) werden auch nur diese mobs als mob erkannt, so dass er nur diese mobs angreift und nicht "wegläuft"
if (strcmp(input,"bot") == 0)
{
printf("Run bot\n");
Underground();
int i;
int safex,safey,mob_count;
int lowhealth = (maxhp*0.90);
int dangerzone = (maxhp*0.40);
behead = 1;
safex = Player[0].X;
safey = Player[0].Y;
while(mybot == 1)
{
behead = 1;
int closest_id = 0;
float closest_range = 65535000;
float closest_sqrt_range = 65535000;
int closest_difx, closest_dify;
float sqrt_range = 0;
if (dangerzone > hp) // wenn hp sehr low ist, zu save laufen
{
//run
char messagetext[255] = "*Very low HP, running to safe.";
SendDetour(0x11,"Us",last_u,messagetext);
behead=0;
int difx=Player[0].X-safex;
int dify=Player[0].Y-safey;
float range=(difx * difx)+(dify * dify);
float sqrt_range=sqrt(range);
if (sqrt_range > 50.0)
{
unsigned char tempsafex=-(difx/sqrt(range))*30;
unsigned char tempsafey=-(dify/sqrt(range))*30;
printf("Very Low HP\n");
SendDetour(0x15,"Ubbb",last_u,tempsafex,tempsafey,0) ;
SendDetour(0x21,"Ud",last_u,dropID); // med nehmen
Sleep(50);
int movestatus = 0;
while (dangerzone > hp)
{
SendDetour(0x21,"Ud",last_u,dropID); // med nehmen
}
Underground();
while (movestatus == 0)
{
int difx=Player[0].X-savex;
int dify=Player[0].Y-savey;
float range=(difx * difx)+(dify * dify);
float sqrt_range=sqrt(range);
if (sqrt_range > 20.0)
{
unsigned char movex=-(difx/sqrt(range))*30;
unsigned char movey=-(dify/sqrt(range))*30;
char messagetext[255] = "*Low HP, moving back to saveplace.";
SendDetour(0x11,"Us",last_u,messagetext);
printf("Moving to Saveplace because low hp\n");
SendDetour(0x15,"Ubbb",last_u,movex,movey,0) ;
SendDetour(0x21,"Ud",last_u,dropID);
Sleep(50);
}
else
{
printf("Arrived at Saveplace, potting ...\n");
movestatus = 1;
SendDetour(0x21,"Ud",last_u,dropID); // med nehmen
Underground();
}
}
}
continue;
}
if (mobsx == 0) // wenn keine mobs vorhanden, zum spot laufen
{
int difx=Player[0].X-safex;
int dify=Player[0].Y-safey;
float range=(difx * difx)+(dify * dify);
float sqrt_range=sqrt(range);
if (sqrt_range > 50.0)
{
unsigned char tempsafex=-(difx/sqrt(range))*30;
unsigned char tempsafey=-(dify/sqrt(range))*30;
printf("No mobs in area\n");
SendDetour(0x15,"Ubbb",last_u,tempsafex,tempsafey,0) ;
Sleep(50);
int movestatus = 0;
Underground();
while (movestatus == 0)
{
int difx=Player[0].X-spotx;
int dify=Player[0].Y-spoty;
float range=(difx * difx)+(dify * dify);
float sqrt_range=sqrt(range);
if (sqrt_range > 20.0)
{
unsigned char movex=-(difx/sqrt(range))*30;
unsigned char movey=-(dify/sqrt(range))*30;
char messagetext[255] = "*No Mobs, moving back to spot.";
SendDetour(0x11,"Us",last_u,messagetext);
printf("Moving back to Spot\n");
SendDetour(0x15,"Ubbb",last_u,movex,movey,0) ;
Sleep(50);
}
else
{
printf("Arrived at Spot\n");
movestatus = 1;
Underground();
}
}
}
continue;
}
mob_count = 0;
for (i=0;i<500;i++)
{
if (Mob[i].X != 0)
{
if (Mob[i].HP == 0)
{
Mob[i].X = 0;
continue;
}
if (Mob[i].Classe == mobclasse1 || Mob[i].Classe == mobclasse2)
{
mob_count++;
int difx=Player[0].X-Mob[i].X;
int dify=Player[0].Y-Mob[i].Y;
float range=(difx * difx)+(dify * dify);
float sqrt_range=sqrt(range);
if (range < closest_range)
{
closest_range = range;
closest_id = Mob[i].MID;
closest_sqrt_range = sqrt_range;
closest_difx = difx;
closest_dify = dify;
}
}
}
}
if ((playerx == 1 || playerx >= 2 )) // unnötig ^^
{
if (closest_sqrt_range < 50.0)
{
if (Player[0].Classe == 129) // 129 = mage, hier erfolgt der attack
{
SendDetour(0x2b,"Ubd",last_u,4,0,closest_id);
SendDetour(0x10,"Ubbd",last_u,4,1,closest_id);
}
else // wenn du keine mage bist, dann normal hits vom PA
{
SendDetour(0x0F,"Ubdd",last_u,1,closest_id,lastweapon);
Sleep(400);
}
Sleep(100);
}
else // wenn man nicht angreifen kann, liegts daran, dass das mob zu weit weg is, also zum mob laufen
{
unsigned char tempx=-(closest_difx/sqrt(closest_range))*30;
unsigned char tempy=-(closest_dify/sqrt(closest_range))*30;
printf("Move to mob\n");
SendDetour(0x15,"Ubbb",last_u,tempx,tempy,0) ;
Sleep(10);
}
}
// hier kommt das selbe! wie oben, der unterschied in der if anwweisung. wenn du 90% deiner hp hast, attackz der bot weiter und benutzt dabei meds
if (((playerx == 1 || playerx >= 2))&&((lowhealth > hp)&&(hp > dangerzone)))
{
if (closest_sqrt_range < 50.0)
{
if (Player[0].Classe == 129)
{
SendDetour(0x2b,"Ubd",last_u,4,0,closest_id);
SendDetour(0x10,"Ubbd",last_u,4,1,closest_id);
}
else
{
SendDetour(0x0F,"Ubdd",last_u,1,closest_id,lastweapon);
SendDetour(0x21,"Ud",last_u,dropID); // med nehmen
Sleep(400);
}
Sleep(100);
}
else
{
unsigned char tempx=-(closest_difx/sqrt(closest_range))*30;
unsigned char tempy=-(closest_dify/sqrt(closest_range))*30;
printf("Move to mob\n");
SendDetour(0x15,"Ubbb",last_u,tempx,tempy,0) ;
Sleep(10);
}
}
}
}