HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
en sevdiğim! copy paste src
tytyty'ın da dediği gibi return atıyorsun 0 bulursa kapanıyor girmiyor bi daha çağırmazsan, böyle bir for'da return atılmaz continue atıcaksın. o iterasyonu atlasın diye.
tytyty'ın da dediği gibi return atıyorsun 0 bulursa kapanıyor girmiyor bi daha çağırmazsan, böyle bir for'da return atılmaz continue atıcaksın. o iterasyonu atlasın diye.en yakın metine ışınlanmayı hala yapamadım biraz daha açık yardımcı olabilir misiniz
okuduğun her instance'a olan distance'ına göre sort edeceksin, en yakın moba ışınlanıcaksın bunu ben nasıl daha açık anlatabilirim ki?en yakın metine ışınlanmayı hala yapamadım biraz daha açık yardımcı olabilir misiniz

eski csharp hilemde ben boyle aliyordum,en yakın metine ışınlanmayı hala yapamadım biraz daha açık yardımcı olabilir misiniz
[CODE lang="csharp" title="GetClosestMetin / TeleportClosest"] public List<Entity> v2stone_list;
public void getClosestMetin()
{
try
{
string closestDec = string.Empty;
float closestEnemyX = 0.0f;
float closestEnemyY = 0.0f;
float closestEnemyZ = 0.0f;
long closestId = 0;
float closestEnemyDistance = float.MaxValue;
//binek
string playerHX_addr = $"{servers.MilasMt2.tp_x_write}";
string playerHY_addr = $"{servers.MilasMt2.tp_y_write}";
string playerHZ_addr = $"{servers.MilasMt2.tp_z_write}";
//normal
string playerX_addr = $"{servers.MilasMt2.player_read_x}";
string playerY_addr = $"{servers.MilasMt2.player_read_y}";
string playerZ_addr = $"{servers.MilasMt2.player_read_z}";
v2mob_list.Clear();
v2stone_list.Clear();
closest5_stone.Clear();
closest5_mob.Clear();
for (int i = 4; i < 2048; i += 4)
{
try
{
string dec = i.ToString("x");
//mob base adr
string mobX_addr = $"{servers.MilasMt2.mob_baseadr}, {dec}, {servers.MilasMt2.mob_x_offset}";
string mobY_addr = $"{servers.MilasMt2.mob_baseadr}, {dec}, {servers.MilasMt2.mob_y_offset}";
string mobZ_addr = $"{servers.MilasMt2.mob_baseadr}, {dec}, {servers.MilasMt2.mob_z_offset}";
// string mob_id = $"{servers.UnalTuran2.mob_baseadr}, {dec}, {servers.UnalTuran2.mob_id_offset}";
//rd
float currCharHX = m.ReadFloat(playerX_addr);
float currCharHY = m.ReadFloat(playerY_addr);
float currCharHZ = m.ReadFloat(playerZ_addr);
// norm
// float mobId = m.ReadFloat($"metin2client.exe+0x034486DC, {dec} , 8");
float metinX = m.ReadFloat(mobX_addr);
float metinY = m.ReadFloat(mobY_addr);
float metinZ = m.ReadFloat(mobZ_addr);
//int metin_id = m.ReadInt(mob_id);
int metin_id = 0;
float dx = currCharHX - metinX;
float dy = currCharHY - metinY;
float dz = currCharHZ - metinZ;
float distance = (float)Math.Sqrt(dx * dx + dy * dy + dz * dz);
if (distance < closestEnemyDistance)
{
if (target_stone)
{
if (metin_id >= 8000 && metin_id <= 8900)
{
// if (v2stone_list.Count < 10)
if (true)//(distance < 2600)
{
Entity ent = new Entity { offset = dec, id = metin_id, x = metinX, y = metinY, z = metinZ };
v2stone_list.Add(ent);
closestDec = dec;
closestEnemyX = (float)Math.Round(metinX, 0);
closestEnemyY = (float)Math.Round(metinY, 0);
closestEnemyZ = (float)Math.Round(metinZ, 0);
closestId = metin_id;
closestEnemyDistance = distance;
}
}
}
if (target_mob)
{
if (true)
{
if (metinX == 0 || metinY == 0 || metinZ == 0)
{
}
else
{
if (true)//(distance < 4350)
{
Entity ent = new Entity { offset = dec, id = metin_id, x = metinX, y = metinY, z = metinZ };
v2mob_list.Add(ent);
closest5_mob.Add(ent);
closestDec = dec;
closestEnemyX = (float)Math.Round(metinX, 0);
closestEnemyY = (float)Math.Round(metinY, 0);
closestEnemyZ = (float)Math.Round(metinZ, 0);
closestId = metin_id;
closestEnemyDistance = distance;
}
}
}
}
}
}
catch (Exception ex)
{
// ex handle
}
}
}
catch (Exception err)
{
// ex handle
}
}
// trackbar valueden gelen radius icindeyse tp at.
public void TeleportClosest()
{
try
{
int centerX = pictureBox1.Width / 2;
int centerY = pictureBox1.Height / 2;
int sizeX = 12;
int sizeY = 12;
int stoneWidth = 7;
int stoneHeight = 7;
int mobWidth = 6;
int mobHeight = 6;
int playerWidth = 6;
int playerHeight = 6;
int halfX = sizeX / 2;
int halfY = sizeY / 2;
int alignX = centerX - halfX;
int alignY = centerY - halfY;
int radius = radius_TrackBar.Value;
float currCharHX = m.ReadFloat(servers.MilasMt2.player_read_x);
float currCharHY = m.ReadFloat(servers.MilasMt2.player_read_y);
float currCharHZ = m.ReadFloat(servers.MilasMt2.player_read_z);
float convertedX = (currCharHX / 100) * 1;
float convertedY = (currCharHY / 100) * -1;
double char_mapX = Math.Floor(convertedX + 0.5); // 259, y
double char_mapY = Math.Floor(convertedY + 0.5); // x, 259
//reverse to get the last added metin to the list (closest metin) / 0th - closest
v2stone_list.Reverse();
v2mob_list.Reverse();
// mob $"{baseAdr}, {dec}, {offset}";
// int mob_id = m.ReadInt($"{servers.Harbi2.mob_baseadr}, {v2stone_list[0].offset}, {servers.Harbi2.mob_id_offset}");
if (target_stone)
{
float mob_x = m.ReadFloat($"{servers.MilasMt2.mob_baseadr}, {v2stone_list[0].offset}, {servers.MilasMt2.mob_x_offset}");
float mob_y = m.ReadFloat($"{servers.MilasMt2.mob_baseadr}, {v2stone_list[0].offset}, {servers.MilasMt2.mob_y_offset}");
float mob_z = m.ReadFloat($"{servers.MilasMt2.mob_baseadr}, {v2stone_list[0].offset}, {servers.MilasMt2.mob_z_offset}");
// conv
float converted_entityX = (mob_x / 100) * 1;
float converted_entityY = (mob_y / 100) * -1;
// radar
double entity_mapX = Math.Floor(converted_entityX + 0.5);
double entity_mapY = Math.Floor(converted_entityY + 0.5);
// radar, dist, calc
double distanceX = char_mapX - entity_mapX;
double distanceY = char_mapY - entity_mapY;
double drawX = alignX - Convert.ToInt32(distanceX);
double drawY = alignY - Convert.ToInt32(distanceY);
double ellipseX = centerX - radius;
double ellipseY = centerY - radius;
double ellipseWidth = radius * 2;
double ellipseHeight = radius * 2;
double testX = drawX;
double testY = drawY;
/* double distance = Math.Sqrt(Math.Pow(testX - ellipseX, 2) / Math.Pow(ellipseWidth / 2, 2) +
Math.Pow(testY - ellipseY, 2) / Math.Pow(ellipseHeight / 2, 2));
// Check if the distance is less than or equal to 1 (i.e., point is inside the ellipse)
aw
bool isInside = distance <= 1;*/
int nrx = radius;
int nry = radius;
if ((drawX <= (centerX + nrx) && drawX >= (centerX - nrx)) && (drawY <= (centerY + nry) && drawY >= (centerY - nry)))
{
m.WriteMemory(servers.MilasMt2.player_read_x, "float", v2stone_list[0].x.ToString());
m.WriteMemory(servers.MilasMt2.player_read_y, "float", v2stone_list[0].y.ToString());
m.WriteMemory(servers.MilasMt2.player_read_z, "float", v2stone_list[0].z.ToString());
m.WriteMemory(servers.MilasMt2.tp_x_write, "float", v2stone_list[0].x.ToString());
m.WriteMemory(servers.MilasMt2.tp_y_write, "float", v2stone_list[0].y.ToString());
m.WriteMemory(servers.MilasMt2.tp_z_write, "float", v2stone_list[0].z.ToString());
}
}
if (target_mob)
{
float mob_x = m.ReadFloat($"{servers.MilasMt2.mob_baseadr}, {v2mob_list[0].offset}, {servers.MilasMt2.mob_x_offset}");
float mob_y = m.ReadFloat($"{servers.MilasMt2.mob_baseadr}, {v2mob_list[0].offset}, {servers.MilasMt2.mob_y_offset}");
float mob_z = m.ReadFloat($"{servers.MilasMt2.mob_baseadr}, {v2mob_list[0].offset}, {servers.MilasMt2.mob_z_offset}");
// conv
float converted_entityX = (mob_x / 100) * 1;
float converted_entityY = (mob_y / 100) * -1;
// radar
double entity_mapX = Math.Floor(converted_entityX + 0.5);
double entity_mapY = Math.Floor(converted_entityY + 0.5);
// radar, dist, calc
double distanceX = char_mapX - entity_mapX;
double distanceY = char_mapY - entity_mapY;
double drawX = alignX - Convert.ToInt32(distanceX);
double drawY = alignY - Convert.ToInt32(distanceY);
double ellipseX = centerX - radius;
double ellipseY = centerY - radius;
double ellipseWidth = radius * 2;
double ellipseHeight = radius * 2;
double testX = drawX;
double testY = drawY;
/* double distance = Math.Sqrt(Math.Pow(testX - ellipseX, 2) / Math.Pow(ellipseWidth / 2, 2) +
Math.Pow(testY - ellipseY, 2) / Math.Pow(ellipseHeight / 2, 2));
// Check if the distance is less than or equal to 1 (i.e., point is inside the ellipse)
aw
bool isInside = distance <= 1;*/
int nrx = radius;
int nry = radius;
if ((drawX <= (centerX + nrx) && drawX >= (centerX - nrx)) && (drawY <= (centerY + nry) && drawY >= (centerY - nry)))
{
m.WriteMemory(servers.MilasMt2.player_read_x, "float", v2mob_list[0].x.ToString());
m.WriteMemory(servers.MilasMt2.player_read_y, "float", v2mob_list[0].y.ToString());
m.WriteMemory(servers.MilasMt2.player_read_z, "float", v2mob_list[0].z.ToString());
m.WriteMemory(servers.MilasMt2.tp_x_write, "float", v2mob_list[0].x.ToString());
m.WriteMemory(servers.MilasMt2.tp_y_write, "float", v2mob_list[0].y.ToString());
m.WriteMemory(servers.MilasMt2.tp_z_write, "float", v2mob_list[0].z.ToString());
}
}
}// try end
catch (Exception ex) { }
}
[/CODE]
Son düzenleme:
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
Kontrol Ediliyor
mb öldüğünde diğer moba geçme konusuna devam
- Cevaplar
- 1
- Görüntüleme
- 352
- Cevaplar
- 18
- Görüntüleme
- 5K
- Cevaplar
- 12
- Görüntüleme
- 2K
